HomeKit & Telegram. Просто, как никогда (Telegram BOT)

27 сентября 2019, 17:58

Сидя на лежащих NodeRed и HomeAssistant, продолжаем цикл статей про быстрые команды в HomeKit.

Сегодня мы подготовим и настроим взаимодействие Telegram и HomeKit

Если ранее можно было только отправлять сообщения, и то, через сторонние системы, то сегодня можно не только отправлять, принимать и обрабатывать, но и взаимодействовать с HomeKit и всеми его данными.

Если вы спросите - а это сложно? Поверхностно, да. Сложно. К примеру, если вся логика взаимодействия с Telegram для других систем автоматизации уже написана, и вам лишь нужно выбирать - отправить или получить, то в HomeKit ее придётся написать с нуля.

К счастью, я ее написал сам, и вам лишь нужно будет заменить некоторые данные на свои (устройства и данные Telegram).

Попробуем разобраться, что же получилось.

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

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

1600x_image.png?1569580273

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

К примеру возьмём следующий сценарий:

Вам звонят в дверь (через любую кнопку в HomeKit), вам в Telegram приходит фото с камеры и кнопка - открыть:

1600x_image.png?1569580273
1600x_image.png?1569580273
1600x_image.png?1569580272
1600x_image.png?1569580274
{        "inline_keyboard": [[{ "text": "? Открыть",                 "callback_data": "opendoor"}]] }

Это параметры кнопки. Нас интересует имя и «callback_data». Именно здесь мы передаём сообщение боту - «opendoor».

Это может быть любое значение, но оно должно быть понятно и уникально для всех команд в вашем доме.

После этого вы можете добавить обработку этой команды в раздел «Управляем устройствами»:

1600x_image.png?1569580275

Вот и все. Добавляйте любые устройства аналогично этому. Ещё раз:

  • Нужно отправить в чат или диалог сообщение с кнопкой.
  • Добавить в бота реакцию на это сообщение.

Запуск бота

Запускать бота можно средствами HomeKit. Но я пока не стал доверять этот процесс ему, ввиду обильного количества багов в iOS 13.1, воспользовавшись внешним триггером на базе Homebridge. Это будет плагин, который раз в n секунд будет активировать виртуальный датчик движения, а HomeKit - уже запускать автоматизацию по этому датчику.

Плюс к этому решению ещё тот, что средствами HomeKit можно изменять частоту реакции датчика, к примеру, снижая ночью опросы до раз в 60, и повышая днём до раз в 5 сек., так и вообще отключать обработку Telegram, если она не нужна вам на время. Обратите внимание, что бот будет обрабатывать сообщения с частотой, заданной вами! Не указывайте слишком маленькие значения, рекомендую - 5 секунд.

Пример конфигурации плагина Homebridge для реакции раз в 10 секунд ниже. Далее вы сможете изменять ее через программу Eve.

{
      "platform": "AutomationSwitches",
      "switches": [
        {
          "type": "automation",
          "name": "Telegram",
          "period": 10,
          "autoOff": false,
          "stored": true
        }
      ]
}

Все новости мира умных домов - t.me/SprutAI_News

Остались вопросы? Мы в Telegram - t.me/soprut

Хочешь умный дом но нет времени разбираться?
Посмотри примеры работ и выбери себе интегратора.
  1. Дмитрий Дзюба (dmagraf)
    Дмитрий Дзюба (dmagraf) 16 дней назад

    Respekt

  2. (den23rus)
    (den23rus) 14 дней назад

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

    По умолчанию у увлажнителя есть такой параметр? Может кто подскажет чем измерять уровень воды в баке, что бы данные в хк получить?

К списку статей

Скидки для сообщества

Интернет-магазин yourhomekit.ru

+7 914 550-51-11
Промокод:
SPRUT-BLG
Размер скидки:
8%
Cамый большой ассортимент в России аксессуаров Apple HomeKit

Похожие статьи

04 сентября 2018, 12:14
Интеграция RGB ленты на ESP8266 с прошивкой tasmota в систему HomeBridge (HomeKit)
09 ноября 2018, 20:54
Кейс создания умного дома без каких либо прокладок в виде Raspberry pi
15 октября 2018, 09:05
Прошивка для Sonoff c нативным HomeKit
15 ноября 2018, 09:42
Способы автоматизации механических ворот
27 октября 2018, 12:20
Нативный Термостат для котла на ESP8266 с поддержкой Apple HomeKit
15 ноября 2018, 13:11
Xiaomi Mi Remote 360 добавляем Apple HomeKit
01 октября 2018, 07:43
Нативный HomeKit на ESP8266
15 июня 2018, 12:13
Охранная система в гараж на ESP8266 с интеграцией в Apple HomeKit
02 октября 2018, 18:41
Установка SDK для компиляции прошивок под HomeKit
28 августа 2018, 09:48
От голого Raspbian до веб-интерфейса homebridge за четыре команды в терминале.