7

Интеграции Home Assistant с LLM2

Камрады, приветствую.

требуется совет, подсказка.

есть умный дом, построенный на 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 к своему УД, и как?

Умный дом

210 постов2.4K подписчиков

6
Автор поста оценил этот комментарий

Я как раз недавно таким баловался 🙂 Сделал себе утренние дайджесты с помощью YandexGPT. Здесь так же как и у вас на входе шаблонный текст, который пересказывается нейросетью и озвучивается колонкой. Плюс дополнительно в запросе я еще прошу посоветовать, что надеть с учетом погоды и нужно ли брать зонтик.


Как все работает, можно глянуть в начале видео: https://t.me/mansmarthome/143 (https://www.youtube.com/watch?v=C1KcW--vnUo)


А так я сейчас активно занимаюсь написанием интеграции YandexGPT для Home Assistant. Если интересно, то могу отписаться в комментариях, как доделаю 🙂

Иллюстрация к комментарию
раскрыть ветку (1)
2
Автор поста оценил этот комментарий

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

показать ответы
4
Автор поста оценил этот комментарий
ответный пост

Так, ну какой то код получился более-менее.

так как не программист я, и максимум знаний программирования у меня - это на 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 не путалась в комнатах и обитателях)

Показать полностью
комментарии (3)
1
Автор поста оценил этот комментарий

Спасибо 🤗 Как и обещал, вот ссылка на интеграцию с YandexGPT: https://github.com/black-roland/homeassistant-yandexgpt


Правда устанавливается она нормально только на HA 2024.11. Поэтому лучше подождать стабильного релиза (6 ноября), ну или можно уже попробовать обновиться до беты.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
1
Автор поста оценил этот комментарий

Спасибо 🤗 Как и обещал, вот ссылка на интеграцию с YandexGPT: https://github.com/black-roland/homeassistant-yandexgpt


Правда устанавливается она нормально только на HA 2024.11. Поэтому лучше подождать стабильного релиза (6 ноября), ну или можно уже попробовать обновиться до беты.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

да, уже видел сегодня, как и скрин с моим постом 😁.

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

крутится на локальной ollama, экспериментирую пока с моделями, ибо слабовато шутит.

на английском шутит лучше, но тогда нудно прикручивать перевод, что лишняя работа...

так что, пока эксперименты.

по итогу выложу код на гитхаб, вдруг кто то решит использовать.

и да, код пишу с помощью chatgpt, ибо в python не умею 😁

0
Автор поста оценил этот комментарий
Погода в доме
Иллюстрация к комментарию
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

сводка за день.

🏠 Грандиозный дневной дайджест от вашего главного домашнего синоптика!
📊 СВОДКА КЛИМАТИЧЕСКИХ ПРИКЛЮЧЕНИЙ ЗА ДЕНЬ:
🌅 Утро началось с настоящей драмы - сервер устроил нам мини-Сахару с температурой 28.49°C и влажностью 18.84%! Креветки чуть в обморок не попадали от такого представления, а гуппи временно получила звание "Главный пожарный инспектор года". К вечеру наш электронный друг остепенился, видимо, понял, что майнинг биткоинов - это не его призвание.
🐸 Мушкетёры-лягушата сегодня экспериментировали с микроклиматом: начали с роскошных 75% влажности, а закончили более скромными 69%. Атос весь день вёл протокол изменений, Портос организовывал акции протеста, а Арамис... ну, Арамис просто был Арамисом - философствовал о смысле влажности в жизни лягушки.
🦎 В комнате Лизы Глада устроила настоящий марафон выживания: температура упала с 24.54°C до 24.27°C! Мокрицы проявили невероятную солидарность: оранжевые и серые впервые за историю наблюдений объединились в "Комитет по спасению комнатного климата". К вечеру они даже научились вязать крошечные шарфики!
🌡 Балкон сегодня показал себя настоящим температурным американским горками: от тропических 28.47°C до более умеренных 27.24°C. Теплый пол честно пытался держать марку, но под конец дня решил взять перерыв на чаепитие.
😺 Главный критик всех температурных изменений - наша Кося - сегодня побила рекорд по количеству смены локаций. Утром она инспектировала сервер, днём устроила курорт на балконе, а к вечеру написала мемуары под названием "Как я искала идеальную температуру: британский взгляд на русский климат-контроль".
🎭 ГЛАВНЫЕ ГЕРОИ ДНЯ:
- Самый горячий - Сервер (утренний рекорд в 28.49°C)
- Самый стабильный - Спальня (26.81°C весь день, как по линейке!)
- Самые драматичные - Мокрицы (за организацию профсоюза и вязание шарфиков)
- Самая независимая - Кося (за искусство игнорирования всех климатических изменений)
- Самые музыкальные - Лягушки-мушкетёры (за концерт "Квакофония жаркого вечера")
🏆 Вывод дня: Несмотря на все температурные качели, наш умный дом продолжает оставаться самым уютным местом на свете, где каждый житель - от мокрицы до кошки - вносит свой неповторимый вклад в создание особой атмосферы. И пусть датчики показывают разное - главное, что показатель уюта всегда держится на отметке "Максимально комфортно"! 🏡❤️
P.S. Кося просила передать, что все вышеуказанные данные не соответствуют её личным наблюдениям, но она слишком аристократична, чтобы спорить! 😸

