Contenuto principale

Questa pagina è stata tradotta con la traduzione automatica. Fai clic qui per vedere l’originale in inglese.

Applicazione ThingHTTP

ThingHTTP consente la comunicazione tra dispositivi, siti web e servizi web senza dover implementare il protocollo a livello di dispositivo. In ThingHTTP puoi specificare le azioni che vengono attivate tramite altre app ThingSpeak™ come TimeControl e React.

Crea una richiesta ThingHTTP

  1. Crea una nuova richiesta ThingHTTP . Fare clic su Apps > ThingHTTP, quindi su New ThingHTTP.

  2. Specificare le impostazioni. Non tutte le impostazioni sono necessarie per ogni tipo di richiesta. I seguenti parametri sono obbligatori per tutte le richieste ThingHTTP .

    Parametro obbligatorioDescrizione
    NameInserisci un nome univoco per la tua richiesta ThingHTTP .
    API KeyChiave API generata automaticamente per la richiesta ThingHTTP .
    URLInserisci l'indirizzo del sito web o del servizio web da cui stai richiedendo i dati, iniziando con https://. (Nota che http:// è supportato, ma è fortemente sconsigliato.)
    Method

    Selezionare uno dei seguenti metodi HTTP richiesti per accedere all'URL: GET, POST, PUT o DELETE.

    HTTP VersionSpecificare 1.1, salvo diversa indicazione del server.

    A seconda della natura della richiesta effettuata, è possibile specificare parametri aggiuntivi. Ad esempio, il nome utente e la password sono necessari per una richiesta ThingHTTP a un server che richiede l'autenticazione.

    Parametro facoltativoDescrizione
    HTTP Auth UsernameSe il tuo URL richiede l'autenticazione, inserisci il nome utente per l'autenticazione e l'accesso a canali o siti web privati.
    HTTP Auth PasswordSe il tuo URL richiede l'autenticazione, inserisci la password per l'autenticazione e l'accesso a canali o siti web privati.
    Content TypeImmettere il MIME o il tipo di modulo del contenuto della richiesta. Ad esempio, application/x-www-form-urlencoded.
    HostSe la richiesta ThingHTTP richiede un indirizzo host, immettere il nome di dominio. Ad esempio, api.thingspeak.com.
    HeadersSe la richiesta ThingHTTP richiede intestazioni personalizzate, immettere il nome dell'intestazione e un valore. Ad esempio, specificare un intervallo di byte utilizzando Range: bytes=500-999.
    Body

    Inserisci un messaggio che desideri includere nella tua richiesta.


    È anche possibile includere dati da inviare all'app ThingHTTP nella sezione del corpo utilizzando chiavi di sostituzione. Per un esempio, vedere Passare dati con il trigger ThingHTTP.

    Parse String

    Inserisci un'etichetta da cercare nei dati di risposta.
    Puoi utilizzare un ID univoco o XPATH per analizzare dati specifici da HTML. Se i dati restituiti sono un oggetto JSON, è possibile utilizzare la notazione JSON a punti per analizzare i dati di risposta per un valore specifico. Per maggiori informazioni vedere Analizza stringa.

  3. Salva la richiesta. Il tuo ThingHTTP è disponibile per un utilizzo futuro cliccando su Apps e scegliendo ThingHTTP.

Trigger ThingHTTP

Attiva ThingHTTP utilizzando una richiesta HTTP GET o POST, TimeControl o React. Utilizzare una richiesta POST se si includono dati o si utilizzano chiavi di sostituzione personalizzate. Le richieste attivate da POST, TimeControl o React possono passare determinate variabili a ThingHTTP. Per maggiori informazioni, vedere Passare dati con il trigger ThingHTTP. Ad esempio, se utilizzi TimeControl per attivare ThingHTTP, puoi passare l'ora in cui è stato attivato. Questa tabella fornisce parametri di input e output e un esempio di chiamata per utilizzare una richiesta HTTP per attivare ThingHTTP.

Nota

