|
Home IO Control
ESPHome add-on for IO-Homecontrol devices
|
Experimental climate entity for IO-Homecontrol heaters, driven by a heating profile. More...
#include "esphome/components/climate/climate.h"#include "esphome/core/component.h"#include "platform_entity_base.h"#include "proto_heating.h"#include "proto_heating_profiles.h"#include <vector>Go to the source code of this file.
Classes | |
| class | esphome::home_io_control::IOHomeClimate |
| Climate entity for IO-Homecontrol heating devices. More... | |
Namespaces | |
| namespace | esphome |
| namespace | esphome::home_io_control |
Experimental climate entity for IO-Homecontrol heaters, driven by a heating profile.
Maps Home Assistant climate semantics (HVAC mode, target temperature, presets) onto the device's heating profile (proto_heating_profiles.h). The profile says what the card offers and how each choice reaches the device: as private registers (proto_heating.h, sent through IOHomeControlComponent::send_heating_command() and read_heating_register()) or as a heating level in the standard EXECUTE (IOHomeControlComponent::set_heating_level()). This class has no per-device-type branch; the heating_control hub action shares the register send path.
State is observed, not predicted. The hub polls the heater (default every 5 minutes) and this entity publishes from IoDevice::heating, which only a decoded reply changes. After an accepted register write the register is read back; after a level write the hub's settle poll reads the level. Until the first read succeeds the entity shows the last commanded mode, setpoint or preset, and nothing else. A preset that no register reports back (presence) stays "last commanded". The entity deliberately does NOT use the OptimisticState overlay (ADR 0030) — there is never a prediction to keep apart from an observation (ADR 0054, ADR 0055).
The register path is confirmed on an Atlantic AGILIA IO radiator: setpoint and mode writes, their read-back, and the poll's room temperature and regulator readings (issue #165, corpus tests/corpus/captures/exchange/atlantic_agilia_exchange_status_read.yaml).
Definition in file platform_climate.h.