Ankündigung

Einklappen
Keine Ankündigung bisher.

EDOMI - LBS - Diskussion

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

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

    Kommentar


      #92
      Zitat von AScherff Beitrag anzeigen
      Der o.g. Fehler führte dazu, dass der LBS nicht in den DL-Bereich gestellt wurde, nicht, dass er "Fehlerhaft" eingestellt wurde.
      Wollte nur nochmal berichten. Baustein nochmal heruntergeladen nach dem Fehler im Downloadbereich. Der Wetterbaustein funktioniert jetzt ohne Probleme.

      Kommentar


        #93
        Nein - Ausgänge existieren nicht wirklich ...
        Wie kann ich den Wert 0 oder 1 hinter „LS1“ in Trace-Log anzeigen lassen ?

        BITTE/DANKE !


        PHP-Code:
        if (array_key_exists('LS1',    $output)) {
            
        setLogicLinkAusgang($id,10,$output['LS1']);
            
        writeToTraceLog(0,true,'iTunes RM | A10 | LS01 exists = '.array_key_exists('LS1',$output));
            
        writeToTraceLog(0,true,'iTunes RM | A10 | LS01 output = '.$E[10]['value']);

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

        Kommentar


          #94
          Zitat von coliflower Beitrag anzeigen
          Wie kann ich den Wert 0 oder 1 hinter „LS1“ in Trace-Log anzeigen lassen ?
          Ich versteh grad nicht... meinst Du, dass in dieser Zeile
          PHP-Code:
          writeToTraceLog(0,true,'iTunes RM | A10 | LS01 exists = '.array_key_exists('LS1',$output)); 
          je nach Wert von Deinem array_key_exists() 0 oder 1 (oder "Yes" oder "No") ausgegeben wird? Oder wo genau?

          gruesse :: Michael

          Kommentar


            #95
            Derzeit wird ja nur ein 1 ausgegeben wenn LS1 im String enthalten ist, z.b. 'LS1=1&LS2=0&LS3=1&….‘
            Ich würde gerne die Werte der jeweiligen LSx sehen.
            Danke und LG, Dariusz
            GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

            Kommentar


              #96
              Zitat von coliflower Beitrag anzeigen
              Derzeit wird ja nur ein 1 ausgegeben wenn LS1 im String enthalten ist, z.b. 'LS1=1&LS2=0&LS3=1&….‘
              Ich würde gerne die Werte der jeweiligen LSx sehen.
              Ahso... dann schreib am besten (ueberall) statt 'LS1'
              PHP-Code:
              'LS'.$i 
              Und pack um das ganze Konstrukt eine for-Schleife die von 1 bis "wohinauchimmer" zaehlt.

              Kommentar


                #97
                Nicht ganz …
                Der String wird im LBS geparst und die Einzelwerten den jeweiligen Ausgängen zugeführt - die Werte sind OK …
                ABER, ich würde diese Werte 0/1 gerne als solche in Trace-Log visualisieren ...
                Danke und LG, Dariusz
                GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                Kommentar


                  #98
                  Zitat von coliflower Beitrag anzeigen
                  Nicht ganz …
                  Der String wird im LBS geparst und die Einzelwerten den jeweiligen Ausgängen zugeführt - die Werte sind OK …
                  ABER, ich würde diese Werte 0/1 gerne als solche in Trace-Log visualisieren ...
                  Sorry, ich steh irgendwie aufm Schlauch
                  Also Du hast einen String (nennen wir ihn $string), in dem zB drinsteht: "LS5=3&LS19=12&foobar&LS0=88". Jetzt moechtest Du alle Wertepaare haben, die dem Muster LS<nummer>=<integer> entsprechen - und zwar nur die? Hab ich das richtig verstanden?
                  Das geht zB so:
                  PHP-Code:
                  $string="LS5=3&LS19=12&foobar&LS0=88";
                  preg_match_all('/(LS\d+)=(\d+)/',$string,$matches);
                  $i=0;
                  foreach(
                  $matches[1] as $match) {
                      print 
                  $match."=".$matches[2][$i++]."\n";

                  Erzeugt dann folgende Ausgabe:
                  Code:
                  $ php test.php
                  LS5=3
                  LS19=12
                  LS0=88
                  Meinst Du sowas?

                  Edit: wenn Du die Werte nicht weiterverarbeiten, sondern nur die Wertepaare ausgeben willst, dann reicht auch folgendes foreach-Konstrukt:
                  PHP-Code:
                  foreach($matches[0] as $match) {
                     print 
                  $match."\n";

                  Zuletzt geändert von wintermute; 16.02.2016, 19:51.

                  Kommentar


                    #99
                    Danke für deine Geduld :-)

                    Ich versuche etwas auszuholen ...

                    Mein Mac schickt mit per ECHO einen String … 'LS1=1&LS2=1&LS3=0'

                    Dieser String wird via UDP-Listener im LBS entgegengenommen und danach geparst ...

                    parse_str($data, $output);

                    Danach wird abgefragt ob z.B. LS1 enthalten ist (im Array), wenn ja dann weiter ...

                    if (array_key_exists('LS1', $output)) {
                    setLogicLinkAusgang($id,10,$output['LS1']);
                    writeToTraceLog(0,true,'iTunes RM | A10 | LS01 exists = '.array_key_exists('LS1',$output));
                    writeToTraceLog(0,true,'iTunes RM | A10 | LS01 output = '.???;
                    }

                    Wenn Ja, dann soll der Wert/Inhalt von LS1, im Beispiel die 1 den Ausgang 10 zugeführt werden.

                    Und genau diese 1 möchte ich im Trace-Log loggen (im grafischen Logikeditor sehe ich die 1 am Ausgang).

                    2016-02-16 20:05:44 296796 EXEC 13818 iTunes RM | A19 | LS10 exists = 1 Ok
                    2016-02-16 20:05:44 296828 EXEC 13818 iTunes RM | A19 | LS10 output = ???
                    Danke und LG, Dariusz
                    GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                    Kommentar


                      Zitat von coliflower Beitrag anzeigen
                      Danke für deine Geduld :-)
                      Ich danke eher fuer Deine

                      Zitat von coliflower Beitrag anzeigen
                      Ich versuche etwas auszuholen ...
                      Also hast Du einen String vom Mac, der diese LSx=y Paare enthaelt. Du willst jetzt y auf Ausgang z legen und ins trace schreiben, dass LSx im String war (lapidar gesprochen).
                      Und falls ein bestimmtest LSi im String nicht auftaucht, dann willst du ins trace schreiben, dass es nicht dabei war? Wozu?
                      Und der zu i gehoerende Ausgangs soll dann auf NULL gesetzt werden? Oder ist das nicht noetig?

                      BTW: wenn die Ausgaenge linear den LS-Indizes zugeordnet sind, laesst sich das programmtechnisch deutlich einfacher abbilden, also zB
                      LS1 => Ausgang 10
                      LS2 => Ausgang 11
                      LSn => Ausgang (9+n)

                      Nicht aufgeben, wir schaffen das

                      Kommentar




                        Ne, ich möchte nur ins Trace-Log etwas schreiben um zu loggen …

                        Der LBS funktioniert in diesem Bereich wie er soll - einzig und alleine fehlt mir das Wissen wie ich die Werte die an den Ausgängen des LBS anliegen auch ins Trace-Log schreiben kann ...

                        Anstatt der ??? im Beispiel ('LS1=1&LS2=1&LS3=0') soll die 1 oder in anderer Konstellation die 0 stehen da LS1 entweder 0 oder 1 haben kann (Lautsprecher AN oder AUS) … LS1=1 oder LS1=0

                        AUS >> writeToTraceLog(0,true,'iTunes RM | A10 | LS01 output = '.???);
                        Soll DAS werden >> 2016-02-16 20:05:44 296828 EXEC 13818 iTunes RM | A19 | LS10 output = ???
                        Danke und LG, Dariusz
                        GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                        Kommentar


                          Nochmal: Ausgänge gibt es nicht wirklich. Wenn Du einen Ausgang auf einen Wert setzt, werden alle EINGÄNGE (anderer Logikbausteine), die mit diesem Ausgang verbunden sind auf den Wert gesetzt.

                          Wenn Du diesen Wert Loggen willst, musst Du einfach die Variable loggen, deren Wert Du auf den Ausgang gegeben hast.
                          EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

                          Kommentar


                            Nochmal: Ausgänge gibt es nicht wirklich. Wenn Du einen Ausgang auf einen Wert setzt, werden alle EINGÄNGE (anderer Logikbausteine), die mit diesem Ausgang verbunden sind auf den Wert gesetzt.
                            Das habe ich schon verstanden ...

                            Deshalb meine Frage ob ich den Wert z.B. 0 von LS1=0 im LBS (die dann den LBS-Ausgang zugeführt wird) auslesen kann ?

                            Welche Variable soll ich loggen, die $E ? Die ist immer 1 ABER der LS1 kann ja nach Zustand eine 0 oder 1 haben ...

                            Ich suche NUR nach einer Möglichkeit den Wert zwischen 0 und 100 IN das Trace-Log zu schreiben ...
                            Oder geht das auch nicht ….?
                            Danke und LG, Dariusz
                            GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                            Kommentar


                              Zitat von coliflower Beitrag anzeigen
                              Ne, ich möchte nur ins Trace-Log etwas schreiben um zu loggen …
                              Uhm... einfach ein:
                              PHP-Code:
                              writeToTraceLog(0,true,'iTunes RM | A10 | LS01 output = '.$output['LS1']); 

                              Kommentar


                                Dankeschön, das wars !
                                (obwohl ich schwören könnte dass ich das schon probiert habe ABER na ja, anscheinend nicht ganz so ;-)
                                Danke und LG, Dariusz
                                GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                                Kommentar

                                Lädt...
                                X