NEWS
[gelöst] MQTT client: subscribe als Objekt - wie geht das?
-
Ich versuche gerade ESPEasy (https://www.letscontrolit.com/wiki/index.php/ESPEasy) per MQTT anzubinden.
Dort erhalte ich eine Nachricht status mit folgendem Inhalt:
Wenn ich nun mit dem Zahnrad die Option "als Objekt" einstelle, wird gar nichts mehr empfangen und im Log sehe ich:
Nun stellen sich natürlich Fragen:
1. Was geht schief?
2. Welches Format muss überhaupt gesendet werden damit "als Objekt" funktioniert?
3. Was kann ich tun um die Meldung doch noch als einzelne Datenpunkte zu empfangen?
Danke vorab,
Ralf
-
Wenn du noch keinen MQTT Broker (server) hast musst du den MQTT-Adapter nutzen. der mqtt-client kann dann als subscriber auf den broker zugreifen.
Ich nehme mal an, dass der ESP auch nur ein Clienet ist der als publisher arbeitet.
Gruß
Rainer
-
Sorry, Ich war wohl etwas zu knapp….
Ich habe einen Mosquitto server laufen. Der ESPEasy sendet an diesen server, auf iobroker läuft ein client der darauf wieder eine subscription hat.
Funktioniert alles. Es dreht sich nur darum dass mehrere Daten als JSON Paket kommen und ich vermutete das die Einstellung "subscribe als Objekt" dieses auseinander nimmt. Dies funktioniert aber nicht.
Gruß,
Ralf
-
Ein Blick in den Source-Code wirkt Wunder…
Mit "Objekt" ist die in iobroker benutzte Objektstruktur gemeint. Eine Nachricht muss also zum Beispiel so aussehen:
{ "val": 7.8, "ts": 1477116276740, "lc": 1477114767154 }
Ich sehe also nur die Möglichkeit die Nachricht als Text zu empfangen und selbst per Script auseinander zunehmen.
Gruß,
Ralf