#include #include #include // Wifi network station credentials #define WIFI_SSID WIFISSID #define WIFI_PASSWORD WIFIPASS #define BOT_TOKEN BOTTOKEN const String CHAT_ID = CHATID; const unsigned long BOT_MTBS = 1000; // mean time between scan messages // GPIO Pin Definition const int inputPin = 0; // Initiale Zustandsvariablen bool lastState = LOW; bool again = true; int count = 0; X509List cert(TELEGRAM_CERTIFICATE_ROOT); WiFiClientSecure secured_client; UniversalTelegramBot bot(BOT_TOKEN, secured_client); unsigned long bot_lasttime; // last time messages' scan has been done bool Start = false; void handleNewMessages(int numNewMessages) { Serial.println("handleNewMessages"); Serial.println(String(numNewMessages)); for (int i = 0; i < numNewMessages; i++) { String chat_id = bot.messages[i].chat_id; String text = bot.messages[i].text; String from_name = bot.messages[i].from_name; if (from_name == "") from_name = "Guest"; if (text == "/send_test_action") { bot.sendChatAction(chat_id, "typing"); delay(4000); bot.sendMessage(chat_id, "Did you see the action message?"); } if (text == "/start") { String welcome = "Willkommen beim Klingelbot"; bot.sendMessage(chat_id, welcome); } } } void setup() { Serial.begin(115200); pinMode(inputPin, INPUT_PULLUP); // Set WiFi to station mode and disconnect from an AP if it was Previously // connected WiFi.mode(WIFI_STA); WiFi.disconnect(); delay(100); // attempt to connect to Wifi network: Serial.print("Connecting to Wifi SSID "); Serial.print(WIFI_SSID); Serial.print(" "); WiFi.begin(WIFI_SSID, WIFI_PASSWORD); secured_client.setTrustAnchors(&cert); // Add root certificate for api.telegram.org while (WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(500); } Serial.println(); Serial.print("WiFi connected. IP address: "); Serial.println(WiFi.localIP()); } void loop() { if (millis() - bot_lasttime > BOT_MTBS) { int numNewMessages = bot.getUpdates(bot.last_message_received + 1); while (numNewMessages) { Serial.println("got response"); handleNewMessages(numNewMessages); numNewMessages = bot.getUpdates(bot.last_message_received + 1); } delay(100); // Kurze Pause, um Prellen zu vermeiden bot_lasttime = millis(); } if (digitalRead(inputPin) == LOW) { if (again) { bot.sendMessage(CHAT_ID, "Ding Dong"); again = false; } else { count ++; Serial.println (count); if (count >20) { again = true; count=0; } } } }