Ankündigung

Einklappen
Keine Ankündigung bisher.

EDOMI - LBS - Diskussion

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • coliflower
    antwortet
    Ich habe noch eine Frage ...

    Grundsätzlich ist es kein Thema wenn der Index, hier der ‚album‘ im Array enthalten ist, dessen Wert an den Ausgang zu senden ...

    PHP-Code:
        if (array_key_exists('album',$tracks)) {
            
    setLogicLinkAusgang($id,2,$tracks['album']); 

    Wenn ich aber z.B. im Array den Index LSS1 bis n mit einem bestimmten Wert habe (LSS1 = 1), dann möchte ich grundsätzlich immer die LSS harncodiert haben aber wenn ich mehrere LSS habe mit einer anderen Zahlen, hier die 1.

    Diese 1 oder eine andere Zahl würde ich gerne am Eingang zuweisen damit es individuell bleibt - z.B. für jeden Lautsprecher ein kleiner LBS der 1, 2, 3, … n am Eingang erhält.

    Ist das überhaupt möglich, wie würde so ein „Konstrukt“ aussehen ?
    Hier ein Versuch meiner Unkreativität ...
    PHP-Code:
        if (array_key_exists(('LSS'.$E[1]['value']),$airplay)) {
            
    setLogicLinkAusgang($id,1,$airplay['("LSS.$E[1]['value‘])']); 

    Einen Kommentar schreiben:


  • coliflower
    antwortet
    Zitat von vento66 Beitrag anzeigen
    Wenn du kein else definierst, ist nach dem ersten nicht erfolgreichen "if" Schluss.
    Wenn ich das zweite und dritte IF, durch ELSE IF ersetze, dann sollte es gehen oder ?

    EDIT: Ja ...
    Zuletzt geändert von coliflower; 06.03.2016, 20:22.

    Einen Kommentar schreiben:


  • coliflower
    antwortet
    Hi Micha,

    danke, werde mal umschreiben !

    Wenn alle erfüllt sind, dann kommt sowas raus ...

    2016-03-06 17:44:12 267992 EXEC 2731 LBS19000004(121): iTunes | E03 | IP-Adresse leer
    2016-03-06 17:44:12 268105 EXEC 2731 LBS19000004(121): iTunes | E03 | IP-Adresse keine IPv4
    2016-03-06 17:44:12 268150 EXEC 2731 LBS19000004(121): iTunes | E04 | Kein User

    Einen Kommentar schreiben:


  • vento66
    antwortet
    Wenn du kein else definierst, ist nach dem ersten nicht erfolgreichen "if" Schluss.

    Einen Kommentar schreiben:


  • coliflower
    antwortet
    Ich habe noch eine Frage für mein PHP-Verständnis … sorry für die Grundlagen in PHP
    Ich versuche mit gerade ein wenig mit Debugging/Logik ...

    Wenn unter das erste IF nicht erfüllt wird, dann wird abgebrochen ohne die restlichen zwei IF zu prüfen oder gehe ich doch über zum zweiten IF ohne die erste Debugmeldung auszugeben, wovon ich ausgehe, usw. ?

    PHP-Code:
    } else {

                if (
    isEmpty($E[3]['value'])) {
                    
    LB_LBSID_DEBUGL($id,'iTunes | E03 | IP-Adresse leer:             '.$E[3]['value']);
                    if (
    filter_var($E[3]['value'],FILTER_VALIDATE_IP,FILTER_FLAG_IPV4) !== true) {
                        
    LB_LBSID_DEBUGL($id,'iTunes | E03 | IP-Adresse keine IPv4:    '.$E[3]['value']);
                        if (
    isEmpty($E[4]['value'])) {
                            
    LB_LBSID_DEBUGL($id,'iTunes | E04 | Kein User:            '.$E[4]['value']);
                        }
                    }
                }
            }

            if (
    $E[1]['refresh']) {
                
    callLogicFunctionExec(LBSID,$id);
            }
        }

    Einen Kommentar schreiben:


  • gaert
    antwortet
    Nee... setLogicElementStatus() sorgt dafür, dass der LBS-Abschnitt immer wieder aufgerufen wird - z.B. wenn man einen Timer (ohne EXEC) implementieren möchte. Im nächsten Update gibt's hierzu ohnehin noch ein paar Ergänzungen und Erläuterungen, dann wird's bestimmt verständlich. Also noch etwas Geduld bitte

    Einen Kommentar schreiben:


  • toggle
    antwortet
    Ich glaube, ich habe den tieferen Sinn von setLogicElementStatus() noch nicht verstanden. Nach dem Auskommentieren und Aktivieren hat sich nichts geändert - der EXEC-Teil läuft munter wieder und die (geringe) Last weist keine Änderungen auf. Alle LBS-Ausgänge werden zyklisch vom EXEC mit den aktuellen Werten versorgt. Braucht man setLogicElementStatus() nur, um in der Übersicht zu sehen, wie viele LBS-Instanzen den Zustand "aktiv" haben?

    Einen Kommentar schreiben:


  • wintermute
    antwortet
    Zitat von timberland Beitrag anzeigen
    Keine Ahnung, aber funktioniert auf einmal ....
    Das liegt an meinem Karma

    Einen Kommentar schreiben:


  • timberland
    antwortet
    Keine Ahnung, aber funktioniert auf einmal ....

    Einen Kommentar schreiben:


  • wintermute
    antwortet
    Zitat von timberland Beitrag anzeigen
    Im Prinzip hab ich jetzt nur das drinnen

    [v#1 = -10000 ]
    [v#2 = 10000 ]

    if ($E[1]['refresh']==1) {
    $A = getLogicElementVar($id,1);
    writeToTraceLog(0,true,'Var 1:'."($A)");
    $B = getLogicElementVar($id,2);
    writeToTraceLog(0,true,'Var 2:'."($B)");
    }
    Das hilft nicht wirklich

    Ist der Code im LBS Teil oder im EXEC Teil? In einer Funktion oder nicht?
    Anders gefragt: ist $id ueberhaupt an der Stelle (richtig) deklariert?

    Einen Kommentar schreiben:


  • WagoKlemme
    antwortet
    Zitat von timberland Beitrag anzeigen
    Im Prinzip hab ich jetzt nur das drinnen

    [v#1 = -10000 ]
    [v#2 = 10000 ]

    if ($E[1]['refresh']==1) {
    $A = getLogicElementVar($id,1);
    writeToTraceLog(0,true,'Var 1:'."($A)");
    $B = getLogicElementVar($id,2);
    writeToTraceLog(0,true,'Var 2:'."($B)");
    }
    Bei mir hat es so funktioniert:
    [v#1=0]

    $v1=getLogicElementVar($id,1);

    Edit: vorher natürlich: Beispiel $v1=$E[1]['value']; setLogicElementVar($id,1,$v1);
    Zuletzt geändert von WagoKlemme; 23.02.2016, 16:37.

    Einen Kommentar schreiben:


  • timberland
    antwortet
    Im Prinzip hab ich jetzt nur das drinnen

    [v#1 = -10000 ]
    [v#2 = 10000 ]

    if ($E[1]['refresh']==1) {
    $A = getLogicElementVar($id,1);
    writeToTraceLog(0,true,'Var 1:'."($A)");
    $B = getLogicElementVar($id,2);
    writeToTraceLog(0,true,'Var 2:'."($B)");
    }

    Einen Kommentar schreiben:


  • wintermute
    antwortet
    Zitat von rdeckard Beitrag anzeigen
    Müsste das nicht so heissen:
    Ne, so wie timberland das macht isses schon richtig. Sollte auch eigentlich funktionieren, kann man ohne den Code aber nich viel zu sagen

    gruesse :: Michael

    Einen Kommentar schreiben:


  • rdeckard
    antwortet
    Müsste das nicht so heissen:

    [e#3 = eingang3 #init=1]

    Zumindest bei den Eingangsvariablen wird die Initialisierung mit #init=wert vorgenommen.

    Einen Kommentar schreiben:


  • timberland
    antwortet
    Hi,

    muss ich beim init Wert bei Variablen etwas beachten? Bekomme da immer eine 0 zurück.

    [v#1 = -10000 ]
    [v#2 = 10000 ]

    2016-02-23 06:36:46 069921 EXEC 5622 Var 1(0) Ok
    2016-02-23 06:36:46 069921 EXEC 5622 Var 2(0) Ok

    Einen Kommentar schreiben:

Lädt...
X