Я создал чудовище.
Когда-то давно, на заре своей юности, я решил создать умный дом. Я не жалел средств, сил и времени и шаг за шагом приближался к виднеющемуся в дали светлому будущему, где я смогу оставить мирские заботы по своей квартире системе умного дома. Но я ошибся, и предоставил своему дому больше полномочий, чем следовало, и теперь он контролирует мою жизнь, а я живу в постоянном страхе о том, что может случиться.
Введение
Мы часто слышим словосочетание "умный дом". Обычно под этим подразумевается простое дистанционное управление домашней электроникой (умная лампочка, умная стиралка, умный утюг), но разве в этом много "ума"? Были ли старые телевизоры с пультом ДУ тоже умными?
Кто-то скажет умность заключается в том, что в умном доме вы можете настроить расписание включения вашего теплого пола по утрам или выключение света в 23:59, но планировщик задач в Windows не называют умным планировщиком, равно как умной не называют и саму Windows.
Слыша фразу умный дом, мне всегда приходит в голову дом Железного Человека с его помощником — Джарвисом. Он откликался на любой сложный голосовой запрос, и что самое главное, действовал по ситуации, выполняя задачи и без запроса как такового, основываясь лишь на внешних воздействиях. Такой умный дом включал бы тёплый пол не потому, что вы создали для этого автоматизацию в приложении на телефоне, а потому что ваш дом обладает неким намерением поддерживать комфорт и включит тёплый пол не в какое-то время, а в момент между вашим пробуждением и подъёмом с постели, равно как и выключит свет не в 23:59, а когда вы ляжете спать.
В прошлом предложении прозвучало одно слово, на котором я хотел бы сделать акцент: автоматизация. В лучшем случае, все дома, которые мы гордо зовём умными являются просто автоматизированными домами. Домами, где множество электроники (и не только) управляется дистанционно и самостоятельно, но самостоятельность эта определяется тем, какую автоматизацию вы заложили в них сами. И тут обнаруживается страшное: вы мало что можете сделать при написании ваших автоматизаций. Задать расписание, использовать восход и заход солнца (что в принципе почти то же самое), срабатывание датчика движения или открытия и (куда реже) датчиков дыма и протечки. Датчики — это основа вашего умного дома, его сердце, а автоматизации — его мозг. Джарвис всеведущ насчёт положения дел в доме Железного человека, он знает сколько человек крадётся в тёмной комнате и сколько сахара съел старший в колонии тараканов, и на основе этого генерирует ответные воздействия — приготовление напитка под каждого крадущегося человека в тёмной комнате, и распыление умного дихлофоса на несчастное животное. Мы, в свою очередь, не можем получить ВСЮ информацию о доме, но можем выйти за границы "время", "движение", "протечка". Получив больше данных о доме, мы расширим инструментарий для написания автоматизаций и приблизимся к дому, который будет больше похож на умный (хоть так и останется всего лишь автоматизированным). Всё зависит лишь от вашей фантазии. Данная статья посвящена одной такой фантазии, воплотившейся в жизнь.
Но для начала, давайте разберёмся: откуда вообще можно получить дополнительную информацию? Да практически откуда угодно: из интернетов через api, посредством передачи через uart, инфракрасный порт, gpio. По сути, любая информация, которую способна воспринять вычислительная техника может использоваться в качестве сенсора для умного дома — надо лишь проложить маршрут от источника вашей информации до сервера. Выйдите за границы, которые вам навязывают производители умной техники, вы стеснены в возможностях куда меньше, чем вас пытаются убедить!
Как же так вышло, что производители пытаются преуменьшить возможности в умном доме? Всё дело в том, что вендоры вовсю пытаются заарканить потребителя на свою экосистему. При этом такие экосистемы закрыты и немощны, и возможности пользователя там действительно ограничены уровнем "включить свет в 6:45", а в случае разрыва соединения с сервером, такой умный дом рискует оказаться тыквой. Производитель не может предоставить потребителю настолько гибкий функционал ввиду ограниченности ресурсов, а потребитель не может создать такой функционал ввиду закрытости платформы.
Да, существуют некоторые коллаборации, устройства экосистемы yeelight можно добавлять в экосистему Xiaomi, в хабы yandex/google/apple можно добавлять устройства от кучи производителей, но всё это не то (в связи с выходом Matter возможно в отдалённом светлом будущем это будет "то"). В этих хабах вы не сможете использовать в качестве условия срабатывания автоматизации понижение уровня воды в бочке вашего унитаза, для обнаружения которого вы смастерили датчик на arduino/esp (точнее в теории сможете, просто сделать это "слегка" посложнее).
Думаю, часть читателей уже догадалась, что я неумело пытаюсь подвести свою речь к хабам умных домов с открытым исходным кодом:
Наверняка я указал не все хабы, а лишь те, о которых знаю сам. Отмечу лишь, работал только с Home Assistant и (совсем немного несколько лет назад) с OpenHUB.
Мои дальнейшие примеры будут идти через реализацию на Home Assistant, но идея, которая лежит в примере не ограничена каким-либо конкретным хабом.
Коротко о Home Assistant
Home Assistant — это приложение с открытым исходным кодом для автоматизации дома, которое ставит во главу локальное управление и приватность (перевод с главной страницы сайта). Приложение написано на python, может быть запущено на linux и windows, на raspberry pi и в виртуальной машине, в докере и без. Расширение функциональности приложения происходит через так называемые компоненты и интеграции, которые активно добавляются и развиваются сообществом, что позволяет добавлять в ваши автоматизации самые разные устройства и сетевые службы.
Примеры фронтенда автоматизированного дома, базирующегося на Home Assistant (Через кнопку "Далее" на карточке в верхнем левом углу можно перейти к следующему примеру).
Я уже долго мучаю вас вводными словами, давайте уже перейдём к конкретным примерам: зачем вообще нужны эти ваши умные дома, если я не падаю в обморок при подъёме с кровати, чтобы выключить свет.
Представьте на секунду, сколько раз вы выключали свой будильник, ложились дальше спать и страдали из-за этого? Сколько было пропущено встреч, пар, занятий. Сколько раз вы заставляли ваших друзей и знакомых ждать вас, пока вы валялись в тёплой постели. Моя автоматизация лишила меня такой привилегии и сейчас я расскажу вам о ней.
МЕГАБУДИЛЬНИК (Версия 1.0)
Есть один бородатый анекдот (настолько бородатый, что я называю его анекдотом, а не мемом):
— Как гарантированно встать в 7 утра?
— Завести будильник на 7 утра, а форматирование системного раздела на 6:59.
По моему опыту, чтобы точно встать необходимо создать либо условия, в которых дальнейшее продолжение сна невозможно, либо некую угрозу, для избегания которой вы решите встать самостоятельно. Трудно спать, когда стену, у которой ты лежишь, сосед долбит перфоратором, равно как и трудно пустить всё на самотёк и лечь досыпать, когда через час у тебя экзамен/отлёт/форматирование диска. При этом, в случае недостаточной дисциплинированности такие события как поход к первой паре, или к 9 на работу возможно не будут достаточно критическими, чтобы избежать соблазна понежиться в постельке подольше.
Форматирование диска — стимул конечно сильный, но достаточно деструктивный, учитывая, что может сработать и в случае какой-то ошибки. Лучшим вариантом будет некая комбинация: неотвратимая угроза, достаточная чтобы вы встали сами, но не разрушительная по своей сути, совмещённая с достаточным светопреставлением, во время которого вы не сможете спать.
Кроме того, мало заставить вас подняться с постели (хотя это уже залог успеха). Важно ещё и проконтролировать, что через секунду вы не ляжете обратно.
Ну и помимо прочего, наш умный будильник должен ещё и знать когда нас будить.
Подведём итоги: для создания такого будильника необходимо решить три задачи:
задачу определения времени срабатывания будильника;
задачу детектирования тела в постели;
задачу создания подходящей угрозы.
Определение времени срабатывания будильника
Ну, тут всё просто. Хочется иметь привычную настройку будильника — через приложение Часы на телефоне, и чтобы оттуда заведённый будильник магическим образом оказывался в нашем умном доме. Что ж, ставим home assistant companion app — и вуаля, ваше желание исполнено. Как только приложение подключится к серверу, на том появится новое устройство, которое предоставит мириады сенсоров, берущих данные с вашего телефона, включая время следующего будильника (`sensor.<device_name>_next_alarm`).
Важная ремарка — убедитесь, что время будильника не промахивается на час-другой. Когда я сидел на MIUI, стоковые часы давали сенсору время следующего будильника на час раньше или что-то около того. Как будто они давали время появления уведомления о будущем будильнике. После того как поставил google часы эта проблема пропала.
Список доступных сенсоров, которые вы можете получить с вашего телефона вы можете увидеть здесь:
https://companion.home-assistant.io/docs/core/sensors
Имея данный сенсор, уже можно создавать автоматизацию по срабатыванию будильника, однако для удобства создания таких автоматизаций необходимо создать вспомогательный сенсор-спутник в домене `input_datetime`, который будет повторять значение нашего сенсора.
Подобный сенсор-спутник может обновлять своё значение, например вот так:
- alias: Обновление будильника
id: Обновление будильника
trigger:
platform: state
entity_id: sensor.<device>_next_alarm
action:
- service: input_datetime.set_datetime
entity_id: input_datetime.next_alarm
data:
timestamp: '{{as_timestamp(states("sensor.<device>_next_alarm"),10)}}'
Такой костыль нужен для того, чтобы в качестве триггера на срабатывание автоматизации мы могли бы использовать платформу `time`:
Пример подобной автоматизации
- alias: МЕГАБУДИЛЬНИК (вкл)
id: МЕГАБУДИЛЬНИК (вкл)
trigger:
- platform: time
at: input_datetime.next_alarm
Определение наличия тела на кровати
Осталось понять, как вообще определять есть ли кто в кровати. Можно воспользоваться средствами компьютерного зрения в связке с камерой, круглыми сутками наблюдающей за кроватью, а можно... поместить под кровать датчик веса. В качестве таких сенсоров используют тензодатчики (в частности, в их роли могут выступать тензорезисторы). Принцип их работы заключается в следующем:
При растяжении проводящих элементов тензорезистора увеличивается их длина и уменьшается поперечное сечение, что увеличивает сопротивление тензорезистора, при сжатии — уменьшает.Wiki
Иными словами, когда вы давите на тензорезистор, тот под действием деформации меняет свое сопротивление. Для измерения сопротивления используют такую электрическую схему, как мост Уитстона.
Что такое мост Уитстона
Мост Уитстона — электрическое устройство, механическим аналогом которого являются аптекарские рычажные весы.
При реализации этой схемы, я не заморачивался с тем, что такое мост Уитстона, а просто нашёл видео, в котором делается ровно то, что мне нужно (подключение тензодатчиков к микросхеме hx711). Но для полноты статьи, я нашёл очень простое объяснение, которое и приведу ниже:
Схема моста Уитстона имеет два плеча сопротивления, каждое из которых содержит два резистора. Третья ветвь схемы — это соединение между двумя параллельными ветвями. Эта третья ветвь называется мостом. Ток течёт от отрицательной клеммы батарейки к верхней точке мостовой схемы. Затем, ток делится между двумя параллельными ветвями, причём количество тока, протекающее по каждой из ветвей, зависит от величины сопротивления в ветви. Наконец, ток возвращается к положительной клемме батарейки.
При равных величинах сопротивлений равное количество тока течёт в каждой из ветвей. По мосту ток не течёт, на что указывает нулевое положение измерителя. При этом условии о мосте говорят, что он уравновешен.
При неравных величинах сопротивления в ветвях, ток течёт в схеме от ветви с большим сопротивлением к ветви с меньшим сопротивлением. Это будет верно, пока два верхних резистора фиксированы и равны по величине, как это имеет место в схемах моста Уитстона, используемых в контрольно-измерительных системах. Измеритель на рисунке показывает, что ток в мосте течёт слева направо.
После того, как мы подключили тензодатчики к микросхеме hx711 и начали получать с неё цифровые данные, осталось подключить её к какому-либо микроконтроллеру/микрокомпьютеру, который будет отправлять данные в умный дом. Самый простой вариант, использовать плату esp32. С помощью проекта ESPHome, можно пробросить данные с микросхемы hx711 в умный дом используя esp32 не написав ни единой строчки кода (добавив только yaml-описание сенсора).
После того, как мы пробросили данные в умный дом, осталось понять какие значения с датчика идут, когда на кровати никого нет, а какие идут, когда на кровати кто-то лежит, и применить к этому сенсору оконную функцию скользящего среднего (на случай возможных выбросов).
Пример создания фильтра скользящего среднего в Home Assistant
- platform: filter
name: hx711_filtered_value
entity_id: sensor.hx711_value
filters:
- filter: time_simple_moving_average
window_size: 00:00:10
В качестве диапазона скользящего окна я использую 10 секунд.
Поздравляю, с этого момента вы знаете, что кто-то лежал в вашей постели (правда всё ещё не знаете, кто).
Создание подходящих для пробуждения воздействий
Ну, этот раздел зависит от каждого отдельного дома, и устройств, которыми тот может управлять, могу привести пример того, что сделано у меня:
Начинается всё, как и у всех: на телефоне срабатывает мелодия будильника. Затем, если через 25 секунд я всё ещё нахожусь в постели, на моём компьютере на полную громкость включается музыка. Почему 25 секунд? Эмпирическим путём я пришёл к выводу, что мне требуется до 15 секунд, чтобы без промедления встать с кровати (иногда телефон валяется где-то зарытым в подушки, и мне нужно его найти). После требуется ещё 10 секунд на то, чтобы в фильтре установилось допустимое для будильника среднее значение. Вообще, такое воздействие относится к обоим типам причин подъёма: даже если вы пропустили обычный звонок будильника на телефоне, подобный "звонок будильника" вы не пропустите, да и спать под него не сможете. Но помимо прочего, здесь есть и нечто устрашающее: не важно, живете ли вы один или с семьёй, ор музыки на компьютере утром услышат и ваши соседи, чего вы вряд ли бы захотели.
Как заставить орать музыку на компьютере? Для начала, чтобы что-либо автоматизировать на компьютере, желательно научиться запускать это из командной строки, а дальше удалённо вызывать эту команду. Как запустить музыку из командной строки? Например, вот такой командой:
"C:\Program Files\Windows Media Player\wmplayer.exe" C:\mediafile.mp3
Как вызвать эту команду из умного дома? Помимо управления по ssh можно воспользоваться специализированными приложениями с управлением по локальной сети (HASS Workstation Service), IOT Link (проект скорее мёртв, чем жив)).
Кроме того, музыку можно запустить и с помощью интеграции Home Assistant с проигрывателями на компьютере (например, интеграции Spotify, но тут вы не сможете выкрутить звук на самом компьютере, плюс есть риск, что устройством воспроизведения будут наушники), можно даже написать собственное крошечное клиент-серверное приложение, сервер кинуть на компьютер, клиента дёргать из умного дома.
Лично я раньше пользовался IOT Link, но ввиду отсутствия развития проекта, в итоге перешёл на HASS WorkStation Service.
Итак, на часах 6:45:25, на колонках Тату, под дверьми злые соседи: что дальше, шеф? А дальше вам всё равно очень хочется спать, и что вы делаете после? Правильно, выкручиваете крутилку громкости на самих динамиках в ноль и ложитесь спать дальше. Самолёт улетел без вас, границы закрылись, и как бы вы ни хотели жить на Манхэттене, вы всё равно останетесь в Омске.
Нет, так дело не пойдёт, придётся переходить к тяжёлой артиллерии. В случае, если субъект не реагирует на громкую музыку, либо слишком быстро лёг обратно в постель, помимо громкой музыки происходит следующее: включается всё что может включаться и испускать звуки или свет (верхний свет + светодиодная лента с эффектами стробоскопа, проектор, робот-пылесос). Чем больше всего включить — тем больше всего придётся выключать нерадивому субъекту, тем дольше тот будет бодрствовать до следующей возможности упасть в постель, и тем страшнее перспектива испытать это всё на себе. Вот без лишнего лукавства, после того как я написал все эти автоматизации, я попросту боялся проверять — сработают они или нет. Как только слышал звонок будильника — пулей вылетал из постели с кристально чистой головой. Спустя полминуты спать снова хотелось, но я точно знал, что может произойти, если приближусь к кровати, и потому нервно пил чаёк... поначалу. Спустя пару дней, я понял, что если отключить датчик веса, то умный дом не поймёт, что я лёг спать обратно, а значит достаточно отключить от питания всего лишь одну плату и лечь спать дальше.
Вообще, история создания МЕГАБУДИЛЬНИКа — это прямо-таки поединок брони и снаряда. Здравомыслящий доктор Джекил налаживает систему пробуждения, которую иррациональный мистер Хайд хакает в полусне за секунду. Причём всё усугубляется тем, что я точно знаю, как всё работает, ведь именно я эту систему и писал.
На следующий день, после того как я догадался отключать датчик, я добавил автоматизацию на то, что если состояние с датчика перейдёт в значение unavailable
— это сигнал неприятия воли личности, которая завела будильник, что должно караться мерами, описанными выше. После этого я перестал отключать сенсоры. Зато начал отключать таймеры, по которым определял, что помещать вес на кровать снова безопасно (через час после будильника). Что привело к тому, что я заменил таймеры сенсорами, которые формируются автоматически из значений будильника и не могут быть отключены.
В конечном счёте, главной целью всех этих мероприятий должна быть такая, чтобы у субъекта не было возможности быстро отключить все системы защиты будильника. Но одна такая возможность всё-таки есть — попросту выключить питание сервера умного дома. Однако тут есть пара нюансов. Очевидная — с будильником отвалится весь умный дом. Менее очевидная, в этом случае может полететь база данных умного дома (уже пару раз такое происходило). Кроме того, мой инстанс Home Assistant крутится в виде виртуалки на винде, и в случае экстренного выключения ПК, у меня пару раз ломался образ виртуалки, так что экстренное выключение питания не вариант.
Пока что в случае полного неприятия пробуждения, я выключаю виртуальную машину из фронтенда. Вообще-то, даже на этот случай существует решение. Есть триггер по выключению Home Assistant, вот только он не работает. Точнее, он вроде как работает, но к тому моменту, как он происходит, выключается большая часть сервера, и автоматизация не срабатывает как должна. На самом деле, уязвимость с любым выключением легко исправить: достаточно перенести управляющие команды на резервное устройство: esp или raspberry pi, и в случае потери соединения связи между сервером и таким устройством генерировать сигнал детонатора на устройстве, оставшемся в сети (руки просто пока до этого не дошли, да и проблем с пробуждением у меня осталось немного).
Подведём итоги: мы с вами поговорили о проблеме раннего пробуждения в условиях неработоспособности стандартных будильников и моём МЕГАБУДИЛЬНИКе в качестве решения этой проблемы.
Для реализации такого будильника средствами умного дома, нам потребовалось реализовать проброс данных о следующем будильнике с телефона внутрь умного дома, создать датчик веса, который будет расположен под кроватью, и реализовать набор управляющих воздействий, в случае если после срабатывания будильника вы всё ещё остаётесь в постели.
Проблема решена, бюджет освоен и всё было бы хорошо, если бы не наступило 31-ое декабря — день, когда всё покатилось к чертям...
МЕГАБУДИЛЬНИК (версия 2.0)
*To be continued...*
Ссылки на использованные ресурсы
Комментарии (47)
Jury_78
22.06.2022 08:47+4Пока был молодым... тоже была проблема с будильником, но теперь вот он стоит и я его вообще не включаю. Да, хорошо быть молодым...
aszhitarev
22.06.2022 09:19+3напомнило
— почему ты со своей женой развёлся?
— слишком заботливая
— это как?
— ночью встал воды попить. Прихожу, а она уже кровать заправила.
alexyr
22.06.2022 09:48+3после армии была привычка моментально вставать по первому сигналу будильника. но со временем перенял пример жены снузиться полчаса. теперь ставлю 2 будильника с разницей в 5 минут, на случай если один выключу совсем спросонья
iig
22.06.2022 10:06+1Омг. Вся эта машина Голдберга, с весами под кроватью - всего лишь будильник? Хозяин во время просмотра фильма заснул в кресле. Всё, автоматизация сломалась. Добавляем датчик веса в кресло. На кресло положили вечером тяжелую коробку. Автоматизация сломалась. Хозяин пришел с вечеринки, но до кровати не дошел, спит на коврике. Автоматизация сломалась.
Проблема будильника решается фитнес-браслетом с вибрацией.
HepoH Автор
22.06.2022 10:16+2Хозяин во время просмотра фильма заснул в кресле. Всё, автоматизация сломалась.
Автоматизация не сломалась, а не сработала, да. Равно как если хозяин спит на коврике, или улетел в Израиль. Если вы поставили сигнализацию на автомобиль, но в какой-то день поехали на работу на велосипеде, и тот угнали — значит ли это, что ваша сигнализация "сломалась"?
Проблема будильника решается фитнес-браслетом с вибрацией
Который я спокойно снимал с руки и скидывал на пол.
Вообще, статья не о том, как я решил какую-то общемировую проблему подъёма. Разумеется, кто-то просыпается ровно за 10 секунд до звонка будильника, потому что у него выработался режим, кому-то эти ваши умные дома до лампочки и вообще вся эта техника от лукавого, кто-то живет с семьей и не станет ничего такого делать. Но лично мне такая реализация подошла и приносит пользу.
Кроме того, я в целом хотел показать, что функционал умного дома может лежать за пределами включения-выключения света, что главное придумать что вас не устраивает, и найти способ это решить — чисто инженерные задачи.
iig
22.06.2022 12:29Если вы поставили сигнализацию на автомобиль, но в какой-то день поехали
на работу на велосипеде, и тот угнали — значит ли это, что ваша
сигнализация "сломалась"?Смотря какую задачу выполняет сигнализация. Если препятствовать угону - да, сломалась. Если бесить соседей - ок, сигнализация пищала.
Кроме того, я в целом хотел показать, что функционал умного дома может лежать за пределами включения-выключения света, что главное придумать что вас не устраивает, и найти способ это решить — чисто инженерные задачи.
Приблизительно так и есть. Обычный PID регулятор. Контроллер умного дома знает, что в 7:01 хозяин должен быть уже на кухне, и поэтому нужно применить подходящее управляющее воздействие.
HepoH Автор
22.06.2022 13:06+1Контроллер умного дома знает, что в 7:01 хозяин должен быть уже на кухне, и поэтому нужно применить подходящее управляющее воздействие
Пользуясь вашей аргументацией: с утра вам приспичило задержаться в уборной. Уже 7:03, вы не на кухне, произвелись подходящие управляющие воздействия → автоматизация сломана (ложноположительные срабатывания видятся мной большей проблемой, несрабатывания).
Кроме того, лично я не хожу по утрам на кухню. За столом компьютера у меня стоит чайник, поэтому по утрам я читаю хабр, попивая чаёк без похода на кухню. Это я и пытаюсь сказать: тут подход сугубо индивидуальный. Ваши первые примеры про коврик и кресло нерелевантны, потому что это не то, что происходит регулярно. Но если вдруг человек действительно постоянно спит в кресле, то да — можно поставить сенсор и туда, благо стоит он копейки, и делать его во второй раз еще проще чем в первый (кроме того, он довольно точно определяет вес, и если коробка, которую оставят на кресле не будет весом с человека, то проблем не будет).
Tarakanator
24.06.2022 10:47+2Проблема будильника решается фитнес-браслетом с вибрацией.
не решает. Я не просыпаюсь. Я не просыпаюсь даже если мне измерить давление(я носил суточный монитор давления, и ночью он давление должен был измерять несколько раз, я не проснулся)
HepoH Автор
24.06.2022 10:53Боюсь позиция большинства комментаторов: "фигня, меня все работает", которую они автоматически масштабируют до 100% населения Земли.
staticmain
22.06.2022 10:52+4Затем, если через 25 секунд я всё ещё нахожусь в постели, на моём компьютере на полную громкость включается музыка.
А, так вот ты какой, человек-сосед, который по утрам на полминуты включает музыку так, что половина дома трясется! Подключите к умному дому перфоратор, чего уж там.
HepoH Автор
22.06.2022 10:57Так ведь весь смысл в том, чтобы музыка в итоге не включалась. На моей памяти, был только один раз, когда я на автомате выключил на телефоне будильник и уснул. Проснулся через 25 секунд, и через 5 секунд уже выкрутил колонки на минимум, так что не думаю что соседи точат на меня зуб.
staticmain
22.06.2022 11:00+1Поверьте, даже пяти секунд тряски стен достаточно, чтобы дом уже встал вместе с вами и начал готовить обрезы и светошумовые гранаты.
Есть же беззвучные способы проснуться - браслеты, яркий направленный свет. Зачем мешать спать всему остальному дому?
HepoH Автор
22.06.2022 11:10Как я выше писал, браслет достаточно снять, от света можно спрятаться под одеялом, а летом он и так часто достаточно ярок, чтобы от направленного света было мало эффекта. Реальным раздражителем мне видится только звук и температура (причем температура в меньшей степени, можно долго во сне мучиться от жары и только через 2 часа осознать, что у тебя всё горло превратилось в наждак, а от холода кутаться в одеяло. В реальности температуру для пробуждения я использую только зимой — прогреваю комнату обогревателем перед пробуждением, чтобы было комфортно вставать и не кутаться 2 часа в одеяло).
По моим ощущениям (уже соседился с несколькими ремонтами), 5 секундная тряска дома — это действительно неприятно, но если ты спишь и намерен спать дальше, то через 10 секунд ты уже об этом забудешь (если речь идет не о регулярной тряске с периодом в 30 секунд). Более того, хоть в статье и указано время "6:45", это время взято с потолка, по факту будильник у меня заведен на 8:00, так что здесь даже нет эффекта "Разбудил, сволота такая, моего ребёнка посреди ночи".
Опять же, громкая музыка в первую очередь — это угроза. Назовем это активным раздражителем. Браслеты, свет, температура — это всё пассивные раздражители, с которыми вы можете пытаться бороться на автомате в полусне, зная что ничего страшного не произойдет.
С угрозой запуска громкой музыки бороться вы не сможете. Как бы вы ни кутались в одеяло, этим вы ее не отключите.
При этом, такая угроза не спалит ваш дом, как если бы вы сделали не знаю, открытие дверцы морозилки (что не будет беспокоить ваших соседей, пока растаявший лёд не коротнёт удлинитель на полу).
Gutt
22.06.2022 11:23Я тут вижу больше способ наиболее изощрённо поиздеваться над своим телом, мучая его недостатком сна. Открыл для себя способ не иметь проблем с пробуждением по утрам -- соблюдать режим сна и бодрствования, высыпаться и иметь светобудильник. Если организм не хочет вставать здесь и сейчас, значит, ему нужно ещё поспать. Пара может подождать. Рейсовый самолёт, конечно, ждать не станет, но городить кровать с весами ради нескольких эпизодов в год, мне кажется, излишне.
HepoH Автор
22.06.2022 11:28+1Пара может подождать
только не в случае, если ты преподаватель)
Вообще, я вполне себе соблюдаю режим сна: сплю с двеннадцати до восьми. Вся описанная выше система в 99% случаев попросту неактивна, но в то же время позволяет этот режим соблюдать, потому сбить его очень легко (достаточно затянувшихся праздников или отпуска).
staticmain
22.06.2022 12:41но если ты спишь и намерен спать дальше, то через 10 секунд ты уже об этом забудешь
Это всё работает только на идеальных людей без каких-либо нарушений сна. Ваша чертова музыка рано утром мешает высыпаться остальным жильцам. У меня прямо сейчас надо мной живет такой сосед с хряндекс-колонкой, которая утром на полной громкости орет ему будильник. Не всем нужно на работу к 9, СНИПы на шум не просто так написаны!
То что вы не можете проснуться обычным способом - это сугубо ваша личная проблема. Не нужно перекидывать решение вашей проблемы на всех жильцов.
HepoH Автор
22.06.2022 13:14Моя чертова музыка вообще не включается, не смотря на то, что эта система работает полтора года как. Однократное срабатывание за всю историю не должно было нанести непоправимого ущерба психике жильцов. За год под вашими окнами наверняка происходит куда больше мешающих сну событий.
Вы не пробовали поговорить с вашим соседом сверху? Я вот, когда заселился, обошел всех своих соседей, чтобы узнать не мешаю ли я им. У соседа снизу справиться не получилось, потому что в какое бы время я ни заходил, он не открывал. В итоге, через полгода, он пришел сам, потому выяснилось, что у меня между ванной и стеной нарушилась герметичность, и после душа я начал его заливать. Я извинился, устранил неисправность и заодно спросил наконец, мешаю ли я ему, попутно дав ему мой номер телефона и попросив звонить при любой претензии в мою сторону.
Повторю еще раз. Результатом автоматизации является то, что музыка не включается вовсе, а не то, что я каждое утро бужу весь дом, но даже если бы я и начал мешать соседям — уверен, что я бы об этом узнал.
Gryphon88
22.06.2022 12:22+3Хороший способ проснуться - заставить мозг работать. Можно поставить головоломку или решение примеров для отключения будильника, чтобы он не выключался на автомате, а мне какое-то время помогал гимн Бурятии: мозг пытался из "Үнгын дайдаар, хангай тайгаар..." собрать "Союз нерушимый...", вынужденно поднимал тактовую частоту и выводил из режима сна остальное тело.
savostin
22.06.2022 13:28Где-то у китайцев был будильник, в который надо было попасть из лазерного пистолета, чтоб заткнулся.
savostin
22.06.2022 13:14В мегабудильнике ровно столько же "умности", сколько и в автоматизации. Больше датчиков и больше условий не делают все-таки дом умным, как и сказано в первой части статьи.
HepoH Автор
22.06.2022 13:17Абсолютно верно, я и не претендовал на это. Если во второй части статьи я и использовал слова "умный", то только ввиду удобства, поскольку это проще, нежели "автоматизированный".
savostin
22.06.2022 13:26+1Эм, зачем тогда этот пафос в названии и первой части (с чем я согласен), если во второй все скатывается обратно в автоматизацию?
HepoH Автор
22.06.2022 13:30+1Я хотел показать, что несмотря на то, что настоящий умный дом в обозримом будущем недостижим, мы можем выйти за границы условной игрушки с дистанционным включением света и утюга. Приложив достаточно усилий по написанию автоматизаций под свой ритм жизни, можно приблизиться к тому, что будет выглядеть для стороннего наблюдателя как умный дом (хотя он так и будет просто автоматизированным).
Мне вспоминается серия из черного зеркала, где давали яйцо в качестве контроллера умного дома, в котором находилось копия сознания владельца, которая и управляла всем домом. По сути, если вы серьезно займетесь автоматизациями, вы получите нечто похожее.
HepoH Автор
22.06.2022 13:26+1Как-то печально, что все так вцепились в сам будильник и музыку. Основной посыл был в том, чтобы показать гибкость систем умных домов: будильник, оповещение со списком покупок, когда вы идете мимо магазина, в котором эти покупки планировали, предупреждение о подъезжающем автобусе. Можно сделать кучу всего, на что вам хватит фантазии (и да, то что вы сделаете, будет нужно только вам, а все остальные скажут: "мне и так нормально, фигню какую-то придумал", но делать-то вы будете для себя, а не для других).
Видимо, мысль свою донести не удалось.
iig
22.06.2022 14:22Все это упирается в датчики (прикручивать и подключать везде) и сценарии (писать и дебажить). С определенного момента это надоедает.
Smart_IT
22.06.2022 15:39+1— Как гарантированно встать в 7 утра?— Завести будильник на 7 утра, а форматирование системного раздела на 6:59.
Я бы сказал, что чтобы гарантированно вставать в 7, а то и в 6 утра, надо просто завести собаку..
iig
22.06.2022 15:43надо просто завести собаку
Купить автоматическую кормушку
Завести кормушку на 6-00
:D
Smart_IT
22.06.2022 16:00или даже лучше: создать дрона-выгульщика на автопилоте-> поставить активацию на бесшумный режим на 6 утра
запатентовать как Умный выгул
Profit
автор, вам идея для расширенной версии восстания машин)
sav13
22.06.2022 15:45Для умности нужно нейросеть прикрутить. Чтобы обучалась по фактическому вставанию. Вот тогда и может случиться восстание машин )))
ABOMETP
24.06.2022 16:36прикрутить ей голосового помощника натренированного на голос и манеру речи хозяина/жены, прикрутить камеру для распознавания настроения хозяина, ну и таки да =) пусть сама под настроение и всякие события подстраивается, а не это вот ... сценарии/автоматизации
wormball
22.06.2022 16:07Тю, я-то думал, вы искусственный интеллект сделали, который норовит захватить мир, а тут всего лишь умный дом.
0xf331d34d
22.06.2022 21:30+1Можно ещё вытянуть из условного Spotify API треки, которые чаще всего прослушиваешь в данный момент с высоким «danceability» и включать их на будильник, чтобы увеличить шансы на подъем.
А так да, свобода в автоматизациях ограничивается только фантазией. Следующая ступень это уже нейронка, которая говорит, когда тебе лучше всего идти спать/погулять/покушать и тд.HepoH Автор
22.06.2022 21:42Вообще, стажер в Home Assistant делал проект по автоматизациям посредством нейронки, но результаты у него вышли не очень насколько помню.
HepoH Автор
22.06.2022 21:57Вот видео, где он рассказывал о своём проекте: https://youtu.be/ErWK0wV6uMQ
bbs12
22.06.2022 22:27Можно было обойтись ведро+вода+лед, опрокидывание вообще можно сделать на механике. Или автоматический распылитель молотого перца в лицо.
R7R
23.06.2022 00:29+2Представьте на секунду, сколько раз вы выключали свой будильник, ложились дальше спать и страдали из-за этого? Сколько было пропущено встреч, пар, занятий. Сколько раз вы заставляли ваших друзей и знакомых ждать вас, пока вы валялись в тёплой постели.
1. ни разу
2. ни одной
3. не было такого
(Знаю, что я не один такой :)
Читая комментарии: нет, я не соблюдаю режим дня, и при первой же возможности сижу допоздна и даже еще больше :)
На сигнал будильника реагирую адекватно и никогда не пытаюсь его выключить, как бы зверски не хотелось спать — «Закон суров, но это закон»
(при вынужденном соблюдении расписания — всегда просыпаюсь минут за пять до срабатывания будильника)
Глубокий анализ причин такого поведения привел к моему продолжительному пионерлагерному детству :)torbasow
23.06.2022 08:52+2Никогда не был в пионерских лагерях и, в отличие от комментатора выше, не служил в армии, но тоже решительно не понимаю проблемы. Если бы у меня была возможность спать дальше, я бы и ставил будильник на более позднее время. Идея ставить его на более раннее, а потом отключать — это какая-то непонятная для меня дикость. Зазвенел — значит, всё, пора, хочешь — не хочешь (конечно, не хочешь), но вставай.
whoaitzso
23.06.2022 11:26По большому счету, автору стоит начать программировать свою силу воли, а не мегабудильник 2.0.
gwathedhel
24.06.2022 07:41+1Я вот подумал: это насколько надо не любить то, куда нужно вставать (работу/учебу), чтобы так прокрастинировать. Я так только в детстве в школу не хотел ходить. Возможно, тут нужно что-то поменять.
Сейчас прекрасно справляется фитнес-браслет. Особенно отлично справляется с фичей не будить НИКОГО кроме меня. Жена и ребенок одобряют особенно сильно.
Про сам умный дом - ну да, интересно, хотя как написали выше, действительно больше напоминает машину Голдберга, а не умную автоматизацию.
DustCn
Чего только не придумают, чтобы не разбираться со своими тараканами...