MQTT Gateway 2.x

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • svethi
    Lebende Foren Legende
    • 25.08.2015
    • 6292

    Kannst ja mal versuchen abzuschalten, dass JSON‘s aufgeschlüsselt werden
    Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

    Kommentar

    • Greenberet
      Dumb Home'r
      • 29.07.2021
      • 27

      Zitat von Christian Fenzl
      Ich muss die bestehende Funktion (Array auflösen) darum erweitern, zu erkennen, ob es ein Array mit Einzelelementen oder Objekten ist. Dann kann ich die Objekte auch auflösen, wie du das vorschlägst.
      Gib mir etwas Zeit, ich bin gerade etwas „verplant“. Dein Beispieldatendatz ist nützlich zum Testen.

      lg, Christian
      Kein Stress =)



      Zitat von svethi
      Kannst ja mal versuchen abzuschalten, dass JSON‘s aufgeschlüsselt werden
      Das geht leider nur Global. Somit würden dann die Werte an einer anderen Stelle nicht sauber übertragen werden.

      Kommentar

      • ChrisR
        Extension Master
        • 07.12.2020
        • 190

        Hallo und erst mal großen Dank an Christian! Es sind viele neue Features dazugekommen - und schneller gehts jetzt auch ))

        Im Thread #125 wurde schon mal das "Do not Forward" Feature behandelt. Wie sinnvoll ist es eigentlich alle gelb markierten ("Not found") Nachrichten zu deaktivieren? Was ist z.B. mit den HASH- bzw. KeepAlive-Subscriptions?

        Link zum Thread #125: https://www.loxforum.com/forum/proje...294#post314294

        Vielen Dank für die Rückmeldung

        Grüße Chris

        Kommentar


        • ChrisR
          ChrisR kommentierte
          Kommentar bearbeiten
          Verstehe ich grad was nicht?!
          Eigentlich sollte die Antwort doch kurz und knapp sein...oder kennt sich hier niemand wirklich aus?

        • Christian Fenzl
          Christian Fenzl kommentierte
          Kommentar bearbeiten
          Die Funktion ist dafür da, um Sachen wegzufiltern, die du am Miniserver nicht brauchst.
          Wenn du Sachen am Miniserver nicht brauchst, dann verwende die Funktion.

        • ChrisR
          ChrisR kommentierte
          Kommentar bearbeiten
          Danke Christian
          Sowas in der Richtung dachte ich mir bereits. Es ist nur so unglaublich viel was nicht benötigt wird und die Seite reagiert eher...träääge...
      • Houseruckiii
        Smart Home'r
        • 31.10.2016
        • 60

        Moin,
        hatte heute einen Segfault des MQTTGateways:

        Code:
        root@Loxberry:/opt/loxberry/log/plugins/mqttgateway# journalctl | grep -i mqtt
        Sep 24 10:49:04 Loxberry kernel: mqttgateway.pl[1103]: [COLOR=#e74c3c][B]segfault[/B][/COLOR] at 2 ip 0000562d3380598e sp 00007fff14945e98 error 4 in perl[562d3379e000+15e000]
        root@Loxberry:/opt/loxberry/log/plugins/mqttgateway#
        Mosquitto selbst war OK, nur der MS selbst bekam nix mehr geliefert.
        Zur Uhrzeit des Segfaults habe ich nix gemacht, die letzte Änderung von mir waren ein paar einfache Subscription Filters, vmtl war das am 14.09.21...
        Der Button Restart im Plugion hat geholfen, Gateway lief dann wieder.

        Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Screenshot 2021-09-24 at 13-27-35 Log Viewer - plugins mqttgateway mqttgateway log.png Ansichten: 0 Größe: 63,3 KB ID: 318668 Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Screenshot 2021-09-24 at 13-25-11 Loxberry MQTT Gateway v2 0 4.png Ansichten: 0 Größe: 96,3 KB ID: 318669 Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Screenshot 2021-09-24 at 14-10-37 Loxberry MQTT Gateway v2 0 4.png Ansichten: 0 Größe: 19,1 KB ID: 318671


        Lief sonst sehr gut, incl S4L, Danke!

        Kommentar


        • SehlingS
          SehlingS kommentierte
          Kommentar bearbeiten
          Ich habe ein ähnliches Problem.
          Bei mir hört das MQTT Gateway einfach irgendwann auf zu laufen.
          Hatte das jetzt 2 mal nach jeweils ca. 10 Tagen.
          Das Log ist leider nicht aussagekräftig. Ich werde wenn des Prozess das nächste mal nicht mehr läuft auch mit journalctl grep -i mqtt schauen was dort steht.
          im Moment steht dort nur mein Restart von gestern aben drin.
          Aktuell sehe ich nur im mqttgateway.log das gestern um 17.07 die letzte Meldung ankam und mein drücken des Restart Buttons um 22:27 das Problem behoben hat.
          Mosquitto und der Rest der Loxberry laufen problemlos weiter.
          Das Problem hatte ich früher nicht.
          Sprich es muss durch irgendein update mit rein gekommen sein.

          Jemand ne Idee?
          Zuletzt geändert von SehlingS; 29.09.2021, 08:11. Grund: ERGÄNZUNG AUSGABE "journalctl grep -i mqtt"
      • Lox_Elmar
        Smart Home'r
        • 29.07.2021
        • 42

        Zitat von Lox_Elmar
        Kann man bei der "Text-to-Value conversions" auch Kommentare einfügen und sind Leerzeilen ein Problem?
        Möchte etwas Übersicht in die Tabelle bringen.
        Christian Fenzl ich vermute du meintest diese Meldungen
        Klicke auf die Grafik für eine vergrößerte Ansicht  Name: MQTT Conversion.jpg Ansichten: 0 Größe: 224,3 KB ID: 318735

        Kommentar


        • Christian Fenzl
          Christian Fenzl kommentierte
          Kommentar bearbeiten
          Jep, das sind die Meldungen der Kommentare, die du ignorieren kannst.

        • Lox_Elmar
          Lox_Elmar kommentierte
          Kommentar bearbeiten
          Danke
      • BlScOfDe
        Dumb Home'r
        • 26.09.2017
        • 18

        Hallo,

        sollte in v2.0.4 der MQTT Gateway Dienst (/mqttgateway.pl) automatisch mit dem Loxberry starten?
        Nach einem Neustart gestern (hätte also genug Zeit gehabt) ist mir aufgefallen dass der Broaker nicht funktioniert. Heute gesehen dass MQTT GW nicht läuft. Der Mosquitto aber schon.
        Mit dem "Restart" button startet der GW Dienst problemlos.

        Wie wird denn der Dienst normal gestartet? In welchem log fände ich warum der ned automatisch startet? (im mqtt log steht nach dem loxberry start garnix. erst mit start von /mqttgateway.pl steht da zumindest dass der gestartet ist. Hilft aber ned weiter )

        Kommentar

        • Christian Fenzl
          Lebende Foren Legende
          • 31.08.2015
          • 11218

          Der Dämon erzeugt ein daemonstart.log - das müsste im Log Manager unter „Weitere Logfiles“ aufscheinen.



          lg, Christian
          Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

          Kommentar

          • BlScOfDe
            Dumb Home'r
            • 26.09.2017
            • 18

            Zitat von Christian Fenzl
            Der Dämon erzeugt ein daemonstart.log - das müsste im Log Manager unter „Weitere Logfiles“ aufscheinen.



            lg, Christian
            Hmm. Im Log Manager scheint nichts auf.

            Per SSH evenfalls nix gefunden.
            In "/opt/loxberry/log/plugins/mqttgateway/" gibts nur das mqttgateway.log und mosquitto.log.
            Zur Sicherheit ein find ausgeführt (root@loxberry:/# find / -type f -name "daemonstart.log") ohne Ergebnis.

            Kommentar

            • Christian Fenzl
              Lebende Foren Legende
              • 31.08.2015
              • 11218

              Houseruckiii
              SehlingS
              @BlScOfDe

              Leider kann ich nicht beantworten, warum ihr kein Log beim Systemstart durch den Daemon bekommt -
              entsteht ein Log, wenn du manuell als root
              /opt/loxberry/system/daemons/plugins/mqttgateway
              aufrufst?
              Dieses Log MUSS beim Start erzeugt werden, denn wenn nicht, dann läuft der Daemon garnicht. Das erste, was das Daemonscript macht, ist eine Zeile in dieses Log zu schreiben.

              Absolut kann ich nicht beantworten, warum ein Segmentation Fault kommt (Perl erlaubt gar keine eigene Speicherverwaltung im Code, in der ich durch falschen Speicherzugriff einen Crash auslösen könnte). Perl ist so alt, dass es so "gereift" ist, dass das sehr sehr seeehr selten ist, und oft eher am Speicher selbst (oder Strom) liegt als an Perl. Die Segfault Meldung, die oben gepostet ist, sagt jetzt auch nicht wirklich was aus, ob vielleicht irgendeines der verwendeten Perl-Module da was verhaut.

              Außerdem fällt mir kein Grund ein, warum das Gateway nach ein paar Tagen nicht mehr läuft. Selbst wenn das Programm durch einen Runtime Fehler beendet wird, schreibt es noch ein "MQTT Gateway exited" danach ins Log. Bei einem SegFault allerdings nicht mehr (das ist dann richtig tot).

              Was ich aber machen kann, ist, den Healthcheck, der jetzt schon täglich von LoxBerry ausgeführt wird und das Gateway prüft, als zusätzlichen Prozess laufen zu lassen, und dort zu versuchen, das Gateway wieder zu starten, sollte es nicht mehr laufen (sowas wie ein Heartbeat).

              Oder zweite Idee, das MQTT als systemd Dienst zu starten, dann kümmert sich systemd um den Restart im Fehlerfall. Dann würde dort vielleicht auch mehr im systemd Log stehen.

              Bitte stellt aber wirklich erst mal sicher, dass ihr keine Stromprobleme habt (LoxBerry Selbsttest zeigt das nach längerer Laufzeit auch rückwirkend an, solange ihr nicht rebootet).

              lg, Christian
              Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

              Kommentar


              • SehlingS
                SehlingS kommentierte
                Kommentar bearbeiten
                Moin Christian,
                ich habe meinen Healthcheck nochmals angeschaut.
                Alles grün bzw blau bei eine Laufzeut von 15 Tagen. Sprich das Netzteil würde ich ausschließen.
                Aktuell läuft auch noch alles einwandfrei. Ich hatte die beiden Ausfälle jeweils nach ca. 10 Tagen.
                Was mir aufgefallen ist (vermutlich nichts besonderes ;-)) Der PID war anafang bei ca. 1.000 für den Prozess. 10 Tage später nach meinem manuellen Restart bei 21.000. Sprich es müssten ja in der Zwischenzeit 19.000 Prozesse gestartet und wieder beendet worden sein.

                Mir gefallen deine beiden Ideen. Beide würden zwar nur die Ursache beheben, aber alle 10 Tage mal ein automatischer Neustart des Gateways macht ja nichts. Das 1Wire Plugin macht das ja auch schon mit einem Healthcheck.

                Ich habe den Pi wirklich schon lange am laufen. Aber das mit MQTT ist erst seit ca. 25 Tagen. Muss also mit irgendeinem Update eine Plugins oder des Loxberrys zusammen hängen.
                Was jedoch auch seltsam ist, dass bei 2143 Installationen, sich nur 2 melden, bei denen der Prozess stoppt.



                Grüße und auf jeden Fall schon mal vielen Dank für deine Ideen und Mühen.
                Sascha
            • chrisu159
              Dumb Home'r
              • 27.07.2017
              • 16

              Hi,

              ich nutze das Modul schon seit mehreren Jahren und es hat immer alles funktioniert. Heute wollte ich ein Shelly 1 und ein Shelly RGBW2 einbinden. Insgesamt habe ich von diesen Geräten mehrere im Einsatz (knapp 40 Stück) und alle funktionieren ohne Probleme.

              Leider schaffe ich es nicht die beiden "neuen" in den Broker zu bekommen. Die schicken keine Daten und erhalten auch keine. Im Broker kommen die Nachrichten für die beiden neuen Shelly´s aber an, sie schalten aber nicht.

              Habt ihr eine Idee wo ich noch suchen könnte? Was ich bereits gemacht habe:
              - Shelly´s Zurücksetzen
              - MQTT neu Starten
              - Loxberry neu Starten
              - ca. 10x MQTT Einstellungen neu eingetragen

              Alles ist gleich wie bei meinen anderen (Shelly 1, 1PM, Button, RGBW2, 2.5) und die funktionieren.

              Der Loxberry läuft auf einem QNAP (unverändert seit min. 1 Monat). Alle Updates durchgeführt (MQTT in Version 2.0.4)

              Danke im Vorraus, LG Chrisu
              Zuletzt geändert von chrisu159; 30.09.2021, 00:21.

              Kommentar

              • svethi
                Lebende Foren Legende
                • 25.08.2015
                • 6292

                Wenn die Nachrichten von den Shellies im Broker ankommen, funktioniert der Broker und auch die Shellies. Dann hast Du etwas nicht richtig konfiguriert. Mit Deinen Infos kann man aber auch nichts weiter sagen
                Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

                Kommentar

                • chrisu159
                  Dumb Home'r
                  • 27.07.2017
                  • 16

                  Ich habe jetzt in den Details in der Incoming overview bei Last arrived einen Fehler gefunden: "MS1: HTTP 404 Input not available". Dieser Eintrag kommt wenn ich von Loxone das Shelly1 schalten möchte. Ich habe das Shelly gerade nochmal komplett zurückgesetzt.

                  Kommentar

                  • BlScOfDe
                    Dumb Home'r
                    • 26.09.2017
                    • 18

                    Zitat von Christian Fenzl
                    Houseruckiii
                    SehlingS
                    @BlScOfDe

                    Leider kann ich nicht beantworten, warum ihr kein Log beim Systemstart durch den Daemon bekommt -
                    entsteht ein Log, wenn du manuell als root
                    /opt/loxberry/system/daemons/plugins/mqttgateway
                    aufrufst?
                    Dieses Log MUSS beim Start erzeugt werden, denn wenn nicht, dann läuft der Daemon garnicht. Das erste, was das Daemonscript macht, ist eine Zeile in dieses Log zu schreiben.
                    ...

                    lg, Christian
                    Hi,
                    (alles über ssh)
                    wenn ich den Prozess beende und neu starte, wird ein daemonstart.log erzeugt.

                    Hier meine Schritte
                    Code:
                    loxberry@loxberry:~ $ ps waux | grep mqtt
                    loxberry 1537 4.1 1.5 38884 31888 ? S Sep28 104:51 /usr/bin/perl /opt/loxberry/bin/plugins/mqttgateway/mqttgateway.pl
                    
                    loxberry@loxberry:~ $ kill -9 1537
                    
                    loxberry@loxberry:~ $ /opt/loxberry/system/daemons/plugins/mqttgateway
                    1533
                    Password:
                    
                    loxberry@loxberry:~ $ ps waux | grep mqtt
                    loxberry 29923 39.6 1.5 41856 32208 ? S 10:28 0:08 /usr/bin/perl /opt/loxberry/bin/plugins/mqttgateway/mqttgateway.pl
                    
                    
                    
                    loxberry@loxberry:~/log/plugins/mqttgateway $ ls -la
                    total 20
                    drwxr-xr-x 2 loxberry loxberry 4096 Sep 30 10:28 .
                    drwxr-xr-x 6 loxberry loxberry 4096 Sep 28 16:05 ..
                    -rw-rw-rw- 1 loxberry loxberry 343 Sep 30 10:28 '20210930_102807_990_Update Configuration.log'
                    -rw-r--r-- 1 loxberry loxberry 151 Sep 30 10:28 daemonstart.log
                    lrwxrwxrwx 1 root root 32 Sep 28 16:08 mosquitto.log -> /var/log/mosquitto/mosquitto.log
                    -rw-rw-rw- 1 loxberry loxberry 622 Sep 30 10:28 mqttgateway.log
                    
                    
                    loxberry@loxberry:~/log/plugins/mqttgateway $ cat daemonstart.log
                    MQTT Gateway Daemon start
                    Running updateconfig.pl to query json
                    Result is 1
                    Try {1...100}: Checking if Mosquitto is running...
                    Starting mqttgateway.pl

                    Wie sollte das Skript denn überhaupt nach dem Booten gestartet werden? Wenn ich die Routine kennen würde könnt ich dem gezielter nachgehen.

                    Falls es irgendwie relevant ist. Loxberry läuft als VM auf einer Synology.

                    Kommentar


                    • svethi
                      svethi kommentierte
                      Kommentar bearbeiten
                      Ja, VM könnte relevant sein, da es teilweise timing issues gegeben hat, da es einerseits eine komplett andere Architektur ist und zum 2. die VM oft schneller ist
                  • Christian Fenzl
                    Lebende Foren Legende
                    • 31.08.2015
                    • 11218

                    @BlScOfDe
                    Es gab eine Änderung beim Startup von Daemons und Cronjobs mit 2.2.1:

                    Startup behaviour of daemons and cronjobs

                    Die Daemons werden im Zuge des LoxBerry systemd Dienstes gestartet, der Code ist hier:

                    Bei einem Fehler dieser Routine würden wahrscheinlich gar keine Plugin-Daemons starten.
                    Einen Log-Output schreiben wir dort aber nicht in ein File, und ich weiß nicht, ob der Output "Preparing Plugin Daemons..." bzw. "Running ......." irgendwo in journald protokolliert wird.

                    Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                    Kommentar

                    • BlScOfDe
                      Dumb Home'r
                      • 26.09.2017
                      • 18

                      Zitat von Christian Fenzl
                      @BlScOfDe
                      Es gab eine Änderung beim Startup von Daemons und Cronjobs mit 2.2.1:

                      Startup behaviour of daemons and cronjobs

                      Die Daemons werden im Zuge des LoxBerry systemd Dienstes gestartet, der Code ist hier:

                      Bei einem Fehler dieser Routine würden wahrscheinlich gar keine Plugin-Daemons starten.
                      Einen Log-Output schreiben wir dort aber nicht in ein File, und ich weiß nicht, ob der Output "Preparing Plugin Daemons..." bzw. "Running ......." irgendwo in journald protokolliert wird.
                      Danke für den Tipp.
                      Nach dem Update auf 2.2.1.2 startet der MQTT GW Dienst zuverlässig (nach so 10-15 Sek.) (2x neu gestartet zum testen).
                      Was es auch war, es ist nun behoben.


                      Off Topic.
                      Guter Humor
                      Klicke auf die Grafik für eine vergrößerte Ansicht

Name: loxberry_update.png
Ansichten: 314
Größe: 13,7 KB
ID: 319421

                      Kommentar

                      Lädt...