|
Home IO Control
ESPHome add-on for IO-Homecontrol devices
|
One configured 1W controller identity. More...
#include <oneway_controller.h>
Public Member Functions | |
| void | broadcast_address (uint8_t out[NODE_ID_SIZE]) const |
| Enrollment / typed-class destination address for this identity. | |
Public Attributes | |
| std::string | id |
| YAML handle entities reference. | |
| uint8_t | node_id [NODE_ID_SIZE] {} |
| Source address we transmit as (configured or derived). | |
| uint8_t | system_key [AES_KEY_SIZE] {} |
| Network key for this identity; may differ per identity. | |
| uint8_t | manufacturer {0} |
| Manufacturer ID; unused until the enrollment phase. | |
| DeviceType | io_device_type {DeviceType::UNKNOWN} |
| Device class this identity commands. | |
| uint16_t | initial_sequence {0} |
| Seed for this identity's rolling counter on first use. | |
| bool | node_id_derived {false} |
| True when node_id was derived rather than configured. | |
| bool | enrollment_with_mac |
| Whether the enroll button's 0x30 carries a MAC trailer (enrollment_with_mac:). | |
| uint8_t | execute_acei {0} |
| EXECUTE ACEI override (execute_acei:). | |
| bool | execute_broadcast_all {false} |
| When true (execute_broadcast: all), 1W EXECUTE frames go to the all-devices address 00 00 3F regardless of io_device_type — what a handheld cover remote of either vendor does. | |
| std::array< DeviceType, 3 > | enrollment_classes {DeviceType::UNKNOWN, DeviceType::UNKNOWN, DeviceType::UNKNOWN} |
| Override for the device classes a VELUX enrollment 0x30 sweep targets (enrollment_classes:). | |
One configured 1W controller identity.
Fixed-size key and address material; the only heap is the id handle, which mirrors how device IDs are held elsewhere in this component.
Definition at line 40 of file oneway_controller.h.
|
inline |
Enrollment / typed-class destination address for this identity.
1W addresses a device class, never a node. Delegates to encode_broadcast_address() (proto_codecs.h), the single place the bit layout is documented, so this and broadcast_target_type() (its decode counterpart) cannot drift apart. Note: an EXECUTE frame uses the all-devices address instead when execute_broadcast_all is set — this helper is the typed-class destination only.
| out | Output: 3-byte destination address. |
Definition at line 74 of file oneway_controller.h.
| std::array<DeviceType, 3> esphome::home_io_control::OneWayControllerIdentity::enrollment_classes {DeviceType::UNKNOWN, DeviceType::UNKNOWN, DeviceType::UNKNOWN} |
Override for the device classes a VELUX enrollment 0x30 sweep targets (enrollment_classes:).
All-UNKNOWN (the default) means "not set — use the manufacturer profile's list" (resolve_oneway_wire_profile()). UNKNOWN entries are skipped when the sweep runs, so a one- or two-class override is expressed by leaving the rest UNKNOWN. Ignored by the Somfy enrollment gesture, which always uses io_device_type. See ADR 0032.
Definition at line 64 of file oneway_controller.h.
| bool esphome::home_io_control::OneWayControllerIdentity::enrollment_with_mac |
Whether the enroll button's 0x30 carries a MAC trailer (enrollment_with_mac:).
Definition at line 48 of file oneway_controller.h.
| uint8_t esphome::home_io_control::OneWayControllerIdentity::execute_acei {0} |
EXECUTE ACEI override (execute_acei:).
0 = "not overridden, use resolve_oneway_wire_profile()"; any non-zero value wins. 0 is a safe sentinel: ACEI_VALID_BIT is bit 0, so a valid ACEI is always odd — the schema rejects execute_acei: 0 so this cannot be reached by mistake.
Definition at line 53 of file oneway_controller.h.
| bool esphome::home_io_control::OneWayControllerIdentity::execute_broadcast_all {false} |
When true (execute_broadcast: all), 1W EXECUTE frames go to the all-devices address 00 00 3F regardless of io_device_type — what a handheld cover remote of either vendor does.
false = the typed per-class destination (current default). Not a vendor axis; see ADR 0031.
Definition at line 58 of file oneway_controller.h.
| std::string esphome::home_io_control::OneWayControllerIdentity::id |
YAML handle entities reference.
Definition at line 41 of file oneway_controller.h.
| uint16_t esphome::home_io_control::OneWayControllerIdentity::initial_sequence {0} |
Seed for this identity's rolling counter on first use.
Definition at line 46 of file oneway_controller.h.
| DeviceType esphome::home_io_control::OneWayControllerIdentity::io_device_type {DeviceType::UNKNOWN} |
Device class this identity commands.
Definition at line 45 of file oneway_controller.h.
| uint8_t esphome::home_io_control::OneWayControllerIdentity::manufacturer {0} |
Manufacturer ID; unused until the enrollment phase.
Definition at line 44 of file oneway_controller.h.
| uint8_t esphome::home_io_control::OneWayControllerIdentity::node_id[NODE_ID_SIZE] {} |
Source address we transmit as (configured or derived).
Definition at line 42 of file oneway_controller.h.
| bool esphome::home_io_control::OneWayControllerIdentity::node_id_derived {false} |
True when node_id was derived rather than configured.
Definition at line 47 of file oneway_controller.h.
| uint8_t esphome::home_io_control::OneWayControllerIdentity::system_key[AES_KEY_SIZE] {} |
Network key for this identity; may differ per identity.
Definition at line 43 of file oneway_controller.h.