FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: ChriChri am 22 Oktober 2017, 06:40:37

Titel: JSON in mit mqtt verschicken (Tinkerforge brick-mqtt-proxy)
Beitrag von: ChriChri am 22 Oktober 2017, 06:40:37
Hallo Zusammen,

auf der Suche nach einer Möglichkeit Bricklets von Tinkerforge über FHEM zu steuern bin ich auf den Tinkerforge brick-mqtt-proxy (https://www.tinkerforge.com/de/doc/Software/Brick_MQTT_Proxy.html) gestoßen. Die Verbindung zwischen einem Tinkerforge Sensor/Aktor (kurz: Bricklet) und FHEM sollte damit ohne Programmieraufwand möglich sein:

Bricklet:Sensor/Aktor (https://www.tinkerforge.com/de/doc/Hardware/Bricklets/Bricklets.html) -- Brick Daemon (https://www.tinkerforge.com/de/doc/Software/Brickd.html) -- brick-mqtt-proxy (https://www.tinkerforge.com/de/doc/Software/Brick_MQTT_Proxy.html) -- mosquitto (https://mosquitto.org/) -- FHEM

Ich habe mich am Beispiel des Bricklet zur Steuerung eines LED-Streifens versucht und festgestellt, dass die Nachrichten in JSON übertragen werden. Eine Nachricht zum Setzen von LED-Farben (https://www.tinkerforge.com/de/doc/Software/Bricklets/LEDStrip_Bricklet_TCPIP.html#BrickletLEDStrip.set_rgb_values) sieht z.B. so aus:

{ "index": 0,
"length": 4,
"r":[255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
"g":[255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
"b":[255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }


In diesem Fall würde sie beginnend mit LED 0 (index) die vier folgenden (length) LEDs mit den neuen RGB-Werten 255,255,255 (weiss), 0,0,255 (blau) 0,0,255 und 0,0,255 versorgen.

Das Anlegen des Devices in FHEM hat problemlos geklappt und ich empfange die vom LED-Streifen publizierten Nachrichten in JSON.

Mit dem Versuch die obigen JSON-Nachricht über FHEM an mosquitto zu senden bin ich bisher fast komplett gescheitert: Nur mit dem kürzlich eingführtem (https://forum.fhem.de/index.php/topic,32528.msg653347.html#msg653347) set <mqttBroker-Device> publish Befehl konnte ich den String senden.

set mqttBroker publish qos:0 retain:1 test/test {"index": 0, "length": 4, "r":[255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "g":[255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "b":[255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }

Bei der Suche nach Möglichkeiten JSON zu senden habe ich dieses Thema (https://forum.fhem.de/index.php/topic,75144.0.html) gefunden, in dem sich eine modifizierte 10_MQTT_DEVICE.pm befindet, in der das Versenden von Werten in JSON eingebaut ist - leider basiert die Änderung auf der Version vom 2017-06-17. Das Thema zeigt aber, dass auch für andere Projekte Möglichkeite JSON über MQTT zu publizieren hilfreich wäre.

Über Lösungsvorschläge und Denkanstöße hierzu würde ich mich freuen.

Chris
Titel: Antw:JSON in mit mqtt verschicken (Tinkerforge brick-mqtt-proxy)
Beitrag von: mephisto am 28 Dezember 2017, 17:00:55
Servus,

hast Du hier etwas heraus gefunden?

Würde gerne auch div APA102 stripes über MQTT steuern. Es gelingt mir allerdings nicht, JSON Parameter per MQTT zu publishen...