#include <Arduino.h>
#define WIFI_SSID "PAS-3X3"
#define WIFI_PASS ""
#define BOT_TOKEN "здесь мой токенID"
#define CHAT_ID "ID1" // здесь должны быть ID Telegram многих пользователей, но работает только если указать 1
#include <FastBot2.h>
FastBot2 bot;
void updateh(fb::Update& u) {
if (u.isQuery()) {
// ответ на query
bot.answerCallbackQuery(u.query().id());
// реакция на query. Для удобства обработаем через хэш
switch (u.query().data().hash()) {
case "OutoopenON"_h:
bot.answerCallbackQuery(u.query().id(), "Outoopen ответ"); // появляются в telegram, если нажать кнопку в инлайн меню
bot.sendMessage(fb::Message("Outoopen включён", CHAT_ID)); // обычное сообщение
break;
case "OutoopenOFF"_h:
bot.answerCallbackQuery(u.query().id(), "OutoopenOFF ответ");
bot.sendMessage(fb::Message("Outoopen выключен", CHAT_ID));
break;
case "Ignore"_h:
bot.answerCallbackQuery(u.query().id(), "answered Ignore");
bot.sendMessage(fb::Message("Ignore", CHAT_ID));
break;
case "IgnoreOFF"_h:
bot.answerCallbackQuery(u.query().id(), "answered IgnoreOFF");
bot.sendMessage(fb::Message("IgnoreOFF", CHAT_ID));
break;
}
}
// сравнение в главном меню
if ( u.message().text() == "Open")
{
bot.sendMessage(fb::Message("Дверь открыта", CHAT_ID)); // обычное сообщение
}
if ( u.message().text() == "Domofon")
{
fb::Message msg("Domofon inline menu", CHAT_ID);
fb::InlineMenu menu("OutoopenON ; OutoopenOFF ; Ignore ; IgnoreOFF, "OutoopenON;OutoopenOFF;Ignore;IgnoreOFF");
msg.setInlineMenu(menu);
bot.sendMessage(msg);
}
}
void setup() {
Serial.begin(115200);
Serial.println();
WiFi.begin(WIFI_SSID, WIFI_PASS);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("Connected");
// attach
// ============
bot.attachUpdate(updateh); // подключить обработчик обновлений
bot.setToken(F(BOT_TOKEN)); // установить токен
bot.setPollMode(fb::Poll::Long, 20000);
//////////////
fb::Message msg("Show menu", CHAT_ID); // появляется меню в самом начале
fb::Menu menu("Open; Domofon;\n Sequrity; Switches; Temperature;\n Other; HUB; Info");
msg.setMenu(menu); // подключить меню
bot.sendMessage(msg);
/////////////
}
void loop() {
// вызывать тикер в loop
bot.tick();
}