Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- alias: Запах в спальне
- description: ''
- trigger:
- - platform: numeric_state
- entity_id: sensor.air_quality2_voc
- for:
- hours: 0
- minutes: 0
- seconds: 0
- above: '1'
- action:
- - alias: Стыдим человека, сообщая, что мы заметили вонь
- service: script.important_announce
- data:
- station: media_player.yandex_lite
- message: Фу! Навоняли!
- volume: 0.5
- local: 1
- - alias: Обнуляем переменные
- service: input_number.set_value
- target:
- entity_id:
- - input_number.current_max_voc_bedroom
- - input_number.clean_air_time_bedroom
- data:
- value: 0
- - repeat:
- while:
- - condition: template
- value_template: '{{ states("input_number.clean_air_time_bedroom")|int < 30 }}'
- sequence:
- - alias: Обновляем максимальное значение вони, если оно выросло
- choose:
- - conditions:
- - condition: template
- value_template: >-
- {{ (states("sensor.air_quality2_voc")|int) >
- (states("input_number.current_max_voc_bedroom")|int) }}
- sequence:
- - alias: Значение вони выросло!
- service: input_number.set_value
- target:
- entity_id: input_number.current_max_voc_bedroom
- data:
- value: '{{ states("sensor.air_quality2_voc") }}'
- default: []
- - alias: Небольшая задержка, ждём
- delay:
- hours: 0
- minutes: 0
- seconds: 1
- milliseconds: 0
- - alias: Увеличиваем счётчик времени, если не пахнет, иначе обнуляем
- choose:
- - conditions:
- - condition: template
- value_template: '{{ states("sensor.air_quality2_voc")|int == 0 }}'
- sequence:
- - alias: В спальне не пахнет, увеличивает счётчик
- service: input_number.set_value
- target:
- entity_id: input_number.clean_air_time_bedroom
- data:
- value: >-
- {{ states("input_number.clean_air_time_bedroom")|int + 1
- }}
- default:
- - alias: Всё ещё пахнет, обнуляем счётчик
- service: input_number.set_value
- target:
- entity_id: input_number.clean_air_time_bedroom
- data:
- value: 0
- - alias: >-
- Говорим на всю квартиру, что проветривание завершено, сообщаем полученные
- баллы вони
- choose:
- - alias: Проверяем, не был ли побит рекорд
- conditions:
- - condition: template
- value_template: >-
- {{ (states("input_number.voc_record")|int) <
- (states("input_number.current_max_voc_bedroom")|int) }}
- sequence:
- - alias: Обновляем рекорд
- service: input_number.set_value
- target:
- entity_id: input_number.voc_record
- data:
- value: '{{ states("input_number.current_max_voc_bedroom")|int }}'
- - alias: Поздравляем с апплодисментами и детским смехом
- service: script.important_announce
- data:
- station: media_player.yandex_lite
- message: >-
- <speaker audio="alice-sounds-human-crowd-2.opus"> <speaker
- audio="alice-sounds-human-crowd-3.opus"> Поздравляю! Это новый
- рекорд вони. sil <[500]> {% set value = {
- "number": states("input_number.voc_record")|int,
- "nominativ": "балл",
- "genetiv": "балла",
- "plural": "баллов"
- } %} {% set num1 = value.number % 10 %} {% set num2 =
- value.number % 100 %} {% if num2 >= 10 and num2 <= 20 %}
- {% set declension = value.plural %}
- {% else %}
- {% if num1 == 1 %}
- {% set declension = value.nominativ %}
- {% elif num1 >= 2 and num1 <= 4 %}
- {% set declension = value.genetiv %}
- {% else %}
- {% set declension = value.plural %}
- {% endif %}
- {% endif %} {{ value.number }} {{ declension }}. sil <[500]>
- <speaker audio="alice-sounds-human-laugh-5.opus">
- volume: 0.5
- local: 0
- - alias: >-
- Рассылаем уведомления, о том, что кто-то установил новый рекорд
- пердежа
- service: script.send_notifications
- data:
- title: Пердёж
- message: >-
- Новый рекорд (спальня): {{ states("input_number.voc_record")|int
- }}
- priority: -1
- default:
- - alias: Говорим без рекорда
- service: media_player.play_media
- data:
- media_content_type: text
- media_content_id: >-
- {% set value = {
- "number": states("input_number.current_max_voc_bedroom")|int,
- "nominativ": "балл",
- "genetiv": "балла",
- "plural": "баллов"
- } %} {% set num1 = value.number % 10 %} {% set num2 = value.number %
- 100 %} {% if num2 >= 10 and num2 <= 20 %}
- {% set declension = value.plural %}
- {% else %}
- {% if num1 == 1 %}
- {% set declension = value.nominativ %}
- {% elif num1 >= 2 and num1 <= 4 %}
- {% set declension = value.genetiv %}
- {% else %}
- {% set declension = value.plural %}
- {% endif %}
- {% endif %} Больше не пахнет. Воняло на {{ value.number }} {{
- declension }}.
- target:
- entity_id: media_player.yandex_lite
- - alias: Обнуляем переменные
- service: input_number.set_value
- target:
- entity_id:
- - input_number.current_max_voc_bedroom
- - input_number.clean_air_time_bedroom
- data:
- value: 0
- mode: single
Add Comment
Please, Sign In to add comment