Ankündigung

Einklappen
Keine Ankündigung bisher.

MQTT API Server und MQTT Clients - LBS19001051 - LBS19001054

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

    Hallo zusammen,

    aktuelle versuche ich mich an MQTT und habe dafür den Mosquitto Broker in Proxmox unter Ubuntu laufen.

    Auf Seite von Edomi habe ich die Installationsroutine für die MQTT Bausteine durchlaufen. Edomi läuft auch in Proxmox.

    Als ersten Test habe ich alle KOs mit LBS19001051 ohne Filter gepublished. Zur Kontrolle habe ich den MQTT Explorer im Einsatz.

    Das Ganze funktioniert, die Daten kommen im Broker an.

    An der Stelle habe ich mir das eine ganze Weile angeschaut und dann eine Pause eingelegt.

    Nach einiger Zeit nicht mal 30 min würde ich sagen - kommt es zu folgender Fehlermeldung:

    Code:
    {EDOMI,ERRLOG_2022-02.htm,13.02.2022,19:37:22,362019,14337}
    Zeitstempel ms Prozess PID Meldung Status
    2022-02-13 19:37:22 361970 ? 14337 Datei: /usr/local/edomi/www/shared/php/base.php | Fehlercode: 2 | Zeile: 20 | mysqli_query(): MySQL server has gone away ERROR
    2022-02-13 19:37:22 362273 ? 14337 Datei: /usr/local/edomi/www/shared/php/base.php | Fehlercode: 2 | Zeile: 20 | mysqli_query(): Error reading result set's header ERROR
    2022-02-13 19:37:32 902981 ? 14339 Datei: /usr/local/edomi/www/shared/php/base.php | Fehlercode: 2 | Zeile: 20 | mysqli_query(): MySQL server has gone away ERROR
    2022-02-13 19:37:32 903117 ? 14339 Datei: /usr/local/edomi/www/shared/php/base.php | Fehlercode: 2 | Zeile: 20 | mysqli_query(): Error reading result set's header ERROR
    2022-02-13 19:37:32 918845 ? 14339 Datei: /usr/local/edomi/www/shared/php/base.php | Fehlercode: 2 | Zeile: 20 | mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given ERROR
    Die letzte Zeile wiederholt sich dann.

    Habe ich bei der Installation etwas übersehen?

    Vielen Dank im Voraus.

    Grüße
    Andreas

    Kommentar


      Dass die MySQL DB komplett aussteigt, konnte ich bislang bei mir noch nie beobachten.
      Wie ist denn dein EDOMI Server dimensioniert und im Fehlerfall ausgelastet? (CPU, RAM, Storage)

      Kommentar


        Hallo Andreas

        Zitat von anste Beitrag anzeigen
        Hallo zusammen,
        Auf Seite von Edomi habe ich die Installationsroutine für die MQTT Bausteine durchlaufen. Edomi läuft auch in Proxmox.
        Und das heisst was genau? VM oder Container? Wenn Container, dann selber aufgesetzt oder das Template von mir? Wenn Template von mir, warum hast Du dann nochmals das MQTT-Zeugs installiert? Das ist im Template alles schon drin...
        Kind regards,
        Yves

        Kommentar


          Hallo,

          Edomi läuft in VM, auf einem NUC i5, selbst aufgesetzt, Edomi läuft eine ganze Weile bei mir - da kannte ich dein Template noch nicht, daher die Installation des MQTT Zeugs.

          Aktuell ist der LBS wieder aktiviert und läuft bereits 60 min ohne Fehler. Mal sehen was die nächsten Stunden so passiert.

          Dein Template wollte ich aber auch mal probieren.

          Kommentar


            Leider bleibt das Problem bestehen, um auszuschließen, dass es an meinem Projekt/Installation liegt habe ich mich dazu entschlossen alles neu aufzusetzen.

            Proxmox 7.1 neu installiert
            Edomi aus Template 2.03.1 von Starwarsfan aufgesetzt
            Neues Projekt nur für einen MQTT Test mit Publish Server 1.4 erstellt

            Muss hierbei für MQTT noch etwas beachtet werden?

            Leider kommt im Broker (läuft separat) nichts von Edomi an.

            Vielen Dank im Voraus.

            Kommentar


              Fang doch erstmal mit nem Publish oder Subscribe Client an. Das greift nicht ganz so tief ins System ein. Damit kannst du dann prüfen, ob MQTT grundsätzlich auf dem EDOMI Server läuft. Ansonsten: Screenshots, Logs (LBS + MQTT Broker).

              Kommentar


                Danke für den Tipp, publish mit client funktioniert.

                Der Server bleibt stumm.... Mosquitto.log bleibt leer.

                Code:
                [TR]
                [TD]2022-02-17 17:21:55[/TD]
                [TD]991730[/TD]
                [TD]7029[/TD]
                [TD]debug[/TD]
                [TD]LBS19001051 [v1.4]: QUERY: CREATE PROCEDURE mqtt_publish(typ INT(10), ga VARCHAR(1000), name VARCHAR(1000), value VARCHAR(11000)) BEGIN DECLARE cmd VARCHAR(1000); DECLARE result INT(10); DECLARE logresult INT(10); SET cmd = CONCAT('/usr/bin/bash -c "/usr/bin/php /usr/local/edomi/www/data/liveproject/lbs/EXE19001051.php ',typ,' ',ga,' \'',name,'\' \'',value,'\' & "'); SET result = sys_exec(cmd); END (1)[/TD]
                [/TR]
                [TR]
                [TD]2022-02-17 17:21:56[/TD]
                [TD]020750[/TD]
                [TD]7029[/TD]
                [TD]debug[/TD]
                [TD]LBS19001051 [v1.4]: Query: SELECT ga,name FROM edomiLive.ko WHERE text LIKE "%MPUB%" (1)[/TD]
                [/TR]
                [TR]
                [TD]2022-02-17 17:21:56[/TD]
                [TD]021236[/TD]
                [TD]7029[/TD]
                [TD]debug[/TD]
                [TD]LBS19001051 [v1.4]: Query-Result: (1)[/TD]
                [/TR]
                [TR]
                [TD]2022-02-17 17:21:56[/TD]
                [TD]021265[/TD]
                [TD]7029[/TD]
                [TD]debug[/TD]
                [TD]LBS19001051 [v1.4]: ================ ARRAY/OBJECT START ================[/TD]
                [/TR]
                [TR]
                [TD]2022-02-17 17:21:56[/TD]
                [TD]021294[/TD]
                [TD]7029[/TD]
                [TD]debug[/TD]
                [TD]LBS19001051 [v1.4]: [][/TD]
                [/TR]
                [TR]
                [TD]2022-02-17 17:21:56[/TD]
                [TD]021311[/TD]
                [TD]7029[/TD]
                [TD]debug[/TD]
                [TD]LBS19001051 [v1.4]: ================ ARRAY/OBJECT END ================[/TD]
                [/TR]
                19001051.png

                Kommentar


                  Ist nichts auffälliges zu sehen. Ist halt die Frage ob überhaupt alle Voraussetzungen für den Publish Server installiert sind, d.h. Insbesondere die UDFs für mysql. Ausserdem solltest du mal schauen ob in mysql der Trigger und die Stored Procedure angelegt wurde.

                  Kommentar


                    Super, Danke, habe die Installationsroutine nachgeholt und läuft.

                    Kommentar


                      hi
                      scheinbar funktioniert mein publish-server nicht mehr :-(
                      ich hab alles gepublished - der mosquito ist auf einem anderen server.
                      subscribe funktioniert - gepublished wird aber wohl nichts.

                      Im Log sehe ich:

                      2022-05-03 22:33:05 207113 5641 debug-mysql LBS19001051 [v1.4]: QUERY: CREATE PROCEDURE mqtt_publish(typ INT(10), ga VARCHAR(1000), name VARCHAR(1000), value VARCHAR(11000)) BEGIN DECLARE cmd VARCHAR(1000); DECLARE result INT(10); DECLARE logresult INT(10); SET cmd = CONCAT('/usr/bin/bash -c "/usr/bin/php /usr/local/edomi/www/data/liveproject/lbs/EXE19001051.php ',typ,' ',ga,' \'',name,'\' \'',value,'\' & "'); SET logresult = log_error(cmd); SET result = sys_exec(cmd); END (4733)

                      2022-05-03 22:33:05 208211 5641 debug-mysql LBS19001051 [v1.4]: Query: SELECT ga,name FROM edomiLive.ko WHERE text LIKE "%MPUB%" (4733)


                      2022-05-03 22:33:05 209155 5641 debug-mysql LBS19001051 [v1.4]: Query-Result: (4733)


                      2022-05-03 22:33:05 209187 5641 debug-mysql LBS19001051 [v1.4]: ================ ARRAY/OBJECT START ================


                      2022-05-03 22:33:05 209218 5641 debug-mysql LBS19001051 [v1.4]: []

                      2022-05-03 22:33:05 209239 5641 debug-mysql LBS19001051 [v1.4]: ================ ARRAY/OBJECT END ================


                      Ich hab die Installationsroutinen die im Hilfetext stehen nochmal durchgeführt - aber ohne Änderung...
                      Irgendeine idee?
                      Wie kann man schauen ob in mysql der Trigger und die Stored Procedure angelegt wurde?

                      Gruß
                      Thorsten
                      Meine Inst.: 73 KNX-Geräte, 18 Rolläden, 36 Schaltkanäle, 22 Dimm-Kanäle, 12 Heizungskanäle, 16 PM, 18 Gruppentaster
                      Wiregate: >50 x Temperaturfühler, 2 x Luftfeuchte, Transponderleser || Gira Homeserver: Visu: 98%, Logiken 98% || Heizung: Dimplex WP mit KNX || Sonstiges: 3xSqueezebox, Mobotix T24, Asterisk

                      Kommentar


                        Zitat von ThorstenGehrig Beitrag anzeigen
                        SELECT ga,name FROM edomiLive.ko WHERE text LIKE "%MPUB%"
                        Das bedeutet, dass du die Option im LBS eingeschaltet hast, dass nur die iKOs/GAs gepublished werden, die "MPUB" im Kommentarfeld stehen haben (E15=1).
                        Wenn du ALLES publishen willst, dann sollte das auf 0 stehen oder leer sein. Ansonsten mal ins Log des Brokers schauen, ob der Publish-Server eine Verbindung aufbaut. Er sollte eigentlich dort mit einer entsprechenden ID auftauchen.

                        Kommentar


                          Danke - E15 ist aber auf 0 (100% sicher).
                          Schon irgendwie schräg. Ich hab´s jetzt mal mit einem leeren feld probiert: selbes ergeniss.
                          Für das reinschauen ins log vom broker muss ich mich morgen mal drum kümmern: der docker läuft - der mosquitto auch (für etliche andere telegramme) - aber log hab ich keins im Docker...
                          Meine Inst.: 73 KNX-Geräte, 18 Rolläden, 36 Schaltkanäle, 22 Dimm-Kanäle, 12 Heizungskanäle, 16 PM, 18 Gruppentaster
                          Wiregate: >50 x Temperaturfühler, 2 x Luftfeuchte, Transponderleser || Gira Homeserver: Visu: 98%, Logiken 98% || Heizung: Dimplex WP mit KNX || Sonstiges: 3xSqueezebox, Mobotix T24, Asterisk

                          Kommentar


                            Hi Jonofe
                            also mein subscribe-server (1.2) verbindet sich einwandfrei.
                            Der publish server (1.3) nicht.
                            E15 ist definitibv auf 0 - aber das Log sagt MPUB.
                            Im log steht weiterhin "2022-05-08 10:37:01 096337 15888 debug LBS19001051 [v1.4]: Query: SELECT ga,name FROM edomiLive.ko WHERE text LIKE "%MPUB%" (6479)"
                            Ich hab auch schon extra einige KOs mit "MPUB" gekennzeichnet - die auch gefunden werden - aber Verbindung macht er trotzdem keine.

                            Ich hab jetzt alles nochmal ganz sauber versucht zu installieren - dabei ist mir aufgefallen das in deiner Installationsanleitung vermutlich ein Fehler ist:
                            ---
                            rm -rf lib_mysqludf_sys/
                            git clone https://github.com/mysqludf/lib_mysqludf_log
                            ---

                            Das Loglevel ist schon auf 8 - aber es wird nichts angezeigt was bei der Fehlersuche hilft.
                            Irgendeine idee wo/wie ich da noch weitersuchen kann?

                            Gruß
                            Thorsten

                            PS: nur als FYI - mein mosquitto ist in deinem Docker - und nicht auf dem EDOMI selbst.. sollte keinen Unterschied machen - hat ja bisher auch funktioniert...

                            PS2: hab gerade gesehen das es ein lib_mysqludf_sys und lib_mysqludf_log gibt. Das _sys wird nach deiner Anleitung ja nicht installiert - ich habe es trotzdem mal versucht aber nicht geschafft (libmysqlclient fehlt)
                            Zuletzt geändert von ThorstenGehrig; 08.05.2022, 09:51.
                            Meine Inst.: 73 KNX-Geräte, 18 Rolläden, 36 Schaltkanäle, 22 Dimm-Kanäle, 12 Heizungskanäle, 16 PM, 18 Gruppentaster
                            Wiregate: >50 x Temperaturfühler, 2 x Luftfeuchte, Transponderleser || Gira Homeserver: Visu: 98%, Logiken 98% || Heizung: Dimplex WP mit KNX || Sonstiges: 3xSqueezebox, Mobotix T24, Asterisk

                            Kommentar


                              OKkay - problem gelöst.
                              Ich hab mal angefangen alte nachrichten hier zu lesen.. und siehe da: in post # 459 hatte ich das problem schonmal - und in post 99 wird es gelöst.
                              War damals nicht der einzige der das Problem hat.
                              Eigentlich könnte man die Problemlösung mal scripten ... ;-)

                              (was das eigentliche Problem ausgelöst hat ist mir allerdings vollkommen unbekannt)

                              Gruß
                              Thorsten
                              Zuletzt geändert von ThorstenGehrig; 08.05.2022, 10:18.
                              Meine Inst.: 73 KNX-Geräte, 18 Rolläden, 36 Schaltkanäle, 22 Dimm-Kanäle, 12 Heizungskanäle, 16 PM, 18 Gruppentaster
                              Wiregate: >50 x Temperaturfühler, 2 x Luftfeuchte, Transponderleser || Gira Homeserver: Visu: 98%, Logiken 98% || Heizung: Dimplex WP mit KNX || Sonstiges: 3xSqueezebox, Mobotix T24, Asterisk

                              Kommentar


                                Hallo,

                                ich nutze die LBS "MQTT Subscribe Client v0.10" und "MQTT Publish Client v0.8".
                                Die Funktion ist vollkommen gegeben und ich bin sehr dankbar für die Funktionen!

                                Leider hat sich aber herausgestellt, dass der LBS "MQTT Subscribe Client v0.10" für die folgende Fehlermeldung bei mir verantwortlich ist:

                                Datei: /usr/local/edomi/www/shared/php/base.php | Fehlercode: 2 | Zeile: 20 | mysqli_query(): Couldn't fetch mysqli ERROR
                                Datei: /usr/local/edomi/www/shared/php/base.php | Fehlercode: 2 | Zeile: 20 | mysqli_query(): Couldn't fetch mysqli ERROR
                                Datei: /usr/local/edomi/www/shared/php/base.php | Fehlercode: 2 | Zeile: 20 | mysqli_query(): Couldn't fetch mysqli ERROR

                                Diese Fehlermeldung wird nur bei einem neuen Aktivieren des Projektes in den Fehler Log geschrieben.
                                Für einen Subscribe LBS werden jeweils 3 Zeilen des Fehlers geschrieben.
                                Ich habe mir bereits andere Threads zu diesem Fehler durchgelesen und dort wird unter anderem beschrieben, dass nach dem Schließen der SQL Verbindung noch auf diese zugegriffen werden soll.

                                Leider stecke ich nicht so sehr in den Themen drin, sodass ich mir nicht erkläre kann, wie der Fehler zustande kommt.
                                Ich habe den Quelltext von den beiden MQTT LBS verglichen, aber leider konnte ich keinen Hinweis darauf finden, warum der Publish LBS keinen Fehler wirft und der Subscribe LBS wohl.

                                Es wäre sehr schön, wenn ich hier einen Ansatz bekommen könnte, wie der Fehler zukünftig vermieden werden kann.

                                Grüße,
                                Olli

                                Kommentar

                                Lädt...
                                X