homieiot/convention

Changes

Changes from v4.0.0 to develop

Commits

Differences


v4.0.0
develop
n2path: https://github.com/homieiot/convention/tree/v4.0.0n2path: https://github.com/homieiot/convention/tree/develop
n4version: v4.0.0n4version: develop
5releasedate: 18. July 20195releasedate: 25. January 2021
n43The following device attributes are mandatory and MUST be send, even if it is just an empty string.n43The following device attributes are mandatory and MUST be sent, even if it is just an empty string.
n62homie/super-car/$homie → "2.1.0"n62homie/super-car/$homie → "4.0.0"
nn64homie/super-car/$extensions → ""
64homie/super-car/$nodes → "wheels,engine,lights[]"65homie/super-car/$nodes → "wheels,engine,lights"
n76* **`ready`**: this is the state the device is in when it is connected to the MQTT broker, has sent all Homie messages and is ready to operate. A Homie Controller can assume default values for all optional topics.n77A device may fall back into this state to do some reconfiguration.
78* **`ready`**: this is the state the device is in when it is connected to the MQTT broker and has sent all Homie messages for describing the device attributes, nodes, properties and their values. The device has subscribed to all appropriate `/set` topics and is ready to receive messages.
nn88The following MQTT topics must remain unchanged when a device is in `ready`, `sleeping` or `alert` state:
89
90* Any device attributes except `$name` and `$state`
91* The `$properties` attribute of any node
92* Any attribute of any property except `$name`
93
nn135 Non-retained properties should be `/set` with a QoS of **At most once (0)** to ensure that events don't arrive late or multiple times.
n145| $datatype | The data type. See [Payloads](#payloads). | Enum: \[integer, float, boolean,string, enum, color\] |n154| $datatype | The data type. See [Payloads](#payload). | Enum: \[integer, float, boolean,string, enum, color, datetime, duration\] |
t214## Broadcast Channelt
215
216Homie defines a broadcast channel, so a controller is able to broadcast a message to all Homie devices:
217
218* `homie` / `$broadcast` / **`level`**: `level` is an arbitrary broadcast identifier.
219It must adhere to the [ID format](#topic-ids).
220
221For example, you might want to broadcast an `alert` event with the alert reason as the payload.
222Devices are then free to react or not.
223In our case, every buzzer of your home automation system would start buzzing.
224
225```java
226homie/$broadcast/alert ← "Intruder detected"
227```
228
229Any other topic is not part of the Homie convention.