|
Home IO Control
ESPHome add-on for IO-Homecontrol devices
|
Heating profiles: what a climate card offers for each kind of heater, and how. More...
#include "proto_device_model.h"#include "proto_heating.h"#include "proto_sizes.h"#include <cstddef>#include <cstdint>Go to the source code of this file.
Classes | |
| struct | esphome::home_io_control::HeatingFp |
| A functional parameter and its value. More... | |
| struct | esphome::home_io_control::HeatingModeEntry |
| One HVAC mode the card offers and the wire value that selects it. More... | |
| struct | esphome::home_io_control::HeatingPresetEntry |
| One preset the card offers. More... | |
| struct | esphome::home_io_control::HeatingObservedState |
| What a device-reported wire value shows on the card. More... | |
| struct | esphome::home_io_control::HeatingProfileFeatures |
| Companion entities and traits a profile has. More... | |
| struct | esphome::home_io_control::HeatingProfile |
| One heater kind. More... | |
Namespaces | |
| namespace | esphome |
| namespace | esphome::home_io_control |
| namespace | esphome::home_io_control::heating_level |
| Heating levels (low byte of the main parameter, prefix HEATING_LEVEL_MP_PREFIX). | |
| namespace | esphome::home_io_control::heating_alias |
| Setpoint aliases (low byte of the main parameter, prefix HEATING_ALIAS_MP_PREFIX). | |
| namespace | esphome::home_io_control::heating_mode_flags |
| Values of functional parameter 9 on the heating temperature interface: the active mode. | |
| namespace | esphome::home_io_control::heating_fp16 |
| Values of functional parameter 16 on the heat pump: the on/off state. | |
Functions | |
| const HeatingProfile * | esphome::home_io_control::find_heating_profile (DeviceType type, uint8_t subtype) |
| Look up the heating profile for a (type, subtype). | |
| bool | esphome::home_io_control::device_uses_heating_registers (DeviceType type, uint8_t subtype) |
| Does a climate entity drive this device over the private register protocol? | |
| bool | esphome::home_io_control::device_uses_heating_levels (DeviceType type, uint8_t subtype) |
| Does a climate entity drive this device with heating levels? | |
| bool | esphome::home_io_control::device_uses_heating_temperature (DeviceType type, uint8_t subtype) |
| Does a climate entity drive this device with a temperature or an alias in the main parameter? | |
| bool | esphome::home_io_control::encode_temperature_main_parameter (float celsius, float min_c, float max_c, uint16_t &main_parameter) |
| Encode a temperature as a main parameter over an encoding range. | |
| bool | esphome::home_io_control::decode_temperature_main_parameter (uint16_t main_parameter, float min_c, float max_c, float &celsius) |
| Decode a main parameter as a temperature over an encoding range (the inverse of encode_temperature_main_parameter()). | |
| constexpr uint16_t | esphome::home_io_control::heating_level_main_parameter (uint8_t level) |
| Main parameter of a heating level, as it travels in an EXECUTE and in a status reply. | |
| constexpr uint16_t | esphome::home_io_control::heating_prefixed_main_parameter (uint8_t prefix, uint8_t low) |
| Main parameter of a prefixed value (a level or an alias). | |
| bool | esphome::home_io_control::decode_heating_level (uint16_t main_parameter, uint8_t &level) |
| Read a heating level out of a main parameter. | |
| const HeatingObservedState * | esphome::home_io_control::find_observed_state (const HeatingProfile &profile, uint8_t wire) |
| Find what a device-reported wire value shows on the card. | |
Variables | |
| static constexpr uint8_t | esphome::home_io_control::HEATING_LEVEL_MP_PREFIX = 0xFC |
| Main-parameter prefix byte of a heating level: the level occupies the low byte. | |
| static constexpr uint8_t | esphome::home_io_control::heating_level::OFF = 0x00 |
| Off. | |
| static constexpr uint8_t | esphome::home_io_control::heating_level::FROST_PROTECTION = 0x01 |
| Frost protection. | |
| static constexpr uint8_t | esphome::home_io_control::heating_level::ECO = 0x02 |
| Economy. | |
| static constexpr uint8_t | esphome::home_io_control::heating_level::COMFORT_MINUS_2 = 0x03 |
| Comfort, two degrees lower. | |
| static constexpr uint8_t | esphome::home_io_control::heating_level::COMFORT_MINUS_1 = 0x04 |
| Comfort, one degree lower. | |
| static constexpr uint8_t | esphome::home_io_control::heating_level::COMFORT = 0x05 |
| Comfort. | |
| static constexpr uint8_t | esphome::home_io_control::heating_level::BOOST = 0x07 |
| Boost. | |
| static constexpr uint8_t | esphome::home_io_control::heating_level::SECURED = 0x3F |
| Secured; reported by the device, never commanded. | |
| static constexpr uint8_t | esphome::home_io_control::HEATING_ALIAS_MP_PREFIX = 0xD8 |
| Main-parameter prefix byte of a setpoint alias: the alias occupies the low byte. | |
| static constexpr uint8_t | esphome::home_io_control::heating_alias::COMFORT = 0x0F |
| The device's comfort setpoint. | |
| static constexpr uint8_t | esphome::home_io_control::heating_alias::THERMOSTAT_ECO = 0x0E |
| Heating temperature interface: the economy setpoint. | |
| static constexpr uint8_t | esphome::home_io_control::heating_alias::SECURED = 0x0A |
| Heating temperature interface: the secured setpoint. | |
| static constexpr uint8_t | esphome::home_io_control::heating_alias::HEAT_PUMP_SETBACK = 0x0E |
| Heat pump: the setback setpoint. | |
| static constexpr uint8_t | esphome::home_io_control::heating_alias::HEAT_PUMP_ECO = 0x12 |
| Heat pump: the economy setpoint. | |
| static constexpr uint8_t | esphome::home_io_control::heating_alias::HEAT_PUMP_HALTED = 0x13 |
| Heat pump: halted. | |
| static constexpr uint16_t | esphome::home_io_control::HEATING_OFF_MP = 0xD400 |
| Main parameter that means "off": the unknown-position marker, which a command uses together with a functional parameter to switch a device off. | |
| static constexpr uint16_t | esphome::home_io_control::HEATING_MP_FROM_TARGET = 0xFFFF |
| Sentinel for HeatingModeEntry::main_parameter: send the entity's target temperature, encoded over the device's range, as the main parameter. | |
| static constexpr uint8_t | esphome::home_io_control::heating_mode_flags::OFF = 0x00 |
| Off. | |
| static constexpr uint8_t | esphome::home_io_control::heating_mode_flags::AUTO = 0x01 |
| The device follows its own schedule. | |
| static constexpr uint8_t | esphome::home_io_control::heating_mode_flags::MANUAL = 0x02 |
| The device follows the commanded setpoint. | |
| static constexpr uint16_t | esphome::home_io_control::heating_fp16::ON = 0x4000 |
| On: sent with a setpoint alias to select it. | |
| static constexpr uint16_t | esphome::home_io_control::heating_fp16::OFF = 0x8000 |
| Off: sent with HEATING_OFF_MP. | |
| static constexpr uint16_t | esphome::home_io_control::HEATING_TEMPERATURE_MP_SPAN = 51200 |
| Number of main-parameter steps across the encoding range (the full position scale, 0xC800). | |
Heating profiles: what a climate card offers for each kind of heater, and how.
A profile is one row per (node type, subtype) that a climate: entity can drive. It names the control path (the private register protocol of proto_heating.h, or the standard EXECUTE with a heating level as the main parameter), the HVAC modes and presets the card shows, how each maps to a wire value in both directions, which registers a poll reads and which companion entities exist. The platform asks the profile and never branches on a device type.
The enums here are protocol-side: they carry no ESPHome type. The platform maps HeatingHvacMode and HeatingPresetId onto ESPHome's climate modes and presets.
Heating-level control of the plain electrical heater (node type 52, subtype 0) has no capture or hardware report yet. Confirm with one before calling it supported.
Every 52/1 seen is an Atlantic radiator. A non-Atlantic 52/1 would need the heating-level path instead; the profile keys on (type, subtype) only.
Definition in file proto_heating_profiles.h.