показать ответы
1
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

дык разве я писал, что нормальный?

вот дом делаю умный для чего?

чтобы хоть кто то в доме умный был (блин, рекурсия какая то....)

я же говорю - для фана и прикола ради делаю, будь снисходителен)

показать ответы
2
Автор поста оценил этот комментарий
Покрестить тебя надо, ирод
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

я крещенный, нафига, правда меня крестили, не знаю - согласия точно не спрашивали )

показать ответы
1
Автор поста оценил этот комментарий

вот свежие показания обработал (да, вручную, блин (

ну смешно же, разве нет?


🏠 Ночной дайджест от вашего неспящего метеоролога!

Самые пикантные изменения этого часа:

💻 В серверном царстве влажность упала до рекордных 30.9%! Похоже, наши миникомпьютеры устроили марафон по просмотру видео из Сеула от Лизы и слегка перегрелись от умиления. Синие креветки уже организовали группу поддержки с плакатами "Даёшь увлажнитель серверу!", а красные собирают подписи против технологической пустыни.

🌡 На балконе температура чуть-чуть снизилась до 28.44°C - видимо, теплый пол решил сделать перерыв на чашечку чая. Кося, конечно, уже написала гневный отзыв в своём инстаграме: "Минус 0.03 градуса! Возмутительно! Требую немедленного восстановления моего персонального спа-курорта!"

🦎 В комнате Лизы влажность продолжает снижаться (49.79%). Глада по этому поводу устроила экстренное собрание с мокрицами. Оранжевые предлагают устроить забастовку, а серые настаивают на мирных переговорах с увлажнителем воздуха.

Краткое резюме: Ночь обещает быть спокойной, если только мушкетёры-лягушата не устроят очередной концерт художественного кваканья. Температура везде держится в комфортных пределах, хотя сервер явно мечтает о личном облаке для охлаждения. А Кося... ну, Кося просто being Кося - величественна и независима, как и положено британской аристократке! 👑🐱

1
Автор поста оценил этот комментарий
А всё потому что ты Господу нашему не молишься, вот и не получается у тебя умный дом. Сходи к батюшке, покайся и свечку поставь преподобному Христофору анимешнику. Вот тогда вайфай у тебя и заработает. Благостно заработает, по-христиански
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

ходил, погнали меня 😁

#comment_242090726

показать ответы
1
Автор поста оценил этот комментарий

Вот чел с локальной моделью возился:
https://peyanski.com/local-ai-with-home-assistant-and-ollama...

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

о! ollama есть развёрнутая, тут, правда, про управление, но ознакомимся, спасибо)

1
Автор поста оценил этот комментарий
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

спасибо, почитаю, надеялся найти что то бесплатное, что можно selfhost развернуть...

показать ответы