Найти в Дзене

Умный дом HomeAssistant, Алиса и школьное расписание

Мой сын в этом году пошёл в первый класс, и недавно подал мне идею - сделать через Алису расписание уроков на завтра и сегодня, а так же домашнее задание. Сейчас нам домашку пишут в родительском чате, и ребёнок не знает что задавали. И вот я нашёл выход из ситуации. Для начала я сделал два сенсора с расписанием на сегодня и на завтра raspisanie_today: friendly_name: "Расписание на сегодня" value_template: >- {% if now().weekday() == 0 %} {% set r = 'Расписание на понедельник: Разговоры о важном, физра, письмо' %} {% elif now().weekday() == 1 %} {% set r = 'Расписание на вторник: письмо, музыка, математика' %} {% elif now().weekday() == 2 %} {% set r = 'Расписание на среду: физра, письмо, окружающий мир, математика' %} {% elif now().weekday() == 3 %} {% set r = 'Расписание на четверг: письмо, математика, труд и рисование' %} {% elif now().weekday() == 4 %} {% set r = 'Расписание на пятницу: письмо, математика, окружающий мир' %} {% endif %
Оглавление

Мой сын в этом году пошёл в первый класс, и недавно подал мне идею - сделать через Алису расписание уроков на завтра и сегодня, а так же домашнее задание. Сейчас нам домашку пишут в родительском чате, и ребёнок не знает что задавали. И вот я нашёл выход из ситуации.

Сенсоры HomeAssistant

Для начала я сделал два сенсора с расписанием на сегодня и на завтра

raspisanie_today:
friendly_name: "Расписание на сегодня"
value_template: >-
{% if now().weekday() == 0 %}
{% set r = 'Расписание на понедельник: Разговоры о важном, физра, письмо' %}
{% elif now().weekday() == 1 %}
{% set r = 'Расписание на вторник: письмо, музыка, математика' %}
{% elif now().weekday() == 2 %}
{% set r = 'Расписание на среду: физра, письмо, окружающий мир, математика' %}
{% elif now().weekday() == 3 %}
{% set r = 'Расписание на четверг: письмо, математика, труд и рисование' %}
{% elif now().weekday() == 4 %}
{% set r = 'Расписание на пятницу: письмо, математика, окружающий мир' %}
{% endif %}
{{ r }}
raspisanie_tomorrow:
friendly_name: "Расписание на завтра"
value_template: >-
{% if now().weekday() == 4 or now().weekday() == 5 or now().weekday() == 6 %}
{% set r = 'Расписание на понедельник: Разговоры о важном, физра, письмо' %}
{% elif now().weekday() == 0 %}
{% set r = 'Расписание на вторник: письмо, музыка, математика' %}
{% elif now().weekday() == 1 %}
{% set r = 'Расписание на среду: физра, письмо, окружающий мир, математика' %}
{% elif now().weekday() == 2 %}
{% set r = 'Расписание на четверг: письмо, математика, труд и рисование' %}
{% elif now().weekday() == 3 %}
{% set r = 'Расписание на пятницу: письмо, математика, окружающий мир' %}
{% endif %}
{{ r }}

Эти сенсоры принимают значение в зависимости от текущего дня недели, если сегодня пятница, суббота или воскресенье - расписание на понедельник. В остальных случаях - на завтрашний день.

Алиса

Для приёма голосовых команд от Алисы я использую интеграцию ha-yandex-station-intents. Для воспроизведения ответа на колонке - интеграцию YandexStation. В связке они очень хорошо работают.

Автоматизации

Первым делом я настроил команды, на которые будет реагировать станция: в файле yandex_station_intents.yaml прописал:

Расписание на завтра:
extra_phrases:
- Расписание на понедельник
Расписание на сегодня:
Что задали:

Теперь их можно использовать в автоматизациях

Условие срабатывания
Условие срабатывания
Условие срабатывания (текстовый вид)
Условие срабатывания (текстовый вид)
Непосредственно тело автоматизации
Непосредственно тело автоматизации

Для того, что бы отвечала та колонка, на которую пришёл запрос, в качестве entity_id используется конструкция "{{ trigger.event.data.entity_id }}"

Аналогичная интеграция и с расписанием на сегодня, только поменять имя сенсора и команду для запуска.

Домашняя работа

Так как в данный момент нам домашнюю работу отправляют в чат с учителем - я просто копирую её и отправляю боту в телеграме, который сидит в отдельном для этого чате. И автоматизация принимает значение из текста и устанавливает его во вспомогательный текстовый элемент input_text.homework

Срабатывает от события входящего сообщения в бота телеграма, учитывая chat_id
Срабатывает от события входящего сообщения в бота телеграма, учитывая chat_id
Устанавливает значение из текста сообщения в input_text
Устанавливает значение из текста сообщения в input_text

Автоматизация с Алисой выглядит так:

Слушаем событие с текстом
Слушаем событие с текстом
В качестве entity_id тут так же используется колонка, которая услышала запрос
В качестве entity_id тут так же используется колонка, которая услышала запрос

Выводы

Таким образом ребёнок всегда знает расписание и домашнюю работу, да и мне самому проще ориентироваться. Да, у нас висит расписание уроков на доске, но ведь куда интереснее спросить об этом Алису, и удивить гостей ))

Весь листинг сенсоров и автоматизаций выложил тут.

В комментариях прошу указать на ошибки в статье, может что-то у вас не получилось, советы по оформлению. Отвечу всем и как можно быстрее.

Всем спасибо за чтение, за интерес, комментарии. Ссылка на добровольные донаты. Никого не заставляю, но буду благодарен.

Подписывайтесь на мой канал в телеграме https://t.me/kai_zer_ru_public

Дарим 500 ₽ за оформление Альфа-Стикера по ссылке: https://alfa.me/5gaGGx

Дарим 500 ₽ за оформление Альфа-Карты по ссылке и 30% кэшбэка с Авито Доставкой до 15 октября: https://alfa.me/CDcxYs