Make heating intent a switch

This commit is contained in:
2024-12-10 22:26:17 +01:00
parent e5c7d8ce5c
commit 743732e538
+6 -49
View File
@@ -14,7 +14,8 @@ esphome:
# - Boiler which keeps hot water (but can also heat it # - Boiler which keeps hot water (but can also heat it
# electrically, albeit turned on/off at the mains). # electrically, albeit turned on/off at the mains).
# #
# r/o: temperature. # r/o: internal boiler temperature.
# r/o: outgoing (top) water pipe temperature.
# #
# - Floor heating which is technically controlled # - Floor heating which is technically controlled
# via furnace control panel, but is a separate system. # via furnace control panel, but is a separate system.
@@ -25,34 +26,12 @@ esphome:
# #
# r/o: flow temperature. # r/o: flow temperature.
# r/o: active (flow temperature controlled) / inactive (idle). # r/o: active (flow temperature controlled) / inactive (idle).
# r/w: mode (instruct the flow to start heating). # r/w: intent (instruct the flow to start heating).
project: project:
name: dasfoo.heating name: dasfoo.heating
version: "2.0" version: "2.0"
on_boot:
then:
- if:
condition:
switch.is_off: relay_temperature_manual
then:
- select.set:
id: floor_mode
option: "auto"
else:
- if:
condition:
switch.is_on: relay_temperature_warm
then:
- select.set:
id: floor_mode
option: "off"
else:
- select.set:
id: floor_mode
option: "on"
packages: packages:
device_base: !include templates/esp32.yaml device_base: !include templates/esp32.yaml
@@ -151,32 +130,10 @@ switch:
pin: GPIO25 pin: GPIO25
id: relay_temperature_manual id: relay_temperature_manual
inverted: true inverted: true
restore_mode: RESTORE_DEFAULT_OFF # Non-manual is no longer wired to anything.
restore_mode: ALWAYS_ON
- platform: gpio - platform: gpio
pin: GPIO26 pin: GPIO26
id: relay_temperature_warm name: "Floor intent"
inverted: true
restore_mode: RESTORE_DEFAULT_OFF restore_mode: RESTORE_DEFAULT_OFF
select:
- platform: template
name: "Floor mode"
id: floor_mode
options:
- "on"
- "off"
- "auto"
optimistic: true
set_action:
lambda: |-
if (x == "auto") {
id(relay_temperature_manual).turn_off();
} else {
if (x == "off") {
id(relay_temperature_warm).turn_on();
} else {
id(relay_temperature_warm).turn_off();
}
id(relay_temperature_manual).turn_on();
}