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

    Ich glaube nicht, das das jemand lesen kann, und will. Setz das doch bitte mal in Code Tags.

    Kommentar


      Zitat von vento66 Beitrag anzeigen
      Ich glaube nicht, das das jemand lesen kann, und will. Setz das doch bitte mal in Code Tags.


      BadWicky
      Welchen MQTT Broker setzt du denn ein?
      Wenn die Installation fehlerfrei lief und Konfiguration zu deinem eingesetzen Broker passt, dann mal ins Log des Brokers schauen, ob sich der Publish Server dort anmeldet.

      Kommentar


        Hallo vento66
        Hallo jonofe

        Tut mir leid ich hoffe das ich das so jetzt richtig gemacht habe.



        Code:
        [TR]
        [TD="colspan: 5"]{EDOMI,CUSTOMLOG_MQTT_Publish_Server-LBS19001051.htm,16.01.2021,10:59:10,997941,30526}[/TD]
        [/TR]
        [TR]
        [TD]Zeitstempel[/TD]
        [TD]ms[/TD]
        [TD]PID[/TD]
        [TD]LogLevel[/TD]
        [TD]Meldung[/TD]
        [/TR]
        [TR]
        [TD]2021-01-16 10:59:10[/TD]
        [TD]997818[/TD]
        [TD]30526[/TD]
        [TD]debug[/TD]
        [TD]LBS19001051 [v1.0]: 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 (5284)[/TD]
        [/TR]
        [TR]
        [TD]2021-01-16 11:17:55[/TD]
        [TD]188508[/TD]
        [TD]32194[/TD]
        [TD]debug[/TD]
        [TD]LBS19001051 [v1.0]: 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 (5284)[/TD]
        [/TR]
        [TR]
        [TD]2021-01-16 11:18:24[/TD]
        [TD]969975[/TD]
        [TD]32194[/TD]
        [TD]debug[/TD]
        [TD]LBS19001051 [v1.0]: 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 (5284)[/TD]
        [/TR]
        [TR]
        [TD]2021-01-16 11:27:41[/TD]
        [TD]640860[/TD]
        [TD]2665[/TD]
        [TD]debug[/TD]
        [TD]LBS19001051 [v1.0]: 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 (5284)[/TD]
        [/TR]
        [TR]
        [TD]2021-01-16 11:30:00[/TD]
        [TD]692085[/TD]
        [TD]2645[/TD]
        [TD]debug[/TD]
        [TD]LBS19001051 [v1.0]: 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 (5284)[/TD]
        [/TR]
        [TR]
        [TD]2021-01-16 11:31:47[/TD]
        [TD]062829[/TD]
        [TD]2645[/TD]
        [TD]debug[/TD]
        [TD]LBS19001051 [v1.0]: 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 (5284)[/TD]
        [/TR]
        [TR]
        [TD]2021-01-16 11:49:57[/TD]
        [TD]889540[/TD]
        [TD]12889[/TD]
        [TD]debug[/TD]
        [TD]LBS19001051 [v1.0]: 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 (5284)[/TD]
        [/TR]
        [TR]
        [TD]2021-01-16 12:05:19[/TD]
        [TD]985773[/TD]
        [TD]12889[/TD]
        [TD]debug[/TD]
        [TD]LBS19001051 [v1.0]: 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 (5284)[/TD]
        [/TR]
        [TR]
        [TD]2021-01-16 13:38:13[/TD]
        [TD]335504[/TD]
        [TD]15319[/TD]
        [TD]debug[/TD]
        [TD]LBS19001051 [v1.0]: 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 (5284)[/TD]
        [/TR]
        [TR]
        [TD]2021-01-16 13:52:49[/TD]
        [TD]048995[/TD]
        [TD]15319[/TD]
        [TD]debug[/TD]
        [TD]LBS19001051 [v1.0]: 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 (5284)[/TD]
        [/TR]
        [TR]
        [TD]2021-01-16 13:54:16[/TD]
        [TD]386260[/TD]
        [TD]2646[/TD]
        [TD]debug[/TD]
        [TD]LBS19001051 [v1.0]: 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 (5284)[/TD]
        [/TR]

        Kommentar


          Zitat von jonofe Beitrag anzeigen
          BadWicky
          Welchen MQTT Broker setzt du denn ein?
          Wenn die Installation fehlerfrei lief und Konfiguration zu deinem eingesetzen Broker passt, dann mal ins Log des Brokers schauen, ob sich der Publish Server dort anmeldet.
          Ich möchte eigentlich von edomi IKOS zu Node Red transportieren.

          LBS pulsiert auch nicht wie es z.B. der subscrib client von dir macht

          Zum prüfen ob ich Daten sende verwende ich das MQTT Tool. siehe screenshot
          Angehängte Dateien

          Kommentar


            Wo läuft denn nun der MQTT Broker?
            Und was steht dort im Log?

            Kommentar


              Hi
              es geht jetzt soweit ich das bisher sagen kann.
              Der broker ist in Node Red
              Kann es sein das das was gebracht hat.

              ursprünglich habe ich es nach der Anleitung installiert

              Code:
              [FONT=Calibri][FONT=Helvetica][COLOR=#2c3e50]yum -y install php-process git gcc make mysql-devel php-devel[/COLOR][/FONT]
              [FONT=Helvetica][COLOR=#2c3e50]yum -y install autoconf automake libtool
              cd /tmp
              git clone https://github.com/jonofe/lib_mysqludf_sys
              cd lib_mysqludf_sys/
              ./install.sh
              cd /tmp
              rm -rf lib_mysqludf_sys/
              git clone https://github.com/mysqludf/lib_mysqludf_log
              cd lib_mysqludf_log
              autoreconf -i
              ./configure
              make
              make install
              mysql < installdb.sql[/COLOR][/FONT][/FONT]
              zusätzlich habe ich noch das installiert

              Code:
              [FONT=Calibri][FONT=Courier][COLOR=#111111]yum -y install epel-release[/COLOR][/FONT][/FONT]
              [FONT=Calibri][FONT=Courier][COLOR=#111111]yum -y install mosquitto mosquitto-devel php72-php-devel[/COLOR][/FONT][/FONT]
              [FONT=Calibri][FONT=Courier][COLOR=#111111]git clone https://github.com/mgdm/Mosquitto-PHP[/COLOR][/FONT][/FONT]
              [FONT=Calibri][FONT=Courier][COLOR=#111111]cd Mosquitto-PHP[/COLOR][/FONT][/FONT]
              [FONT=Calibri][FONT=Courier][COLOR=#111111]phpize[/COLOR][/FONT][/FONT]
              [FONT=Calibri][FONT=Courier][COLOR=#111111]./configure[/COLOR][/FONT][/FONT]
              [FONT=Calibri][FONT=Courier][COLOR=#111111]make[/COLOR][/FONT][/FONT]
              [FONT=Calibri][FONT=Courier][COLOR=#111111]make install[/COLOR][/FONT][/FONT]
              [FONT=Calibri][FONT=Courier][COLOR=#111111]echo 'extension=mosquitto.so' > /etc/php.d/50-mosquitto.ini[/COLOR][/FONT][/FONT]
              oder hätte ich mir das sparen können

              Kommentar


                Wie handhabt ihr eigentlich die Abfrage der Werte? Für ein paar externe Sensoren möchte ich mir nun keine KNX-sensoren leisten sondern diese mit Mysensors selber bauen. Dort habe ich jetzt den Aufbau schon fertig und ein paar alte Sensoren aus der Bastelkiste gefischt. Jeder Sensor hat hier jedoch sein eigenes topic.

                Erstellt ihr für jedes Topic einen eigenen Subscribe Client? Gibt es eine elegante Weise nach verschiedenen Topics zu filtern?
                Meine erste Lösung von heute morgen erscheint mir durch die Brust ins Auge:

                Zwischenablagebild.jpg
                Die Verzögerung ist drin, damit der Messwert in den Werteauslöser Baustein geschrieben werden kann, da er sonst gleichzeitig mit dem Trigger ankommt.

                Grüße
                Christian
                Angehängte Dateien

                Kommentar


                  Du kannst dafür den MQTT Parser LBS (19001207) verwenden.

                  Kommentar


                    Zitat von jonofe Beitrag anzeigen
                    Du kannst dafür den MQTT Parser LBS (19001207) verwenden.
                    Das ist cool. Den hatte ich gesucht. Danke!

                    Kommentar


                      Ich habe gestern mal probiert, MQTT ans laufen zu bringen. Irgendwie werde ich damit nicht richtig warm. Unter CentOS habe ich den Broker installiert, aber dieser vergisst ab und an mittendrin Benutzer und ich konnte mich am gleichen Server nicht anmelden, mit IOBroker auch nicht, mit MQTT Explorer am Macbook ging es aber immer.
                      Dann habe ich den Broker auf IOBroker installiert und es klappte sofort mit dem anmelden. Nur, dass der Subsrcibe Client eigentlich nie etwas anzeigt, obwohl der gesendete Text im Log des LBS auftaucht. Abschließend habe ich mit dem Publisher Client etwas zu IOBroker gesendet. Das kommt auch an, aber er schaltet nichts. Also ich habe einfach versucht, eine GA zu schalten. Dann steht in IOBroker 1 oder true, aber er tut es nicht. Naja, immerhin kam es an.

                      Nun bekomme ich den folgenden Fehler und wollte mal fragen, ob der jemandem bekannt ist, denn bei der Suche hier habe ich nichts gefunden.
                      Code:
                      Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19001054.php | Fehlercode: 2 | Zeile: 147 | strpos(): Empty needle
                      Den Fehler bekam ich ca. 20x, aber ich habe sicher über 100x getestet und der letzte kam vor 21 Uhr und ich saß gestern bis 23 Uhr dran. Es ist also nichts, was immer kommt.


                      Viele Grüße
                      Nils

                      Kommentar


                        Ich hätte eine generelle Frage zu dem MQTT Subscribe Client (LBS19001054) LBS.

                        Anfangs habe ich diesen für die zigbee sensoren verwendet --> topic: zigbee/0/#.
                        Inzwischen sind 3-4 andere MQTT relevante Systeme dazugekommen und ich habe jedesmal für einen neuen "Haupt"-topic eine neues LBS instanz erstellt.
                        z.B. zwave/0/# neue LBS instanz --> neuer MQTT message output.

                        So lässt sich eigentlich schön damit arbeiten, inzwischen frage ich mich allerdings ob das der Idealfall ist.

                        Wäre es sinnvoller nur eine Instanz des LBS zu nutzen und hier alle topics zu subscriben oder macht es nichts wenn 5 Instanzen gleichzeitig laufen?
                        Muss hier eine unterschiedliche ClientID anstatt AUTO verwendet werden?

                        Ausserdem ist mir aufgefallen dass 2 Instanzen des LBS nach einem Edomi restart keine Daten mehr empfangen. Wenn ich dann per Hand den topic erneut setze empfangen sie wieder Daten.

                        VG


                        Kommentar


                          Zitat von Zaschii Beitrag anzeigen
                          So lässt sich eigentlich schön damit arbeiten, inzwischen frage ich mich allerdings ob das der Idealfall ist.

                          Wäre es sinnvoller nur eine Instanz des LBS zu nutzen und hier alle topics zu subscriben oder macht es nichts wenn 5 Instanzen gleichzeitig laufen?
                          Ein richtig oder falsch gibt es nicht. Hängt ein wenig davon ab, was alles auf dem Broker los ist und was davon Edomi relevant ist. Wenn du nur einen Subscribe Client verwenden würdest, der einfach nur # subscribed, dann kommt der gesamte MQTT Traffic am Subscribe Client an und somit triggert auch jedes Topic die gesamte Auswertelogik hinter dem Subscribe Client.

                          Tendenziell würde ich eher je eingrenzbaren Topic Bereich einen Subscribe Client einsetzen, da dann auch die Auswerte-Logik nicht unnötig getriggert wird.
                          Zitat von Zaschii Beitrag anzeigen
                          Muss hier eine unterschiedliche ClientID anstatt AUTO verwendet werden?
                          Das ist ja gerade das Feature von "auto", dass nämlich die LBS-ID in der Client-ID vorkommt und somit jeder Subscribe-Client eine eindeutige ID hat und du auch im Broker Log noch nachvollziehen kannst, welcher Subscribe Client Instanz welche Messages gesendet hat.

                          Zitat von Zaschii Beitrag anzeigen
                          Ausserdem ist mir aufgefallen dass 2 Instanzen des LBS nach einem Edomi restart keine Daten mehr empfangen. Wenn ich dann per Hand den topic erneut setze empfangen sie wieder Daten.
                          Sollte sich an dieser Feststellung noch eine Frage anschließen, dann kann ich schon mal vorwegnehmen, dass mehr Details notwendig sind (LBS config, LBS Logs, Broker Logs, etc.)
                          Zuletzt geändert von jonofe; 26.01.2021, 18:07.

                          Kommentar


                            Danke für die schnelle Antwort.

                            Ausserdem ist mir aufgefallen dass 2 Instanzen des LBS nach einem Edomi restart keine Daten mehr empfangen. Wenn ich dann per Hand den topic erneut setze empfangen sie wieder Daten.
                            ... war wohl eine Ausnahme, funktionierte nun einwandfrei auch nach edomi restart.

                            Kommentar


                              kann es sein dass der MQTT Topic Parser 10x V0.1a noch immer falsch läuft? Bei mir kommen die Ergebnisse in die falsche Spalte.

                              Kommentar


                                Zitat von uzi10 Beitrag anzeigen
                                Bei mir kommen die Ergebnisse in die falsche Spalte.
                                Ein Bild sagt mehr als 1000 Worte. Was denn für Spalten?

                                Kommentar

                                Lädt...
                                X