Constants
=========
The :mod:`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 :class:`enum.StrEnum` /
:class:`enum.IntEnum` / :class:`enum.IntFlag` types that show up in
event handlers and node introspection:
.. autoclass:: pyisyox.constants.EventStreamStatus
:members:
.. autoclass:: pyisyox.constants.Protocol
:members:
.. autoclass:: pyisyox.constants.NodeFamily
:members:
.. autoclass:: pyisyox.constants.SystemStatus
:members:
.. autoclass:: pyisyox.constants.NodeFlag
:members:
.. autoclass:: pyisyox.constants.UDHierarchyNodeType
:members:
Command and property identifiers
--------------------------------
Wire-level command ids (``CMD_*``) and property ids (``PROP_*``) are
string constants. Use them when calling :meth:`~pyisyox.Node.send_command`
to avoid typos:
.. code-block:: python
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:
.. automodule:: pyisyox.constants
:members:
:no-index:
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.