homieiot/convention

Changes

Changes from v5.0.0 to develop

Commits

Commit title Date Hash
Add context7 ownership file (#339) 2026-02-12 11:04:34 +0100 7edc221
chore(minor): several minor spelling and consistency fixes (#336) 2025-12-28 20:37:43 +0100 87f877a

Differences


v5.0.0
develop
n3version: v5.0.0n3version: develop
4releasedate: 11. May 20254releasedate: 12. February 2026
n67MQTT will treat an empty string payload as a "delete" instruction for the topic, therefor ann67MQTT will treat an empty string payload as a "delete" instruction for the topic, therefore an
n168A zero length payload published on the `$state` topic indicates a device removal, see [device lifecycle](#device-lifecycle).n168A zero length payload published on the `$state` topic indicates a device removal, see [Device Lifecycle](#device-lifecycle).
n170## Topology and structuren170## Topology and Structure
n340The Property object itself is described in the `homie` / `5` / `device ID` / `$description` JSON document. The Property object has the following fields:n340The Property object itself is described in the `homie` / `5` / `[device ID]` / `$description` JSON document. The Property object has the following fields:
n399| boolean | no | `false,true` | Identical to an enum with 2 entries. The first represents the `false` value and the second is the `true` value. Eg. `close,open` or `off,on`. If provided, then both entries must be specified. **Important**: the format does NOT specify valid payloads, they are descriptions of the valid payloads `false` and `true`. |n399| boolean | no | `false,true` | Identical to an enum with 2 entries. The first represents the `false` value and the second is the `true` value. Eg. `close,open` or `off,on`. If provided, then both entries must be specified. **Important**: the format does NOT specify valid payloads, they are descriptions of the valid payloads `false` and `true`. |
n4682. feedback in case a change is not instantaneous (e.g. a light that slowly dimms over a longer period, or an4682. feedback in case a change is not instantaneous (e.g. a light that slowly dims over a longer period, or a
n479- a controller can only assume that the command it send to the `set` topic was received and accepted. Not necessarily that it will ever reach the target state, since if another controller updates the property again, it might never reach the target state.n479- a controller can only assume that the command it sent to the `set` topic was received and accepted. Not necessarily that it will ever reach the target state, since if another controller updates the property again, it might never reach the target state.
n517## Alert topicn517## Alert Topic
n524A device can raise a message on a specific ID. Once the alert is no longer usefull or has been resolved, it can be removed by deleting the topic. Alerts must be send as retained messages. The alert ID must have a valid [ID format](#topic-ids), where topic ID's starting with `$` are reserved for Homie usage.n524A device can raise a message on a specific ID. Once the alert is no longer useful or has been resolved, it can be removed by deleting the topic. Alerts must be sent as retained messages. The alert ID must have a valid [ID format](#topic-ids), where topic ID's starting with `$` are reserved for Homie usage.
n528/homie/5/mydevid/$alert/childlost = "Sensor xyz in livingroom hasn't reported updates for 3 hours"n528homie/5/mydevid/$alert/childlost = "Sensor xyz in livingroom hasn't reported updates for 3 hours"
529/homie/5/mydevid/$alert/battery = "Battery is low, at 8%"529homie/5/mydevid/$alert/battery = "Battery is low, at 8%"
n538* `homie` / `5` / `$broadcast` / **`[subtopic]`**: where `subtopic` can be any topic with single or multiple levels. Each segement must adhere to the [ID format](#topic-ids).n538* `homie` / `5` / `$broadcast` / **`[subtopic]`**: where `subtopic` can be any topic with single or multiple levels. Each segment must adhere to the [ID format](#topic-ids).
n559All log messages send should be non-retained.n559All log messages sent should be non-retained.
t568`fatal` | a non-recoverable error occured, operation of the device is likely suspended/stoppedt568`fatal` | a non-recoverable error occurred, operation of the device is likely suspended/stopped