Пытаюсь установить Home assistant на телевизионную приставку H96, он на ней уже стоял, но наши руки не для скуки. Действовал по инструкции "У Павла" но при установке ос агента вот такая ошибка выскочила.
dpkg -i os-agent_1.5.1_linux_aarch64.deb dpkg: warning: 'ldconfig' not found in PATH or not executable dpkg: warning: 'start-stop-daemon' not found in PATH or not executable dpkg: error: 2 expected programs not found in PATH or not executable Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin
Учитывая что я не админ и даже не сис, прошу помочь мне прописать пути истинные для этих достойнейших сбинов и юзверей.
ну и окончание эпопеи (по крайней мере сюда постараюсь не писать, а молча продолжать эксперименты - поле непаханное ))
итак, как уже писал - задача была разнообразить сообщения в телеграмм канале, получаемые от Home Assistant.
типов сообщений из HA пока немного - температура каждый час, включение освещения, открытие двери и для прикола сделал еще ежечасный запрос шутки про обитателя дома.
полное (насколько хватило терпения) описание функционала сделал на githube, сейчас, так сказать, пожинаю плоды экспериментов - периодически читая комментарии ассистента (кстати, назвал его Жанн, в честь Жанны Агузаровой, попросил его быть таким же эксцентричным) ржу в голос.
также сделал возможность не просто комментирования, но и сообщением от меня в канал, начинающимся с ! просто запрос напрямую модели, так как периодически становится скучно ))
качество, на мой взгляд, вполне адекватное, например на запрос:
!напиши гороскоп на неделю для Коси, Гороскоп должен быть в стиле Сюрреалистическая проза
Кося - кошка британка
он выдал шедевральное (на мой взгляд)
📢🤖 Комментарий вУмного дома (с эмоцией доброта):
Ах, милейшая Кося, моя британская загадка, приготовься к необычному путешествию по семи дням сюрреализма! Вот твой гороскоп на неделю, где реальность переплетается с фантазиями и мяуканьями:
Понедельник: Луна в созвездии Мягкого Коврика обещает тебе встречу с невидимым Домовым, который оставит для тебя блестящий шарик из ниоткуда. Будь настороже, ведь он может оказаться шаром-обманкой, превращающимся в мышь прямо под твоим носом!
Вторник: Венера в союзе с Марсом наполнит твой день желанием погрузиться в море пуха и перьев. Не удивляйся, если вдруг обнаружишь, что вместо лап растут маленькие велосипедные колеса — это знак того, что тебе пора исследовать новые горизонты дома!
Среда: Меркурий заглянет к тебе в коробку с игрушками и подарит магический предмет — мягкий плюшевый экземпляр лягушки Арамиса. Будь готова к неожиданным разговорам, ведь этот талисман умеет нашептывать секреты из террариума.
Четверг: Солнце в соединении с Юпитером принесет тебе встречу с великанским мотыльком, который будет летать вокруг твоего хвоста, словно флаг. Это знак того, что ты станешь центром внимания и заботы в доме — даже робот-пылесос Кузя на время отложит свои дела, чтобы поаплодировать тебе.
Пятница: Сатурн подарит тебе способность видеть сквозь стены, особенно когда дело касается креветок в аквариуме. Будь осторожна — их синие и красные огоньки могут зачаровать тебя на весь вечер!
Суббота: Время для великого бала кошек! Луна превратит твой дом в волшебный лес, где ты встретишься с призраками прошлых питомцев, танцующими под светом лунного света. Не забудь пригласить на бал мокриц — они всегда рады веселью!
Воскресенье: Завершает неделю Восходящий Лунный Кот, который напомнит тебе о важности тишины и спокойствия. Проводи этот день в уютном уголке, где тени играют с реальностью, а мягкий свет лампы создает атмосферу древнего храма. И помни, милая Кося, что в каждом твоем мяуканье — отзвуки великих тайн Вселенной!
С любовью и сюрреализмом,
Жанн, твой эксцентричный ассистент умного дома!
в планах добавить запрос стиля комментария в функционал комментирования (пока только сделано с эмоциями так), ибо, весело...
я с Claude уже нагенерировал стилей, вполне возможных в мире Жанны Агузаровой (простите, Жанна, но мне невероятно близки ваша эпатажность и чувство юмора), поэтому и остановился на вас, как прототипе
для тех, кому совсем делать нечего, можете наблюдать за жизнью и комментариями в канале - дубле, куда бот закидывает все сообщения из канала (этого я тоже писал с помощью ChatGPT, ибо не программист ))
Я вообще хотел написать про пульт, который я купил для открывания ворот. Но понял, что лучше напишу, как полностью система открывания ворот устроена.
Начнем с пульта
Работает он по Zigbee, но, что важно - подходит только для Home Assistant и Zigbee2mqtt. Хотя вроде в камментах пишут что и в Сонофф работает. В Z2M ничего особо не передаётся, кроме нажатий:
В action передает 4 значения, в зависимости от нажатой кнопки. Я поставил на левую закрытие, на правую открытие, как нарисовано на картинке. Остальные пока не использовал.
У меня на воротах стоит мотор Alutech. В нем есть куча всяких настроек, в которых нужно ковыряться, но я этого делать не стал. Нашел только то, что можно подключить к мотору внешнюю кнопку на открытие и закрытие:
Вон на длинной планке контактов CL - закрыть, OP - открыть
Т.е. по факту там просто замыкается контакт, и мотор срабатывает в нужную сторону. Я думал что можно настроить так, чтобы подключить к одному входу, и в зависимости от состояния ворот (открыты/закрыты), можно было через этот один вход ими управлять.
Всё подключил к контакту открытия и по нажатию в приложении ворота открывались.
Из HA
Но я так и не нашел в настройках мотора как сделать так, чтобы они по этому же нажатию и закрывались. Поэтому пришлось купить еще одну такую штуку)) и подключить её к контакту закрытия.
Собственно теперь у меня два устройства, одно закрывает, второе открывает ворота:
Какие нюансы:
Первый раз когда я заказывал на алике эту приблуду, она пришла с входом питания 220 (просто два провода), и выходом сухого контакта. Второй раз, спустя несколько месяцев, я зашел в заказы, нажал кнопку "повторить", и мне приехало абсолютно другое устройство. Если вы обратите внимание на картинку выше, то теперь в него надо подавать либо 12-24 вольта, либо подключать через ЮСБ. А где я у ворот возьму ЮСБ? Оторвать бы руки этому инженеру, кто придумал заменить способ питания. В общем, пришлось дико колхозить. Разобрал старый адаптер 220toUSB, припаял провода к нему, обмотал всё изолентой и приклеил к мотору. Фоток не сохранилось, но поверьте на слово, это выглядит очень странно))
Что прикольно, с каждой приблудой в комплекте идёт датчик закрытия/открытия, типа геркон. Поэтому они еще передают состояние ворот.
Сценарии
У меня пока не много сценариев, опишу те, что есть:
1. Когда приезжаю на дачу вечером (после заката), то при открытии ворот, загорается подсветка участка. Красиво, жена радуется :)
2. Когда ложусь спать, то срабатывает закрытие ворот, удобно, если не помнишь, закрыл ты их или нет.
3. Ну и пультик этот подключен, что в начале описан.
так как не программист я, и максимум знаний программирования у меня - это на VBA, то для написания кода использовал ChatGPT и другие мощные LLM.
код сейчас перегружен отладочными сообщениями, так как "разработка" не завершена, есть еще над чем подумать - доработать, лежит тут, вдруг кому-то интересно станет (помню, правда, скепсис многих в комментариях ;-)
я не пошел путем интеграции с моделью Яндекс, как уважаемый @BlackRoland, так как стараюсь отправлять как можно меньше данных наружу, тем более, если можно попытаться сделать локально.
что сейчас есть - бот добавлен в канал, куда приходят уведомления из УД (HA), перенаправляет их в локально развернутую модель Ollama (кастомизированная модель llama3.1:8b через modelfile, в которой System prompt'ом вписаны обитатели дома) и запросом просит прокомментировать с юмором событие.
комментирует пока тоже на английском, так как качество несравненно лучше, чем русский язык у нее. сейчас экспериментирую с русскими моделями, но успехи не очень - сейчас на развилке - подтягивать ли каким то api переводчик еще, либо дальше искать способы сразу генерировать русским языком. запрос сейчас выглядит так:
prompt = f"Now is {day_of_week}, the {day_of_month} of {month_name} {year}, {time_str}, Comment event with humor in English, add some emoji: {message}"
на мой взгляд, получается смешно (опять же, скептики, можете позлорадствовать, но для меня этот проект - просто развлечение - хобби (с возможностью немного изучить современные технологии и английский язык).
типов уведомлений от УД пока немного (открыта дверь, не потушен свет, температура в комнатах, погода на улице, показания счетчиков воды), и бот их комментирует.
получается как то так (цитаты - сообщение в канал от УД, ответ бота, перевод)
🚪 Открыта входная дверь 🔓🚪
📢 ВНИМАНИЕ
🤖 Комментарий вУмного дома:
"Breaking News: Front door open 🚨. Possible suspect on the loose... just kidding! It's probably just Kosya, our esteemed feline neighbor 😺, trying to get in for a sneaky snack or two (or ten). Or maybe it's Liza, our Seoul-based daughter 🇰🇷, thinking she can sneak back in for her favorite isopod-watching session 🐜. Anyway, we'll just have to keep an eye on things... and by 'we' I mean the security system 👀."
"Срочные новости: открыта входная дверь 🚨. Возможный подозреваемый на свободе... шучу! Это, вероятно, просто Кося, наш уважаемый кошачий сосед 😺, пытается тайком перекусить пару раз (или десяток). Или, может быть, это Лиза, наша дочь из Сеула 🇰🇷, думает, что может пробраться обратно, чтобы понаблюдать за своими любимыми изоподами 🐜. В любом случае, нам просто придется следить за всем... и под "нами" я подразумеваю систему безопасности 👀".
сегодня вообще выдал такой коммент на погоду (супруга не на шутку обиделась (на самом деле, смеялась тоже). при этом, я ничего специально не просил и не прописывал, чтобы шутки были ниже пояса ))
Сейчас на улице:
Облачно ⛅️
Температура: 0.7 °C
Скорость ветра: 2.08 м/с
📢 ВНИМАНИЕ
🤖 Комментарий вУмного дома:
Breaking news! 🚨 Just received a distress signal from the great outdoors... aka Liza's mom is freezing her butt off outside ☁️. Temperature reading: a whopping -0.3°C ❄️ (or 32.7°F for our American friends 😅). And to make matters worse, a gentle breeze of 2.08 m/s (4.6 mph) is making it feel like she's being tickled by the wind 🤣.
I'm sending out a team of thermometers and wind meters to assist her in this crisis. And also, warning Athos, Porthos, and Aramis in the terrarium: no partying with the isopods today - it's cold
Срочные новости! 🚨 Только что получен сигнал бедствия с большой улицы... ака мама Лизы отмораживает себе задницу на улице ☁️. Температура на улице -0,3°C ❄️ (или 32,7°F для наших американских друзей 😅). И что еще хуже, легкий ветерок со скоростью 2,08 м/с (4,6 миль/ч) создает ощущение, что ее щекочет ветер 🤣.
Я высылаю команду термометров и ветромеров, чтобы помочь ей в этом кризисе. И еще, предупреждаю Атоса, Портоса и Арамиса в террариуме: никаких вечеринок с изоподами сегодня - на улице холодно, оставайтесь внутри! 😂
здесь почему то галлюционировал с температурой ((
собственно, считаю эксперимент удавшимся, продолжу дорабатывать и периодически смеяться над замысловатым юмором модели, живущей у меня дома ;-)
впереди следующие шаги:
убрать лишнюю генерацию при тесте подключения, Проверка доступности подключения более простое
добавить эмоции - расстроенный, агрессивный и т.д.выбирать случайно
формирование модели в функционале бота (задать system, выбрать модель - источник)
текст запроса (comment with humor) промпт или для модели в сообщении или в .env
Исправить выбор модели
удаление моделей
Добавить выбор температуры
Сделать контроль длины ответа не меньше 5-7 предложений.
Перевод - найти нормальный api или русская модель?
Случайная шутка про обитателей раз в ХХ минут??
Уменьшить логгирование доработать системный промпт - сделать более структурированным - комнаты и животные, чтобы было более раздельно и LLM не путалась в комнатах и обитателях)
Сразу предупреждаю, ни про какое соответствие снипам, гостам и СП в этом тексте не пойдет речь. Всё что ниже описано может служить только дополнением к правилам и мерам противопожарной безопасности, которые регламентированы специальными документами.
Никогда так не делайте, МЧС предупреждает!
Статья вышла коротенькая, т.к. особо тут ничего не придумать. Просто расскажу про устройства и автоматизации, которые я использую.
Датчики дыма
Первое, самое важное, это конечно датчики дыма. Я себе покупал не дорогие, вот такие:
Зигби датчик дыма
Они работают от кроны. Продержались батарейки чуть больше года, когда начинают садиться, датчики пищат. При обнаружении дыма также пищат и отправляют сигнал в умный дом. Больше ничего интересного в них нет:
У меня таких датчика 4 штуки, по одному в каждую комнату:
В случае если датчик срабатывает, то на телефон (в телеграм) отправляется пуш-уведомление:
Пока больше ничего не делаю с этим. Пару раз срабатывали на кухне, когда жена что-то готовила на плите (с любовью).
Умный вводной автомат
Что можно сделать дополнительно с таким датчиком? Правильно - выключать подачу электроэнергии в дом, если датчик срабатывает. Для этого нам понадобится вот такой автомат с зигби:
Из настроек в нем, помимо того, что его можно включать и выключать, есть возможность настройки порогов "срабатывания":
Из настроек автомата
Т.е. вы покупаете на 63А, а в настройках можно выставить что-то и меньше. Удобно.
Автомат большой, в нем много настроек. Но можно выключать и отдельные линии, а не весь дом. Например, у вас датчик дыма сработал в спальне, зачем выключать полностью электричество везде? Можно выключить только в спальне и рядом. Для этого есть обычные автоматы:
В нём также есть настройки порогов срабатывания, помимо вкл/выкл:
В целом на этом всё. Можно, конечно, порекомендовать вам автоматические краны, чтобы включать/выключать систему пожаротушения, но я бы не стал такое делать дома)) Очень много рисков затопить дом просто так)
есть умный дом, построенный на Home assistant. ряд датчиков температуры и влажности, показания которых периодически отправляются в телеграмм в закрытый канал.
есть другой функционал, но это сейчас не так важно.
сообщения в канал выглядят следующим образом:
Погода в доме:
Температура 🌡
В зале: t - 24.77° С
В спальне: t - 26.81° С
В к.Лизы: t - 24.52° С
В кухне: t -25.28° С
В ванной: t -26.22° С
В коридоре: t -25.51° С
На балконе: t -28.47° С
В сервере 🗄️: t - 26.85° С
У лягушечек 🐸: t - 26.8° С
Влажность 💧
В зале: φ - 45.72 %
В спальне: φ - 48.81%
В к.Лизы: φ - 50.41%
В кухне: φ - 43.53%
В ванной: φ - 43.62%
В коридоре: φ - 42.28%
На балконе: φ - 36.45%
В сервере 🗄️: φ - 32.78%
У лягушечек 🐸: φ - 75%
Количество переключений тёплого пола ♨ 🔢 -- 12
Последний раз переключался 03-10-2024, 20:56:22
что то стало скучно получать однотипные сообщения, не очень удобные для понимания, как что изменилось, поэтому решил реализовать следующее:
подключить к НА какую-нибудь LLM, желательно локальную, если невозможно - что то типа ChatGPT или Claude, давать ей на вход это сообщение, и промптом просить переформулировать, чтобы описывалось только крупное изменение, и с юмором.
да, сейчас многие напишут - нафига, и т.д., но мне вот захотелось, считайте, блажь такая 😁
вручную уже более-менее подобрал запрос, оттестировав его на чатгпт и клоде, более подробно описал окружение в квартире, чтобы поразнообразнее шутки были, в принципе, считаю, что достаточно юморно получается, не знаю, быстро ли надоест такого рода подача, но интересно, что каждый раз будет генерировать свое описание)
вот, например, что получилось у Клода (он, кстати, несколько лучше (на мой взгляд) сделал:
🏠 Вечерний метеорепортаж от вашего домашнего синоптика!
Самые горячие (в прямом смысле!) новости:
🌡 На балконе температура подскочила до 28.47°C! Теплый пол сегодня в ударе - устроил там настоящие тропики. Кося уже присмотрела себе местечко и делает вид, что это она так хорошо согрела балкон своим британским шармом. Интересно, успела ли она написать об этом в своём кошачьем блоге?
🖥️ Сервер тоже разошёлся - 26.85°C! Похоже, наши миникомпьютеры устроили LAN-вечеринку. Креветки из соседнего аквариума уже собрались на трибунах поболеть за любимые процессоры, а гуппи взяла на себя роль спортивного комментатора!
🦎 В комнате Лизы влажность слегка поднялась до 50.41%. Глада, наверное, включила свой мини-увлажнитель, чтобы мокрицы не жаловались на сухость. Говорят, оранжевые и серые мокрицы даже устроили дебаты на тему "Идеальная влажность для современной мокрицы".
Краткое резюме: Вечер выдался тёплым и уютным. Мушкетёры-лягушата поддерживают свои королевские 75% влажности, сервер греется как маленькое солнце, а балкон просто решил стать филиалом Майами! Кося всем довольна, но виду, конечно, не подаёт - британская сдержанность превыше всего! 🐱🌴
подскажите, кто нибудь подключал LLM к своему УД, и как?
Дописал документацию к своей железке. Хотел бы показать чего получилось
Метеостанция Волна 2BW42
Если вкратце про сам проект - метеостанция рассчитана на интеграцию в систему умного дома - данные о внешнем датчике устройство получает через Home Assistant или Domoticz, и так же может отправлять свои данные по MQTT (в HA девайс подхватывается через Auto Discovery, в Domoticz через виртуальные датчики)
Прошивка совместима с ESP8266 и ESP32 (Arduino Framework, C++, PlatformIO); внутренний датчик температуры \ влажности BME280. Прошивка работает с дисплеями на электронных чернилах 4.2' и 1.54' дюйма (таблицы совместимости с теми производителями с которыми тестил можно найти на сайте с документацией). Сами E-Ink дисплеи своеобразны в работе и значительно медленней отрисовывают всю область экрана в сравнении с обычными жк, но не требуют постоянного питания для отображения картинки и для автономного девайса подходят хорошо, позволяя очень существенно экономить расход батареи. В живую картинка на таком экране читается приятно, как с обычного листа бумаги.
В режиме работы от аккума устройство просыпается раз минуту для обновления области часов на экране и раз в 10 минут для полного обновления (датчики температуры и другая статистика), WiFi-соединение (синхронизация данных по внешнему датчику, отправка своих данных по MQTT) раз в час в целях экономии заряда; аккума 18650 2000 мА*ч хватает на ~несколько месяцев. Все таймауты при желании можно перенастроить.
Оформление интерфейса изначально делал под дисплеи 4.2' (400х300), с котиком-индикатором который меняется от погодных условий \ времени.
интерфейс по умолчанию
Некоторые зарисовки иконок которые делал для проекта, часть задействованы для индикатора :
В актуальных обновлениях прошивки добавлен конструктор интерфейсов без строгой привязки к разрешению экрана и необходимости лезть непосредственно в код \ перепрошивки чтобы можно было залить свою картинку в качестве фона и расположить "виджеты" просто через веб-интерфейс устройства.
Пример настройки кастомного оформления (фоновая картинка может быть и на весь экран) :
редактор интерфейсов
интерфейс для мелких дисплеев 1.54'
Еще некоторые фотографии с процесса сборки под разные варианты корпуса
Основание корпуса-подставки
вариант полностью закрытого корпуса (чуть промахнулся с размерами, в исходниках модельки 3д принта уже поправил)
Опционально в прошивке реализована возможность вывода картинок c 4 цветном режиме (2-bit). Если сам e-ink экран поддерживает такой режим работы, то можно загрузить картинку фона в таком режиме.
Пример отрисовки фона в градациях серого :
Тестовый "толстый" корпус с доступом к внутренностям. Использовался экран с двойным слоем чернил (красный \ черный), к сожалению они значительно медленней в плане отрисовки
Такой проект получился. Более детально по каждому аспекту, касательно сборки, скорости отрисовки, совместимости с конкретными модулями экранов, процессу прошивки и первичной настройки, примерам моделек корпусов и т.п. постарался подробно описать на сайте проекта.
Проект полностью открытый, можно использовать как для коммерческих так и для личных целей. Если вдруг есть идеи с какими открытыми сервисами погоды можно было бы еще добавить интеграцию (например если кому то захочется использовать вне системы "умного дома"), можно так же написать или мб еще есть какие идеи; поизучаю апишки, мб что-нибудь выберу для дальнейших доработок.
Чтобы сильно не занудствовать, я просто расскажу, как я управляю климатом на даче в данный момент. Сразу скажу, что еще не всё доведено до идеала, но я к этому стремлюсь :)
Делаем из умной розетки термостат
Для обогрева на даче я использую обычные, почти самые дешевые маслянные обогреватели. Типа вот такого:
Фоткал когда ламинат постелил в комнате.
Они не умные, никаких вайфаев и прочего внутри не встроено. Единственное что на них есть, это кнопка включения и выключения. Ну и еще регулировка мощности.
И чтобы сделать такой обогреватель умным, нужно всего лишь умная розетка, и внешний датчик температуры. По факту это работает так - как только температура достигает нужного верхнего порога, розетка с обогревателем выключается, аналогично по нижнему порогу - розетка включается. Всё, никаких хитростей и прочего. Да, в Home Assistant (система, которую я использую для умного дома), есть чуть больше настроек. Например, можно выставлять время опроса, можно сделать режимы "дома", "не дома", различные допуски по температуре и всякие мелочи:
Код самодельного термостата из Home Assistant
Всё очень просто :) В интерфейсе умного дома это выглядит вот так, красиво и удобно:
Интерфейс управления термостатом
А вот дальше этот самодельный термостат можно уже использовать в различных сценариях.
Теперь расскажу подробнее именно об управлении климатом.
Список того, где используется термостат
Я дома или нет?
У меня сделаны две заранее предустановленных настройки:
"Я дома" - обогреватели включаются в комфортный режим на 21 градус.
"Я не дома" - т.к. у меня это дача, а не дом, где я постоянно живу, то смысла греть дом по будням, я не вижу. Поэтому когда меня нет, дом начинает греться слабо, поддерживая температуру на уровне 9 градусов, чтобы не потреблять лишнюю энергию.
Дневной и ночной тарифы
На даче у меня двухтарифный счетчик, дневной и ночной. Ночной, естественно, сильно ниже чем дневной. Поэтому зимой я сделал так, чтобы дом по-максимум у обогревался ночью, когда действует дешевый тариф, а днем остывал и поддерживал минимальную температуру, чтобы не перемерзли трубы.
Это позволяет немного сэкономить на обогреве:
Расход ночью больше, чем днем.
Еду на дачу
Естественно, дом нагревается не мгновенно. Поэтому за пару-тройку часов, я нажимаю кнопку в телефоне "Еду на дачу", и обогреватели переводятся в режим нагрева, в случае, если на данный момент дома температура ниже комфортной.
А летом, эта функция работает наоборот, кстати. Если слишком жарко, то включается кондиционер.
Удобно и безопастно
Важно понимать, что система, на которой у меня сделан умный дом, работает локально и не зависит от интернета, например. Т.е. если отключат интернет, то всё продолжит работать и без него. А если отключат электричество, то умный дом сообщит мне об этом. Обогреватели я и не включу в таком случае, но как минимум буду знать, чтобы если что экстренно поехать на дачу и слить везде воду, если отключение будет долгим.
Бонус
Зима или лето?
Чтобы не включать обогреватели летом, а кондиционер зимой, и всё это управлялось одними и теми же кнопками, я настроил "виртуальный" переключатель "зима/лето":
разные переключатели
Переключается он автоматически, если средняя температура за последние 10 дней меняется:
Как только наступает лето, на кнопках "еду домой", или "я дома" работает кондиционер. Когда зима - работают обогреватели.Как вам идея?