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

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>
Include dependency graph for platform_climate.h:
This graph shows which files directly or indirectly include this file:

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

Detailed Description

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).

Todo
The heating-level and temperature EXECUTE paths, and the presence write behind the Home / Away presets, are unconfirmed on hardware; confirm with a capture from a plain heater, a heating temperature interface or a heat pump.
Warning
The EXECUTE-commanded profiles are unvalidated on hardware. See docs/configuration/climate.md.

Definition in file platform_climate.h.