ESP32 - Auslöser für IFTTT-Webhooks in MicroPython auslösen

Einführung

ESP32 - Beschreibt, wie IFTTTT-Webhooks mit MicroPython angefordert werden.

Entwicklungsumgebung

Das Folgende ist die bestätigte Umgebung.

Ausrüstung

Artikel Modellname Bemerkungen
ESP32-WROOM-32 Entwicklungsboard [NodeMCU-32S ESP32-WROOM-32]

Code

Der Code, dessen Funktion bestätigt wurde, lautet wie folgt.

ファイル名:sample_ifttt.py

import urequests as requests
import time

SSID = "xxxxxxxxx"  #Access Point SSID
PASSWORD = "xxxxxxxxx" #Zugangspunkt-Passwort
MY_KEY = "xxxxxxxxx" #IFTTT - webhooks -Geben Sie das Token an
EVENT_ID = "xxxxxxxxx" #Geben Sie den Ereignisnamen der registrierten Webhooks an

def do_connect():

    import network
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    if not wlan.isconnected():
        print('connecting to network...')
        wlan.connect(SSID, PASSWORD)
        while not wlan.isconnected():
            pass
            time.sleep(1)
    print('network config:', wlan.ifconfig())



# IFTTT_Webhook
def ifttt_webhook(eventid):

    #Informationen, um Wert zu legen
    payload = "value1="
    payload += "dummy1"
    payload += "&value2="
    payload += "dummy2"
    payload += "&value3="
    payload += "dummy3"

    url = "http://maker.ifttt.com/trigger/" + eventid + "/with/key/" + MY_KEY

    response = requests.post(url, headers={"Content-Type": "application/x-www-form-urlencoded"}, data=payload)
    #Wenn Sie den Wert nicht angeben müssen, klicken Sie auf ↓, um auf OK zu klicken
    # response = requests.post(url)

    response.close()

#Stellen Sie eine Verbindung zu WLAN her
do_connect()

# ifttt-Auslöser für Webhooks
ifttt_webhook(EVENT_ID)

Ausführungsmethode

>>> import sample_ifttt

→ Vergewissern Sie sich, dass das im Code angegebene Ereignis aufgerufen wird

Memo

Über die Angabe des Wertes

Das machte süchtig.

Zuvor habe ich den Code geschrieben, um eine Anfrage an IFTTT in Python 3.7 wie folgt zu stellen. ..

import requests

def ifttt_webhook(eventid, values):
    payload = {"value1": "",
                "value2": "",
                "value3": "" }
    payload["value1"] = values[0]
    payload["value2"] = values[1]
    payload["value3"] = values[2]

    url = "https://maker.ifttt.com/trigger/" + eventid + "/with/key/" + my_key
    print(url)
    response = requests.post(url, data=payload)

Wenn Sie dies so schreiben, wie es in MicroPython ist, wird kein Fehler verursacht, aber der Wert wird nicht angewendet.

Als ich den Code von urequests überprüfte, hielt ich es für nutzlos, wenn ich ihn nicht mit json spezifizierte.

Also habe ich json angegeben, aber in urequests wird der Header in festen Zeichen übergeben. "Content-Type: application/x-www-form-urlencoded" Ich fand, dass es nicht funktionierte.

Geben Sie also jeweils Header und Daten an. Ich habe es auf den Wert angewendet.

Die Seite, die ich als Referenz verwendet habe

Recommended Posts

ESP32 - Auslöser für IFTTT-Webhooks in MicroPython auslösen
Werfen Sie eine Anfrage mit einem Zertifikat auf httpie
Setzen Sie MicroPython unter Windows ein, um ESP32 unter Python auszuführen
Bis zum Zeichnen eines 3D-Diagramms mit Python in Windows 10
Ein Memorandum zur Verwendung von Keras 'keras.preprocessing.image
Richten Sie in 30 Minuten einen kostenlosen Server unter AWS ein
Schreiben Sie in Python ein logarithmisches Histogramm auf die x-Achse