Привет. Давно не писал, но есть некоторые новости.
Сейчас находимся в Волгодонске, собираем еще вещи. Думаю еще будем какое-то время их собирать, но я думаю, что переезд уже скоро. Возможно даже в конце следующей недели. Думаю дальше будет известно более точно. А теперь к более интересному.
Я тут без дела не сижу, и потихоньку пописываю свой умный дом. Примерно все это время что я в Волгодонске, по чуть-чуть каждый вечер что-то пилил. И напилил вроде изрядно.
Во первых, я знатно порефакторил код. Понаходил некоторых багов и поправил их. Например, один из интересных. Библиотека для mqtt не позволяет вешать несколько консьюмеров на один топик. Но у меня своя обертка, так что порешал эту проблему в ней. Еще из важного по рефакторингу: я начал разбивать единый монолитный сервис на более мелкие, наверное можно даже сказать - микросервисы. На данный момент их четыре штуки. Процесс разбиения еще полностью не окончен, но уже большую часть кода я вынес в отдельные микросервисы.
Написал вот первый сценарий. Правда не тот, что на скрине. Он давно уже был. Реализован на стороне яндекс дома. Но я часть его логики перетащил в свое приложение на гошке. А именно выключение света и прочие штуки.
Сделал я так потому что:
1. Хочу по максимуму логику держать в одном месте, не раскидывать ее.
2. Яндекс иногда тупит и может в некоторых комнатах не выключить свет. Либо сделать это с задержкой. Несколько раз уже на такое натыкался, что когда говорил спокойной ночи, свет везде выключался кроме, например, коридора. И в коридоре свет гас секунд через 5-10. Не очень прикольно
3. Есть штуки которые на данный момент в яндекс никак не прокинуть, например охранную систему (в яндексе тупо нет сущностей для этого)
Поэтому, мой сценарий реализует одну кнопку, по нажатию на которую он активируется. Эта кнопка прокинута в яндекс дом, и собственно вся суть сценария на стороне яндекса - нажать эту кнопку. А дальше вся магия будет происходить уже в моем приложении на гошке.
На данный момент реализовано следующее: свет во всем доме выключается (кроме улицы (чего в яндексе опять же было не просто реализовать)) и охрана ставится на ночной режим :) Собственно, это пока все что в голову пришло. Дальше конечно будет больше фич, но сейчас, скажем так, я ограничен технологиями своего времени тем что еще нет некоторых устройств и логики (например по отслеживанию людей). В будущем этот сценарий будет более гибким и крутым.
В голове есть еще мысли написать сценарий я ушел, который пока будет просто так же выключать свет во всем доме, и ставить дом на охрану. Но, конечно после того, как я покину область рядом с домом. Но этим займусь чуть попозже, но возможно успею до переезда на дом.
Но это еще не все :) И мы плавно переходим к новому микросервису, который будет зваться Finedog. Он будет заниматься (да в общем-то уже занимается) мониторингом всех устройств в доме. И писать об этом оповещения в специальный чат в телеграмме.
Реализацию бота в телеграмме я уже сделал, и даже набросал некоторый мониторинг. Сейчас сервис следит за zigbee датчиками. Если батарея какого-то датчика почти разряжена, то он начнет присылать уведомления. Так же он просто следит за данными, что отправляют датчики. И если они перестают их публиковать, то он об этом так же сообщит. Бывает иногда, что zigbee сеть рассыпается и приходится ее по новой собирать. Вот тут как раз таки пригодится бот, который об этом оповестит.
На данный момент это все, что он делает. Но в будущем, конечно, будет мониторить абсолютно любой девайс что есть в доме. И если что не так - сообщать об этом.