MQTT_Device und expandJSON

Begonnen von Mave, 13 November 2018, 09:29:22

Vorheriges Thema - Nächstes Thema

Mave

Moin zusammen,

ich versuche, in einem MQTT_Device einen JSON String zu publishen, da meine Xiaomi Devices einen JSON String erwarten, komme aber leider nicht zum Ziel.

Wie kann ich einen JSON String, wie z.B. {"state":"on"} publishen?

Vielen Dank.

rudolfkoenig

Evtl. lohnt es sich einen Blick auf MQTT2* Module zu werfen, da ist z.Zt. mehr in Bewegung, als in den alten MQTT (ohne 2) Modulen.

Mave

Moin Rudi,

vielen Dank für den Hinweis.

Ja, ich habe schon wahrgenommen, dass es neue MQTT2 Module gibt.
Allerdings fühle ich mich etwas überfordert damit. Um das alles zu verstehen, muss ich mir zunächst mal ein Wochenende freischaufeln um das alles in Ruhe durchzulesen.

Um mich zu motivieren, könntest Du mir aber verraten, ob ich dann einen JSON String publishen kann...  :)

Beta-User

Ja, geht.

Alternativ toJSON() verwenden. Beispiele im MiLight-Thread.
Würde aber auch MQTT2 empfehlen.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

hexenmeister

... vielleicht wäre MQTT_GENERIC_BRIDGE ein Lösung. Wird (in einer absehbaren Zeit) auch MQTT2 unterstützen.
Damit wäre MQTT_DEVICE gar nicht mehr nötig. JSON kann aus einem beliebigen Reading (mit Hilfe von 'expression'-Parameter in mqttPublish) gebildet werden.
Irgendwie so (ungetestet):
attr mqttPublish <reading>:topic=<topic> <reading>:expression={"{\"<name>\":\"$message\"}"}

Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy