Ich glaube nicht, das das jemand lesen kann, und will. Setz das doch bitte mal in Code Tags.
Ankündigung
Einklappen
Keine Ankündigung bisher.
MQTT API Server und MQTT Clients - LBS19001051 - LBS19001054
Einklappen
X
-
Zitat von vento66 Beitrag anzeigenIch 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
-
Ich möchte eigentlich von edomi IKOS zu Node Red transportieren.Zitat von jonofe Beitrag anzeigenBadWicky
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.
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
-
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
zusätzlich habe ich noch das installiertCode:[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]
oder hätte ich mir das sparen könnenCode:[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]
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
ChristianAngehängte Dateien
Kommentar
-
Das ist cool. Den hatte ich gesucht. Danke!Zitat von jonofe Beitrag anzeigenDu kannst dafür den MQTT Parser LBS (19001207) verwenden.
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.
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.Code:Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19001054.php | Fehlercode: 2 | Zeile: 147 | strpos(): Empty needle
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
-
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.Zitat von Zaschii Beitrag anzeigenSo 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?
Tendenziell würde ich eher je eingrenzbaren Topic Bereich einen Subscribe Client einsetzen, da dann auch die Auswerte-Logik nicht unnötig getriggert wird.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 anzeigenMuss hier eine unterschiedliche ClientID anstatt AUTO verwendet werden?
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.)Zitat von Zaschii Beitrag anzeigenAusserdem 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.Zuletzt geändert von jonofe; 26.01.2021, 18:07.
Kommentar
-
Danke für die schnelle Antwort.
... war wohl eine Ausnahme, funktionierte nun einwandfrei auch nach edomi restart.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.
Kommentar
-
Ein Bild sagt mehr als 1000 Worte. Was denn für Spalten?Zitat von uzi10 Beitrag anzeigenBei mir kommen die Ergebnisse in die falsche Spalte.
Kommentar


Kommentar