L'attivazione di ThingHTTP più di una volta al secondo genera un codice di stato HTTP 429. Il codice di stato continua a essere visualizzato finché non si riduce la frequenza a meno di una richiesta al secondo.

Attiva ThingHTTP con richiesta HTTP

TitoloRichiesta HTTP POST per attivare ThingHTTP
URLhttps://api.thingspeak.com/apps/thinghttp/send_request
Metodo HTTPINVIARE
Intestazione HTTPContent-Type: application/x-www-form-urlencoded
X-THINGSPEAKAPIKEY = XXXXXXXXXXXXXXX

Parametri datiapi_key=XXXXXXXXXXXXXXX
Risposta di successo200 OK
and HTTP, JSON, or text, depending on the ThingHTTP
Risposte agli errori400 Invalid API key
0 Minimum wait time not reached
-1 Request failed
NoteLa chiave API ThingHTTP deve apparire nell'intestazione HTTP o nella sezione del corpo, oppure può apparire in entrambe.
Se non si stanno passando dati a ThingHTTP, è possibile utilizzare una richiesta GET per attivare ThingHTTP:
GET https://api.thingspeak.com/apps/thinghttp/send_request?api_key=XXXXXXXXXXXXXXX.

ThingHTTP restituisce il risultato della richiesta HTTP.

Passare dati con il trigger ThingHTTP

È possibile inviare dati a ThingHTTP utilizzando chiavi di sostituzione, comprese le chiavi comprese tra due segni di percentuale. Puoi includere una chiave sostitutiva in qualsiasi sezione disponibile del tuo ThingHTTP. Ad esempio, puoi includere un tag nel corpo ThingHTTP e passare i dati utilizzando il POST che attiva la richiesta ThingHTTP . Questo esempio mostra come utilizzare una richiesta ThingHTTP per post un messaggio a un canale ThingSpeak. Crea il tuo ThingHTTP e usa la chiave di sostituzione personalizzata %%message%% nel corpo.

Quando includi un messaggio in un POST che attiva ThingHTTP, il POST HTTP attiva ThingHTTP, sostituisce %%message%% con '1234' e aggiorna il canale su ThingSpeak. I parametri del corpo per ThingHTTP sono diversi dai parametri del corpo per la richiesta di trigger HTTP. I parametri della richiesta di trigger HTTP sono riportati nella tabella seguente.

TitoloRichiesta HTTP POST per attivare ThingHTTP
URLhttps://api.thingspeak.com/apps/thinghttp/send_request
Metodo HTTPINVIARE
Intestazione HTTPContent-Type: application/x-www-form-urlencoded
X-THINGSPEAKAPIKEY=XXXXXXXXXXXXXXX

Parametri datiapi_key=XXXXXXXXXXXXXXX
message=1234

Risposta di successo200 OK
e HTTP, JSON o testo, a seconda del tuo ThingHTTP
Risposte agli errori400 Invalid API key
0 Minimum wait time not reached
-1 Request failed
NoteLa chiave API ThingHTTP deve apparire nell'intestazione HTTP o nella sezione del corpo, oppure può apparire in entrambe.

Richiesta POSTMAN tramite chiave sostitutiva

Puoi usare POSTMAN per provare le tue richieste HTTP utilizzando l'API RESTful per ThingSpeak. Di seguito viene illustrato come testare ThingHTTP con chiavi sostitutive utilizzando POSTMAN.

  1. Selezionare POST e immettere l'URL della richiesta.

  2. Selezionare Body nella sezione autorizzazione.

  3. Scegli x-www-form-urlencoded.

  4. Inserisci api_key e copia la tua chiave API ThingHTTP nella sezione value.

  5. Inserisci message e il testo del messaggio nella sezione value.

Chiavi di ricambio

Puoi trasferire dati alle tue app utilizzando chiavi sostitutive. La tabella seguente riassume le chiavi sostitutive standard e personalizzate che puoi utilizzare. Alcune chiavi sono specifiche per un particolare tipo di richiesta, come indicato nell'ultima colonna.

