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

  • 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:
    yum -y install php-process git gcc make mysql-devel php-devel
    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
    zusätzlich habe ich noch das installiert

    Code:
    yum -y install epel-release
    yum -y install mosquitto mosquitto-devel php72-php-devel
    git clone https://github.com/mgdm/Mosquitto-PHP
    cd Mosquitto-PHP
    phpize
    ./configure
    make
    make install
    echo 'extension=mosquitto.so' > /etc/php.d/50-mosquitto.ini
    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:


  • BadWicky
    antwortet
    Im log steht das drin

    {EDOMI,CUSTOMLOG_MQTT_Publish_Server-LBS19001051.htm,16.01.2021,10:59:10,997941,30526}Z eitstempelmsPIDLogLevelMeldung2021-01-16 10:59:1099781830526debug 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)2021-01-16 11:17:5518850832194debug 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)2021-01-16 11:18:2496997532194debug 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)2021-01-16 11:27:416408602665debug 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)2021-01-16 11:30:006920852645debug 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)2021-01-16 11:31:470628292645debug 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)2021-01-16 11:49:5788954012889debug 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)2021-01-16 12:05:1998577312889debug 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)

    Einen Kommentar schreiben:


  • BadWicky
    antwortet
    Hi jonofe
    Habe Deinen MQTT Public Server installiert um Daten von Edomi nach Node Red zu senden
    Habe nach Deiner Anleitung installiert

    yum -y install php-process git gcc make mysql-devel php-devel
    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

    Den MQTT Public Server habe ich wie im Screenshot zu sehen eingestellt

    12.PNG
    Leider blinkt der LBS nicht und sendet auch keine Daten.
    Auch mit dem MQTT Tool bekomme ich keine Verbindung & Daten

    Installiertes System CentOs7 und edomi 2

    Kannst Du mir hier bitte weiterhelfen
    Zuletzt geändert von BadWicky; 16.01.2021, 12:52.

    Einen Kommentar schreiben:


  • philipp900
    antwortet
    Wenn der Wert eines KO auf etwas gesetzt wird was Anführungszeichen enthält.
    Der Trigger auf der SQL Tabelle welcher den Wert an MQTT senden sollte schlägt dann fehl.
    Zu sehen im SQL log: /var/log/mariadb/mariadb.log

    KOs für Alexa und JSON sind die einzigen Dinge bei mir die Anführungszeichen enthalten.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von philipp900 Beitrag anzeigen
    Beim prüfen der Logfiles ist mir aufgefallen
    Welches Logfile?

    Zitat von philipp900 Beitrag anzeigen
    KOs mit Anführungszeichen " oder ' im Value zu einem Fehler im mariadb.log führen.
    Was führt zu einem Fehler?

    Zitat von philipp900 Beitrag anzeigen
    Dies ist vor allem bei KOs für Alexa bzw. JSON Strings der Fall.
    Bei anderen KOs mit Anführungszeichen passiert das nicht?

    Einen Kommentar schreiben:


  • philipp900
    antwortet
    Beim prüfen der Logfiles ist mir aufgefallen, dass KOs mit Anführungszeichen " oder ' im Value zu einem Fehler im mariadb.log führen.
    Code:
    Wohnraum,1,0,0,INTERIOR_BLIND,null,{interface:Alex a.ToggleController,properties:[toggleState]}]' & : -c: line 0: unexpected EOF while looking for matching `''
    Dies ist vor allem bei KOs für Alexa bzw. JSON Strings der Fall.

    Einen Kommentar schreiben:

Lädt...
X