|
Home IO Control
ESPHome add-on for IO-Homecontrol devices
|
Controller identities for the one-way (1W) protocol. More...
#include "proto_codecs.h"#include "proto_constants.h"#include "proto_device_model.h"#include "proto_sizes.h"#include <array>#include <cstdint>#include <string>#include <vector>Go to the source code of this file.
Classes | |
| struct | esphome::home_io_control::OneWayControllerIdentity |
| One configured 1W controller identity. More... | |
| struct | esphome::home_io_control::OneWayWireProfile |
| Vendor-divergent 1W wire settings for a controller identity. More... | |
| struct | esphome::home_io_control::OneWayActionEncoding |
| How a OneWayButtonAction reaches the wire. More... | |
| class | esphome::home_io_control::OneWayControllerRegistry |
| The configured 1W controller identities, in YAML declaration order. More... | |
Namespaces | |
| namespace | esphome |
| namespace | esphome::home_io_control |
Enumerations | |
| enum class | esphome::home_io_control::EnrollGesture : uint8_t { esphome::home_io_control::SOMFY , esphome::home_io_control::VELUX_KLI } |
| Which 1W enrollment gesture a manufacturer's actuators expect. More... | |
| enum class | esphome::home_io_control::OneWayButtonAction : uint8_t { esphome::home_io_control::OneWayButtonAction::OPEN , esphome::home_io_control::OneWayButtonAction::CLOSE , esphome::home_io_control::OneWayButtonAction::STOP , esphome::home_io_control::OneWayButtonAction::VENT , esphome::home_io_control::OneWayButtonAction::FAVORITE } |
| The command a generated 1W button sends. More... | |
Functions | |
| OneWayWireProfile | esphome::home_io_control::resolve_oneway_wire_profile (uint8_t manufacturer) |
| Resolve an identity's 1W wire profile from its manufacturer byte. | |
| std::array< DeviceType, 3 > | esphome::home_io_control::effective_enrollment_classes (const OneWayControllerIdentity &identity) |
| The device classes this identity's 0x30 enrollment sweep will actually target. | |
| uint8_t | esphome::home_io_control::effective_execute_acei (const OneWayControllerIdentity &identity) |
| The ACEI byte a given identity will put on air for a 1W EXECUTE frame. | |
| bool | esphome::home_io_control::has_execute_acei_override (const OneWayControllerIdentity &identity) |
| Whether this identity's ACEI comes from an explicit execute_acei: rather than the profile. | |
| OneWayActionEncoding | esphome::home_io_control::encode_oneway_action (OneWayButtonAction action) |
| Resolve a button action to the call that sends it. | |
| const char * | esphome::home_io_control::oneway_button_action_name (OneWayButtonAction action) |
| Human-readable name for a button action, as it appears in the diagnostic sensor. | |
Variables | |
| static constexpr std::array< DeviceType, 3 > | esphome::home_io_control::VELUX_KLI_ENROLLMENT_CLASSES |
| The three device classes a real VELUX KLI PROG gesture sweeps its 0x30 across — roller shutter, awning, dual shutter — and never any other (issue #74 capture, decoded with broadcast_target_type(); matches samr037/iohc-flipper's PAIR_DST_{WINDOW,SHUTTER,OTHER}). | |
| static constexpr uint8_t | esphome::home_io_control::ONEWAY_POSITION_FULLY_OPEN = 0 |
| Wire-scale position meaning "fully closed" (0 means fully open). | |
| static constexpr uint8_t | esphome::home_io_control::ONEWAY_POSITION_FULLY_CLOSED = 100 |
Controller identities for the one-way (1W) protocol.
1W frames are class-addressed: a command goes to a typed broadcast address (io_device_type << 6) | 0x3F, not to an individual device. Nothing on the wire names a device, so a 1W entity has no node address to bind to. What distinguishes one 1W control surface from another is the controller doing the transmitting — its source address, its network key, and the device class it speaks to. That triple is a controller identity, and it takes the place node addressing has for 2W. See ADR 0027.
A hub holds several, deliberately: adopting a foreign 1W network's key (see oneway_key_adoption.cpp) produces an identity whose key is not the hub's own, and it must coexist with identities on the hub's own network rather than replace them.
Definition in file oneway_controller.h.