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
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() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|