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) and CONNECTED (replay drained, live events flowing). Consumers that fire on events (e.g. HA event entities) should treat frames received before CONNECTED as 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 _5 event 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).

Parameters:

value (str)

Return type:

str

class NodeFlag(*values)[source]

Node operations flag enum.

class UDHierarchyNodeType(*values)[source]

Enum representation of node types.

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) and CONNECTED (replay drained, live events flowing). Consumers that fire on events (e.g. HA event entities) should treat frames received before CONNECTED as 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 _5 event 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).

Parameters:

value (str)

Return type:

str

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.