Ankündigung

Einklappen
Keine Ankündigung bisher.

Telegram Contact: Problem bei vielen nahezugleichzeitigen Meldungen?

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

    Telegram Contact: Problem bei vielen nahezugleichzeitigen Meldungen?

    Hallo miteinander,

    in den letzten Tagen habe ich mit dem Telegram-LBS experimentiert und das funktioniert im Grossen und Ganzen wunderbar. Allerdings habe ich das Problem, dass offenbar Meldungen verloren gehen bzw. der falsche Text mehrfach geschickt wird, wenn es mehrere Meldungen nahezu gleichzeitig gibt. Kann das jemand bestätigen?

    Im konkreten Fall lasse ich mir die vom Beschattungsbaustein errechneten Werte für Höhe und Winkel des Behangs via Telegram schicken. Dazu habe ich folgendes Setup (vereinfacht) für jeden LBS konfiguriert:

    2016-08-09-EDOMI-TelegramContact3.png

    Damit wird der Text "<Raum> Höhe <x>%, Winkel <y>%" in ein internes KO geschrieben, welches auf dem Eingang E4 des Contact-LBS liegt. Das Ganze habe ich nun wie gesagt an jedem Beschattungs-LBS. Im Extremfall ergibt das, je nachdem welche Rahmenbedingung sich ändert und den Beschattungs-LBS triggert, in meinem Fall 14 nahezu gleichzeitige Meldungen. Im Resultat sieht das dann so aus, dass die ersten drei oder vier verschickten Meldungen korrekt sind, die restlichen sind jedoch alle gleich.

    Werde mal den Debug-Mode aktivieren und schauen. Das wäre wohl ein super Anwendungsfall für einen Queue-LBS...
    Kind regards,
    Yves

    #2
    Ah, Debug-Mode war schon aktiv.

    Das sieht von der Reihenfolge der Meldungen her etwas seltsam aus:

    Code:
    2016-08-09 09:27:31    515630    1543    debug    LBS19000303 [v0.4]:    LBS started
    2016-08-09 09:27:31    532053    1543    debug    LBS19000303 [v0.4]:    text command started
    2016-08-09 09:27:31    533090    1543    debug    LBS19000303 [v0.4]:    LBS ended
    2016-08-09 09:27:31    591543    1543    debug    LBS19000303 [v0.4]:    LBS started
    2016-08-09 09:27:31    618144    1543    debug    LBS19000303 [v0.4]:    text command started
    2016-08-09 09:27:31    618954    1543    debug    LBS19000303 [v0.4]:    LBS ended
    2016-08-09 09:27:31    655766    1543    debug    LBS19000303 [v0.4]:    LBS started
    2016-08-09 09:27:31    679847    4397    debug    EXE19000303 [v0.4]:    Telegram message execution started
    2016-08-09 09:27:31    689827    1543    debug    LBS19000303 [v0.4]:    text command started
    2016-08-09 09:27:31    690320    4397    debug    EXE19000303 [v0.4]:    Command:text
    2016-08-09 09:27:31    691190    1543    debug    LBS19000303 [v0.4]:    LBS ended
    2016-08-09 09:27:31    727304    1543    debug    LBS19000303 [v0.4]:    LBS started
    2016-08-09 09:27:31    763699    1543    debug    LBS19000303 [v0.4]:    text command started
    2016-08-09 09:27:31    764638    1543    debug    LBS19000303 [v0.4]:    LBS ended
    2016-08-09 09:27:31    789688    1543    debug    LBS19000303 [v0.4]:    LBS started
    2016-08-09 09:27:31    844466    1543    debug    LBS19000303 [v0.4]:    text command started
    2016-08-09 09:27:31    845298    1543    debug    LBS19000303 [v0.4]:    LBS ended
    2016-08-09 09:27:31    879950    1543    debug    LBS19000303 [v0.4]:    LBS started
    2016-08-09 09:27:31    916237    4402    debug    EXE19000303 [v0.4]:    Telegram message execution started
    2016-08-09 09:27:31    931617    4399    debug    EXE19000303 [v0.4]:    Telegram message execution started
    2016-08-09 09:27:31    934453    1543    debug    LBS19000303 [v0.4]:    text command started
    2016-08-09 09:27:31    935513    1543    debug    LBS19000303 [v0.4]:    LBS ended
    2016-08-09 09:27:31    941868    4402    debug    EXE19000303 [v0.4]:    Command:text
    2016-08-09 09:27:31    944000    4399    debug    EXE19000303 [v0.4]:    Command:text
    2016-08-09 09:27:31    985866    1543    debug    LBS19000303 [v0.4]:    LBS started
    2016-08-09 09:27:32    030916    4397    debug    EXE19000303 [v0.4]:    Telegram text message sent: Garten Höhe 100%, Winkel 28% (256478913)
    2016-08-09 09:27:32    032396    4397    debug    EXE19000303 [v0.4]:    Telegram message execution finished
    2016-08-09 09:27:32    043965    1543    debug    LBS19000303 [v0.4]:    text command started
    2016-08-09 09:27:32    044801    1543    debug    LBS19000303 [v0.4]:    LBS ended
    2016-08-09 09:27:32    081304    1543    debug    LBS19000303 [v0.4]:    LBS started
    2016-08-09 09:27:32    118293    4404    debug    EXE19000303 [v0.4]:    Telegram message execution started
    2016-08-09 09:27:32    153878    4404    debug    EXE19000303 [v0.4]:    Command:text
    2016-08-09 09:27:32    164477    1543    debug    LBS19000303 [v0.4]:    text command started
    2016-08-09 09:27:32    165616    1543    debug    LBS19000303 [v0.4]:    LBS ended
    2016-08-09 09:27:32    208789    1543    debug    LBS19000303 [v0.4]:    LBS started
    2016-08-09 09:27:32    272195    1543    debug    LBS19000303 [v0.4]:    text command started
    2016-08-09 09:27:32    273324    1543    debug    LBS19000303 [v0.4]:    LBS ended
    2016-08-09 09:27:32    290765    4406    debug    EXE19000303 [v0.4]:    Telegram message execution started
    2016-08-09 09:27:32    316848    4406    debug    EXE19000303 [v0.4]:    Command:text
    2016-08-09 09:27:32    344924    4402    debug    EXE19000303 [v0.4]:    Telegram text message sent: Gästezimmer Höhe 100%, Winkel 28% (256478913)
    2016-08-09 09:27:32    347645    4410    debug    EXE19000303 [v0.4]:    Telegram message execution started
    2016-08-09 09:27:32    361224    4399    debug    EXE19000303 [v0.4]:    Telegram text message sent: Gästezimmer Höhe 100%, Winkel 28% (256478913)
    2016-08-09 09:27:32    367403    4399    debug    EXE19000303 [v0.4]:    Telegram message execution finished
    2016-08-09 09:27:32    370354    4402    debug    EXE19000303 [v0.4]:    Telegram message execution finished
    2016-08-09 09:27:32    397805    4410    debug    EXE19000303 [v0.4]:    Command:text
    2016-08-09 09:27:32    543106    4412    debug    EXE19000303 [v0.4]:    Telegram message execution started
    2016-08-09 09:27:32    552248    4412    debug    EXE19000303 [v0.4]:    Command:text
    2016-08-09 09:27:32    606965    4404    debug    EXE19000303 [v0.4]:    Telegram text message sent: KiZi Höhe 100%, Winkel 28% (256478913)
    2016-08-09 09:27:32    608521    4404    debug    EXE19000303 [v0.4]:    Telegram message execution finished
    2016-08-09 09:27:32    648940    4415    debug    EXE19000303 [v0.4]:    Telegram message execution started
    2016-08-09 09:27:32    667774    4415    debug    EXE19000303 [v0.4]:    Command:text
    2016-08-09 09:27:32    687170    4406    debug    EXE19000303 [v0.4]:    Telegram text message sent: Schlafzimmer Terassentür Höhe 100%, Winkel 28% (256478913)
    2016-08-09 09:27:32    687863    4406    debug    EXE19000303 [v0.4]:    Telegram message execution finished
    2016-08-09 09:27:32    694925    4417    debug    EXE19000303 [v0.4]:    Telegram message execution started
    2016-08-09 09:27:32    700257    4417    debug    EXE19000303 [v0.4]:    Command:text
    2016-08-09 09:27:32    769853    4410    debug    EXE19000303 [v0.4]:    Telegram text message sent: Schlafzimmer Terassentür Höhe 100%, Winkel 28% (256478913)
    2016-08-09 09:27:32    773190    4410    debug    EXE19000303 [v0.4]:    Telegram message execution finished
    2016-08-09 09:27:32    883697    4412    debug    EXE19000303 [v0.4]:    Telegram text message sent: Schlafzimmer Terassentür Höhe 100%, Winkel 28% (256478913)
    2016-08-09 09:27:32    884618    4412    debug    EXE19000303 [v0.4]:    Telegram message execution finished
    2016-08-09 09:27:32    981203    4417    debug    EXE19000303 [v0.4]:    Telegram text message sent: Schlafzimmer Terassentür Höhe 100%, Winkel 28% (256478913)
    2016-08-09 09:27:32    982079    4417    debug    EXE19000303 [v0.4]:    Telegram message execution finished
    2016-08-09 09:27:33    005826    4415    debug    EXE19000303 [v0.4]:    Telegram text message sent: Schlafzimmer Terassentür Höhe 100%, Winkel 28% (256478913)
    2016-08-09 09:27:33    006715    4415    debug    EXE19000303 [v0.4]:    Telegram message execution finished
    Kind regards,
    Yves

    Kommentar


      #3
      ich vermute es liegt daran, wenn in einem Logikdurchlauf von EDOMI mehrere deiner LBS auf den Telegram LBS schreiben bevor der Telegram LBS ausgeführt wird, dann überlebt nur der letzte Wert, der auf den Eingang geschrieben wurde. Dadurch würden natürlich Nachrichten verlorengehen.

      Die Frage ist natürlich grundsätzlich, ob der von dir beschriebene Usecase wirklich realistisch ist. Klingt für mich eher so als würdest du Telegram als Live Logger verwenden. ;-)

      Ggf. würde auch ein Queue LBS nicht helfen, wenn vor dessen Ausführung mehrmals auf einen Eingang geschrieben wird, dann überlebt auch hier nur der letzte Wert. Evtl. kann Christian dazu was sagen, ob diese Annahme korrekt ist. Oder ob Edomi die Werte auf den Eingängen queued. Bin mir da nicht wirklich sicher.

      Kommentar


        #4
        Ich habe mir das noch mal genauer angeschaut und noch mal alte Threads zur Edomi Logikabarbeitung gelesen. Es können wohl keine Signale am Eingang verlorengehen, da diese Events gequeued werden. Allerdings findet die Kommunikation zwischen LBS und EXEC Skript per interner Variablen statt. D.h. der LBS teilt dem EXEC Skript welcher Befehl ausgeführt werden soll (hier TEXT Nachricht) und das EXEC Skript holt sich den Text vom Eingang und sendet ihn als Text. Wird nun sehr schnell der LBS Teil getriggert, dann holt die erste Ausführung des EXEC Skript den Text vom Eingang ab, der z.B. beim dritten Aufruf gesetzt wurde.

        Das Problem würde sich noch stärker auswirken, wenn kurz hintereinander verschiedene Nachrichten gesendet würden, z.B. Texte und Bilder gemischt. Dann könnte versucht werden, Texte als Bilder zu verschicken und umgekehrt.

        Eine mögliche Lösung wäre, wenn der LBS Teil des Baustein die Daten (Befehl + Daten) per message-Queue an das EXEC Skript senden würde. Dieses würde sie dann ähnlich zu einem Daemon verhalten und "blockierend" auf eine neue Nachricht warten. Dadurch würde dann jede Nachricht korrekt abgearbeitet, da keine Kommunikation über die DB erfolgt und somit eine schnelles Aufrufen des LBS keine Daten überschreiben kann, die noch nicht vom EXEC Skript abgearbeitet wurden.

        Werde das am Wochenende mal testen, wenn Interesse besteht ...

        Kommentar


          #5
          Hi André,

          nunja, in meinem oben beschriebenem Anwendungsfall ist das in der Tat sowas wie ein Live-Logger, da ich ja eben genau sehen will, wann mein Beschattungs-LBS etwas gemacht hat. Auf diese Art und Weise funktioniert das bisher am idealsten, denn das Smartphone hab ich immer dabei und kann dann direkt schauen, wenn sich etwas tut. Gerade während den Tests ist das sehr praktisch. Dann bin ich bspw. irgendwo rund um's Haus um draussen etwas zu machen und wenn sich die Storen bewegen, weiss ich warum (oder eben auch, warum nicht...). ;-)

          Ich würde mich freuen, wenn Du die Idee der Message-Queue weiter verfolgen resp. testen würdest! Das macht den Baustein unterm Strich mit Sicherheit robuster.
          Kind regards,
          Yves

          Kommentar


            #6
            Okay, am Wochenende gibts dann mal eine Testversion.

            Ist mein Verständnis denn richtig, dass die Anzahl der Nachrichten korrekt ist und dass nur der Inhalt nicht stimmt? Es wird am Ende vermutlich immer derselbe Inhalt sein, nämlich das was der letzte (14.) Aufruf auf E4 geschrieben hat.

            Kommentar


              #7
              Ich hatte zum "Live-Debuggen" mal in ein Datenarchiv geschrieben, welches ich mir in der Visu anzeigen lasse - also auch gleich dabei. Aber das Wochenende ist ja nicht mehr weit...

              Kommentar


                #8
                Hallo miteinander

                Zitat von jonofe Beitrag anzeigen
                Okay, am Wochenende gibts dann mal eine Testversion.
                Cool, schonmal danke!


                Zitat von jonofe Beitrag anzeigen
                Ist mein Verständnis denn richtig, dass die Anzahl der Nachrichten korrekt ist und dass nur der Inhalt nicht stimmt?
                Das kann ich nicht genau sagen, da ich nicht genau weiss, welcher Behang auch tatsächlich bewegt wurde. Aber ich gehe stark davon aus.


                Zitat von Stoxn Beitrag anzeigen
                Ich hatte zum "Live-Debuggen" mal in ein Datenarchiv geschrieben, welches ich mir in der Visu anzeigen lasse - also auch gleich dabei.
                Das mach ich auch für eine ganze Reihe Infos. Der Punkt ist dabei aber der, das man da nicht wirklich live merkt, wenn etwas getriggert wurde und dementsprechend nicht live mitverfolgen kann, was passiert. Das ist eben etwas anderes, wenn sich das Smartphone bemerkbar macht und man dann eben am "lebenden Objekt" mitverfolgen kann, was passiert.
                Kind regards,
                Yves

                Kommentar


                  #9
                  Erste High Performance Telegram-Contact Testversion im Anhang.

                  Habe nur kurz folgendes getestet:
                  Mit einer Eingangsbox habe ich 14 Ausgangs-LBS getriggert und jeder Ausgangs-LBS sendet eine andere Textnachricht. Ich empfange alle 14 Nachrichten korrekt. Lediglich die Reihenfolge ist nicht wirklich deterministisch oder evtl. gemäß der IDs der Ausgangs-LBS. Aber es geht wirklich schnell und nichts geht durcheinander. Andere Telegramfunktionen habe ich noch nicht getestet, sollten aber hoffentlich noch funktionieren. Es sollte auch alle gemischt funktionieren. Einfach mal probieren.
                  Bevor dann das offizielle Update kommt, werde ich den Baustein noch mal detaillierter testen.
                  Angehängte Dateien

                  Kommentar


                    #10
                    Super, danke. Werde ich gleich testen.
                    Kind regards,
                    Yves

                    Kommentar


                      #11
                      Zitat von Stoxn Beitrag anzeigen
                      Aber das Wochenende ist ja nicht mehr weit...
                      Jo, iss denn heut' scho' Weihnachten?

                      Kommentar


                        #12
                        Nee, diese LBS-Version funktioniert überhaupt nicht. Edomi kommt damit gar nicht erst hoch und im Error-Log steht das hier:

                        Code:
                        [COLOR=#FF0000]2016-08-11 18:49:10    530999    ?    20908    Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000303.php | Fehlercode: 1 | Zeile: 47 | Call to undefined function msg_get_queue()    FATALERROR
                        2016-08-11 18:49:16    712318    ?    20883    Datei: /usr/local/edomi/www/data/liveproject/lbs/LBS19000303.php | Fehlercode: 1 | Zeile: 55 | Call to undefined function msg_get_queue()    FATALERROR
                        2016-08-11 18:49:16    837420    MAIN    20847    Prozess LOGIC läuft nicht mehr!    FATALERROR
                        2016-08-11 18:49:24    782690    MAIN    20975    ACHTUNG: EDOMI wurde unerwartet beendet: FATALERROR in LBS 19000303 | EDOMI wird pausiert    ERROR[/COLOR]
                        Kind regards,
                        Yves

                        Kommentar


                          #13
                          Die msg-queue-Funktionen musst Du zunächst installieren (PHP-Erweiterung)...
                          EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

                          Kommentar


                            #14
                            Zitat von gaert Beitrag anzeigen
                            Die msg-queue-Funktionen musst Du zunächst installieren (PHP-Erweiterung)...
                            Ja, das stimmt natürlich:

                            Code:
                            yum install php-process

                            Kommentar


                              #15
                              Hallo miteinander,

                              ah ok, alles klar. Die neue Version des LBS ist installiert, mal beobachten, wie sich das heute über den Tag verhält...
                              Kind regards,
                              Yves

                              Kommentar

                              Lädt...
                              X