refactoring
This commit is contained in:
@@ -196,20 +196,9 @@ variables:
|
|||||||
alarm_control_panel: !input alarm_control_panel
|
alarm_control_panel: !input alarm_control_panel
|
||||||
override_reset_duration: !input override_reset_duration
|
override_reset_duration: !input override_reset_duration
|
||||||
is_heating_period: >
|
is_heating_period: >
|
||||||
{% if heating_period_switch is none or heating_period_switch == '' %}
|
{{ heating_period_switch in [none, ''] or is_state(heating_period_switch, 'on') }}
|
||||||
true
|
|
||||||
{% else %}
|
|
||||||
{{ is_state(heating_period_switch, 'on') }}
|
|
||||||
{% endif %}
|
|
||||||
remote_temperature_entity: >
|
remote_temperature_entity: >
|
||||||
{% set entities = device_entities(device_id(trv)) %}
|
{{ device_entities(device_id(trv)) | select('search', 'remote_temperature') | list | first | default('') }}
|
||||||
{% set remote_temperature_entity_id = namespace(id='') %}
|
|
||||||
{% for entity in entities %}
|
|
||||||
{% if 'remote_temperature' in entity %}
|
|
||||||
{% set remote_temperature_entity_id.id = entity %}
|
|
||||||
{% endif %}
|
|
||||||
{% endfor %}
|
|
||||||
{{ remote_temperature_entity_id.id }}
|
|
||||||
current_remote_temperature: >
|
current_remote_temperature: >
|
||||||
{{ states(remote_temperature_entity) | float(0) if remote_temperature_entity and
|
{{ states(remote_temperature_entity) | float(0) if remote_temperature_entity and
|
||||||
states(remote_temperature_entity) not in ['unknown', 'unavailable', none] else 0 }}
|
states(remote_temperature_entity) not in ['unknown', 'unavailable', none] else 0 }}
|
||||||
@@ -217,23 +206,9 @@ variables:
|
|||||||
{{ as_datetime(states[remote_temperature_entity].last_changed) if remote_temperature_entity and
|
{{ as_datetime(states[remote_temperature_entity].last_changed) if remote_temperature_entity and
|
||||||
states(remote_temperature_entity) not in ['unknown', 'unavailable', none] else none }}
|
states(remote_temperature_entity) not in ['unknown', 'unavailable', none] else none }}
|
||||||
window_detection_entity: >
|
window_detection_entity: >
|
||||||
{% set entities = device_entities(device_id(trv)) %}
|
{{ device_entities(device_id(trv)) | select('search', 'window_detection') | list | first | default('') }}
|
||||||
{% set window_detection_entity_id = namespace(id='') %}
|
|
||||||
{% for entity in entities %}
|
|
||||||
{% if 'window_detection' in entity %}
|
|
||||||
{% set window_detection_entity_id.id = entity %}
|
|
||||||
{% endif %}
|
|
||||||
{% endfor %}
|
|
||||||
{{ window_detection_entity_id.id }}
|
|
||||||
setpoint_change_source_entity: >
|
setpoint_change_source_entity: >
|
||||||
{% set entities = device_entities(device_id(trv)) %}
|
{{ device_entities(device_id(trv)) | select('search', 'setpoint_change_source') | list | first | default('') }}
|
||||||
{% set setpoint_change_source_entity_id = namespace(id='') %}
|
|
||||||
{% for entity in entities %}
|
|
||||||
{% if 'setpoint_change_source' in entity %}
|
|
||||||
{% set setpoint_change_source_entity_id.id = entity %}
|
|
||||||
{% endif %}
|
|
||||||
{% endfor %}
|
|
||||||
{{ setpoint_change_source_entity_id.id }}
|
|
||||||
scheduled_temperature: >
|
scheduled_temperature: >
|
||||||
{% set ns = namespace(current_temperature = none) %}
|
{% set ns = namespace(current_temperature = none) %}
|
||||||
{% set selected_friendly_name = states(active_scheduler_selector) %}
|
{% set selected_friendly_name = states(active_scheduler_selector) %}
|
||||||
@@ -250,22 +225,9 @@ variables:
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{{ ns.current_temperature }}
|
{{ ns.current_temperature }}
|
||||||
target_temperature: >
|
target_temperature: >
|
||||||
{% if alarm_control_panel and is_state(alarm_control_panel, 'armed_away') %}
|
{{ scheduled_temperature if scheduled_temperature != none and not (alarm_control_panel and is_state(alarm_control_panel, 'armed_away')) else away_temperature }}
|
||||||
{{ away_temperature }}
|
|
||||||
{% elif scheduled_temperature is not none %}
|
|
||||||
{{ scheduled_temperature }}
|
|
||||||
{% else %}
|
|
||||||
{{ away_temperature }}
|
|
||||||
{% endif %}
|
|
||||||
safe_temperature: >
|
safe_temperature: >
|
||||||
{% set temp = target_temperature | float(18) %}
|
{{ [min_temperature, [max_temperature, target_temperature | float(18)] | min] | max }}
|
||||||
{% if temp < min_temperature %}
|
|
||||||
{{ min_temperature }}
|
|
||||||
{% elif temp > max_temperature %}
|
|
||||||
{{ max_temperature }}
|
|
||||||
{% else %}
|
|
||||||
{{ temp }}
|
|
||||||
{% endif %}
|
|
||||||
is_valid_temperature: >
|
is_valid_temperature: >
|
||||||
{{ safe_temperature is not none and safe_temperature | is_number }}
|
{{ safe_temperature is not none and safe_temperature | is_number }}
|
||||||
is_temperature_change_needed: >
|
is_temperature_change_needed: >
|
||||||
@@ -284,15 +246,9 @@ variables:
|
|||||||
false
|
false
|
||||||
{% endif %}
|
{% endif %}
|
||||||
scheduler_mismatch: >
|
scheduler_mismatch: >
|
||||||
{% set selected_friendly_name = states(active_scheduler_selector) %}
|
{% set selected = states(active_scheduler_selector) %}
|
||||||
{% if selected_friendly_name not in ['unknown', '', none] %}
|
{{ selected not in ['unknown', '', none] and
|
||||||
{% set found = namespace(value=false) %}
|
selected not in radiator_schedules | map(attribute='attributes.friendly_name') | list }}
|
||||||
{% for schedule in radiator_schedules %}
|
|
||||||
{% if state_attr(schedule, 'friendly_name') == selected_friendly_name %}
|
|
||||||
{% set found.value = true %}
|
|
||||||
{% endif %}
|
|
||||||
{% endfor %}
|
|
||||||
{{ not found.value }}
|
|
||||||
{% else %}
|
{% else %}
|
||||||
false
|
false
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
Reference in New Issue
Block a user