ThingHTTP-App
ThingHTTP ermöglicht die Kommunikation zwischen Geräten, Websites und Webdiensten, ohne dass das Protokoll auf Geräteebene implementiert werden muss. Sie geben Aktionen in ThingHTTP an, die Sie mit anderen ThingSpeak™- Apps wie TweetControl, TimeControl und React auslösen.
Erstellen Sie eine ThingHTTP-Anfrage
Erstellen Sie eine neue ThingHTTP-Anfrage. Klicken Sie auf Apps > ThingHTTP und dann auf New ThingHTTP.
Geben Sie Einstellungen an. Nicht alle Einstellungen sind für jede Art von Anfrage erforderlich. Die folgenden Parameter sind für alle ThingHTTP-Anfragen erforderlich.
Erforderlicher Parameter Beschreibung Name Geben Sie einen eindeutigen Namen für Ihre ThingHTTP-Anfrage ein. API Key Automatisch generierter API-Schlüssel für die ThingHTTP-Anfrage. URL Geben Sie die Adresse der Website oder des Webdienstes ein, von der Sie Daten anfordern, beginnend mit https://
. (Beachten Sie, dasshttp://
unterstützt wird, aber dringend davon abgeraten wird.)Method Wählen Sie eine der folgenden HTTP-Methoden aus, die für den Zugriff auf die URL erforderlich sind: GET, POST, PUT oder DELETE.
HTTP Version Geben Sie 1.1 an, sofern Ihr Server nichts anderes angibt. Abhängig von der Art der von Ihnen gestellten Anfrage können Sie zusätzliche Parameter angeben. Beispielsweise werden der Benutzername und das Passwort für eine ThingHTTP-Anfrage an einen Server benötigt, der eine Authentifizierung erfordert.
Optionaler Parameter Beschreibung HTTP Auth Username Wenn Ihre URL eine Authentifizierung erfordert, geben Sie den Benutzernamen zur Authentifizierung ein, um auf private Kanäle oder Websites zuzugreifen. HTTP Auth Password Wenn Ihre URL eine Authentifizierung erfordert, geben Sie das Passwort zur Authentifizierung ein, um auf private Kanäle oder Websites zuzugreifen. Content Type Geben Sie den MIME- oder Formulartyp des Anforderungsinhalts ein. Beispiel: application/x-www-form-urlencoded
.Host Wenn Ihre ThingHTTP-Anfrage eine Hostadresse erfordert, geben Sie den Domänennamen ein. Beispiel: api.thingspeak.com
.Headers Wenn Ihre ThingHTTP-Anfrage benutzerdefinierte Header erfordert, geben Sie den Namen des Headers und einen Wert ein. Geben Sie beispielsweise einen Bytebereich mit Range: bytes=500-999
an.Body Geben Sie eine Nachricht ein, die Sie in Ihre Anfrage aufnehmen möchten.
Sie können mithilfe von Ersatzschlüsseln auch Daten zum Senden an die ThingHTTP-App in den Textabschnitt einfügen. Ein Beispiel finden Sie unter Übergeben Sie Daten mit dem ThingHTTP-Trigger.
Parse String Geben Sie eine Bezeichnung ein, nach der in den Antwortdaten gesucht werden soll. Sie können eine eindeutige ID oder den XPATH verwenden, um bestimmte Daten aus HTML zu analysieren. Wenn es sich bei den zurückgegebenen Daten um ein JSON-Objekt handelt, können Sie die JSON-Punktnotation verwenden, um die Antwortdaten auf einen bestimmten Wert zu analysieren. Weitere Informationen finden Sie Zeichenfolge analysieren .
Speichern Sie die Anfrage. Ihr ThingHTTP ist für die zukünftige Verwendung verfügbar, indem Sie auf Apps klicken und ThingHTTP auswählen.
Trigger ThingHTTP
Lösen Sie Ihr ThingHTTP mit einer GET- oder POST-HTTP-Anfrage, TweetControl, TimeControl oder React aus. Verwenden Sie eine POST-Anfrage, wenn Sie Daten einschließen oder benutzerdefinierte Ersatzschlüssel verwenden. Durch POST, TimeControl oder React ausgelöste Anforderungen können bestimmte Variablen an ThingHTTP übergeben. Weitere Informationen finden Sie Übergeben Sie Daten mit dem ThingHTTP-Trigger. Wenn Sie beispielsweise TimeControl zum Auslösen Ihres ThingHTTP verwenden, können Sie die Zeit, zu der es ausgelöst wurde, weitergeben. Diese Tabelle enthält Eingabe- und Ausgabeparameter sowie einen Beispielaufruf für die Verwendung einer HTTP-Anfrage zum Auslösen eines ThingHTTP.
Hinweis
Das Auslösen von ThingHTTP mehr als einmal pro Sekunde führt zu einem HTTP-429-Statuscode. Der Statuscode bleibt bestehen, bis Sie die Rate unter eine Anfrage pro Sekunde senken.
Lösen Sie ThingHTTP mit einer HTTP-Anfrage aus
Titel | HTTP-POST-Anfrage zum Auslösen von ThingHTTP |
---|---|
URL | https://api.thingspeak.com/apps/thinghttp/send_request |
HTTP-Methode | POST |
HTTP-Header | Content-Type: application/x-www-form-urlencodedX-THINGSPEAKAPIKEY = XXXXXXXXXXXXXXX |
Datenparameter | api_key=XXXXXXXXXXXXXXX |
Erfolgsantwort | 200 OK and HTTP, JSON, or text, depending on the ThingHTTP |
Fehlerantworten | 400 Invalid API key0 Minimum wait time not reached-1 Request failed |
Beispiel-HTTP-Aufruf | POST /apps/thingtweet/1/statuses/update HTTP/1.1 Host: api.thingspeak.com Content-Type: application/x-www-form-urlencoded Cache-Control: no-cacheapi_key=XXXXXXXXXXXXXXX |
"Anmerkungen" | Ihr ThingHTTP-API-Schlüssel muss entweder im HTTP-Header oder im Textabschnitt erscheinen, oder er kann in beiden erscheinen. Wenn Sie keine Daten an ThingHTTP übergeben, können Sie eine GET-Anfrage verwenden, um ThingHTTP auszulösen: GET https://api.thingspeak.com/apps/thinghttp/send_request?api_key=XXXXXXXXXXXXXXX . |
ThingHTTP gibt das Ergebnis der HTTP-Anfrage zurück.
Übergeben Sie Daten mit dem ThingHTTP-Trigger
Sie können Daten mithilfe von Ersatzschlüsseln, einschließlich Schlüsseln innerhalb von zwei Prozentzeichen, an ThingHTTP senden. Sie können einen Ersatzschlüssel in jeden verfügbaren Abschnitt Ihres ThingHTTP einfügen. Sie können beispielsweise ein Tag in den ThingHTTP-Text einfügen und die Daten mithilfe des POST übergeben, der Ihre ThingHTTP-Anfrage auslöst. Dieses Beispiel zeigt, wie Sie eine ThingHTTP-Anfrage verwenden, um eine Nachricht an einen ThingSpeak- Kanal zu senden. Erstellen Sie Ihr ThingHTTP und verwenden Sie den benutzerdefinierten Ersatzschlüssel %%message%% im Textkörper.
Wenn Sie eine Nachricht in einen POST einfügen, der Ihr ThingHTTP auslöst, löst der HTTP-POST Ihr ThingHTTP aus, ersetzt %%message%% durch „1234“ und aktualisiert den Kanal auf ThingSpeak. Die Body-Parameter für Ihr ThingHTTP unterscheiden sich von den Body-Parametern für die HTTP-Trigger-Anfrage. Die HTTP-Trigger-Anforderungsparameter werden in der folgenden Tabelle angezeigt.
Titel | HTTP-POST-Anfrage zum Auslösen von ThingHTTP |
---|---|
URL | https://api.thingspeak.com/apps/thinghttp/send_request |
HTTP-Methode | POST |
HTTP-Header | Content-Type: application/x-www-form-urlencodedX-THINGSPEAKAPIKEY=XXXXXXXXXXXXXXX |
Datenparameter | api_key=XXXXXXXXXXXXXXXmessage=1234 |
Erfolgsantwort | 200 OK und HTTP, JSON oder Text, abhängig von Ihrem ThingHTTP |
Fehlerantworten | 400 Invalid API key0 Minimum wait time not reached-1 Request failed |
Beispiel-HTTP-Aufruf | POST /apps/thingtweet/1/statuses/update HTTP/1.1 Host: api.thingspeak.com Content-Type: application/x-www-form-urlencoded Cache-Control: no-cacheapi_key=XXXXXXXXXXXXXXX&message=1234 |
"Anmerkungen" | Ihr ThingHTTP-API-Schlüssel muss entweder im HTTP-Header oder im Textabschnitt erscheinen, oder er kann in beiden erscheinen. |
POSTMAN-Anfrage mit Ersatzschlüssel
Sie können POSTMAN verwenden, um Ihre HTTP-Anfragen mithilfe der RESTful-API für ThingSpeak auszuprobieren. Im Folgenden wird gezeigt, wie Sie Ihr ThingHTTP mit Ersatzschlüsseln mit POSTMAN testen.
Wählen Sie
POST
und geben Sie die Anforderungs-URL ein.Wählen Sie im Autorisierungsabschnitt Body aus.
Wählen Sie x-www-form-urlencoded.
Geben Sie
api_key
ein und kopieren Sie Ihren ThingHTTP-API-Schlüssel in den Abschnitt value .Geben Sie
message
und den Nachrichtentext im Abschnitt value ein.
Ersatzschlüssel
Mithilfe von Ersatzschlüsseln können Sie Daten an Ihre Apps übergeben. Die folgende Tabelle fasst die Standard- und benutzerdefinierten Ersatzschlüssel zusammen, die Sie verwenden können. Einige Schlüssel sind spezifisch für eine bestimmte Art von Anfrage, wie in der letzten Spalte angegeben.
Schlüssel | Beschreibung | Beispiel | Benutzen mit |
---|---|---|---|
%%YOUR_CUSTOM_LABEL%% | ThingHTTP ersetzt diesen benutzerdefinierten Ersatzwert durch Daten in der Triggeranforderung mit der Bezeichnung „YOUR_CUSTOM_LABEL“. | field1=%%YOUR_CUSTOM_LABEL%% POST-Daten: YOUR_CUSTOM_LABEL=1234 .ERGEBNIS: field1=1234 . | Jede Anfrage |
%%channel_CHANNEL_ID_field_FIELD_NUMBER%% | Der letzte Wert des angegebenen Kanals und Felds. Ersetzungsanfragen an private Kanäle, die nicht demselben Benutzer gehören wie die ThingHTTP-Anfrage, geben leere Werte zurück. | The latest value is %%channel_12_field_1%%.ERGEBNIS: The latest value is „2,5“. | Jede Anfrage |
%%datetime%% | Das vollständige Datum und die vollständige Uhrzeit der Ausführung von TimeControl oder React. | The date and time the event occurred is %%datetime%%.ERGEBNIS: The date and time the event occurred is 24.09.2014 17:32 Uhr. | TimeControl oder React |
%%day%% | Der Name des Wochentags, an dem TimeControl ausgeführt wurde. | The day the event occurred is %%day%%.ERGEBNIS: The day the event occurred is Mittwoch. | TimeControl |
%%day_index%% | Der nullbasierte Index des Wochentags, der am Sonntag beginnt. | The number of days used this week is %%day_index%%.ERGEBNIS: The number of days used this week is 3. | TimeControl |
%%hour%% | Die Stunde des Tages, zu der TimeControl ausgeführt wurde. | The hour that the event occurred is %%Stunde%%.ERGEBNIS: The hour that the event occurred is 5. | TimeControl |
%%minute%% | Die Minute der Stunde, in der TimeControl ausgeführt wurde. | The minute the event occurred is %%Minute%%.ERGEBNIS: The minute the event occurred is „30“. | TimeControl |
%%trigger%% | Der Wert, der React ausgelöst hat. | It is way too hot in here at %%trigger%% C .ERGEBNIS: It is way too hot in here at 40 C . | Reagieren |
%%channel_id%% | Die Kanal-ID, die React ausgelöst hat. | The channel that tweets is %%channel_id%%.ERGEBNIS: The channel that tweets is 1256. | React |
Zeichenfolge analysieren
ThingHTTP sendet die vollständige HTTP-Antwort, die von der Anfrage generiert wurde. Dabei kann es sich um eine Webseite, einen Text oder ein JSON-Objekt handeln. Um ein einzelnes Datenelement aus der Antwort zu extrahieren, geben Sie in Ihrer ThingHTTP-Anfrage „Parse String“ an. ThingHTTP kann Daten mithilfe einer eindeutigen Tag-ID oder XPATH-Daten analysieren. JSON-Objekte können analysiert werden, um Komponenten des Objekts abzurufen.
XPath | |
Sie können XML Path Language (XPath) verwenden, um einen bestimmten Wert auf einer Webseite anzugeben. Geben Sie den XPath eines Elements auf einer Webseite an, das für dieses bestimmte Element analysiert werden soll. Einige Browser stellen XPATH-Informationen bereit, wenn Sie in der Quellansicht auf die Daten klicken. Beispielsweise stellt die Webseite |
|
JSON | |
JSON (JavaScript Object Notation) wird häufig zum Formatieren von Webdaten verwendet. Wenn Ihre Anfrage ein JSON-Objekt zurückgibt, können Sie die entsprechende Punktnotation verwenden, um den gewünschten Wert abzurufen. ThingSpeak Channel 12397 bietet Wetterinformationen aus dem Parkhaus bei MathWorks® in Natick. Bei Verwendung der Anforderungs-URL Hier ist ein Beispiel des JSON-Objekts der Wetterstation, das vom ThingSpeak Wetterstationskanal MathWorks zurückgegeben wurde. { "channel": { "id": 12397, "name": "WeatherStation", "description": "MathWorks Weather Station, ...", ... "field1": "Wind Direction ... ", "field2": "Wind Speed (mph)", ... }, "feeds": [ { "created_at": "2017-03-13T14:33:21Z", "entry_id": 1272044, "field1": "21", "field2": "5.0", ... } ]} |
|