Как я сделал Telegram-бота для управления умным домом (и чуть не спалил кота)
Когда у тебя дома валяется Arduino, ESP8266 и пылится Raspberry Pi, долго держаться не получится. Я знал, что в какой-то момент скажу себе: «А не собрать ли умный дом своими руками?» — ну и, конечно, сказал 😅
Хотелось чего-то простого: чтобы включать свет 💡, проверять температуру 🌡️, перезапускать роутер 📡 (да, я устал дергать вилку вручную) — и всё это с телефона, в пару касаний. Telegram показался идеальной платформой: он у всех есть, работает быстро, и... ну, боты — это кайф 😎
📦 Из чего я собирал:
Arduino UNO — брал на себя датчики и реле
ESP8266 — делал Wi-Fi-связь между железом и сетью
Raspberry Pi 3B+ — крутил Telegram-бота на Python
aiogram — та самая библиотека, с которой работать — одно удовольствие ⚡
И, конечно, жменька проводов, паяльник и терпение 🧪
Запуск получился примерно такой: Raspberry принимал команды в Telegram — через aiogram, естественно. Там всё по уму: asyncio, FSM, роутеры, вся эта красота. Я сделал хэндлеры для команд вроде:
/light_on 💡 — включить свет в спальне
/temp 🌡️ — показать температуру на балконе
/restart_router 🔁 — отдельное реле, подключенное к роутеру
/photo 📸 — Pi присылает фотку с кухни через камеру
Когда команда прилетала — Pi швырял HTTP-запрос ESP-шке, та передавала команду Arduino, и магия случалась ✨. Да, это звучит как схема доставки пиццы с участием дрона, но оно работало!
🛠️ Сюрпризы были, как без них:
Однажды ESP зациклилась, и реле включалось/выключалось каждую секунду. Свет в ванной начал жить своей жизнью. Бот бодро слал мне:
💡 Свет включён
💡 Свет выключен
💡 Свет включён
💡 Свет выключен
Кот охренел и убежал за шкаф. Я — перешил прошивку ночью 🙃
Семья быстро привыкла:
👨🦱 Батя шлёт /heat_on, когда на даче холодно.
👧 Сестра тыкает в кнопки «✨ гирлянда» и «☁️ режим уюта».
👩🦰 Жена возмущается, когда бот отвечает дольше 2 секунд — «почему наш ИИ такой тормоз?»
Потом я добавил inline-кнопки, авторизацию по Telegram ID (да, после того, как забыл закрытый репозиторий с токеном — спасибо GitGuardian за уведомление в почту 😅), и бот стал реально домашним.
📸 Из фишек:
Фото с кухни 🧀 — присылает на команду
Уведомления в Telegram, если температура упала ниже 18°C ❄️
Перезагрузка интернета через /restart_router — кто поймёт, тот поймёт
Пуш-оповещения, если свет остался включён на ночь 🌙
Сейчас думаю переписать всё под Home Assistant, но честно? Бот стал привычной частью дома. Он не просто выполняет команды — он реагирует, напоминает, заботится. Псевдо-умный дом, сделанный из запчастей и Python-а — но свой, родной, как тёплый Arduino в ладони 😌
Если ты тоже делаешь или хочешь сделать Telegram-бота для управления домом — не бойся, просто начни. aiogram действительно топ, даже для начинающих. А если интересно — могу выложить схемы, код и пример docker-сборки на Raspberry 💻
📌 Поддержи плюсом, если понравилось. Или напиши в комментах, какую функцию добавить в бота: чайник, жалюзи, кормушку для кота — всё можно собрать, если не боишься слегка пахнуть паяльником 🧑🔧
Код в мешке
Рассуждения Forbes о необходимости юридической проверки ПО при сделках с IT компаниями и две реальные истории из жизни о наё.. при продажах ПО для B2B
Код в мешке: за что платят покупатели ПО?
Попалась на глаза заметка в Форбс о том, что сектор технологий, медиа и телекоммуникаций сохраняет лидерство по количеству сделок M&A, и что в этом сегменте высок процент сделок в сфере soft-driven.
В переводе на человеческий: сейчас происходит много объединения активов компаний, а по-простому – слияний и поглощений. И очень часто в технологическом сегменте предметом сделки является ПО.
И, пишет Форбс, есть в этой истории изрядная заноза: покупатели активов частенько приобретают код в мешке. Ведь ПО – объект интеллектуальной собственности, он охраняется авторским правом, и далеко не всегда сам разработчик в курсе, что у него проблемы с правами на программный продукт. Или купила ваша компания уникальное ПО за все деньги мира – а потом оказывается, что не такое уж оно уникальное и сотни его копий напродавали другим компаниям.
Поделюсь парой историй на эту тему. Все названия изменены, вся фактура истинна.
«Вот такой же, только меньше, но другой» История первая.
Однажды мы собеседовали крутого айтишника и спросили, что случилось с предыдущим местом его работы. И человек рассказал дивное.
Последняя его работа была проектная, в маленьком и гордом IT-стартапе, который создал действительно уникальную платформу для криптовалютных торгов. У стартапа было несколько собственников, которые рьяно и с огоньком вели переговоры о продаже ПО с разными покупателями. И как-то так случайно (наверное) получилось, что ПО продали дважды, двум разным юрлицам.
Когда это обнаружилось, настала паника, хаос и каннибализм. А потом нашего героя пригласили на проект, чтобы организовать команду кодеров и быстренько на основе исходного ПО создать вот такую же, но другую систему. И загнать её второму покупателю как совершенно уникальную и ту самую, за которую он исходно заплатил.
И систему создали. И продали. И никто ничего не заподозрил. Все остались счастливы, кроме здравого смысла, совести и пары-тройки законодательных актов.
Приключения в концерне «Семицветик». История вторая.
Однажды компания «Лепесток», входящая в большой концерн «Семицветик», подписалась разработать для управляющих компаний своего города некое ПО. Конечно, это лишь совпадение, что задачу передали на аутсорс разработчику из Таганрога, с которым у руководства «Лепестка» были прочнейшие деловые и дружеские связи. Настолько дружеские, что некоторые сватья-братья работали в этих компаниях перекрёстно.
Таганрогский разработчик создал ПО и передал «Лепестку». Поскольку свои люди какашек не подсунут, руководство «Лепестка» оплатило продукт не глядя. А вот сами заказчики ПО оказались людьми вредными, бессердечными и проверили, что им принесли. И работу не приняли: ну кто бы мог подумать, что реальный функционал ПО совсем не натягивался на глобус поставленных задач!
Тем временем таганрогской разработчик внезапно и тихо перестал существовать, а его руководитель столь же тихо десантировался со всем накопленным баблом в далёкую тёплую страну. А ведь только что же всё в порядке было!
Руководство «Лепестка» честно пыталось спасти ситуацию, вбухивая самосвалы бабла в доработку софта, но без толку: проблема была в самой архитектуре ПО. Если вам требуется ледокол, то его и нужно строить. А если под видом ледокола вам продали речной трамвайчик, то как его ни апгрейди – всё без толку.
Я в то время работала в «Лепестке» по совсем другому проекту и оказались в курсе этой истории лишь потому, что вся компания с утра до ночи бегала и орала. Не зря: когда вся история дошла до руководства концерна, головы и должности полетели во все стороны.
А что надо-то было? Да провести экспертизу ПО перед приёмкой и не платить за код в мешке!
С другой стороны, вот написали мы это и задумались: ну ок, провели вы экспертизу, а кто сказал, что её заключение корректно? Ведь аудиторы всё ещё не несут ответственности за свои ошибки…
Так, друзья и подписчики, если вам приходилось проверять поставленный код на соответствие задаче – поделитесь опытом: куда бежали, кому кричали, что получили в результате?
Telegram-боты: зачем их создают, как использовать и когда они не работают
В предыдущих постах я писал о том, почему и для чего разработал мини приложение для ТГ (t.me/Socionyx_Bot/socionyx), дабы не засорять, оставлю только последний пост, где указаны ссылки на предыдущие:
Часть пятая, где я рассказываю о настройке бота на запуск мини-приложения и о микросервисах
Разработка telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть ай ноу ю вонт ми
Теперь же, друзья мои, хочу рассказать вам, почему же развилась такая куча этих ваших телеграмм ботов, что с ними делать и как с этим жить.
Давайте для начала дадим определение, от которого и будем плясать. Telegram-бот — это автоматизированная программа, созданная для взаимодействия с пользователями внутри мессенджера Telegram. Ну как бэ и все, но все равно не понятно, откуда такое засилие этими ботами. А истина кроется в том, что телеграмм бот может взаимодействовать с вашей программой (или просто кодом) через токен, который вы получите, создав такого бота через, опять же бота, BotFather. И вот тут открывается огромный простор для вашей фантазии, что и как должен ваш бот делать при взаимодействии с ним обычного пользователя. То есть, для некоторых сервисов телеграм бот по факту заменяет функционал фронтенда с его браузером, фреймворками, доменными именами, ssl сертификатами и иже с ними.
Давайте расскажу про тот функционал, который я реализовывал через тг бота:
Оповещение для гитхаба/гитлаба. Кто-то из разработчиков пушнул свои изменения, мне пришло сообщение о данном действии, удобно, можно оперативно отслеживать изменения.
Автоматизация обработки вакансий для HR. К боту была подключена языковая модель, которая обрабатывала вакансии, писала сильные и слабые стороны кандидата;
Конечно же запуск мини приложения;
Оповещение через бот, который запускает мини приложение, например, о новом функционале или временных работах;
И это лишь малый пласт того, что можно реализовывать с использованием тг ботов, плохо чтоль?
Как и любой инструмент, который всегда заточен под решение конкретной задачи (или группы задач), тг боты заняли определенную нишу — будь то автоматизация рутинных задач, сбор обратной связи или первичное тестирование гипотез. Их сила в простоте внедрения и скорости запуска: за считанные часы можно создать MVP, который проверит жизнеспособность идеи без значительных ресурсов. Однако важно помнить: бот — не замена полноценного продукта, а временный мост к нему. Если ваша концепция требует сложной логики, глубокой интеграции или масштабных пользовательских сценариев, бот станет лишь отправной точкой. Но когда задача позволяет урезать функционал до минимума, именно Telegram-бот становится оптимальным выбором для старта — дешево, быстро и с возможностью гибко адаптироваться под обратную связь.
Если интересно, you are welcome в мой тг канал t.me/socionyxchannel, где я пишу о разработке мини приложения и в целом делюсь мыслями о буднях разработчика.
Разработка telegram мини-приложения в 2025 или как я дошел до жизни такой. Немного итогов и мюслей
Не ждали? А вот он я!!!
Рубрика «в предыдущих сериях»:
Часть первая, что и почему я решил делать Telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть уно
Часть вторая, какой инструментарий я использую и немного о разработке Разработка telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть до
Часть третья, разворачивание приложения на VPS и немного про докер Разработка telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть тре
Часть четвертая, настройка бота в telegram, получение доменного имени и ssl, настройка nginx Разработка telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть куатро
Часть пятая, где я рассказываю о настройке бота на запуск мини-приложения и о микросервисах
Разработка telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть ай ноу ю вонт ми
С момента опубликования первого поста на пикабу прошел примерно месяц и у меня есть интересные выводы, которыми я готов с вами, мои дорогие читатели, поделиться.
За этот месяц (и 5 статей) в чат зашло 26 человека и возникает вопрос, а много это потенциальных пользователей или мало? Результат то хороший или плохой? Давайте поразмышляем.
Я уже писал в первой части, что у меня был опыт разработки «не успешных» продуктов. По одному из них есть статистика по результатам рекламной компании:
- реклама была показана нескольким тысячам пользователей;
- на сайт зашло примерно 10 человек;
- зарегистрировалось всего лишь 3 пользователя.
И да, рекламная компания стоила несколько тысяч, как итог, просто ужасная конверсия и «стоимость» привлечения пользователей. Если сравнить тех 3 пользователей и текущих 26, то это, определенно, успех. Главное не останавливаться, развивать продукт и писать об этом.
Перейдем непосредственно к мини-приложению, по нему высветились следующие проблемные области:
1) Пустой чат. Увы и ах, проблема любых сервисов, где необходимо взаимодействие между людьми. Заметил даже такую ситуацию, так как я стараюсь периодически в чате сидеть, то зашедший пользователь пытается переключаться на другой чат и снова попадает на меня, так как я единственный (кроме зашедшего пользователя) в данный момент пользователь и других комнат попросту нет;
2) Не красивый/удобный интерфейс. Здесь я получил следующие замечания:
2.1) Буквы не по центру кнопок;
2.2) Кнопка «Выйти» розового цвета;
2.3) Нет автоматического пролистывания диалога;
2.4) Присутствует английский язык в интерфейсе.
Абсолютно все замечания приняты и запущены в работу.
Кроме того, собираюсь сделать следующее:
Отображать на стартовой странице количество пользователей (комнат всего или пустых комнат), чтобы было понятно, есть вообще в чате кто-либо или пусто;
Писать через бота оповещения о каких-либо изменениях в функционале или дизайне чата;
Продолжать писать новые статьи как на различных ресурсах (пикабу, vc), так и в своем телеграм канале.
На этом на сегодня все, пацантре.
Не забываем, мини-приложение уже готово и ждет своих пользователей, как говорится welcome t.me/Socionyx_Bot/socionyx.
Ссылка на telegram канал t.me/socionyxchannel, you are welcome too.
Буду премного благодарен за обратную связь и замечания по работе текущего мини-приложения.
ИТшники уже не те )
Я на своей удаленке все время скатываюсь в модель из 2023, потому что холодильники и доставку нужно запретить ))) С трудом держу себя в ИТшника 2023 )))
Разработка telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть ай ноу ю вонт ми
Штош, я только начал и не собираюсь сдаваться!!!!!!!!!!
Рубрика «в предыдущих сериях»:
Часть первая, что и почему я решил делать Telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть уно
Часть вторая, какой инструментарий я использую и немного о разработке Разработка telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть до
Часть третья, разворачивание приложения на VPS и немного про докер Разработка telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть тре
Часть четвертая, настройка бота в telegram, получение доменного имени и ssl, настройка nginx Разработка telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть куатро
Для связи telegram бота и функционала, который вы хотите ему придать, необходимо реализовать соответствующий функционал с использованием языка программирования. Как я уже писал в первой части, для реализации бота был выбран фреймворк nestJS (язык программирования typescript) и кроме базовых файлов, которые автоматом устанавливаются при установке проекта, нам понадобится всего лишь два дополнительных файла.
Для бота написанными лично мною являются файлы bot.module.ts и bot.update.ts. Наполнение bot.update.ts следующее.
Наполнение bot.module.ts следующее.
В самом telegram боте после его «активации» вы увидите следующее.
В самом же списке контактов вы увидите следующее.
Ну вот и все, дорогие мои, все этапы создания мини-приложения для telegram пройдены, можете все это повторить, но уже для других сервисов, например, игр тайм-киллеров.
А теперь «микросерверность» и все, что с этим связано, nikita17cm все это для тебя, мой единственный комментатор!!!!!
Для начала рассмотрим, а что же является альтернативой микросервисной архитектуры и какие минусы у такого подхода, который был назван монолитной архитектурой. Представим, что на бэкенде у меня один проект и взаимодействие с ботом является составной частью основного бэкенда. На этом этапе никаких проблем нет, как вы все видели, код взаимодействия с ботом минимален и не сложен. Время проходит и я, например, решаю реализовать функционал оплаты, через робокассу или юмани. Реализация оплаты уже посложнее, код объемнее и отлаживать или тестировать его функционал становится сложнее, но все еще терпимо в рамках единой кодовой базы проекта. А потом мы добавляем логирование (для отслеживания ошибок), кеширование (для ускорения работы приложения), брокер сообщений (для гарантированной доставки важных сообщений) и т.д. Все это приводит к тому, что теперь процедуру отладки или тестирования функционала становится очень сложно проводить, так как изменения в одной части кода могут повлиять на другую часть кода. А что если как-то выделить код, который отвечает за какой-то один функционал (бот, логирование, кеширование и т.д.) и, самое главное, изолировать этот функционал между собой? В этом и есть основной смысл микросервисной архитектуры, который позволяет абсолютно независимо разрабатывать, тестировать и отлаживать взаимодействие отдельных микросервисов между собой. Накатили новые изменения и сломался функционал логирования (кеширования, брокера сообщений)? Не проблема, основной функционал вашего приложения работает, как раньше, просто откатываете изменения и исправляете ошибку. Именно поэтому функционал бота у меня выделен в отдельное приложения, я сразу стал так писать, а не писал сначала все в одном проекте, а потом решил часть проекта выделить в отдельный микросервис. Надеюсь, стало немного понятно, а вообще на ютубе полно видео на эту тему, которые достаточно доходчиво объясняют все интересующие вас аспекты.
А, ну и конечно, как я уже ранее писал, мини-приложение уже готово и ждет своих пользователей, как говорится welcome t.me/Socionyx_Bot/socionyx.
Кроме того, завел telegram канал t.me/socionyxchannel, где буду писать о дальнейших этапах разработки и продвижения, разработанных мною приложений.
Буду премного благодарен за обратную связь и замечания по работе текущего мини-приложения.