Release 2021.9.0 · OpenEMS/openems

Awesome that MQTT got finally into a release. I downloaded and updated my local deployment. The actual channel data is flowing as expected, but nothing gets ever published to ‘edge/edge0/edgeConfig’.

Is this the right channel for the JSON config?

Hey, thank you for implementing MQTT. I think, this is a game changer for integrating openEMS with other smart home systems.

Unfortunately, I’m not able to get it working. I’m using mosquitto as a mqtt broker and enabled websockets in my config file on port 9001. On my edge device, I tried to get it working with ws://ip-of-my-broker:9001, but I get the following error in the log:

12.5.2021, 09:38:11 INFO io.openems.edge.controller.api.mqtt.SendChannelValuesWorker [ctrlControllerApiMqtt] Error while sending MQTT topics: ctrlControllerApiMqtt/_PropertyClientId, ctrlControllerApiMqtt/State, ctrlControllerApiMqtt/RunFa...

What could be the problem?

I just checked again the code. It should work, but the config is only sent on configuration updates. I will have to validate and improve this again.

https://github.com/OpenEMS/openems/blob/develop/io.openems.edge.controller.api.mqtt/src/io/openems/edge/controller/api/mqtt/MqttApiControllerImpl.java#L126-L130

I did not test MQTT via Websocket, but only via direct tcp connection. The URI that is working in my example is tcp://server:1883. Could you try that instead?

I tried it, but its showing the same error again -.-

I am using MQTT now on a permanent basis as connection between OpenEMS and OpenHAB.
It works like a charm and has replaced polling the REST interface completely for me.
Nice work!

1 Like