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

Capability bits of a device kind: what a (node type, subtype) can do. More...

#include <cstdint>
Include dependency graph for proto_device_features.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  esphome
namespace  esphome::home_io_control
namespace  esphome::home_io_control::device_feature
 Capability bits carried by a DeviceTypeInfo row and resolved onto a device record.

Typedefs

using esphome::home_io_control::DeviceFeatures = uint16_t
 Capability bits of a device kind; see device_feature.

Functions

constexpr bool esphome::home_io_control::has_feature (DeviceFeatures set, DeviceFeatures bit)
 True when every bit of bit is set in set.

Variables

static constexpr DeviceFeatures esphome::home_io_control::device_feature::MAIN_PARAMETER_ONLY = 1U << 0U
 EXECUTE carries no functional parameter at all (VELUX KLF 200 API specification, Appendix 2: "main parameter only").
static constexpr DeviceFeatures esphome::home_io_control::device_feature::LEVELS = 1U << 1U
 Intermediate main-parameter values: a percent position, a brightness or a heat level.
static constexpr DeviceFeatures esphome::home_io_control::device_feature::TILT = 1U << 2U
 Slat angle (functional parameter 3) through the extended status and the tilt EXECUTE.
static constexpr DeviceFeatures esphome::home_io_control::device_feature::FAVORITE = 1U << 3U
 Named position 0xD800, the favourite ("my") position.
static constexpr DeviceFeatures esphome::home_io_control::device_feature::VENT = 1U << 4U
 Named position 0xD803, the window opener's secured ventilation position (VELUX KLF 200 API specification, section 14.2).
static constexpr DeviceFeatures esphome::home_io_control::device_feature::PARTIAL = 1U << 5U
 Named position 0xD809, sent by the Partial Position button: a garage opener runs its stored partial position (issue #163).
static constexpr DeviceFeatures esphome::home_io_control::device_feature::PEDESTRIAN = 1U << 6U
 Named position 0xD807, sent by the Pedestrian Position button.
static constexpr DeviceFeatures esphome::home_io_control::device_feature::EXTENDED_POSITION_FRAME = 1U << 7U
 Position and force-open EXECUTEs use the 8-byte form with functional parameter 1 set (the form validated on roller shutters, awnings, the Izymo dimmer and the pergola); without it they use the 6-byte main-parameter form.
static constexpr DeviceFeatures esphome::home_io_control::device_feature::WINDOW_COMPANIONS = 1U << 8U
 Heater window sensor and open-window-detection switch.
static constexpr DeviceFeatures esphome::home_io_control::device_feature::INVERTED = 1U << 9U
 Direction inverted by default (horizontal awnings: IO 0 is closed).
static constexpr DeviceFeatures esphome::home_io_control::device_feature::WATER_HEATER = 1U << 10U
 Read and commanded as a domestic hot water heater: family-0x00 registers (proto_dhw.h) for its readings and mode, the status main parameter for its target temperature.
static constexpr DeviceFeatures esphome::home_io_control::device_feature::NIGHT_LIGHT = 1U << 11U
 A night light built into a heater with private registers: on/off in register 0x0144, brightness in 0x0142 (proto_heating.h).

Detailed Description

Capability bits of a device kind: what a (node type, subtype) can do.

The bits are carried by the rows of the node-type table (proto_device_types.h) and resolved onto each device record, so the hub, the platforms and the Python codegen ask one place whether a device has a feature instead of branching on a device type. A bit says whether a device has a capability; how it is commanded stays in the command builders and the profile tables.

This leaf header includes only <cstdint>: IoDevice (proto_device_model.h) carries a DeviceFeatures word, and proto_device_types.h already includes proto_device_model.h.

Definition in file proto_device_features.h.