Closed AndreyUshak closed 2 years ago
Привет, это не будет работать, потому что сообщение отмечается прочитанным при следующем обращении к серверу. Можно поднять флаг, по которому уходить в ресет, предварительно вызвав tickManual
bool res = 0;
void message(FB_msg &msg) {
if (msg.text == "restart") res = 1;
}
void loop() {
if (res) {
bot.tickManual();
ESP.restart();
}
}
Спасибо за подсказку, я ещё как вариант подумал сравнивать время msg с системным зафиксированным при первом тике и отсеивать всё, что меньше. Закинул экспериментально чуток на юмани, (до этого не пользовался этим сервисом), удачи).
Спасибо, пришли, значит сегодня банкет)
Привет, запустил пример с меню, и повесил свою команду на кнопку, ESP.restart(); после этого есп переходит в вечный ребут, очистка чата не помогает, bot.deleteMessage(bot.lastUsrMsg()); нет работает, новые команды не воспринимает и не удаляет, а вытаскивает самую первую команды на рестарт и так по кругу.
void setup() { connectWiFi(); bot.setChatID(CHAT_ID); // подключаем функцию-обработчик bot.attach(newMsg); // показать юзер меню (\t - горизонтальное разделение кнопок, \n - вертикальное bot.showMenu("restart \t Menu2 \t Menu3 \n Close"); bot.sendMessage("start!"); delay(5000); bot.deleteMessage(bot.lastBotMsg()); bot.deleteMessage(bot.lastUsrMsg()); } // обработчик сообщений void newMsg(FB_msg& msg) { Serial.println(msg.text); if (msg.text == "Close") bot.closeMenu(); if (msg.text == "restart") ESP.restart(); } как-то можно это подправить? Спасибо.