Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save DivanX10/f4024312a8976f8137ffb17a7efafda7 to your computer and use it in GitHub Desktop.
Save DivanX10/f4024312a8976f8137ffb17a7efafda7 to your computer and use it in GitHub Desktop.
Последняя активная яндекс колонка
Данный вариант подойдет всем и будет показывать последнюю активную колонку. Достаточно в конце в строке группы вписать свои колонки. Если вы не используете 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