Управление светом через Telegram Bot

Управление светом через Telegram Bot

Green Geek

Эта статья продолжает предыдущий проект. То есть у нас уже есть сервер с управляемым светом.

Для начала создадим бота через @BotFather, после чего сохраняем API созданого бота. Со светлой стороны все настроено, займемся темной.

Писать мозги бота можно на чем угодно, поэтому мы будем к̶а̶к̶ ̶т̶р̶у̶ш̶н̶ы̶е̶ ̶х̶а̶ц̶к̶е̶р̶ы̶ - просто на баше. Код собирался на коленке в темной комнате, но структура его довольно простая. По запросу curl запрашиваем getUpdates. Приходят все обновления от бота, которые он получил. Тогда проверяем на наличие новых обновлений и если они есть, то читаем последнее обновление и работаем с ним. В нашем случае реагируем на .message.text и отправляем ответ.
Сам код тут.
Настройка скрипта:

touch script #создаем файл script
nano script #открываем редактор nano
ctrl+v #вставляем код
ctrl+x -> y -> Enter #сохраняем скрипт и выходим
chmod +x script #делаем скрипт исполняемым
./script #запускаем
apt-get install jq #что-то типо sed для json данных, используется в скрипте

Мы дошли к самому вкусному, наш скрипт на баше и поэтому можем управлять светом напрямую. Добавляем новый case, либо уже в существующий добавляем код управления:

gpio write [ваш пин] [0 или 1]

Для оптимизации можем написать универсальный кейс для включения пинов:

/turnon*) #все сообщения, начинающиеся с /turnon
  pin=$(echo $command | sed 's/\/turnon//') #парсим номер ноги
  gpio write $pin 0 #включаем ногу
  $sendMsg+"Свет на ноге ${pin} включен" #сообщаем о успешной операции
 ;;


DLC

Для удобства управления на начальном уровне можем добавить подсказки:

Делается это в @BotFather --> /mybots --> Your_Bot_Name --> Edit bot --> Edit commands

Report Page