Changes
Commits
Differences
v4.0.0 | develop | ||||
---|---|---|---|---|---|
n | 2 | path: https://github.com/homieiot/convention/tree/v4.0.0 | n | 2 | path: https://github.com/homieiot/convention/tree/develop |
n | 4 | version: v4.0.0 | n | 4 | version: develop |
5 | releasedate: 18. July 2019 | 5 | releasedate: 25. January 2021 | ||
n | 43 | The following device attributes are mandatory and MUST be send, even if it is just an empty string. | n | 43 | The following device attributes are mandatory and MUST be sent, even if it is just an empty string. |
n | 62 | homie/super-car/$homie → "2.1.0" | n | 62 | homie/super-car/$homie → "4.0.0" |
n | n | 64 | homie/super-car/$extensions → "" | ||
64 | homie/super-car/$nodes → "wheels,engine,lights[]" | 65 | homie/super-car/$nodes → "wheels,engine,lights" | ||
n | 76 | * **`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. | n | 77 | A 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. | ||||
n | n | 88 | The 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 | |||||
n | n | 135 | 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. | ||
n | 145 | | $datatype | The data type. See [Payloads](#payloads). | Enum: \[integer, float, boolean,string, enum, color\] | | n | 154 | | $datatype | The data type. See [Payloads](#payload). | Enum: \[integer, float, boolean,string, enum, color, datetime, duration\] | |
t | 214 | ## Broadcast Channel | t | ||
215 | |||||
216 | Homie 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. | ||||
219 | It must adhere to the [ID format](#topic-ids). | ||||
220 | |||||
221 | For example, you might want to broadcast an `alert` event with the alert reason as the payload. | ||||
222 | Devices are then free to react or not. | ||||
223 | In our case, every buzzer of your home automation system would start buzzing. | ||||
224 | |||||
225 | ```java | ||||
226 | homie/$broadcast/alert ← "Intruder detected" | ||||
227 | ``` | ||||
228 | |||||
229 | Any other topic is not part of the Homie convention. |