You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The following MQTT topics must remain unchanged when a device is in ready, sleeping or alert state:
Any device attributes except $name and $state
The $properties attribute of any node
Any attribute of any property except $name
However, the convention also states:
Homie controllers must by default perform auto-discovery on the wildcard topic "+/+/$homie".
My first reaction would be to add $homie to the list of device attributes that cannot be changed when a device is in ready, sleeping, or alert state. However, I believe the intent is that publishing to $homie (regardless of $state) triggers a "re-discovery" since the protocol version may have changed. In any case, consider adding some clarification to the convention, either in both sections mentioned above, and/or something like:
Publishing to a device's $homie attribute will trigger a rediscovery by Homie controllers, so it is recommended that devices disconnect or enter the init state first.
The text was updated successfully, but these errors were encountered:
I think adding $homie to that list is fine. A change of the $homie value – thus, a protocol version change – is a form of re-configuration and should not be performed in any of the ready states.
However, I believe the intent is that publishing to $homie (regardless of $state) triggers a "re-discovery"
No, the $homie is there for auto-discovery. As far as I understand it, there is no such thing as "re-discovery". Controllers simply use this property to enumerate all Homie devices. They can then subscribe to the related properties (especially $state) if they are interested in updates to that device.
In 6d852df the convention was updated with:
However, the convention also states:
My first reaction would be to add
$homie
to the list of device attributes that cannot be changed when a device is in ready, sleeping, or alert state. However, I believe the intent is that publishing to$homie
(regardless of$state
) triggers a "re-discovery" since the protocol version may have changed. In any case, consider adding some clarification to the convention, either in both sections mentioned above, and/or something like:The text was updated successfully, but these errors were encountered: