john30 / ebusd

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

Custom message definitions not working through MQTT #211

Closed andig closed 5 years ago

andig commented 5 years ago

Follow-up of #208. Once a custom message definition has been tested and declared via define it should be possible to read/write it through MQTT, too. Currently that doesn't seem possible- forced reads through MQTT /get do not appear on the bus and no result is received.

john30 commented 5 years ago

please post an example defintion and MQTT query

andig commented 5 years ago

Before https://github.com/john30/ebusd-configuration/issues/107 was merged I didn't have PrimaryCircuitFlowrate. So I did:

ebusctl -s nas.fritz.box define -r 'r,BAI00,PrimaryCircuitFlowrate,,,"08","B509","0Dfb00",,,uin,,,'

and used

ebusd/bai/PrimaryCircuitFlowrate/get

for reading. That never got any response as if new definitions are not exposed on MQTT.

john30 commented 5 years ago

thats because you are using "BAI00" instead of "bai" as circuit in the definition

andig commented 5 years ago

thats because you are using "BAI00" instead of "bai" as circuit in the definition

That's really not obvious. All message definitions- which I've tried to mimic with the custom message- contain BAI00, even if in the comments. It might make sense to add a sentence about the expected format of the circuit parameter to the message definition chapter in the wiki?

john30 commented 5 years ago

you can easily see the message definitions that ebusd compiles from templates and defaults and all that stuff by using "find -f -a".

john30 commented 5 years ago

hint added to the wiki

andig commented 5 years ago

@john30 still think this is not invalid. I have a custom definition SetModeOverride. When I write:

ebusctl -s nas.fritz.box w -c bai SetModeOverride '0;34;-;-;0;0;0;0;0;0'

I will get an MQTT update from the VRC700:

❯ mosquitto_sub -h nas.fritz.box -t ebusd/bai/SetMode -v

ebusd/bai/SetMode auto;34.0;-;-;0;0;0;0;0;0 <- this is ebusctl
ebusd/bai/SetMode auto;35.5;-;-;0;0;0;0;0;0 <- this is VRC700

If I do the same thing via MQTT, I will NOT see any of the writes:

mosquitto_pub -h nas.fritz.box -t ebusd/bai/SetModeOverride -m '0;34;-;-;0;0;0;0;0;0'

So- I think writing to custom message definitions over MQTT is broken.

andig commented 5 years ago

@john30 can we reopen this one until its clear that this is invalid?

john30 commented 5 years ago

I cannot reproduce the described behaviour, it works perfectly fine for me. btw: the topic for writing has to be appended with "/set"