changing ebus parameters via MQTT and micro-ebus on Raspberry
The manual (https://token.ebusd.eu/mqtt#ebus-messages) reads: "The input payload has the same format as the output, i.e. JSON object as described above (in contrast to ebusd which only accepts string data)." Also in some other ebus manual I found info that payload should not be in quotation marks if it is not a string. So how do you put the JSON?
For me it works in the format:
mosquitto_pub -u usermqtt -P passmqtt -h host -t "ebus01/ctls2/Date/set" -m '{"value":"09.11.2025"}'
As you see the payload {"value":"09.11.2025"} is in single quotes
To check the result use
mosquitto_pub -u usermqtt -P passmqtt -h host -t "ebus01/ctls2/Date/get" -m ""
and if you monitor MQTT, for example with
mosquitto_sub -v -u usermqtt -P passmqtt -h host -t "ebus01/ctls2/#" -d ,
you can see the response:
Client (null) received PUBLISH (d0, q0, r0, m0, 'ebus01/ctls2/Date', ... (22 bytes)) ebus01/ctls2/Date {"value":"09.11.2025"}
The overall config is Raspberry Pi Zero W Rev 1.1 with Mosquitto broker, eBUS Adapter Shield v5.
usermqtt is mosquitto username passmqtt is mosquitto password host is ip to the mosquitto server
I hope someone. will find it useful.
yes, if working on a command line, string escaping is a bit tricky. you could as well use double quotes, but thats just even more messy. when using an MQTT client or something, usually quoting should not be an issue (e.g. due to a text field that does not need special quoting or such)