Ebben az útmutatóban egy olyan rendszert építünk fel, amely a legolcsóbb Xiaomi Bluetooth szenzorokból és egy 4+1 csatornás relémodulból (TYWB) varázsol professzionális zónavezérlést.
1. A Termosztátok létrehozása (Zónák)
A Home Assistant configuration.yaml fájljába kell beilleszteni a climate szekciót. Itt definiáljuk a négy különálló helyiséget. Minden helyiség saját Xiaomi szenzorral és saját zónaszeleppel (vagy szivattyúval) rendelkezik.
Másolható YAML kód:
YAML
climate:
- platform: generic_thermostat
name: "Nappali Zóna"
unique_id: term_zona_nappali
heater: switch.tywb_relay_1 # Az 1. reléd a TYWB modulon
target_sensor: sensor.xiaomi_temp_1 # A nappali Xiaomi szenzora
min_temp: 15
max_temp: 25
cold_tolerance: 0.3 # 21°C esetén 20.7-nél kapcsol be
hot_tolerance: 0.1 # 21.1-nél kapcsol ki
initial_hvac_mode: "heat"
precision: 0.1
- platform: generic_thermostat
name: "Hálószoba Zóna"
unique_id: term_zona_haloszo
heater: switch.tywb_relay_2 # A 2. relé
target_sensor: sensor.xiaomi_temp_2 # A háló szenzora
min_temp: 15
max_temp: 24
cold_tolerance: 0.3
hot_tolerance: 0.1
initial_hvac_mode: "heat"
- platform: generic_thermostat
name: "Gyerekszoba Zóna"
unique_id: term_zona_gyerek
heater: switch.tywb_relay_3 # A 3. relé
target_sensor: sensor.xiaomi_temp_3 # A gyerekszoba szenzora
min_temp: 18
max_temp: 25
cold_tolerance: 0.2
hot_tolerance: 0.1
initial_hvac_mode: "heat"
- platform: generic_thermostat
name: "Konyha Zóna"
unique_id: term_zona_konyha
heater: switch.tywb_relay_4 # A 4. relé
target_sensor: sensor.xiaomi_temp_4 # A konyha szenzora
min_temp: 15
max_temp: 24
cold_tolerance: 0.4
hot_tolerance: 0.2
initial_hvac_mode: "heat"
2. Az 5. Relé (Kazán Mester) Vezérlése
Hogy ne kelljen a kazánt minden relére rákötni, egy 5. relé (switch.kazan_master) indítja el magát a kazánt, ha bármelyik zóna hőt kér (azaz bármelyik zóna-relé bekapcsol).
Automatizálás (automations.yaml):
YAML
alias: "Kazán Mester Vezérlés"
description: "Indítja az 5. relét, ha bármelyik zóna aktív"
trigger:
- platform: state
entity_id:
- switch.tywb_relay_1
- switch.tywb_relay_2
- switch.tywb_relay_3
- switch.tywb_relay_4
action:
- service: >
{% if is_state('switch.tywb_relay_1', 'on') or
is_state('switch.tywb_relay_2', 'on') or
is_state('switch.tywb_relay_3', 'on') or
is_state('switch.tywb_relay_4', 'on') %}
switch.turn_on
{% else %}
switch.turn_off
{% endif %}
target:
entity_id: switch.kazan_master
3. Hibajelzés: Telefonos Értesítés
Ha egy Xiaomi szenzor eleme lemerül vagy a Bluetooth jel elvész, a fűtés bizonytalanná válik. Ez az automatizálás értesítést küld a mobilodra, ha 10 percen keresztül nem jön adat.
YAML
alias: "Fűtési Rendszer Hibaüzenet"
trigger:
- platform: state
entity_id:
- sensor.xiaomi_temp_1
- sensor.xiaomi_temp_2
- sensor.xiaomi_temp_3
- sensor.xiaomi_temp_4
to: "unavailable"
for: "00:10:00"
action:
- service: notify.mobile_app_sajat_telefonod # Cseréld ki a sajátodra!
data:
title: "⚠️ Kazán Vezérlő Hiba"
message: "A(z) {{ trigger.to_state.attributes.friendly_name }} nem küld adatot! Ellenőrizd a szenzort."
data:
priority: high
4. Dashboard (Műszerfal) Kialakítása
A kijelzőn látni akarjuk a kazán aktuális állapotát és a 4 termosztátot is. Használj egy Vertical Stack (Függőleges oszlop) kártyát:
- Felső elem: Egy Entity kártya a
switch.kazan_masterentitással. Ikonnak válassz egy lángot (mdi:fire), ami sárgára vált, ha ég a kazán. - Alsó elem: Egy Grid (Rács) kártya 2 oszloppal, amelybe behúzod a 4 létrehozott termosztátot (
climate.nappali_futes, stb.).
5. Bekötési összefoglaló
- Tápellátás: A 24V-os tápegységed a relémodul AC/DC bemenetére megy (polaritás nem számít).
- Relék (1-4): Ezek kapcsolják a szelepeket (Dry Contact, tehát a szelep saját tápfeszültségét szakítják meg).
- 5. Relé: A COM és NO pontjai mennek a kazán termosztát bemenetére.
- Szoftver: A Home Assistant a „Bluetooth Proxy”-ként működő ESP32-n keresztül olvassa a Xiaomi szenzorokat, és a Wi-Fi-n lévő TYWB relét kapcsolja.
Ezzel a leírással egy teljes, üzembiztos és biztonságos fűtési rendszered lesz!
Személyre szabás a 4 zóna, 7 relé kiépítéshez.
Személyre szabott configuratins.yaml:
Fontos: Ha a fájlodban már vannak ilyen szekciók (pl. már van switch: vagy automation: sor), akkor ne másold be a fő kulcsszavakat mégegyszer, csak az alattuk lévő részeket a megfelelő behúzással.
YAML
# 1. SEGÉDKAPCSOLÓ (A relé nélküli Gyerekszobához)
input_boolean:
termosztat_gyerek_virtualis:
name: "Gyerekszoba Fűtés Igény"
# 2. RELÉ CSOPORT (A Nappali 5 körének összefogásához)
switch:
- platform: group
name: "Nappali Osszes Rele"
unique_id: switch_group_nappali
entities:
- switch.tywb_relay_3
- switch.tywb_relay_4
- switch.tywb_relay_5
- switch.tywb_relay_6
- switch.tywb_relay_7
# 3. TERMOSZTÁTOK (4 Zóna)
climate:
- platform: generic_thermostat
name: "Hálószoba Zóna"
unique_id: term_zona_halo
heater: switch.tywb_relay_1
target_sensor: sensor.xiaomi_temp_1
min_temp: 15
max_temp: 25
cold_tolerance: 0.3
hot_tolerance: 0.1
initial_hvac_mode: "heat"
precision: 0.1
- platform: generic_thermostat
name: "Dolgozószoba Zóna"
unique_id: term_zona_dolgozo
heater: switch.tywb_relay_2
target_sensor: sensor.xiaomi_temp_2
min_temp: 15
max_temp: 25
cold_tolerance: 0.3
hot_tolerance: 0.1
initial_hvac_mode: "heat"
precision: 0.1
- platform: generic_thermostat
name: "Gyerekszoba Zóna"
unique_id: term_zona_gyerek
heater: input_boolean.termosztat_gyerek_virtualis
target_sensor: sensor.xiaomi_temp_3
min_temp: 15
max_temp: 25
cold_tolerance: 0.3
hot_tolerance: 0.1
initial_hvac_mode: "heat"
precision: 0.1
- platform: generic_thermostat
name: "Nappali Zóna"
unique_id: term_zona_nappali
heater: switch.nappali_osszes_rele
target_sensor: sensor.xiaomi_temp_4
min_temp: 15
max_temp: 25
cold_tolerance: 0.3
hot_tolerance: 0.1
initial_hvac_mode: "heat"
precision: 0.1
# 4. KAZÁNVEZÉRLÉS (Automatizálás)
# Megjegyzés: Ha az automations.yaml-be teszed, a "automation:" sor és a behúzás nem kell!
automation:
- alias: "Kazán Indítás Vezérlés"
unique_id: fotes_kazan_vezerles_001
trigger:
- platform: state
entity_id:
- switch.tywb_relay_1
- switch.tywb_relay_2
- input_boolean.termosztat_gyerek_virtualis
- switch.nappali_osszes_rele
action:
- action: >
{% if is_state('switch.tywb_relay_1', 'on') or
is_state('switch.tywb_relay_2', 'on') or
is_state('input_boolean.termosztat_gyerek_virtualis', 'on') or
is_state('switch.nappali_osszes_rele', 'on') %}
switch.turn_on
{% else %}
switch.turn_off
{% endif %}
target:
entity_id: switch.tywb_relay_8
Tetszik😎