john30 / ebusd

daemon for communication with eBUS heating systems
GNU General Public License v3.0
594 stars 136 forks source link

MQTT writing doesn't work when --mqtttopic starts with "/" #960

Closed knalltuete86 closed 1 year ago

knalltuete86 commented 1 year ago

Description

ebusd does not react anyhow while writing to MQTT-Topic (e.g. from HomeAssistant).

e.g. --mqtttopic=/Home/Heatpump/%circuit/%name

Actual behavior

Publishing to MQTT-Broker works as expected, subscribing from /set-Topic doesn't.

There is no log message during startup or any other hint why the prefixed "/" may cause an issue.

Expected behavior

Either exit with error code during startup asking the user to fix --mqtttopic (remove "/") or get subscription working the same way as publishing do.

ebusd version

23.2

ebusd arguments

EBUSD_OPTS="--configpath=/etc/ebusd/configs --device=ens:192.168.178.59:9999 --mqttport=1883 --mqttuser=USER --mqttpass=PASS --mqtttopic=/Home/Heatpump/%circuit/%name --mqttjson --mqttvar=filter-direction=r|u|^w --pollinterval=15

Operating system

Debian 12 (Bookworm) / Ubuntu 22-23 / Raspberry Pi OS 12 (including lite)

CPU architecture

armv7l

Dockerized

None

Hardware interface

adapter 5 via WiFi

Related integration

No response

Logs

no message about mqtt subscription at loglevel debug

knalltuete86 commented 1 year ago

See related #954

john30 commented 1 year ago

afaik a beginning "/" is not supposed be part of the topic anyway

knalltuete86 commented 1 year ago

That's why it was so strange to find the root cause of this issue :) I expected it should work as there was no issue while reading values etc.

I guess it's its a minor problem for most of the users - but this issue shall help others may running into the same problem.