jup. eventuell auch mal ohne Haken rechts bei bestätigt probieren.
Ankündigung
Einklappen
Keine Ankündigung bisher.
MQTT API Server und MQTT Clients - LBS19001051 - LBS19001054
Einklappen
X
-
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
yum fehlermeldung.png
Was mache ich falsch? Oder wurde da gerade was abgeschaltet?
Ich habe auch mit
Code:rpm -q libmosquitto1
Danke!
Sandro
Kommentar
-
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.
Kommentar
-
Zitat von vento66 Beitrag anzeigenDas ist ein CentOS6 Repo, das wird wohl nicht mehr funktionieren
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
Kommentar
-
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 && ($plainFilter != '' || $regFilter != '')) {
Code:if (!$match && ($plainFilter != '' || $regFilter != '')) {
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;
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
Kommentar
-
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;
PHP-Code:if ($plainFilter != '' || $regFilter != '') {
...
} else
$match = True; // No filter at all (E6/E7 empty and A15=0)
Zuletzt geändert von jonofe; 02.01.2021, 09:29.
Kommentar
-
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 `''
Kommentar
-
Zitat von philipp900 Beitrag anzeigenBeim prüfen der Logfiles ist mir aufgefallen
Zitat von philipp900 Beitrag anzeigenKOs mit Anführungszeichen " oder ' im Value zu einem Fehler im mariadb.log führen.
Zitat von philipp900 Beitrag anzeigenDies ist vor allem bei KOs für Alexa bzw. JSON Strings der Fall.
Kommentar
-
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.
Kommentar
-
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 weiterhelfenZuletzt geändert von BadWicky; 16.01.2021, 12:52.
Kommentar
-
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)
Kommentar
Kommentar