Last active
August 14, 2021 02:10
-
-
Save DivanX10/f4024312a8976f8137ffb17a7efafda7 to your computer and use it in GitHub Desktop.
Последняя активная яндекс колонка
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Данный вариант подойдет всем и будет показывать последнюю активную колонку. Достаточно в конце в строке группы вписать свои колонки. Если вы не используете packages, то рекомендую это настроить, тогда вы сможете просто скопировать весь код в один файлик. | |
Читаем про "Удобную настройку (конфигурация) Home Assistant" https://sprut.ai/client/blog/3180 | |
1) Сенсор "Яндекс станция в ожидании" показывает, что все колонки в ожидании (IDLE) или какая-то колонка слушает (LISTENING). Это может пригодиться для какой-либо автоматизации. Например "Список покупок" или "Зональная уборка". | |
2) Сенсор "Последняя активная яндекс станция" показывает ту колонку, которая вас услышала | |
3) Автоматизация "Последняя активная колонка" записывает последнюю колонку в input_text.yandex_station_last_activity | |
4) Вспомогательный элемент "Текст": Последняя активная колонка - сохраняет запись о последней активной колонки | |
5) Группа "Список яндекс станции". В этот список мы добавляем свои колонки | |
Примечание: Если хотите видеть последнюю колонку по имени, а не по ID, то меняем map(attribute='entity_id') на map(attribute='name') | |
{{ expand('group.yandex_stations') | selectattr('attributes.alice_state', 'eq', 'LISTENING') | map(attribute='entity_id') | list | join(",") }} | |
########################################################################################################################################################## | |
#Яндекс колонка. Сенсоры и автоматизация. | |
sensor: | |
#Сенсор. Яндекс станция слушает или находится в ожидании | |
- platform: template | |
sensors: | |
yandex_station_waiting: | |
friendly_name: "Яндекс станция в ожидании" | |
value_template: >- | |
{% if expand('group.yandex_stations') | selectattr('attributes.alice_state', 'eq', 'LISTENING') | map(attribute='entity_id') | list %} | |
LISTENING | |
{% else %} | |
IDLE | |
{% endif %} | |
icon_template: >- | |
{% if is_state('sensor.yandex_station_waiting', 'IDLE') %} | |
mdi:account-tie-voice-off | |
{% else %} | |
mdi:account-tie-voice | |
{% endif %} | |
#Сенсор последней активной яндекс колонки | |
- platform: template | |
sensors: | |
yandex_station_last_activity: | |
friendly_name: "Последняя активная яндекс станция" | |
value_template: >- | |
{% if expand('group.yandex_stations') | selectattr('attributes.alice_state', 'eq', 'LISTENING') | map(attribute='entity_id') | list | join(",") %} | |
{{ expand('group.yandex_stations') | selectattr('attributes.alice_state', 'eq', 'LISTENING') | map(attribute='entity_id') | list | join(",") }} | |
{% else %} | |
off | |
{% endif %} | |
icon_template: >- | |
{% if is_state('sensor.yandex_station_last_activity', 'unknown') %} | |
mdi:account-tie-voice-off | |
{% else %} | |
mdi:account-tie-voice | |
{% endif %} | |
- platform: template | |
sensors: | |
yandex_station_last_activity_name: | |
friendly_name: "Последняя активная яндекс станция" | |
value_template: >- | |
{% if expand('group.yandex_stations') | selectattr('attributes.alice_state', 'eq', 'LISTENING') | map(attribute='name') | list | join(",") %} | |
{{ expand('group.yandex_stations') | selectattr('attributes.alice_state', 'eq', 'LISTENING') | map(attribute='name') | list | join(",") }} | |
{% else %} | |
off | |
{% endif %} | |
icon_template: >- | |
{% if is_state('sensor.yandex_station_last_activity', 'unknown') %} | |
mdi:account-tie-voice-off | |
{% else %} | |
mdi:account-tie-voice | |
{% endif %} | |
#Автоматизация: Последняя активная колонка | |
automation: | |
- alias: 'Последняя активная колонка' | |
description: >- | |
Данная автоматизация нужна для определения активной колонки и для запуска триггера | |
trigger: | |
- platform: state | |
entity_id: sensor.yandex_station_last_activity | |
from: off | |
to: '*' | |
condition: | |
action: | |
- service: input_text.set_value | |
target: | |
entity_id: input_text.yandex_station_last_activity | |
data: | |
value: '{{states.sensor.yandex_station_last_activity.state}}' | |
#Автоматизация: Последняя активная колонка | |
- alias: 'Последняя активная колонка. Имя колонки' | |
description: >- | |
Данная автоматизация нужна для определения активной колонки и для запуска триггера | |
trigger: | |
- platform: state | |
entity_id: sensor.yandex_station_last_activity_name | |
from: off | |
to: '*' | |
condition: | |
action: | |
- service: input_text.set_value | |
target: | |
entity_id: input_text.yandex_station_last_activity_name | |
data: | |
value: '{{states.sensor.yandex_station_last_activity_name.state}}' | |
#Вспомогательный элемент "Текст": Последняя активная колонка | |
input_text: | |
yandex_station_last_activity: | |
name: "Последняя активная колонка" | |
min: 0 | |
max: 100 | |
icon: mdi:account-tie-voice | |
yandex_station_last_activity_name: | |
name: "Последняя активная колонка. Имя колонки" | |
min: 0 | |
max: 100 | |
icon: mdi:account-tie-voice | |
#Группа: Список яндекс станции. Сюда добавляем свои колонки | |
group: | |
yandex stations: | |
name: "Яндекс станции" | |
all: false | |
entities: | |
- media_player.yandex_station_01 | |
- media_player.yandex_station_02 | |
- media_player.yandex_station_03 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment