1
0
ansible-home-assistant/automations/templates/air-purifier/automations.yaml.j2
2021-02-23 00:38:55 +01:00

119 lines
4.8 KiB
Django/Jinja

{% for airPurifier in airPurifiers %}
# {{ airPurifier.name }}
- alias: '[{{ airPurifier.name }} Air Purifier] mode change'
id: {{ airPurifier.componentId }}_mode_change
trigger:
entity_id: input_select.{{ airPurifier.componentId }}_mode
platform: state
action:
service: fan.set_speed
data_template:
entity_id: {{ airPurifier.entityId }}
speed: {{ '\'{{ states.input_select.' + airPurifier.componentId + '_mode.state }}\'' }}
- alias: '[{{ airPurifier.name }} Air Purifier] mode changed'
id: {{ airPurifier.componentId }}_mode_changed
trigger:
platform: state
entity_id: {{ airPurifier.entityId }}
action:
service: input_select.select_option
entity_id: input_select.{{ airPurifier.componentId }}_mode
data_template:
option: {{ '\'{{ states.' + airPurifier.entityId + '.attributes.speed }}\'' }}
- alias: '[{{ airPurifier.name }} Air Purifier] favorite level change'
id: {{ airPurifier.entityId }}_favorite_level
trigger:
entity_id: input_number.{{ airPurifier.componentId }}_favorite_level
platform: state
action:
service: xiaomi_miio.fan_set_favorite_level
data_template:
entity_id: {{ airPurifier.entityId }}
level: {{ '\'{{ states.input_number.' + airPurifier.componentId + '_favorite_level.state | int }}\'' }}
- alias: '[{{ airPurifier.name }} Air Purifier] favorite level changed'
id: {{ airPurifier.entityId }}_favorite_level_changed
trigger:
platform: state
entity_id: {{ airPurifier.entityId }}
action:
service: input_number.set_value
entity_id: input_number.{{ airPurifier.componentId }}_favorite_level
data_template:
value: {{ '\'{{ states.' + airPurifier.entityId + '.attributes.favorite_level }}\'' }}
{% if airPurifier.supports_fan_level %}
- alias: '[{{ airPurifier.name }} Air Purifier] fan level changed'
id: {{ airPurifier.entityId }}_fan_level_changed
trigger:
platform: state
entity_id: {{ airPurifier.entityId }}
action:
service: input_number.set_value
entity_id: input_number.{{ airPurifier.componentId }}_fan_level
data_template:
value: {{ '\'{{ states.' + airPurifier.entityId + '.attributes.fan_level }}\'' }}
- alias: '[{{ airPurifier.name }} Air Purifier] fan level change'
id: {{ airPurifier.entityId }}_fan_level_change
trigger:
entity_id: input_number.{{ airPurifier.componentId }}_fan_level
platform: state
action:
service: xiaomi_miio.fan_set_fan_level
data_template:
entity_id: {{ airPurifier.entityId }}
level: {{ '\'{{ states.input_number.' + airPurifier.componentId + '_fan_level.state | int }}\'' }}
{% endif %}
- alias: '[{{ airPurifier.name }} Air Purifier] increase fan speed'
id: {{ airPurifier.entityId }}_fan_speed_increase
trigger:
- platform: numeric_state
entity_id: sensor.{{ airPurifier.componentId }}_air_quality_pm25
above: '12'
action:
- service: fan.set_speed
data:
speed: Favorite
entity_id: {{ airPurifier.entityId }}
- repeat:
while:
- condition: numeric_state
entity_id: sensor.{{ airPurifier.componentId }}_air_quality_pm25
above: '12'
sequence:
- service: xiaomi_miio.fan_set_favorite_level
data_template:
entity_id: {{ airPurifier.entityId }}
level: {{ '\"{{ state_attr(\'' + airPurifier.entityId + '\', \'favorite_level\') | int + 1 }}\"' }}
- service: input_number.set_value
entity_id: input_number.{{ airPurifier.componentId }}_favorite_level
data_template:
value: {{ '\'{{ states.' + airPurifier.entityId + '.attributes.favorite_level }}\'' }}
- delay:
minutes: 1
- alias: '[{{ airPurifier.name }} Air Purifier] decrease fan speed'
id: {{ airPurifier.entityId }}_fan_speed_decrease
trigger:
- platform: numeric_state
entity_id: sensor.{{ airPurifier.componentId }}_air_quality_pm25
below: '10'
action:
- service: fan.set_speed
data:
speed: Favorite
entity_id: {{ airPurifier.entityId }}
- repeat:
while:
- condition: numeric_state
entity_id: sensor.{{ airPurifier.componentId }}_air_quality_pm25
below: '10'
sequence:
- service: xiaomi_miio.fan_set_favorite_level
data_template:
entity_id: {{ airPurifier.entityId }}
level: {{ '\"{{ state_attr(\'' + airPurifier.entityId + '\', \'favorite_level\') | int - 1 }}\"' }}
- service: input_number.set_value
entity_id: input_number.{{ airPurifier.componentId }}_favorite_level
data_template:
value: {{ '\'{{ states.' + airPurifier.entityId + '.attributes.favorite_level }}\'' }}
- delay:
minutes: 1
{% endfor %}