Управление ioBroker из Telegram

В одной из статей на нашем портале мы писали как можно получить простые уведомления в телеграм из системы умного дома ioBroker. Сегодня попробуем обратное — отправить команду и управлять нашей автоматизаций через телеграм.

Для начала нам необходимо установить драйвер text2command. Затем зайдём в настройки драйвера телеграм и выставим реагирование на только что установленный нами драйвер текст2команд. Сохраняем и покидаем настройки:

В левой колонке админки найдём новую вкладку Текст->Команды.
Пропишем первое правило, для примера можем воспользоваться погодным драйвером:

Можем оставить всё по умолчанию, единственное нам надо выбрать в поле параметр температуру из погодного драйвера. %s %u в тексте подтверждения означает что к подтверждению добавится значение объекта. В нашем случаи это °C:

После этого перейдём в бот телеграма и дадим команду из ключевых слов «температура на улице». Если в ответ прилетает сообщение, мы на правильном пути:

Пропишем ещё одно правила для примера, но на этот раз выберем из списка правил «Что ни будь включить/выключить». В поле «Ключевые слова» пропишем фразы в таком порядке: 1.что, 2. Что сделать, 3. Где. Причём, обратите внимание, что через / мы можем в каждом из трёх блоков прописать дополнительные фразы, даже на разных языках: свет/освещение/лампа вкл/включить/an/anschalten кабинет/рабочая/arbeit.

Блоки между собой разделяются пропуском. В качестве управляемого устройства выберу виртуальную лампу, в поле параметр для включения впишу true и в текст подтверждения впишем какой ответ должен прилететь на нашу команду после обрабатывания команды.

Мы создали команду на включение, теперь создадим на выключение. Она выглядит практически идентично, за исключением второго блока где я изменил команды включения на выключение и изменил фразу подтверждения:

Пробуем отправить новые команды в телеграм и смотрим на изменение состояния лампы:

Готово! По этому принципу можем прописывать не только вкл/выкл опускание штор по процентам или диммирование световых приборов. Ознакомьтесь с меню «Правило». Там, в принципе, интуитивно понятно. Главное, следить за порядком ключевых слов, что бы не было одинаковых комбинаций.

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

Создаём новый скрипт «пример3» и выбираем JavaScript. Этот скрипт меню работает с текст2команд. Есть ещё инлайн клавиатура, которая может работать на прямую с объектами, но она более сложная.

Вставляем код из листинга и сохраняемся. Для примера пропишем так же ещё 4 кнопки на будущие:

sendTo('telegram.0', {
    text:   'Выбирете клавишу',
    reply_markup: {
        keyboard: [
            ['кабинет свет вкл', 'кабинет свет выкл'],
            ['Test 2', 'Info 2'],
            ['Test 3', 'Info 3'],
        ],
        resize_keyboard:   true,
        one_time_keyboard: true
    }
});

Сразу после старта скрипта в боте телеграм должно появится меню с клавишами:

Пропишем в текст2команд правило для вызова меню, если оно скроется:

В поле параметр выберем как тригер, активатор самого скрипта в объектах, «пример3»:

Теперь, если вдруг меню скрылось, то по фразе «Меню» или „Menu“ мы его снова вызовем.

Оцените статью
46 - столько SQL запросов к базе.
0,258673 - за столько сгенерировалась страница.