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

  • jonofe
    antwortet
    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?

    Einen Kommentar schreiben:


  • uzi10
    antwortet
    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.

    Einen Kommentar schreiben:


  • Zaschii
    antwortet
    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.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    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.

    Einen Kommentar schreiben:


  • Zaschii
    antwortet
    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


    Einen Kommentar schreiben:


  • Marino
    antwortet
    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

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • Pendragon
    antwortet
    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

    Einen Kommentar schreiben:


  • BadWicky
    antwortet
    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

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • BadWicky
    antwortet
    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

    Einen Kommentar schreiben:


  • BadWicky
    antwortet
    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]

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    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.

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:

Lädt...
X