Ankündigung

Einklappen
Keine Ankündigung bisher.

EDOMI - LBS - Diskussion

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

    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

    Kommentar


      Müsste das nicht so heissen:

      [e#3 = eingang3 #init=1]

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

      Kommentar


        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

        Kommentar


          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)");
          }

          Kommentar


            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.
            >>Smelly One<<
            >> BURLI <<
            Grüße Armin

            Kommentar


              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?

              Kommentar


                Keine Ahnung, aber funktioniert auf einmal ....

                Kommentar


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

                  Kommentar


                    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?

                    Kommentar


                      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
                      EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

                      Kommentar


                        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);
                                }
                            }

                        Danke und LG, Dariusz
                        GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                        Kommentar


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

                          Kommentar


                            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
                            Danke und LG, Dariusz
                            GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                            Kommentar


                              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.
                              Danke und LG, Dariusz
                              GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                              Kommentar


                                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‘])']); 
                                Danke und LG, Dariusz
                                GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                                Kommentar

                                Lädt...
                                X