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 compliance phase 2: id, topic and domain validation #92
Part of #91. Under the epic's policy these warn in the next release and raise in the minor release after it, since existing devices with, for example, uppercase or underscore ids work today. Line numbers refer to homieiot/convention@7edc221.
Device, node and property ids match the topic id format: lowercase a-z, 0-9 and - (:39). Today any string reaches the topic; a / silently changes topic depth and +/# make the publish invalid.
Ids beginning with $ are reserved for attributes (:41); a node named $state or a property named $target is rejected.
Ids are unique: devices across the tree, nodes per device, properties per node (:194, :294, :326). Today a second node or property with an existing id silently replaces the first, and two branches of a tree can both contain device x.
homie_domain is a single valid segment (:156); today a/b is accepted and "" silently becomes ebus.
Controller.broadcast() subtopic segments follow the id format (:533).
sanitize_homie_id() stays as an explicit helper; its normalization (collapsing hyphens, mapping _ and .) is documented as SDK behavior, with the note that distinct inputs can collide.
Activity