Home IO Control
ESPHome add-on for IO-Homecontrol devices
Loading...
Searching...
No Matches
proto_commands.cpp File Reference

Command builders for the IO-Homecontrol protocol. More...

#include "proto_commands.h"
#include "proto_crypto.h"
#include <cstring>
Include dependency graph for proto_commands.cpp:

Go to the source code of this file.

Namespaces

namespace  esphome
namespace  esphome::home_io_control

Functions

bool esphome::home_io_control::create_execute (IoFrame &f, const uint8_t *own, const uint8_t *dst, bool low_power, uint8_t position)
 Build an execute command (0x00) to control a device.
bool esphome::home_io_control::create_get_status (IoFrame &f, const uint8_t *own, const uint8_t *dst)
 Build a get-status request (0x03). The device responds with its current position.
bool esphome::home_io_control::create_execute_tilt (IoFrame &f, const uint8_t *own, const uint8_t *dst, bool low_power, uint8_t tilt_percent)
 Build a tilt execute command (0x00) for devices that support slat angle control.
bool esphome::home_io_control::create_get_status_tilt (IoFrame &f, const uint8_t *own, const uint8_t *dst)
 Build a tilt-aware get-status request (0x03) that returns the extended 16-byte tilt payload.
bool esphome::home_io_control::create_discover (IoFrame &f, const uint8_t *own)
 Build a discovery broadcast (0x28).
bool esphome::home_io_control::create_key_init (IoFrame &f, const uint8_t *own, const uint8_t *dst)
 Build a key-init request (0x31) to start the pairing key exchange with a discovered device.
bool esphome::home_io_control::create_key_transfer (IoFrame &f, IoFrame &old_frame, const uint8_t *dst, const uint8_t *src, const uint8_t key[AES_KEY_SIZE], const uint8_t challenge[HMAC_SIZE])
 Build a key-transfer frame (0x32) containing the system key encrypted with the transfer key.
bool esphome::home_io_control::create_challenge_req (IoFrame &f, const uint8_t *dst, const uint8_t *src)
 Build a challenge request (0x3C) containing 6 random bytes.
bool esphome::home_io_control::create_challenge_resp (IoFrame &f, const uint8_t *dst, const uint8_t *src, const uint8_t challenge[HMAC_SIZE], const IoFrame &origin, const uint8_t *key)
 Build a challenge response (0x3D) proving we know the system key.
bool esphome::home_io_control::create_status_update_resp (IoFrame &f, const uint8_t *own, const uint8_t *dst)
 Build a status-update acknowledgment (0x72).
bool esphome::home_io_control::create_set_config1 (IoFrame &f, const uint8_t *own, const uint8_t *dst)
 Build a set-config command (0x6F) to tell the device to automatically send status updates when controlled by any remote (not just us).

Detailed Description

Command builders for the IO-Homecontrol protocol.

Definition in file proto_commands.cpp.