JSON in mit mqtt verschicken (Tinkerforge brick-mqtt-proxy)

Begonnen von ChriChri, 22 Oktober 2017, 06:40:37

Vorheriges Thema - Nächstes Thema

ChriChri

Hallo Zusammen,

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

Bricklet:Sensor/Aktor -- Brick Daemon -- brick-mqtt-proxy -- mosquitto -- 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 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 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 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

mephisto

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...