Home IO Control
ESPHome add-on for IO-Homecontrol devices
Loading...
Searching...
No Matches
home_io_control.climate Namespace Reference

Functions

 _has_window_companions (config)
 _validate_night_light (config)
 _inject_companion_ids (config)
 _validate_temperature_range (config)
 to_code (config)

Variables

list DEPENDENCIES = ["home_io_control"]
 IOHomeClimate = home_io_control_ns.class_("IOHomeClimate", climate.Climate, cg.Component)
 IOHomeWindowBinarySensor
 IOHomeOpenWindowDetectionSwitch
 IOHomeHeaterNightLight
str CONF_NIGHT_LIGHT = "night_light"
str CONF_WINDOW_SENSOR_ID = "_window_sensor_id"
str CONF_WINDOW_DETECTION_SWITCH_ID = "_window_detection_switch_id"
tuple DEFAULT_TEMPERATURE_RANGE_C = (-40.0, 80.0)
tuple TEMPERATURE_RANGE_BOUNDS_C = (-50.0, 100.0)
 CONFIG_SCHEMA

Function Documentation

◆ _has_window_companions()

_has_window_companions ( config)
protected
True when the declared heater kind has a window sensor and a detection switch.

The kind is the declared io_device_type/io_subtype (subtype 0 when omitted) and io_model; the
answer is the WINDOW_COMPANIONS bit of its table row, so a towel dryer (a model row without it)
gets none. A heater declared without a type gets no companions: nothing at validation time says
what it is.

Definition at line 73 of file climate.py.

◆ _inject_companion_ids()

_inject_companion_ids ( config)
protected
Declare the heater companion IDs during validation (ESPHome 2026.x StaticVector sizing).

Definition at line 99 of file climate.py.

Here is the call graph for this function:

◆ _validate_night_light()

_validate_night_light ( config)
protected
Accept `night_light:` only on a heater kind that has one (the NIGHT_LIGHT bit of its row).

Unlike require_feature(), this also rejects the key when no io_device_type is declared: the light's
registers would otherwise go to a heater nothing says has them.

Definition at line 84 of file climate.py.

◆ _validate_temperature_range()

_validate_temperature_range ( config)
protected

Definition at line 122 of file climate.py.

◆ to_code()

to_code ( config)

Definition at line 173 of file climate.py.

Variable Documentation

◆ CONF_NIGHT_LIGHT

str home_io_control.climate.CONF_NIGHT_LIGHT = "night_light"

Definition at line 66 of file climate.py.

◆ CONF_WINDOW_DETECTION_SWITCH_ID

str home_io_control.climate.CONF_WINDOW_DETECTION_SWITCH_ID = "_window_detection_switch_id"

Definition at line 70 of file climate.py.

◆ CONF_WINDOW_SENSOR_ID

str home_io_control.climate.CONF_WINDOW_SENSOR_ID = "_window_sensor_id"

Definition at line 69 of file climate.py.

◆ CONFIG_SCHEMA

home_io_control.climate.CONFIG_SCHEMA
Initial value:
= cv.All(
climate.climate_schema(IOHomeClimate)
.extend(platform_schema_extension())
.extend(
{
cv.Optional(CONF_MIN_TEMPERATURE): cv.temperature,
cv.Optional(CONF_MAX_TEMPERATURE): cv.temperature,
# A dimmable light; its IDs are declared by the schema's own GenerateIDs.
cv.Optional(CONF_NIGHT_LIGHT): light.light_schema(
IOHomeHeaterNightLight, light.LightType.BRIGHTNESS_ONLY
)
.extend(INSTANT_LIGHT_TRANSITION)
.extend(cv.COMPONENT_SCHEMA),
}
)
.extend(cv.COMPONENT_SCHEMA),
functools.partial(validate_register_poll_interval, platform="climate"),
_validate_temperature_range,
validate_device_model,
_validate_night_light,
warn_if_experimental_kind,
_inject_companion_ids,
)

Definition at line 148 of file climate.py.

◆ DEFAULT_TEMPERATURE_RANGE_C

tuple home_io_control.climate.DEFAULT_TEMPERATURE_RANGE_C = (-40.0, 80.0)

Definition at line 118 of file climate.py.

◆ DEPENDENCIES

list home_io_control.climate.DEPENDENCIES = ["home_io_control"]

Definition at line 53 of file climate.py.

◆ IOHomeClimate

home_io_control.climate.IOHomeClimate = home_io_control_ns.class_("IOHomeClimate", climate.Climate, cg.Component)

Definition at line 55 of file climate.py.

◆ IOHomeHeaterNightLight

home_io_control.climate.IOHomeHeaterNightLight
Initial value:
= home_io_control_ns.class_(
"IOHomeHeaterNightLight", light.LightOutput, cg.Component
)

Definition at line 62 of file climate.py.

◆ IOHomeOpenWindowDetectionSwitch

home_io_control.climate.IOHomeOpenWindowDetectionSwitch
Initial value:
= home_io_control_ns.class_(
"IOHomeOpenWindowDetectionSwitch", switch.Switch, cg.Component
)

Definition at line 59 of file climate.py.

◆ IOHomeWindowBinarySensor

home_io_control.climate.IOHomeWindowBinarySensor
Initial value:
= home_io_control_ns.class_(
"IOHomeWindowBinarySensor", binary_sensor.BinarySensor, cg.Component
)

Definition at line 56 of file climate.py.

◆ TEMPERATURE_RANGE_BOUNDS_C

tuple home_io_control.climate.TEMPERATURE_RANGE_BOUNDS_C = (-50.0, 100.0)

Definition at line 119 of file climate.py.