LAN connected MQTT nodes
-
I try to rebuild my custom Arduino nodes with MySensors platform. Need some input as I can not recreate all functions I need.
I have 3 Arduino/ethernet boxes. By removing radio definitions I can make them act as individual gateways with their own root MQTT topic. In essence, they will have 6 digital inputs and 8 outputs/relays (will see how many pins are free at the end).
-
I selected different MQTT topics for each gateway as they all have NODE_ID 0 (hardcoded by MySensors). How to control/differentiate if all 3 post to the same topic? By sensor ID?
-
There is no support for MQTT Last Will in MySensors from what I searched... that is a pity. I will probably invent phantom sensor as a heartbeat that will contain a random value, then inspect that on a higher level (NodeRED most likely)
-
Is there a way to know the MQTT status from inside the node? For example, if my node/gateway loose Ethernet or the MQTT broker is down I want to set relays to a safe state.
-
Is there a watchdog implemented in the Arduino code by default? I know that Arduino can reset itself if stuck for longer then 8 secs (not getting confirmation message).
-
-
For question 1, use MY_MQTT_CLIENT_ID and/or MY_MQTT_PUBLISH_TOPIC_PREFIX.
-
For question 1, use MY_MQTT_CLIENT_ID and/or MY_MQTT_PUBLISH_TOPIC_PREFIX.
@mfalkvidd Yes I settled for different MY_MQTT_PUBLISH_TOPIC_PREFIX. per device. but the Client_ID can not be defined for gateway...but that is not a problem now
-
@mfalkvidd Yes I settled for different MY_MQTT_PUBLISH_TOPIC_PREFIX. per device. but the Client_ID can not be defined for gateway...but that is not a problem now
-
@8667 that’s strange. The documentation says
Set client ID for MQTT connections.
This define is mandatory for all MQTT client gateways.
Sonit seems to be for gateways. I have never used it myself though.
@mfalkvidd I was talking about MY_NODE_ID As each device will be a gateway with onboard sensors only they all have I think 1 as ID by default and that can not be changed.
MY_MQTT_CLIENT_ID is different as I create different MQTT user/pass for each device
For 2. I created a fake sensor that I update with 1 each minute.
present(99, V_VAR1, "Status");
Then at the software side (NodeRED) I create additional logic to find out if the device is dead.
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login