↑ К новым записям

22 ноября 2024

Блядь, не все штатно. Щаз глянул в ЕРКЦ, показания за воду и за электрический счетчик улетели на водяной. Ну и на водяном стало +2к кубометров. Благо успел удалить. Надо разбираться((

21 ноября 2024

Привет. Давно не писал, но есть некоторые новости.

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

Я тут без дела не сижу, и потихоньку пописываю свой умный дом. Примерно все это время что я в Волгодонске, по чуть-чуть каждый вечер что-то пилил. И напилил вроде изрядно.

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

Написал вот первый сценарий. Правда не тот, что на скрине. Он давно уже был. Реализован на стороне яндекс дома. Но я часть его логики перетащил в свое приложение на гошке. А именно выключение света и прочие штуки.

Сделал я так потому что:

1. Хочу по максимуму логику держать в одном месте, не раскидывать ее.

2. Яндекс иногда тупит и может в некоторых комнатах не выключить свет. Либо сделать это с задержкой. Несколько раз уже на такое натыкался, что когда говорил спокойной ночи, свет везде выключался кроме, например, коридора. И в коридоре свет гас секунд через 5-10. Не очень прикольно

3. Есть штуки которые на данный момент в яндекс никак не прокинуть, например охранную систему (в яндексе тупо нет сущностей для этого)

Поэтому, мой сценарий реализует одну кнопку, по нажатию на которую он активируется. Эта кнопка прокинута в яндекс дом, и собственно вся суть сценария на стороне яндекса - нажать эту кнопку. А дальше вся магия будет происходить уже в моем приложении на гошке.

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

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

Но это еще не все :) И мы плавно переходим к новому микросервису, который будет зваться Finedog. Он будет заниматься (да в общем-то уже занимается) мониторингом всех устройств в доме. И писать об этом оповещения в специальный чат в телеграмме.

Реализацию бота в телеграмме я уже сделал, и даже набросал некоторый мониторинг. Сейчас сервис следит за zigbee датчиками. Если батарея какого-то датчика почти разряжена, то он начнет присылать уведомления. Так же он просто следит за данными, что отправляют датчики. И если они перестают их публиковать, то он об этом так же сообщит. Бывает иногда, что zigbee сеть рассыпается и приходится ее по новой собирать. Вот тут как раз таки пригодится бот, который об этом оповестит.

На данный момент это все, что он делает. Но в будущем, конечно, будет мониторить абсолютно любой девайс что есть в доме. И если что не так - сообщать об этом.

Следующий сервис - meters. Для него какое-то красивое название я пока не спиздил придумал, может быть позже. Или останется как есть. В нем особо ничего нового нет, я туда просто перенес код по получению данных с счетчиков, и отправки показаний раз в месяц. Единственное новшество - после отправки показаний он должен будет отписаться в моем чате в телеге. Но, поскольку 22ое число только завтра, посмотреть на то, как это работает сможем тоже только завтра. Так что, пока без скринов.

И последний на сегодня - Heimdall. Он будет заниматься всем связанным с охраной. Пока что в него перемещены функции по обработке событий из Frigate. Их обработку я тоже немного перетряс. Добавил больше скипов, пофиксил некоторые баги.

Прикрутил так же отправку фото и видео в спец чат в телеге. Сейчас логика работы следующая:

1. Если событие прошло все проверки и оно годное, то берем один из кадров и отправляем в чат в телеге. Если score у события определения людей выше 0.9, то уведомление так же отправляется через HA сразу на телефон. Это на случай когда прям верняк, что кто-то шарится по двору, чтобы зря себя не беспокоить.

2. Когда событие заканчивается, отправляется видео с этим событием так же в чат в телеге. Выглядит на данный момент как на скрине выше. Неказисто конечно, но пока более чем достаточно.

Не сразу оно было реализовано, по ходу дела наткнулся на некоторые подводные камни. Например, что через ботов можно отправлять файлы максимальным размером в 50 Мб. И второй: оказывается frigate после окончания события не сразу формирует клип по нему, из-за чего приходится иногда чутка поретраить. Но сейчас работает уже достаточно стабильно.

Планы на недалекое будущее: не постить кучу сообщений, а редактировать одно. Т.е. будет так - одно сообщение на один эвент. Если вдруг в процессе события появится кадр с более лучшим ракурсом (более высокий score) то мы заменяем картинку на новую. Так же, frigate умеет отправлять доп атрибуты, когда например обнаружил лицо человека. Такие фотки в охране я думаю более приоритетны чем просто фотка человека, так что, она тоже будет заменять менее приоритетную. Ну и по окончанию события в это же сообщение, вторым файлом, будет добавляться видео. Проблемы с ограничением размера файла в 50 мб думаю можно обойти тем, чтобы бить видео на части и загружать несколько кусков. Но может и не потребуется, пока за сегодня еще ни одно видео не вылезло за лимит в 50 мб (но одно было уже совсем близко).

Фух, вроде все на текущий момент. Может про что-то забыл рассказать, ну да ладно, в следующий раз потом расскажу.

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

Так что, буду теперь вас радовать более качественными фотками, не на убитую мобилу с разбитым всем что только можно было разбить 🙂 За сим откланиваюсь, до связи.

12 ноября 2024

Привет. Вчера я заметил, что в ЕРКЦ наконец-то появился электрический счетчик. А это значит, что я могу добавить его в свою софтину, чтобы показания по электричеству тоже автоматически отправлялись; Что я сегодня утром и сделал. Нужно будет конечно еще потестить, а то вот газовый счетчик как бы есть, но показания по нему не передаются. И проблема не на моей стороне, а на стороне конфликтов ЕРКЦ и газпрома. Так что, когда дело дойдет до газового счетчика, придется пилить отправку напрямую через личный кабинет газпрома. Ну да не страшно. Сложней будет считывать с счетчика показания. А так: 2/3, почти полная автоматизация уже :)

