Найти в Дзене
Удобный дом!

Я иду спать, а автоматика позаботится о доме.

Оглавление

Давно искал инструмент, который позволит ставить на охрану, выключать свет и ТВ когда я иду спать. Нужно было ещё снимать с охраны с утра, так как я забывал сам снять и срабатывала сигнализация. Пробовал вручную вечером включать охрану с телефона, выключать свет через мастер выключатель и не забыть попросить Алису выключить телевизор… лень очень мешала это сделать.

Срабатывает если попросить Алису через 10 минут выключить свет и ТВ, но вот на 9й минуте вспоминаешь про вкусную шоколадку и в момент поедания гаснет свет.

Такое конечно не есть умный дом, значит надо взять другой подход. Помним, настоящий умный дом создает комфорт и его не видно.

Поддержать муки автора можно донатом.

Вот так по мнению ИИ происходит обработка информации по моему сну
Вот так по мнению ИИ происходит обработка информации по моему сну

Где взять данные для передачи.

У меня есть часы Xiaomi Watch S1, смартфон на андроиде (хотя и эти с яблоком тоже подойдут) и сервер на Home Assistant. Часы более точно могут передать данные, так как на руке. Однако, если с часами спать неудобно, то приложение может по косвенным признакам понять что человек уснул. Приложение использует акселерометр или Google Activity Transition API, чтобы понять, что устройство остается неподвижным, что указывает на снижение активности пользователя. Микрофон фиксирует характерные звуки сна, такие как дыхание или храп, а также может использовать ультразвуковой сонар, который отправляет звуковые сигналы и анализирует их отражения от поверхностей, например от кровати. Телефон на зарядке - тоже признак что человек пошел спать, приложение все это оценивает и принимает решение что человек уснул.

Лучше конечно использовать часы - это более точный метод. В статье буду использовать подход именно с часами.

Home Assistant - мощный комбайн, понятно что в нем должна была быть такая интеграция. Забегая вперед, работать софт будет через MQTT, если не настроили ещё тогда вот Установка Mosquitto

Программы для отслеживания сна - настройка.

В поисках решения моей задачи я наткнулся на приложение Sleep as Android. Приложение частично платное, но нужная нам функция Отправка сообщений в mqtt бесплатная и похоже отправка данных тоже в платном тарифе. Я детально не тестировал остальные функции (ИИ наблюдения за сном и прочее), но если зайдет тогда приобрету - там очень много интеграций с разными сервисами. Мне еще важно что бы музыка была из Spotify и это есть:

Скачать приложение можно для андроида:

Sleep As Android

Теперь нужно установить ответную часть в Home Assistant. Сама интеграция загружается через HACS, если он не установлен идем настраивать ТУТ

В магазине ищем Sleep as android, устанавливаем и перезагружаем Home Assistant.

После перезагрузки идем в Дополнения в наш mqtt брокер, у меня это Mosquitto. Нам нужно забрать наши настройки. Вот пример:

-3

Нам нужно заполнить такую ссылку под наши параметры tcp://mqtt_user:mqtt_password@mqtt_host:mqtt_port

  • mqtt_user: Имя пользователя для аутентификации на MQTT-брокере.
  • mqtt_password: Пароль, соответствующий указанному пользователю.
  • mqtt_host: Адрес хоста брокера (например, IP-адрес или доменное имя). Обычно это адрес самого Home Assistant.
  • mqtt_port: Порт, на котором работает MQTT-брокер (обычно 1883 для незашифрованного соединения или 8883 для SSL).

Эта запись в формате tcp:// используется для указания подключения к брокеру, включая все необходимые параметры.

Когда ссылка готова возвращаемся в приложение на телефоне. Приложение при первом старте попросит разрешения и всякие настройки - это уже на ваше усмотрение, но разрешения лучше выдать.

Переходим в Настройки - Сервисы - Атоматизация. Листаем до mqtt и включаем. Тут нужно вставить сформированную ссылку в URL.

Обязательно указать правильно Тему иначе интеграция не встанет, тема выглядит так SleepAsAndroid/egor . То что после / как раз будет ожидать интеграция.

ID клиента любое, я написал SleepAsAndroid_phone

Жмем тест и проверяем что все работает.

Для автоматического отслеживания сна нужно ещё немного сделать настроек.

В приложении идем Отслеживание сна - Автом. отслеживание. Выбираем ”после засыпания”. Можно поэкспериментировать с другими настройками.

-4

В разделе Датчики я выбрал Сонар, пусть слушает мой храп все ночь и там решает уже с алгоритмами что делать.

Ниже идет установка часов. Выбор богатый, некоторые часы просят установить дополнения. У меня Xiaomi Watch S1 и есть нужное дополнение, правда пришлось отключить родное Mi Fit. Дополнительно подключил Мониторинг сердцебиения и Пульсоксиметр - не влияет на дальнейшие автоматизации.

Возвращаемся в Home Assistant, идем в Настройки - Устройства и службы. Добавляем нашу интеграцию через Добавить интеграцию (поиском Sleep As Android). Ничего вводить не нужно, просто жмем Ок. Важно!!! Телефон и сервер должны находиться в одной сети!!!

Все, интеграция настроена.

-5

Какие данные нам доступны.

Основное что мне нужно это sleep_tracking_started и sleep_tracking_stopped. Именно по этим триггерам мы и будем запускать автоматизации.

Вот что получаю в сенсоре

  • 08:31:17 – Будильник выключен
  • 08:30:01 – Alarm rescheduled
  • 07:43:06 – Отслеживание сна завершено
  • 07:30:00 – Час до будильника
  • 07:15:00 – 45 минут до smart period
  • 00:57:15 – Отслеживание сна началось
  • 00:31:40 – Alarm rescheduled
  • 00:30:38 – Падение уровня кислорода

