You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.2 KiB

try:
import urequests as requests #For MicroPython
except :
import requests
import json
import gc
from machine import WDT
from machine import Pin
wdt = WDT(timeout=30000)
wdt.feed()
gc.enable()
led = Pin(2, Pin.OUT)
led.on()
with open("config.json", 'r') as f:
config = json.load(f)
offset = "0"
while True:
gc.collect()
wdt.feed()
#long poll for response
querry = 'limit=1&offset={}&timeout=5'.format(offset)
try:
resp = requests.get(url='https://api.telegram.org/bot{}/{}?{}'.format(config["token"], "getUpdates", querry))
json = resp.json()
resp.close()
if json.get("result"):
#get latest message
offset = json.get("result")[0].get("update_id") + 1
text = json["result"][0]["message"]["text"]
print(text)
if text=="/on":
led.on()
if text=="/off":
led.off()
#echo message
querry = 'chat_id={}&text={}'.format(config["recipient"], text)
requests.get(url='https://api.telegram.org/bot{}/{}?{}'.format(config["token"], "sendMessage", querry))
except Exception as e:
print(e)
resp.close()