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

  • 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:


  • kordnas
    antwortet
    1) Hab ich so übernommen

    2) Da hätte ich auch selbst noch drauf kommen können hier im Thread mal nach Trigger zu suchen 😇Ich schiebe das mal auf die Uhrzeit oder darauf, dass ich ins Bett musste

    Danke in jedem Fall, läuft wieder :-)

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zu 1) Muss ich mal in den Code schauen.

    EDIT:
    Das ist wohl ein Überbleibsel vom ersten Ansatz, dass die Filter E6/E7 auch dann angewendet werden sollten, wenn A15=1 ist, dass heisst wenn relevante KOs über das Kommentarfeld ausgewählt wurden. Das habe ich nachträglich geändert, d.h. entweder über die Filter (E6/E7) oder über das Kommentarfeld werden die zu publishenden GAs ausgewählt. Korrekt müsste es also wie folgt aussehen:


    Statt:

    PHP-Code:
    if ($match && ($plainFilter != '' || $regFilter != '')) {
        
    $match false
    nun:

    PHP-Code:
    if ($plainFilter != '' || $regFilter != '') {

    ...

    } else
        
    $match True;     // No filter at all (E6/E7 empty and A15=0) 
    Zu 2) Das Problem wurde mehrfach in diesem Thread diskutiert und gelöst. Siehe Post #99
    Zuletzt geändert von jonofe; 02.01.2021, 09:29.

    Einen Kommentar schreiben:


  • kordnas
    antwortet
    Ich bin da jetzt weitergekommen...

    An der Installation scheint es nicht zu liegen, es gibt zwei andere Probleme:

    1. Kann es sein, dass die Zeile
    Code:
    if ($match &amp;&amp; ($plainFilter != '' || $regFilter != '')) {
    eher
    Code:
    if (!$match &amp;&amp; ($plainFilter != '' || $regFilter != '')) {
    sein sollte? (negiertes $match)

    Wenn ich das ändere, kann ich mqtt_publish manuell aufrufen und die Nachricht geht per MQTT raus. Wenn ich den If Anweisungen da richtig folge, könnte die $match Referenz da auch ganz raus.

    2. Irgendwas scheint mit den Triggern nicht zu stimmen. Ich habe mal ein bisschen in der MySQL Kommandozeile rumgefummelt:
    Code:
    show triggers;
    in der edomiLive DB zeigt mir keine Trigger an.

    Versuche ich den (Update)Trigger noch mal hinzuzufügen, bekomme ich den Fehler, dass der Trigger schon existiert.
    Füge ich den gleichen (Update)Trigger noch mal unter einem anderen Namen hinzu, geht es plötzlich, dann geht bei Änderung auch die MQTT Nachricht raus.

    Das gleiche kann ich übrigens auch erreichen wenn ich die entsprechenden Zeilen im LBS direkt dupliziere

    Duplicated trigger.png

    Fällt euch dazu was ein? :-)

    Sandro

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Bei CentOS7 wird dieses Repo nicht verwendet. Gemäß Anleitung sollte die Installation funktionieren und danach eigentlich auch der LBS.

    Einen Kommentar schreiben:


  • kordnas
    antwortet
    Zitat von vento66 Beitrag anzeigen
    Das ist ein CentOS6 Repo, das wird wohl nicht mehr funktionieren
    Sorry, da hatte ich jetzt aus Versehen noch den alten Quellcode auf und bin die alte Installationsanleitung durchgegangen. Für die neueste Version sollte das also nicht auftauchen!!

    Hab die neue Anleitung jetzt aber noch mal geprüft. Soweit ich das erkennen kann, ist entweder "nichts zu tun" oder es läuft ohne Fehlermeldungen durch.

    Sandro

    Einen Kommentar schreiben:


  • vento66
    antwortet
    Das ist ein CentOS6 Repo, das wird wohl nicht mehr funktionieren. Entweder gibts schon ne neue Anleitung, oder schau mal hier, für die Installation unter CentOS7:
    https://www.codeflow.site/de/article...er-on-centos-7
    Zumindest den ersten teil für die Installation.

    Einen Kommentar schreiben:


  • kordnas
    antwortet
    Ich habe Anfang Dezember auch auf CentOS 7 gewechselt, clean install auf neuer Hardware

    Den Publish Server hatte ich natürlich auch am laufen und aktualisiert. Habe auch die Installationsschritte durchgeführt, wobei ich jetzt (es funktioniert nicht, keine Mosquitto Messages gehen raus) zugeben muss, dass ich nicht geprüft habe, ob es damals Fehlermeldungen gab.

    Jetzt wollte ich die Installationsschritte noch mal durchgehen und muss feststellen, dass es wohl Probleme mit dem home_oojah_mqtt Repo gibt?

    Es scheitert also an
    Code:
    yum -y install libmosquitto1 libmosquitto-devel mosquitto-clients
    Mit
    yum fehlermeldung.png

    Was mache ich falsch? Oder wurde da gerade was abgeschaltet?

    Ich habe auch mit
    Code:
    rpm -q libmosquitto1
    geprüft, ob das Package installiert ist. Negativ!

    Danke!

    Sandro

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Oder einfach mal den trailing slash weglassen, den haste doch beim Fensterkontakt auch nicht.
    Das springt einen doch geradezu an, wenn man auf die Screenshots schaut.
    Ich denke danach sollte es funktionieren, wenn iobroker die Daten korrekt published.

    Einen Kommentar schreiben:


  • Gentleman
    antwortet
    hab ich soeben ausprobiert, leider ohne Erfolg.
    Gibt es noch andere Möglichkeiten den Status abzufragen?

    Einen Kommentar schreiben:


  • Kirbsi
    antwortet
    jup. eventuell auch mal ohne Haken rechts bei bestätigt probieren.

    Einen Kommentar schreiben:

Lädt...
X