LoxBerry MQTT

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Federbein0815
    Dumb Home'r
    • 08.07.2018
    • 28

    Hallo, Vielen Dank hat wunderbar geklappt. Bei deinem Befehl hat sich der Fehlerteufel eingeschlichen.
    es gehören vor reinstall zwei Bindestriche:
    sudo apt-get install --reinstall mosquitto LG

    Kommentar


    • Christian Fenzl
      Christian Fenzl kommentierte
      Kommentar bearbeiten
      Super!
      Bei den Bindestrichen, das hat wohl das iPhone „aufgehübscht“...

    • svethi
      svethi kommentierte
      Kommentar bearbeiten
      Ja, die ersetzen den neuerdings durch den langen Bindestrich
  • Robrecht
    Azubi
    • 09.11.2019
    • 7

    Hi Christian Fenzl,

    Is the mosquitto broker configured with websocket support ?

    thanks.
    Zuletzt geändert von Robrecht; 10.11.2019, 00:05.

    Kommentar

    • Christian Fenzl
      Lebende Foren Legende
      • 31.08.2015
      • 11200

      Currently not.
      But it is possible to directly modify the mosquitto.conf in /etc/mosquitto, or add a file in conf.d/.
      The MQTT Gateway does not rewrite the main config of Mosquitto, but adds its listeners in an own file in /etc/mosquitto/conf.d/ (this file is replaced on changes in the UI).

      So adding Websocket config to an own file in conf.d/ wouldn’t be touched by the plugin.
      Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

      Kommentar

      • Robrecht
        Azubi
        • 09.11.2019
        • 7

        I already tried that, evantually it was a browser problem on my computer, google chrome generates socket errors, but internet explorer works fine.

        Thanks.

        Kommentar

        • DaOptika
          Smart Home'r
          • 19.06.2019
          • 69

          Ich habe bei mir noch alte Messages von Geräten drin, die schon lange nicht mehr existieren, vor allem aus FHEM. Diese wurden vermutlich mal mit Retain gesendet. Kriege ich die irgendwie gelöscht?

          Kommentar

          • Christian Fenzl
            Lebende Foren Legende
            • 31.08.2015
            • 11200

            Am einfachsten löscht du die Mosquitto Datenbank:
            Clearing retained messages in mosquitto Purpose The purpose of this tutorial is to present solutions to clear retained messages in the Eclipse Mosquitto MQTT Broker. Retained messages can be troublesome and/or unwanted. Many mosquitto tutorials included a retain option in the configuration and setup of mosquitto. This is likely to create problems in the future. This tutorial is created for Linux users with a package installation on mosquitto. Other users will have to find the files and paths r...

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

            Kommentar

            • Gast

              Hallo Zusammen,

              ich habe am 01.11 von Loxberry 1.4.3 auf Loberry 2.0.0.2 aktualisiert
              Am 06.11.2019 wurde mein System dann von Loxberry 2.0.0.2 auf Loxberry 2.0.0.3 angehoben.
              .
              Darauf laufen unter anderem FHEM (0.4.2) und MQTT (0.8.3)

              Daten von FHEM werden an MQTT und an den Miniserver übergeben.
              Klappt soweit alles sehr gut.

              Heute (01.12.2019) ist mir aufgefallen, dass die Daten von einem AddIn in FHEM erfolgreich an den MQTT Broker übergeben werden, aber unvollständig sind.

              Unter anderem fehlt die Aussentemperatur. Dadurch stimmt die Temperatur Statistik in Loxone nicht mehr, da er immer nur den alten gecachten Wert anzeigt

              Hier ein Ausschnitt aus den aktuell übermittelten Daten

              Hier sollte es fhem_vitoconnect_Aussentemperatur geben...

              Klicke auf die Grafik für eine vergrößerte Ansicht  Name: MQTT_WithJSONExpand.JPG Ansichten: 0 Größe: 71,9 KB ID: 223486

              Der Fehler passt Zeitlich ungefähr mit dem Update zusammen. Da das AddIn in FHEM leider nicht sehr stabil ist muss man es eh regelmäßig neustarten.
              Daher kann ich den exakten Zeitpunkt des Fehlers leider nicht bestimmen.

              Ich habe mir das MQTT Logfile angeschaut und da finde ich sehr viele Fehler

              15:56:32.123 INFO: fhem/vitoconnect/Aussentemperatur: 0.9
              15:56:32.124 Expanding json message
              15:56:32.124 ERROR: Error on JSON expansion: Inappropriate ioctl for device
              Prinzipiell funktioniert das JSON Expand aber, da nachfolgendes Hashtable korrekt expandiert wird
              fhem_vitoconnect_HK1-Zeitsteuerung_Heizung {"fri":[{"position":0,"end":"08:30","mode":"normal","st art ":"04:30"},{"mode":"normal","end":"23:00","sta rt": "15:30","position":1}],"sun":[{"position":0,"mode":"normal","end":"23:00","st art ":"04:30"}],"thu":[{"position":0,"start":"04:30","end":"08:30","mo de" :"normal"},{"position":1,"end":"23:00","mode":" nor mal","start":"15:30"}],"sat":[{"start":"04:30","mode":"normal","end":"23:00", "po sition":0}],"wed":[{"mode":"normal","end":"08:30","start":"04:30", "po sition":0},{"start":"15:30","end":"23:00","mode":" normal","position":1}],"mon":[{"position":0,"end":"08:30","mode":"normal","st art ":"04:30"},{"start":"15:30","mode":"normal","e nd": "23:00","position":1}],"tue":[{"end":"08:30","mode":"normal","start":"04:30", "po sition":0},{"position":1,"end":"23:00","mode":"nor mal","start":"15:30"}]}
              Betroffen von dem Problem sind eigentlich alle Daten welche als Zahl übergeben werden (Ganzzahlen oder Komma getrennte Werte)

              Schalte ich das JSON Expanding in den Eigenschaften aus werden wieder alle Daten vollständig übermittelt

              Klicke auf die Grafik für eine vergrößerte Ansicht  Name: MQTT_WithoutJSONExpand.JPG Ansichten: 0 Größe: 121,9 KB ID: 223487

              Dies hilft mir zwar für meine Aussentemperatur, allerdings habe ich auch Werte welche ich zwingend expandieren muss.

              Ist dieser Fehler bekannt ?

              Habe auch das MQTT AddIn schon deinstalliert und wieder installiert.
              Hat aber nichts gebracht.

              mit der alten Loxberry Version 1.4.3 hat soweit alles problemlos funktioniert

              Was kann man tun, damit das JSONExpand wieder vollumfänglich funktioniert ?

              Sollten noch Daten benötigt werden bitte um kurze Info, ich reiche diese dann umgehend nach

              Vielen Dank für eure Hilfe

              Gruß Thomas
              Zuletzt geändert von Gast; 01.12.2019, 16:43.

              Kommentar

              • Christian Fenzl
                Lebende Foren Legende
                • 31.08.2015
                • 11200

                Hallo Thomas,
                ich komme wahrscheinlich heute nicht mehr dazu, ich schaue es mir dann morgen Abend an.
                Den Fehler Inappropriate ioctl for device habe ich so noch nicht gesehen, und er dürfte garnicht in die json-Routine „abbiegen“.
                Ich geb dir Bescheid.
                lg, Christian


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

                Kommentar

                • Christian Fenzl
                  Lebende Foren Legende
                  • 31.08.2015
                  • 11200

                  Hi Gast
                  Vom Code her hat sich am MQTT Gateway an der Stelle eigentlich länger nichts verändert und ich kann den Fehler am LB 2.0 auch nicht reproduzieren.

                  Im Code wird die Eingangsnachricht prinzipiell mit json_decode gelesen - hier kommt eine (behandelte) Exception die die Nachricht 1:1 weitergibt, oder das json_decode funktioniert und das json wird zerlegt. Eine Nachricht "0.9" ist kein JSON und kann/darf eigentlich nicht in den JSON-Teil verzweigen (passiert bei dir aber).

                  Kannst du mal zeigen, was die zwei Zeilen an der Shell ausgeben?

                  Code:
                  perl -e 'use JSON; print JSON->backend'
                  perl -e 'use JSON;decode_json("0.8");'
                  lg, Christian
                  Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                  Kommentar

                  • Gast

                    Hi Christian,

                    Vielen lieben Dank für den Test

                    Probiere ich heute aus und schicke dir das Ergebnis.

                    Wie ich sehe nutzt du Perl.
                    Kann es sein, dass hier das Perl Module Encode für das Json Expand genutzt wird?

                    Ich musste das Modul /usr/share/perl5/Email/MIME/Encoding.pm bei mir aktualisieren, da er ansonsten ständig Fehlermeldungen im Apache Log nach der Aktualisierung auf 2.0.0.2 hinsichtlich das Mailservers gebracht hatte.

                    Leider ist das Apache Log schon überschrieben.

                    Hier kam ne Meldung, dass die verwendete Version zu alt ist.
                    Hab dann In meinem jugendlichen Leichtsinn aktualisiert.

                    Hab damit anscheinend 1 Problem gelöst um ein anderes zu fabrizieren in dem ich andere Module unwissentlich mit aktualisiert habe

                    Mea culpa

                    Ist wahrscheinlich besser den Loxberry nochmal neu mit dem Image von V2 noch mal neu sauber aufzusetzen.

                    Wie gesagt Ergebnisse schicke ich im Anschluß

                    Herzlichen Dank

                    Gruß Thomas








                    Gesendet von meinem COR-L29 mit Tapatalk

                    Kommentar

                    • Christian Fenzl
                      Lebende Foren Legende
                      • 31.08.2015
                      • 11200

                      Das Email::MIME hat nichts damit zu tun. Das ist im Latest behoben (irgendwie geht das Paket beim Update bei machen LB‘s „verloren“, deswegen wird es in 2.0.0.4 nochmal installiert.)
                      Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                      Kommentar

                      • Gast

                        Hallo Christian,

                        so jetzt sitze ich am Rechner
                        Zu deiner Anfrage

                        Code:
                        perl -e 'use JSON;print JSON->backend'
                        Ausgabe: JSON::Backend::XS
                        Code:
                        perl -e 'use JSON;decode_json("0.8");'
                        Ausgabe: "" (leer/nichts)
                        Soweit ich das Script verstanden habe, übergibst du ja in dem Script mqttgateway.pl in der Zeile 217 den Wert an die Funktion decode_json
                        Im Anschluß überprüfst du ob ein Fehler zurückgegeben wurde
                        Wenn in der Variabe $@ etwas enthalten ist (Fehlermeldung) wurde kein JSON übergeben (sondern Text oder so)
                        Ist die Variable leer ist es ein JSON und er verzweigt in Part wo er die Variable expandiert

                        Wenn ich anstatt 0.8 mal einen Text mitgebe klappt das auch

                        Code:
                        loxberry@loxberry:~/bin/plugins/mqttgateway $ perl -e 'use JSON;decode_json("TEST");'
                        malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "TEST") at -e line 1.
                        jetzt ist die Frage warum er aber bei dem Wert 0.8 meint, dass es ein JSON ist

                        Code:
                        loxberry@loxberry:~/bin/plugins/mqttgateway $ perl -e 'use JSON;decode_json("0.8");'
                        loxberry@loxberry:~/bin/plugins/mqttgateway $
                        Eigentlich sollte hier ja auch eine Fehlermeldung kommen, oder ?

                        ich suche noch etwas

                        Falls relevant:
                        Die Versionsnummer der Datei /usr/share/perl5/JSON.pm ist 4.02
                        Zuletzt geändert von Gast; 03.12.2019, 10:10.

                        Kommentar

                        • Christian Fenzl
                          Lebende Foren Legende
                          • 31.08.2015
                          • 11200

                          Interessant, weil ich bei 0.8 auch eine JSON-Exception bekomme.
                          Heute Abend kann ich prüfen, welche JSON-Version vom Modul ich hab.
                          Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                          Kommentar


                          • Christian Fenzl
                            Christian Fenzl kommentierte
                            Kommentar bearbeiten
                            PS: Kannst du auch noch schauen, welche Version von JSON::XS du hast?

                          • Gast
                            Gast kommentierte
                            Kommentar bearbeiten
                            ich habe es jetzt mit apt list --installed probiert.
                            Kenne leider keine andere Art und Weise *shame*


                            libfastjson4/stable,now 0.99.8-2 armhf [installed]
                            libjson-glib-1.0-0/stable,now 1.4.4-2 armhf [installed,automatic]
                            libjson-glib-1.0-common/stable,now 1.4.4-2 all [installed,automatic]
                            libjson-perl/stable,now 4.02000-1 all [installed]
                            libjson-xs-perl/now 3.030-1 armhf [installed,upgradable to: 3.040-1+b1]
                            php7.3-json/stable,now 7.3.11-1~deb10u1 armhf [installed,automatic]

                            Code:
                            loxberry@loxberry:~ $ perl -e 'use JSON;decode_json(0.1);'
                            malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at -e line 1.
                            Wenn ich der Funktion eine Zahl mitgebe geht es auch.
                            Ich scripte normal nur Powershell, drum verzeih wenn ich es falsch interpretiere
                            aber "0.8" ist normal ja ein String/Text
                            Wohingegen 0.8 eine Zahl ist

                            ​​​​​​​Kann es daran liegen ?

                          • Christian Fenzl
                            Christian Fenzl kommentierte
                            Kommentar bearbeiten
                            Guter Punkt, muss ich auch mal probieren.
                        • Christian Fenzl
                          Lebende Foren Legende
                          • 31.08.2015
                          • 11200

                          Gast Ich würde gerne auf deinen LoxBerry zugreifen - entweder per TeamViewer oder per Remote Support Key. Könntest du dich per PM melden, am besten per WhatsApp oder Signal Telefonnummer, um alles auszumachen.
                          Ich vermute, dass dein JSON::XS Paket neuer ist als am Standard-LoxBerry. Hier gab es eine Änderung beim JSON-Format, das auch einen blanken Wert (ohne { } ) als JSON erlaubt. Das würde ich gerne verifizieren, dann hätte ich nämlich auch schon eine Lösung.

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

                          Kommentar

                          • Gast

                            Kurze Rückmeldung, falls jemand auch das Problem hat

                            Ursache war bei mir eine neuere Version der JSON::XS Library
                            Bei mir war die Version 3.030-1 installiert.
                            Woher diese kam, kann ich nicht sagen.

                            Durch das Update auf Loxberry 2.0.0.4 wurde diese auf Version 3.040-1 aktualisiert.
                            Seitdem ist das Problem bei mir behoben und die Übergabe aller Parameter an MQTT funktioniert wieder wie sie soll.

                            Herzlichen Dank an Christian Fenzl für die Unterstützung

                            Kommentar

                            Lädt...