Hallo,
Ich wollte gerne mein Robonect von meinem Gardena Robbi auch über MQTT einbinden. Den Worx LBS von dir habe ich schon Erfolgreich am laufen. Muss ich für die anderen MQTT Bausteine Mosquitto nochmal installieren bzw. was ändern oder reicht die Installation die ich für den Worx Baustein gemacht habe? Ist schon ein MQTT Benutzer und Passwort in der alten Installation mit drin?
Gruß Michael
Ankündigung
Einklappen
Keine Ankündigung bisher.
MQTT API Server und MQTT Clients - LBS19001051 - LBS19001054
Einklappen
X
-
Hi Micha,
dickes Merci. Ich war gestern zu Später Stunde echt komplett blind.
Ich hab das darunter einfach nimmer gelesen sondern nur die Erklärung vom LBS
Sorry Jungs und danke!
Einen Kommentar schreiben:
-
Mal in die Hilfe geschaut?
Ich denke da fehlt etwas bei Dir.As this LBS needs some external libraries, it is necessary to run an installation script, which comes with this LBS: (install.sh in the attached ZIP File)
yum -y install php-process git gcc make mysql-devel
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/jonofe/Mosquitto-PHP
cd Mosquitto-PHP
cp home_oojah_mqtt.repo /etc/yum.repos.d/
yum -y install libmosquitto1 libmosquitto-devel mosquitto-clients
phpize
./configure --with-mosquitto=/usr/lib64
make
make install
cd /tmp
rm -rf Mosquitto-PHP
echo "extension=mosquitto.so" > /etc/php.d/mosquitto.ini
Einen Kommentar schreiben:
-
Hi,
wollte heute mal anfangen mich in Mqtt und Node-red etc. einzuarbeiten. Mosquitto und Node-red laufen auch bereits.
Jetzt wollte ich anfangen die Bausteine in Edomi zu testen, leider schmiert mir Edomi bei der Projektaktivierung ab mit Fatalerror und LBS19001054.
Ich hab aber keine Ahnung was an dem Baustein falsch konfiguriert sein sollte. IP ist richtig, User und PW stimmen und Topic /Test gibt es auch und ich kann darauf Payloads senden.
Anbei ein paar Screenshots. Vielleicht kann mir jemand helfen wo mein Fehler ist. Ist alles neu und ich fang gerade erst an mit Mqtt.
Am Debug in Node-red kann man auch sehen, dass die Verbindung steht die Payloads ankommen.
Danke schonmal
Angehängte Dateien- Bildschirmfoto 2019-08-03 um 03.14.52.png (37,0 KB, 346x aufgerufen)
- Bildschirmfoto 2019-08-03 um 03.17.12.png (12,6 KB, 292x aufgerufen)
- Bildschirmfoto 2019-08-03 um 03.15.23.png (25,4 KB, 314x aufgerufen)
- Bildschirmfoto 2019-08-03 um 03.17.02.png (19,7 KB, 299x aufgerufen)
- Bildschirmfoto 2019-08-03 um 03.15.45.png (39,5 KB, 296x aufgerufen)
- Bildschirmfoto 2019-08-03 um 03.16.10.png (64,0 KB, 292x aufgerufen)
Einen Kommentar schreiben:
-
Danke für den Tip, eine Beschreibung für eine API habe ich leider bisher nicht gefunden.
Ich muss noch die Kommunikation vom Smartphone mit der App "My AEG Care" in Richtung der AEG-Clound aufzeichnen, da wird man dann ja vielleicht so etwas beobachten können...
Einen Kommentar schreiben:
-
Da es keine globale sondern eine Konstante im Klassenkontext ist, sollte es so funktionieren:
PHP-Code:$client->setTlsOptions(Mosquitto\Client::SSL_VERIFY_NONE);
Ich verwende dies so beim Worx-Landroid LBS. Worx macht es übrigens so, dass Username/Password nur für eine HTTPS API verwendet werden. Darüber muss man dann ein Client Zertifikat abholen, welches man zur MQTT Authentifizierung verwendet. Wenn dies bei AEG auch so ist, dann wird es ohne Kenntnis der API zum Download des Zertifikats schwierig.
Einen Kommentar schreiben:
-
Aktuell versuche ich an Daten aus der "AEG-Cloud", für unsere Waschmaschine, zu kommen.
Eine Messung mit Wireshark hat ergeben, dass die Waschmaschine direkt nach dem Einschalten auf Port 8883 zu einem Host im Internet kommuniziert.
Dies sollte MQTT mit TLS sein und somit bin ich hier gelandet.
Leider nutzt der Anbieter auf der Server-Seite ein selbst signiertes Zertifikat und publiziert auch nicht die CA-Kette in dem Zertifikat, sodass aktuell scheinbar die Verbindung schon aufgrund von TLS-Fehlern nicht aufgebaut werden kann.
In der Dokumentation des Mosquitto-Client ist beschrieben, dass man das Verhalten bzgl. der Zertifikate bei der Nutzung von TLS beinflussen kann, dies bekomme ich aber leider nicht hin.
Im LBS 19001054 auf meinem EDOMI-System habe ich den Abschnitt // initialize Mosquitto-PHP wie folgt abgeändert:
In der Dokumentation des Mosquitto-Client ist beschrieben, dass bei setTlsOptions die Option "Mosquitto\\Client::SSL_VERIFY_NONE" genutzt werden kann, um die Überprüfung des Zertifikates zu deaktivieren.PHP-Code:// initialize Mosquitto-PHP
$client = new Mosquitto\Client('EDOMI MQTT Subscribe Client (' . $id . ')');
if ($tls)
$client->setTlsCertificates($caPath);
$client->setCredentials($user, $password);
$client->setTlsInsecure(TRUE);
$client->setTlsOptions(SSL_VERIFY_NONE, NULL, NULL);
$client->connect($server, $port);
$client->onConnect('connect');
$client->onMessage('message');
$client->loop(100);
$client->loop(100);
$client->loop(100);
break;
Wenn ich dies genauso definiere oder auch nur "SSL_VERIFY_NONE" angebe, tauchte im Log diese Meldung auf:
Da es eine Konstante ist, müsste man es doch ohne Anführungszeichen angeben, oder?Code:Exception caught: Mosquitto\Client::setTlsOptions() expects parameter 1 to be long, string given (3773)
Ohne Anführungszeichen tauch das dann aber im Fehler-Log auf:
Code:Use of undefined constant SSL_VERIFY_NONE - assumed 'SSL_VERIFY_NONE'
Die Verbindung wird dann vermutl. weiterhin aufgrund des Zertifikatsfehlers nicht aufgebaut:
Könnte mir da jemand Unterstützung geben?Code:Exception caught: The connection was refused. (3773)
Danke vorab!
Einen Kommentar schreiben:
-
Da noch ein kleiner Fehler bei der Ausgabe von A1 enthalten war, gibt es nun eine neue Version 0.2, welche nun auch als neues Feature die boolschen Werte true und false automatisch in String umwandelt.
Einen Kommentar schreiben:
-
Die Erklärung ist einfach, denn true und false sind in diesem Fall keine Strings sondern boolsche Werte in PHP. Wenn man diese ausgibt wie es bei EDOMI gemacht wird, dann ist false quasi leer und true ist 1. Du kannst also einfach einen Vergleicher an A2 hängen: Wenn 1 dann 1 sonst 0. Alternativ kannst du auch die Strings true bzw. false draus machen. Warum genau der Status -1 ist, weiß ich gerade auch nicht, schaue ich mir noch mal an und werde den Status auch in der Hilfe noch mal genauer dokumentieren. Funktional stimmt aber die Ausgabe des LBS an A2.
Einen Kommentar schreiben:
-
Hallo Andre,
wenn ich am JSON Extractor {"battery":100,"voltage":3025,"contact":false,"lin kquality":160} an E1 anlege, an E2 = contact dann erscheint am Ausgang A2 nichts, erwartet hätte ich den String false.
Wenn {"battery":100,"voltage":3025,"contact":true,"link quality":128} ankommt so wird der Ausgang A2 = 1
Am Ausgang A1 erscheint in beiden Fällen -1
Kannst du mir bitte weiterhelfen.
VG
Hartmut
Einen Kommentar schreiben:
-
Ich werde noch mal schauen, ob ich den Fehler nachstellen kann, denn selbst bei deiner Konfiguration sollte da kein Fehler kommen.
Einen Kommentar schreiben:
-
Danke für die Hilfe, jetzt geht es, ja lesen müsste man halt können..
Einen Kommentar schreiben:
-
Wildcards an E2 sind nur # oder + (siehe Hilfe)
An E2 müsstest du zigbee2mqtt/# eintragen
und an E6 FB2
Dann sollte an A6 auch der Payload auftauchen, der jetzt an A2 steht. Diesen kannst du dann auf den JSON Extractor geben.
Warum hast du 1, 0, 1, 2, 3 an den Eingängen E6-E10 angelegt?
Einen Kommentar schreiben:


Einen Kommentar schreiben: