pyisyox.constants module

Constants for the PyISYoX Module.

class EventStreamStatus(*values)[source]

Bases: StrEnum

Event Stream Status Codes.

LOST_CONNECTION
CONNECTED
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.

DISCONNECTED
START_UPDATES
STOP_UPDATES
INITIALIZING
LOADED
RECONNECT_FAILED
RECONNECTING
DISCONNECTING
NOT_STARTED
TAG_ENABLED

<enabled> element in profile / program XML.

class Protocol(*values)[source]

Bases: StrEnum

Entity protocol string enum.

FOLDER
GROUP
INSTEON
INT_VAR
ISY
NETWORK
NODE_SERVER
NODE_FOLDER
PROGRAM
STATE_VAR
UPB
MATTER
ZIGBEE
ZWAVE
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]

Bases: StrEnum

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.

CORE
INSTEON
UPB
RCS
ZWAVE
AUTO
GENERIC
UDI
BRULTECH
NCD
NODESERVER
ZMATTER_ZWAVE
FOLDER
ZIGBEE
MATTER
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]

Bases: StrEnum

System Status Enum — the <action> value on _5 event frames.

NOT_BUSY
BUSY
IDLE
SAFE_MODE
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]

Bases: IntFlag

Node operations flag enum.

INIT
TO_SCAN
GROUP
ROOT
IN_ERR
NEW
TO_DELETE
DEVICE_ROOT
class UDHierarchyNodeType(*values)[source]

Bases: IntEnum

Enum representation of node types.

NOTSET
NODE
GROUP
FOLDER