Интеграция Home Assistant для климат-контроллеров iOhouse Thermozone
Интеграция использует grouped api_climate/apiaction v2 и автоматически подхватывает структуру устройств из самого контроллера. Вместо жёсткой модели из 4 legacy-зон A1/A2/B1/B2 Home Assistant теперь строит сущности по фактически загруженным устройствам unit_id и группам, которые контроллер отдаёт в cfg.groups[].d[].
- Динамическая структура устройств: интеграция больше не ограничена 4 фиксированными зонами и загружает все климатические устройства так, как они сконфигурированы в контроллере
- Имена и группы из контроллера: Home Assistant использует
group_nameи имя устройства, а не искусственныеA1/A2/B1/B2 - Управление температурой: изменение уставки, включение/выключение, пресеты
Comfort,Away,Eco,Home,Sleep - Индивидуальные лимиты: для каждого обнаруженного устройства можно задать свои
min/max/step - Быстрый отклик UI: состояние обновляется сразу после успешной команды
- PWM сенсоры: уровень модуляции по каждому устройству в диапазоне
0-100% - DS18B20: все настроенные 1-wire датчики контроллера передаются в Home Assistant
- DHT: температура и влажность по DHT-каналам контроллера передаются отдельными сенсорами только для реально доступных каналов
- Телеметрия клапанов: позиция и состояние клапана для 2-pin зон
- Ручные outputs: выходы контроллера создаются как switch-сущности, показывают живое состояние даже когда заняты логикой контроллера, но ручные команды для занятых каналов не отправляются
- Летний режим: глобальный переключатель системы
- Диагностические атрибуты:
unit_id, группа, выбранный режим, тип устройства, burner и служебные флаги
- OTA обновление прошивки через Home Assistant
- Проверка доступной версии и сущность
update
- SSDP / UPnP
- DHCP
- Zeroconf / mDNS
- Пошаговый мастер настройки с конфигурацией лимитов температуры по каждому устройству
- Откройте HACS в Home Assistant.
- Перейдите в раздел Integrations.
- Если репозиторий ещё не добавлен, откройте меню с тремя точками и выберите Custom repositories.
- Добавьте URL
https://github.com/insound/iohouse_climate. - Выберите категорию Integration.
- Установите iOhouse Climate.
- Перезапустите Home Assistant.
- Скачайте последнюю версию из releases.
- Извлеките каталог
custom_components/iohouse_climateв конфигурацию Home Assistant. - Перезапустите Home Assistant.
Интеграция поддерживает автообнаружение контроллеров iOhouse в локальной сети:
- Перейдите в Settings → Devices & Services.
- Если контроллер найден автоматически, Home Assistant покажет предложение настроить интеграцию.
- Нажмите Configure и пройдите мастер.
- Перейдите в Settings → Devices & Services.
- Нажмите Add Integration.
- Найдите iOhouse Climate.
- Введите параметры контроллера:
- IP address / Host
- Port: обычно
80 - Name
- API key: опционально, если на контроллере включена авторизация
- Интеграция считает
api_climatev2 и покажет список реально доступных устройств из контроллера. - Для каждого устройства задайте температурные ограничения.
Для каждого обнаруженного устройства можно настроить:
| Параметр | Описание | По умолчанию |
|---|---|---|
| Min temperature | Минимальная уставка | 1.0 |
| Max temperature | Максимальная уставка | 100.0 |
| Temperature step | Шаг изменения температуры | 0.1 |
climate.<group>_<device>: климатическое устройство, созданное поunit_idи имени из контроллера- режимы:
Heat,Off - пресеты:
Comfort,Away,Eco,Home,Sleep
sensor.<device>_pwm: диагностический PWM-сенсорsensor.<controller>_wifi_rssi: уровень сигнала Wi-Fi контроллераsensor.<controller>_free_heap: свободная heap-память контроллераsensor.<controller>_uptime: аптайм контроллераsensor.<ds18b20>: температура DS18B20sensor.<dht>_temperature: температура DHTsensor.<dht>_humidity: влажность DHT
valve.<device>_valve: сущность клапана для устройств с 2-pin телеметрией
switch.<controller>_summer_mode: летний режим контроллераswitch.<controller>_output_N: ручные выходы контроллера; занятые контроллером каналы остаются видимыми и показывают live-state, но ручное переключение для них игнорируется
update.<controller>_firmware: обновление прошивки
binary_sensor.<controller>_legionella_work: активен ли сейчас цикл антилегионеллы
api_climateрассчитан на использование в доверенной локальной сети- если на контроллере включён API key, write-команды требуют
apikey_rest - для наиболее согласованного поведения рекомендуется обновлять прошивку контроллера и HA integration вместе
- при переходе со старой интеграции, где адресация строилась на
A1/A2/B1/B2, стоит проверить пользовательскиеmin/max/step, потому что теперь они привязаны кunit_id - DHT-сущности создаются только когда контроллер сообщает валидный и доступный DHT-канал; неподключённые каналы больше не появляются как
unknown
automation:
- alias: "Night Eco Mode"
trigger:
platform: time
at: "22:00:00"
action:
service: climate.set_preset_mode
target:
entity_id: climate.kitchen_floor
data:
preset_mode: "eco"- auto-discovery now better matches both
iohouseandthermozonecontroller naming - discovery setup no longer tries to read units before the user had a chance to enter an API key
- controller diagnostics now expose Wi-Fi RSSI, free heap and uptime sensors
- controller
legionella_workis now available as a read-only binary sensor api_climateparsing now keeps more v2 metadata, includingup,lw,ft,ca, configcap,zoneand config-sidesl- valve entities can now appear later when valve telemetry becomes available after startup, instead of only on the first refresh
- options flow refreshes the current controller unit list before editing per-unit temperature limits
- firmware update entity now preserves the last known
upd/fw/uvvalues when partialst.syspayloads omit them, so the Home Assistant update sensor no longer drops into an unavailable/unknown state after otherwise successful controller requests
- controller device is registered before child zone devices reference it through
via_device - partial
/apiactionresponses no longer make unrelated climate entities temporarily unavailable climate.set_temperaturenow sendstemperatureandhvac_modetogether when Home Assistant provides both- multi-entity climate actions with identical parameters are coalesced into one
/apiactionrequest - batched zone commands are sent as repeated query arguments, for example
uid=a&uid=b&p=1 - the controller also accepts the fallback
uids=a,bform for batch zone actions
- DS18B20 and DHT controller sensors now preserve hundredths in Home Assistant, while climate entities intentionally stay at
0.1 - busy controller outputs now remain visible as live switches in Home Assistant, but manual commands for occupied outputs are blocked locally and are not sent to the controller
- DHT discovery was tightened: disconnected DHT channels no longer create
unknownentities in Home Assistant - already created DHT entities now correctly become unavailable if the sensor disappears or loses valid data
- manual controller outputs were restored as Home Assistant switches
- all configured
DS18B20and availableDHTsensors are now exposed as Home Assistant sensors - integration now reads controller IO metadata from the same v2 payload instead of depending on legacy-only paths
current temperatureиtarget temperatureприведены к той же видимой точности0.1 °C, что используется в локальном интерфейсе контроллераtarget temperatureтеперь следует за эффективной уставкой контроллера, поэтому Home Assistant не расходится с локальным UI после изменения температуры- шаг температуры по умолчанию выровнен до
0.1, а старые более мелкие значения мягко нормализуются при обновлении настроек
- добавлен
strings.json, чтобы config/options flow показывал нормальные подписи полей и имя устройства на каждом шаге настройки
- интеграция переведена на
api_climatev2 grouped payload - discovery теперь использует стабильные
unit_idизcfg.groups[].d[] - polling использует
cfg_hashи автоматическое обновление конфигурации при изменениях - write-команды отправляются через
apiaction?uid=<unit_id>&... - метаданные устройств включают
group_name,selected_modeиdevice_type - неподдерживаемые legacy output write switches удалены из публичного API интеграции