ChiaveDescrizioneEsempioUtilizzare con
%%YOUR_CUSTOM_LABEL%%ThingHTTP sostituisce questo valore di sostituzione personalizzato con i dati nella richiesta di trigger che ha l'etichetta "YOUR_CUSTOM_LABEL".field1=%%YOUR_CUSTOM_LABEL%%
Dati POST: YOUR_CUSTOM_LABEL=1234.
RISULTATO: field1=1234.
Qualsiasi richiesta
%%channel_CHANNEL_ID_
field_FIELD_NUMBER%%
L'ultimo valore del canale e del campo specificati. Le richieste di sostituzione ai canali privati non di proprietà dello stesso utente della richiesta ThingHTTP restituiscono valori vuoti.The latest value is %%canale_12_campo_1%%.
RISULTATO: The latest value is 2,5.
Qualsiasi richiesta
%%datetime%%Data e ora complete in cui è stato eseguito TimeControl o React.The date and time the event occurred is %%datetime%%.
RISULTATO: The date and time the event occurred is 2014-09-24 17:32.
TimeControl o React
%%day%%Nome del giorno della settimana in cui è stato eseguito TimeControl.The day the event occurred is %%giorno%%.
RISULTATO: The day the event occurred is Mercoledì.
TimeControl
%%day_index%% Indice a base zero del giorno feriale a partire dalla domenica.The number of days used this week is %%day_index%%.
RESULT: The number of days used this week is 3.
TimeControl
%%hour%%L'ora del giorno in cui TimeControl è stato eseguito.The hour that the event occurred is %%ora%%.
RISULTATO: The hour that the event occurred is 5.
TimeControl
%%minute%%Il minuto dell'ora in cui è stato eseguito TimeControl.The minute the event occurred is %%minuto%%.
RISULTATO: The minute the event occurred is 30.
TimeControl
%%trigger%%Il valore che ha attivato React.It is way too hot in here at %%trigger%% C.
RISULTATO: It is way too hot in here at 40 C.
Reagire
%%channel_id%%L'ID del canale che ha attivato React.The channel that triggers is %%channel_id%%.
RISULTATO: The channel that triggers is 1256.
Reagire

Analizza stringa

ThingHTTP invia la risposta HTTP completa generata dalla richiesta, che può essere una pagina web, un testo o un oggetto JSON. Per estrarre un singolo elemento dati dalla risposta, specifica Parse String nella tua richiesta ThingHTTP . ThingHTTP può analizzare i dati utilizzando ID tag univoci o dati XPATH. Gli oggetti JSON possono essere analizzati per recuperare i componenti dell'oggetto.

XPath

È possibile utilizzare XML Path Language (XPath) per specificare un valore particolare in una pagina Web. Specificare l'XPath di un elemento su una pagina Web per analizzare quell'elemento specifico. Alcuni browser forniscono informazioni XPATH quando si fa clic sui dati nella vista sorgente. Ad esempio, la pagina web www.localconditions.com/massachusetts/01750 fornisce la fase lunare per Natick, MA in XPATH
//*[@id="wrapper"]/div[3]/div/div[2]/div[1]/div[1]/div/div[2]/div[2]/p[5]/text().

JSON

JSON (JavaScript Object Notation) è comunemente utilizzato per formattare i dati web. Se la richiesta restituisce un oggetto JSON, è possibile utilizzare la notazione a punti appropriata per recuperare il valore di interesse. Il canale 12397 di ThingSpeak fornisce informazioni meteorologiche dal parcheggio MathWorks® di Natick. Utilizzando l'URL di richiesta https://api.thingspeak.com/channels/12397/feeds.json?results=1 viene restituito un oggetto JSON, simile a quello mostrato qui. Utilizzare la stringa di analisi feeds[0].field2 per recuperare il valore più recente di Wind Speed; in questo caso il valore restituito è 5.0.

Ecco un esempio dell'oggetto JSON della stazione meteorologica restituito dal canale della stazione meteorologica MathWorks ThingSpeak.

{  "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",
     ...    }  ]}

Vedi anche

Funzioni

Siti web esterni