Home IO Control
ESPHome add-on for IO-Homecontrol devices
Loading...
Searching...
No Matches
Protocol Layer

Frame definitions, crypto helpers, command builders, and protocol utilities. More...

Collaboration diagram for Protocol Layer:

Files

file  log_frame.h
 Shared frame logging helpers for IO-Homecontrol.
file  oneway_controller.cpp
 Controller identities for the one-way (1W) protocol.
file  oneway_controller.h
 Controller identities for the one-way (1W) protocol.
file  proto_codecs.cpp
 Device-name, address-classification and 1W-frame codec implementations.
file  proto_codecs.h
 Device-name, address-classification and 1W-frame codecs.
file  proto_commands.cpp
 Command builders for the IO-Homecontrol protocol.
file  proto_commands.h
 Command builders for the IO‑Homecontrol protocol.
file  proto_constants.cpp
 Name/description lookups for IO-Homecontrol commands, results and enumerations.
file  proto_constants.h
 IO-Homecontrol command IDs, result codes and protocol enumerations.
file  proto_crypto.cpp
 Cryptographic helpers for the IO-Homecontrol protocol.
file  proto_crypto.h
 Cryptographic helpers for the IO‑Homecontrol protocol.
file  proto_device_model.cpp
 Device-type capabilities, packed-metadata decoding and position reports.
file  proto_device_model.h
 IO-Homecontrol device-type model, capabilities and runtime device state.
file  proto_frame.cpp
 IO-Homecontrol 2W frame container implementation.
file  proto_frame.h
 IO-Homecontrol 2W frame container: control bytes, IoFrame and (de)serialization.
file  proto_heating.cpp
 Pure codec for IO-Homecontrol 2W heating/climate functions (CMD_WRITE_PRIVATE 0x20).
file  proto_heating.h
 Pure codec for IO-Homecontrol 2W heating/climate functions (CMD_WRITE_PRIVATE 0x20).
file  proto_sizes.h
 Fundamental IO-Homecontrol frame and crypto size constants.
file  proto_timing.h
 Physical-layer radio and timing parameters for the IO-Homecontrol protocol.
file  redaction.h
 Key-material redaction helpers shared by every surface that can emit frame bytes or debug text (frame logging today; telemetry and diagnostic reports later).

Classes

struct  esphome::home_io_control::OneWayControllerIdentity
 One configured 1W 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...
struct  esphome::home_io_control::IoFrame
 Parsed IO‑Homecontrol frame (CTRL0/1 + addresses + command + data). More...

Enumerations

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

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.

Detailed Description

Frame definitions, crypto helpers, command builders, and protocol utilities.

Enumeration Type Documentation

◆ OneWayButtonAction

enum class esphome::home_io_control::OneWayButtonAction : uint8_t
strong

The command a generated 1W button sends.

The vocabulary of the commands: list on a oneway_controllers: entry. Kept separate from CoverCommand because two of these are not commands at all on the wire: OPEN and CLOSE are positions 0 and 100, and only look like named commands to a user.

Enumerator
OPEN 

Position 0 (fully open).

CLOSE 

Position 100 (fully closed).

STOP 

CoverCommand::STOP.

VENT 

CoverCommand::VENT.

FAVORITE 

CoverCommand::FAVORITE.

Definition at line 166 of file oneway_controller.h.

Function Documentation

◆ encode_oneway_action()

OneWayActionEncoding esphome::home_io_control::encode_oneway_action ( OneWayButtonAction action)
inline

Resolve a button action to the call that sends it.

Pure, so the mapping can be tested without a radio, an entity or a hub. OPEN and CLOSE resolve to positions because that is what they are on the wire — there is no distinct open/close opcode, and treating them as named commands would need a second encoding path for no gain.

Parameters
actionButton action to encode.
Returns
The position-or-command the transmitter should send.

Definition at line 190 of file oneway_controller.h.

◆ oneway_button_action_name()

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.

Parameters
actionButton action to name.
Returns
Null-terminated name such as "OPEN".

Definition at line 10 of file oneway_controller.cpp.