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
{{ message }}
Repository navigation
Homie 5 compliance: convention-compliant base layer, eBus policy above it #91
Goal: python-sdk's base Homie layer (ebus_sdk.homie: Device, Node, Property, Controller) is compliant with the Homie 5 convention on the wire and in its base semantics. eBus and SDK policy that goes beyond the convention lives in clearly labeled higher-level methods, documented as such.
An audit of homie.py against the convention (2026-10-08, every finding independently verified) found about 35 distinct issues. Most are base-layer defects visible to any Homie 5 controller, not deliberate extensions. The phases below group them; each phase issue lists its items with convention citations.
Policies for this work:
Invalid producer input (ids, missing required $format, null description fields): warn in the next release, raise in the minor release after it.
$descriptionversion: a content hash (an integer below 2^53, SHA-256 of the description excluding version). The convention requires a new version whenever the document changes and allows non-sequential values (convention.md:215). An unchanged description keeps its version across reconnects.
Effective state: the base Controller implements the convention's table (only a lost root overrides a child, convention.md:262-267). The wider cascade that span-hass and esp32-sdk rely on stays available under its current name, documented as an availability rule beyond Homie, and is proposed to the eBus specification.
Activity
Homie 5 compliance, phase 1: producer wire correctness (#96)