2 апреля 2025 года:

  • 23:53:48 – Отслеживание сна завершено
  • 23:53:09 – Отслеживание сна началось
  • 23:42:43 – Отслеживание сна завершено
  • 23:42:38 – Отслеживание сна началось

Если накоротко описание возможностей:

  • unknown: Неопределенное состояние приложения. Полезно для диагностики, например, отправки уведомления, если Sleep as Android не передает четкие данные в Home Assistant.
  • sleep_tracking_started: Начало отслеживания сна. Используется для автоматического выключения света, телевизора, и активации ночного режима.
  • sleep_tracking_stopped: Завершение отслеживания сна. Может запускать утренние сценарии, такие как включение света, кофемашины и открытие штор.
  • sleep_tracking_paused: Приостановка отслеживания сна. Полезно для временного включения мягкого ночного освещения, если пользователь проснулся.
  • sleep_tracking_resumed: Возобновление отслеживания сна после паузы. Восстанавливает ночные сценарии, например, приглушает освещение.
  • alarm_snooze_clicked: Нажата кнопка "отложить будильник". Используется для временной задержки утренних действий, таких как включение света и музыки.
  • alarm_snooze_canceled: Отмена "отложить будильник". Начинает утреннюю автоматизацию без задержки.
  • time_to_bed_alarm_alert: Напоминание о времени для сна. Включает вечерний сценарий, например, приглушение света и активацию расслабляющих звуков.
  • alarm_alert_start: Срабатывание будильника. Включает утреннее освещение и звуки для комфортного пробуждения.
  • alarm_alert_dismiss: Будильник отключен. Полезно для завершения ночного режима и запуска дневных действий.
  • alarm_skip_next: Пропуск следующего будильника. Удобно для адаптации сценариев, например, отключения утренних процедур, если пользователь хочет больше отдыха.
  • show_skip_next_alarm: Информирует о пропуске будильника. Помогает системе перенастроить график утренних автоматизаций.
  • rem: Фаза быстрого сна. Полезна для анализа качества сна и активации сценариев, например, антихраповой функции.
  • smart_period: Умный период пробуждения. Используется для оптимального времени начала утреннего режима.
  • before_smart_period: Период до умного времени пробуждения. Помогает плавно подготовить дом к пробуждению, увеличивая яркость света.
  • lullaby_start: Запуск колыбельной. Включает успокаивающую музыку или звуки для комфортного засыпания.
  • lullaby_stop: Остановка колыбельной. Завершает расслабляющий вечерний режим.
  • lullaby_volume_down: Плавное уменьшение громкости колыбельной. Создает комфортные условия для засыпания.
  • deep_sleep: Фаза глубокого сна. Используется для анализа восстановления организма и оптимизации ночного режима.
  • light_sleep: Легкий сон. Удобен для оценки переходов между фазами сна и адаптации окружающей среды.
  • awake: Состояние бодрствования. Запускает утренний сценарий, включая свет и бытовую технику.
  • not_awake: Состояние сна. Поддерживает ночные действия, например, отключение ненужных устройств.
  • apnea_alarm: Сигнал апноэ. Активирует увлажнитель воздуха или другие устройства для облегчения дыхания.
  • antisnoring: Антихраповая функция. Может регулировать положение кровати, включать белый шум или (внимание, юмор) запускать умный матрас, который аккуратно "вежливо" меняет положение тела.
  • sound_event_snore: Обнаружение храпа. Активирует сценарии, такие как антихраповая функция или уведомление пользователя.
  • sound_event_talk: Обнаружение разговора во сне. Может записывать событие для анализа сна или активности.
  • sound_event_cough: Фиксация кашля. Уведомления о возможных проблемах со здоровьем.
  • sound_event_baby: Звук ребенка. Уведомления для родителей при активности малыша ночью.
  • sound_event_laugh: Обнаружение смеха во сне. Фиксация необычных событий в анализе сна.
  • before_alarm: Перед будильником. Включение мягкого света или музыки для плавного перехода к пробуждению.
  • alarm_rescheduled: Перенос будильника. Синхронизирует новые графики утренней автоматизации.

Моя автоматизация

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

Триггеры sleep_tracking_started и sleep_tracking_stopped

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

Буду тестить дальше, если что поправлю.

Полный код автоматизации: https://gist.github.com/smirnowegor/652df893b4f0003207fbcfc6c6de34da

А вдруг кто-то рядом мешает?

-7

Так как я на время написания статьи проживаю один, то вся автоматизация зависит от меня и моего телефона. Поэтому сказать как это влияет на других жителей дома я не могу. Однако, разработчики приложения добавили функцию Отслеживание двух людей … и тут надо тестировать.

P.S. Можно протестировать все триггеры, посмотреть что ночью делаете=))

Автоматизация отсылает сообщения в телеграм. Полный код тут https://gist.github.com/smirnowegor/cee23a0b0227680d8077f3636d8627c3

Связаться со мной. (Консультации, проектирование и обучение)

Новый подход к электрике и дизайну помещений. Некоторые провода уже не нужно тянуть, какие-то решения можно принять после ремонта. Перенести выключатель, запустить кондиционер с телефона - возможно автоматизировать любую рутину.

Мой телеграм канал, там все быстрее обновляется телеграм.

Сайт smart4home.ru и альтернативный Умный дом на любом этапе.

Соц сети: RuTube канал Удобный дом / You Tube канал Удобный дом Яндекс Дзен: Удобный дом / InGram

Платформы специалистов: Авито / Профи.ру / Яндекс Услуги https://uslugi.yandex.ru/profile/EgorSmirnov-2294380?from=telek