|
Home IO Control
ESPHome add-on for IO-Homecontrol devices
|
The IO node-type and subtype table: names, entity class, platform and behaviour flags. More...
Go to the source code of this file.
Classes | |
| struct | esphome::home_io_control::DeviceTypeInfo |
| One row of the node-type / subtype table. More... | |
Namespaces | |
| namespace | esphome |
| namespace | esphome::home_io_control |
| namespace | esphome::home_io_control::device_type_flags |
| Bit flags carried by a DeviceTypeInfo row. | |
Functions | |
| const DeviceTypeInfo * | esphome::home_io_control::find_device_type_info (DeviceType type, uint8_t subtype) |
| Look up the table row for a (type, subtype) pair. | |
| const DeviceTypeInfo * | esphome::home_io_control::find_exact_device_type_info (DeviceType type, uint8_t subtype) |
| Look up the table row with exactly this (type, subtype), without falling back. | |
| bool | esphome::home_io_control::device_has_platform (DeviceType type, uint8_t subtype) |
| Can an ESPHome platform drive this (type, subtype) today? | |
| const char * | esphome::home_io_control::device_platform_name (DeviceType type, uint8_t subtype) |
| Name of the ESPHome platform that drives this (type, subtype). | |
| DeviceCapabilityClass | esphome::home_io_control::device_capability_class (DeviceType type, uint8_t subtype) |
| Capability class of a (type, subtype), subtype-aware. | |
| bool | esphome::home_io_control::device_light_is_brightness_only (DeviceType type, uint8_t subtype) |
| Is this light limited to brightness (no colour, no colour temperature)? | |
| std::string | esphome::home_io_control::format_device_kind (DeviceType type, uint8_t subtype) |
| Human-readable description of a (type, subtype) for logs and reports. | |
| std::string | esphome::home_io_control::format_device_ids (DeviceType type, uint8_t subtype) |
| Wire values of a (type, subtype), for logs that must stay readable without the table. | |
Variables | |
| static constexpr uint8_t | esphome::home_io_control::SUBTYPE_MAIN_PARAMETER_ONLY = 58 |
| Subtype value that marks a device taking the main parameter only, on any node type. | |
| static constexpr uint8_t | esphome::home_io_control::SUBTYPE_HEATER_WITH_SETPOINT = 1 |
| Subtype of the electrical heater (node type 52) with an adjustable setpoint, the one driven over the private register protocol (proto_heating.h). | |
| static constexpr uint8_t | esphome::home_io_control::device_type_flags::YAML_SELECTABLE = 1U << 0U |
| Type rows only: the type's identifier is accepted by the YAML io_device_type key (hub_validators.py DEVICE_TYPE_OPTIONS lists exactly these). | |
| static constexpr uint8_t | esphome::home_io_control::device_type_flags::HAS_PLATFORM = 1U << 1U |
| An ESPHome platform of the row's capability class can drive this (type, subtype). | |
| static constexpr uint8_t | esphome::home_io_control::device_type_flags::MAIN_PARAMETER_ONLY = 1U << 2U |
| Movement commands carry the main parameter only (no functional-parameter block), see device_takes_main_parameter_only(). | |
| static constexpr uint8_t | esphome::home_io_control::device_type_flags::BRIGHTNESS_ONLY = 1U << 3U |
| Light rows only: brightness is the only controllable property (no colour, no colour temperature). | |
| static constexpr uint8_t | esphome::home_io_control::device_type_flags::STANDALONE_NAME = 1U << 4U |
| Subtype rows only: name already is the complete description ("window lock") and is printed alone, instead of being appended to the type's name ("roller shutter, with projection"). | |
The IO node-type and subtype table: names, entity class, platform and behaviour flags.
One row per (node type, subtype) the project knows by name. Every per-type fact that is not a bare number — the lowercase identifier, the YAML selectability, the capability class, whether a platform can drive the device yet, and the behaviour flags — is read from that table, so there is exactly one place to add a type or a subtype. A lookup falls back from (type, subtype) to (type, 0) to "not in the table".
Subtype names agree across manufacturers, so rows are keyed on (type, subtype) only. A row names a wire type, not a product: products that share a (type, subtype) are told apart by data the wire does not carry, which is why the names stay generic.
Definition in file proto_device_types.h.