more automation included

This commit is contained in:
Constantin Pascal
2026-02-09 11:17:14 +02:00
parent 677fb42b7a
commit 3235fa47a4
5 changed files with 0 additions and 178 deletions
-70
View File
@@ -1,70 +0,0 @@
- alias: DHW Boiler Heater Relay Automation
description: >-
This automation makes sure the boiler auxiliary heater only works when the
boost is required and the heatpump aux heater is not on
triggers:
- trigger: state
entity_id:
- binary_sensor.dhw_use_boiler_aux_heater
conditions: []
actions:
- if:
- condition: state
entity_id: binary_sensor.dhw_use_boiler_aux_heater
state: "on"
then:
- type: turn_on
device_id: b6129664e9bea24cdab57a9c743b885d
entity_id: 1b7e7c5bd07a3823f8df13b623f95e0a
domain: switch
else:
- type: turn_off
device_id: b6129664e9bea24cdab57a9c743b885d
entity_id: 1b7e7c5bd07a3823f8df13b623f95e0a
domain: switch
mode: single
- alias: DHW Manage PV Thermostat
description: Controls shadow thermostat based on PV excess availability
mode: restart
trigger:
# Trigger when PV power becomes sufficient (with delay)
- platform: state
entity_id: binary_sensor.dhw_pv_power_enough_for_aux_heater
to: "on"
for:
minutes: "{{ states('input_number.dhw_pv_excess_usage_start_delay')|int }}"
id: "turn_on"
# Trigger when PV power becomes insufficient (with delay)
- platform: state
entity_id: binary_sensor.dhw_pv_power_enough_for_aux_heater
to: "off"
for:
minutes: "{{ states('input_number.dhw_pv_excess_usage_stop_delay')|int }}"
id: "turn_off"
action:
- choose:
- conditions:
- condition: state
entity_id: input_boolean.dhw_use_excess_pv_for_aux_heater
state: "on"
- condition: trigger
id: "turn_on"
sequence:
- service: climate.set_temperature
target:
entity_id: climate.dhw_pv_excess_heating
data:
temperature: "{{ states('input_number.dhw_pv_target_temperature') | float }}"
hvac_mode: "heat"
- conditions:
- condition: trigger
id: "turn_off"
sequence:
- service: climate.set_hvac_mode
target:
entity_id: climate.dhw_pv_excess_heating
data:
hvac_mode: "off"
-23
View File
@@ -1,23 +0,0 @@
- platform: generic_thermostat
name: "DHW PV Excess Heating"
heater: input_boolean.boiler_pv_dummy_heater
target_sensor: sensor.boiler_temp
min_temp: 10
max_temp: 70
cold_tolerance: 1
hot_tolerance: 0.5
min_cycle_duration:
minutes: 2
initial_hvac_mode: "off"
precision: 0.1
- platform: generic_thermostat
name: "Boiler Temperature"
heater: input_boolean.boiler_pv_dummy_heater # Uses the dummy switch
target_sensor: sensor.boiler_temp # Or whatever sensor you're using from heatpump
min_temp: 10
max_temp: 70
cold_tolerance: 4.0
hot_tolerance: 1.0
min_cycle_duration:
minutes: 2
-20
View File
@@ -1,20 +0,0 @@
dhw_aux_heater_manual_override:
name: "DHW Aux Heater Manual Override"
icon: mdi:water-boiler
dhw_allow_aux_heater_usage:
name: "DHW Allow Aux Heater Usage"
icon: mdi:check-circle
dhw_use_excess_pv_for_aux_heater:
name: "DHW Use Excess PV for Aux Heater"
icon: mdi:solar-power
dhw_allow_aux_heater_in_all_modes:
name: "DHW Allow Aux Heater in All Modes"
icon: mdi:thermostat
# Dummy switch for shadow thermostat
boiler_pv_dummy_heater:
name: "Boiler PV Dummy Heater"
icon: mdi:flash
-23
View File
@@ -1,23 +0,0 @@
dhw_aux_heater_cut_off_temperature_threshold:
name: "DHW Aux Heater Cut-off Temperature Threshold"
min: 50
max: 85
step: 1
unit_of_measurement: "°C"
icon: mdi:thermometer-high
dhw_aux_heater_temperature_threshold:
name: "DHW Aux Heater Temperature Threshold"
min: 1
max: 15
step: 0.5
unit_of_measurement: "°C"
icon: mdi:thermometer-lines
dhw_pv_target_temperature:
name: "DHW PV Target Temperature"
min: 40
max: 70
step: 1
unit_of_measurement: "°C"
icon: mdi:solar-power
-42
View File
@@ -1,42 +0,0 @@
- binary_sensor:
- name: "DHW: Use Boiler Aux Heater"
unique_id: "dhw_config_use_boiler_aux_heater"
state: >
{% set manual_on = states('input_boolean.dhw_aux_heater_manual_override') == 'on' %}
{% set hp_aux_off = states('sensor.heat_pump_auxiliary_heater') != 'on' %}
{% set boiler_aux_allowed = states('input_boolean.dhw_allow_aux_heater_usage') == 'on' %}
{% set boiler_temp_ok = states('sensor.boiler_temp')|float < states('input_number.dhw_aux_heater_cut_off_temperature_threshold')|float %}
{# allowed checks if the resistance is permitted to run, mostly to check we're not running both boiler and HP resistance at the same time #}
{% set allowed = hp_aux_off and boiler_aux_allowed and boiler_temp_ok %}
{# here go various other conditions that influence the decision to run the boiler auxiliary heater #}
{# PV Excess to boiler - now using shadow thermostat #}
{% set pv_excess = states('input_boolean.dhw_use_excess_pv_for_aux_heater') == 'on' and
state_attr('climate.dhw_pv_excess_heating', 'hvac_action') == 'heating' %}
{% set thermostat_activity_boost = state_attr('climate.boiler_temperature','preset_mode') == 'activity' and
state_attr('climate.boiler_temperature','hvac_action') == 'heating'%}
{% set thermostat_normal_boost = states('input_boolean.dhw_allow_aux_heater_in_all_modes') == 'on' and
state_attr('climate.boiler_temperature','hvac_action') == 'heating'%}
{{ manual_on or
(allowed and (
pv_excess or
thermostat_activity_boost or
thermostat_normal_boost
)) }}
- name: "DHW: PV Power Enough for Aux Heater "
unique_id: "dhw_pv_power_enough_for_aux_heater"
state: >
{% set phase_buffer = states('input_number.dhw_pv_excess_usage_buffer')|float / 3 %}
{% set phase_heater_power= states('input_number.dhw_aux_heater_power')|float /3 %}
{% set turn_on_threshold = -1*(phase_buffer+phase_heater_power) %}
{% if is_state('switch.boiler_heater_relay_switch_0', 'on') %}
{{ states('sensor.deye_12_external_ct1_power')|float <= 0
and states('sensor.deye_12_external_ct2_power')|float <= 0
and states('sensor.deye_12_external_ct3_power')|float <= 0 }}
{% else %}
{{ states('sensor.deye_12_external_ct1_power')|float < turn_on_threshold
and states('sensor.deye_12_external_ct2_power')|float < turn_on_threshold
and states('sensor.deye_12_external_ct3_power')|float < turn_on_threshold }}
{% endif %}
device_class: power