Там кстати внезапно вышла бетка новой версии 0.15 для Frigate, и в принципе там много всяких минорных (на мой взгляд) улучшайзингов, но есть один, который как бомба никак по другому не назвать. Короч, это семантический поиск по архиву видео.

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

Так же плюс, работает вся эта история локально, так что ваши home video в теории никуда не сольются.

А теперь минусы: моделька требует прилично ресурсов. Минимум 8 Gb RAM, а желательно 16 Gb. Так же очень желательно внешнюю видюху. Работать будет и на CPU, но насколько быстро - не понятно. А так же, поскольку моделька формирует описания на анлийском, искать можно только запроса на забугорном.

Я всю эту историю обязательно установлю и протестирую когда выйдет стабильный релиз. Ну и можно будет попробовать поискать другие описательные модельки которые выдают описание на русском и попробовать их прикрутить.

Вторая фича - GenAI. Если я справильно понял - она делает все тоже самое что и первая, только модель не локальная а какая-то внешняя. Из плюсов: не нужно мощное железо дома. Из минусов: нужно будет платить деньги а так же потенциально сливать свои домашние видосы. Ну и в случае проблем с интернетом это все перестанет работать. Поэтому мне больше всего интересна первая история. Может она будет не такая точная как использование описатора от OpenAI, но будет лишена тех критических (для меня) недостатков что я описал выше.

Ну и последняя строка из скрина выше про GenAI: Supported providers include Google Gemini, Ollama, and OpenAI, so you can choose whether you want to send data to the cloud or use a locally hosted provider.

Тут важно "or use a locally hosted provider". Значит поднимаем локальную модель которая делает описания на русском, используем GenAI в связке с ней и довольно урчим. Звучит как план.

10 ноября 2024

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

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

Так вот, уложил же я ламинат до конца подложки, осталось покрыть ею остатки голого пола. Боялся, что не хватит ее и придется собирать из обрезков. Но, таки ее хватило.

Когда пошла скошенная стена, процесс немного замедлился за счет того, что приходилось вырезать вот такие загогулины. Но, он не останавливался.

Еще в какой-то момент я начал боятся, что блин, похоже что ламината то мне может и не хватить.

Но, ура, хватило. И я закончил укладку ламината в комнате. А значит закончил с ним и во всем доме. Двойное ура.

Плитки мне внезапно хватило, осталось даже две цельных. Но, это все благодаря тому, что я максимально в ход пускал обрезки. Вообще если б я не запорол несколько плиток (а их было сильно больше 10ти) то может быть у меня бы осталась одна коробка, а может даже две.

Но да ладно, это все фигня, главное что хватило.

А после занялся уборкой. Вынес все обрезки из дома. Вот их сколько накопилось. По весу как будто на 50 кг а может даже и больше. Конечно тут много тех что уже безворзвратно нельзя использовать, их их надо бы выкинуть. Сегодня не было времени сортировать, потом пожалуй посортирую и что уже нельзя использовать выкину. Ну а остальные обрезки пока оставлю, вдруг где-то что заменить нужно будет.

С затиркой я сегодня не успел и наверное уже не успею. Решили, что отложу ее на следующий окончательный приезд. А завтра, если все по плану, поеду в Волгодонск, будем собирать вещи и переезжать. Не знаю сколько времени это займет, так что, stay tuned. До связи)

загрузка…