Constants¶
The pyisyox.constants module collects the wire-level constants
PyISYoX uses to talk to the eisy: command ids (DON, DOF,
CLISPC, …), property ids (ST, OL, RR, …), node
families, system-status codes, UOM constants, and a few enums that
classify states or stream lifecycle.
Most consumers should not need to import from here directly — the runtime wrappers expose the values through typed properties — but the enums and a few constants do appear in public API signatures.
Enums¶
The constants module defines several enum.StrEnum /
enum.IntEnum / enum.IntFlag types that show up in
event handlers and node introspection:
- class EventStreamStatus(*values)[source]¶
Event Stream Status Codes.
- SYNCING = 'stream_syncing'¶
Socket is open but the controller is still replaying every node’s current status (a burst of ST/DON/DOF frames that are NOT live changes). Distinct from
INITIALIZING(no socket yet) andCONNECTED(replay drained, live events flowing). Consumers that fire on events (e.g. HAevententities) should treat frames received beforeCONNECTEDas state sync, not real events, to avoid spurious triggers on every (re)connect.
- class Protocol(*values)[source]¶
Entity protocol string enum.
- UNKNOWN = 'unknown'¶
Family id present but not one we map to a known device protocol (RCS, Brultech, NCD, UDI, group families, folders, …).
- class NodeFamily(*values)[source]¶
Node family string enum.
IDs 0-9 come from
ISY-WSDK-5.0.4/WSDL/family.xsd(still the latest published WSDL). 10 (Node Server / PG3) and 12-15 are IoX 6 additions confirmed against eisy hardware: 12 is the Z-Matter radio acting as a Z-Wave controller, 15 the same radio acting as a Matter/Thread controller, 13 the folder family, 14 Zigbee.
- class SystemStatus(*values)[source]¶
System Status Enum — the
<action>value on_5event frames.- classmethod label(value)[source]¶
Friendly lower-case name for a system-status value, or the raw value verbatim if it isn’t one we know.
Mirrors
pyisyox.runtime.SystemEventControl.label()so the two compose cleanly in log lines (system_status = not_busy).
Command and property identifiers¶
Wire-level command ids (CMD_*) and property ids (PROP_*) are
string constants. Use them when calling send_command()
to avoid typos:
from pyisyox.constants import CMD_BACKLIGHT, PROP_ON_LEVEL
await node.send_command(CMD_BACKLIGHT, "Medium")
await node.send_command(PROP_ON_LEVEL, 200)
Full reference¶
The complete list of constants — including command ids, property ids, attribute / tag names used during XML parsing, default precision and UOM constants, and the canonical UDI source references — is documented inline:
Constants for the PyISYoX Module.
- class EventStreamStatus(*values)[source]
Event Stream Status Codes.
- SYNCING
Socket is open but the controller is still replaying every node’s current status (a burst of ST/DON/DOF frames that are NOT live changes). Distinct from
INITIALIZING(no socket yet) andCONNECTED(replay drained, live events flowing). Consumers that fire on events (e.g. HAevententities) should treat frames received beforeCONNECTEDas state sync, not real events, to avoid spurious triggers on every (re)connect.
- TAG_ENABLED
<enabled>element in profile / program XML.
- class Protocol(*values)[source]
Entity protocol string enum.
- UNKNOWN
Family id present but not one we map to a known device protocol (RCS, Brultech, NCD, UDI, group families, folders, …).
- class NodeFamily(*values)[source]
Node family string enum.
IDs 0-9 come from
ISY-WSDK-5.0.4/WSDL/family.xsd(still the latest published WSDL). 10 (Node Server / PG3) and 12-15 are IoX 6 additions confirmed against eisy hardware: 12 is the Z-Matter radio acting as a Z-Wave controller, 15 the same radio acting as a Matter/Thread controller, 13 the folder family, 14 Zigbee.
- EVENT_PROPS_IGNORED: list[str]
Control codes that represent a silent property/state update rather than a surfaced device command. Reference helper for consumers deciding which event frames to surface. (Kept pending issue #1.)
- class SystemStatus(*values)[source]
System Status Enum — the
<action>value on_5event frames.- classmethod label(value)[source]
Friendly lower-case name for a system-status value, or the raw value verbatim if it isn’t one we know.
Mirrors
pyisyox.runtime.SystemEventControl.label()so the two compose cleanly in log lines (system_status = not_busy).
- class NodeFlag(*values)[source]
Node operations flag enum.
- class UDHierarchyNodeType(*values)[source]
Enum representation of node types.
The constants are derived from UDI’s IoX REST Developer Reference and the legacy ISY994 Developer Cookbook. PyISYoX targets IoX 6.0.0+; entries that only existed on the original ISY-994 hardware are preserved for compatibility but are not exercised by the library.