Sommario:
- Forniture
- Passaggio 1: protocollo REST JSON
- Passaggio 2: flusso
- Passaggio 3: dashboard
- Passaggio 4: flusso di importazione (progetto, script, ecc.)
- Passaggio 5: come funziona tutto insieme
- Passaggio 6: HTTP POST e GET
- Passaggio 7: nodi pulsanti
- Passaggio 8: nodo funzione
- Passaggio 9: nodo JSON e Inject Node
- Passaggio 10: nodo di testo e nodo di debug
- Passaggio 11: nodo grafico
- Passaggio 12: nodo di misura e nodi di collegamento
- Passaggio 13: grazie per aver letto il mio Instructable
Video: Come lavorare con JSON in Node-RED: 13 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Questo tutorial ti insegnerà come lavorare con JSON in node-RED. Ti mostrerò come controllare le prese di corrente in rete con il trasferimento di file json tramite http get e post. E puoi usare questa conoscenza in seguito per controllare qualsiasi dispositivo che supporti il protocollo JSON.
Per scopi didattici userò la presa di rete NETIO 4All, ma non preoccuparti, non è necessario acquistare nulla. NETIO ha un'incredibile demo online di 4All che puoi usare.
Forniture
NETIO 4All powersocket in rete o demo online 4All:
Nodo-RED
Passaggio 1: protocollo REST JSON
Questa parte è un po' tecnica, ma per favore abbiate pazienza. Se non avessi spiegato questa parte, avresti problemi a comprendere i valori nei file json che invieremo in node-RED.
Azioni applicabili a ciascuna uscita (presa elettrica):
In tutti i protocolli M2M, le prese di alimentazione NETIO utilizzano le stesse azioni che possono essere applicate alle singole uscite. Ad esempio, un'azione Toggle o Short Off può essere scritta su qualsiasi output.
Tuttavia, la variabile Action può essere utilizzata solo per scrivere valori, non può essere utilizzata per leggere lo stato corrente della presa.
Queste sono le azioni che puoi applicare a ciascun output:
0 = Uscita disattivata (Off)
1 = Uscita attivata (On)
2 = Uscita disattivata per breve tempo (breve Off)
3 = Uscita accesa per breve tempo (short On)
4 = Uscita commutata da uno stato all'altro (toggle)
5 = Stato uscita invariato (nessuna modifica)
6 = Ignorato
Esempio: file JSON per attivare o disattivare l'output n. 1:
{
"Uscite": [{
"ID": 1, "Azione": 4
}]
}
ID: questo numero indica quale output utilizzeremo
Azione - questa parte, è l'azione che farà l'uscita (es. 1 (Attiva uscita))
Passaggio 2: flusso
E ora la parte principale. Ecco come appare l'ambiente node-RED.
Abbiamo importato il flusso API URL (il progetto che vedi. Più avanti ti mostrerò come importare i flussi e questo progetto) Questo progetto è composto da due parti:
- Flusso NETIO AN30 (API JSON REST)
- Dashboard (interfaccia grafica tramite la quale è possibile utilizzare il programma)
Passaggio 3: dashboard
Ecco come appare la dashboard in node-RED per questo istruibile. Puoi personalizzarlo se vuoi secondo i tuoi gusti.
La dashboard di questo progetto è divisa in 4 parti:
- Stato del dispositivo: mostra le informazioni sul dispositivo come modello, indirizzo mac o versione del firmware.
- (POST) Uscita di controllo 1 - Contiene 5 pulsanti che controllano l'uscita 1. Ogni pulsante esegue un'azione diversa
- (GET) O1 - Stati di uscita O4 - Questa parte mostra lo stato corrente di ogni uscita dal tuo dispositivo.
- Gestione del dispositivo - In questa parte puoi trovare tutti i tipi di grafici e indicatori che mostrano i valori misurati correnti dal dispositivo NETIO 4Aall
Passaggio 4: flusso di importazione (progetto, script, ecc.)
Nel menu (angolo in alto a destra) seleziona Importa e poi Appunti.
Quindi, copia il testo sottostante nel campo indicato e fai clic su Importa.
Installazione di nodi mancanti
I nodi vengono caricati nel flusso selezionato. È possibile che venga visualizzato un messaggio di errore con un elenco di nodi che vengono importati ma non sono ancora installati in Node-RED. In questo caso, è necessario installare i nodi mancanti.
Se mancano dei nodi, seleziona Gestisci tavolozza nel menu, fai clic su Installa e trova e installa i nodi mancanti.
Importa testo:
[{"id":"56b9510c.98c6f", "type":"tab", "label":"NETIO AN30 (REST JSON)", "disabled":false, "info":""}, {"id ":"6a66b637.da1558", "type":"http request", "z":"56b9510c.98c6f", "name":"HTTP Request (POST)", "method":"POST", "ret":"txt", "url":"https://netio-4All.netio-products.com:8080/netio.json", "tls":"", "x":430, "y":100, "wires":
Passaggio 5: come funziona tutto insieme
Il flusso è sostanzialmente diviso in due parti: POST e GET.
POST: Scrivere su O1
- Nella Dashboard vengono visualizzati cinque pulsanti creati nel dashboard nel flusso.
- Dopo aver fatto clic sul pulsante Output 1 = ON nella Dashboard, il payload viene impostato sul file netio.json che specifica l'output e l'azione (definita per ciascuno dei pulsanti).
- Il blocco HTTP Request (POST) invia il file netio.json come richiesta a un indirizzo IP.
- La risposta del server (stato) viene restituita come output.
- Il blocco Msg.payload visualizza il risultato della richiesta HTTP (POST).
GET: Lettura da O1 – O4
- Il blocco 1 Second Repeat attiva, con un periodo di un secondo, il blocco HTTP Request (GET), che a sua volta invia netio.json come richiesta GET e restituisce un file JSON completo con lo stato del socket ricevuto dal server.
- Il blocco JSON Parse trasforma il file JSON dal blocco HTTP Request (GET) in un oggetto JSON in modo che sia possibile manipolare le proprietà nel file JSON.
- Il blocco funzione prende singole parti dell'oggetto JSON e le trasforma in proprietà di un oggetto msg per un uso successivo.
- Il blocco Current Chart imposta msg.payload sulla proprietà msg. TotalCurrent dell'oggetto msg, poiché il successivo blocco Current Chart (Device) può visualizzare solo il valore msg.payload.
- Seguono quindi vari nodi di output per visualizzare le proprietà selezionate dell'oggetto msg, come prese dall'oggetto JSON, nella Dashboard.
L'oggetto msg e msg.payload
Per una spiegazione semplice e concisa, vedi qui:
www.steves-internet-guide.com/node-red-mess…
Passaggio 6: HTTP POST e GET
Richiesta HTTP (POST)
Questo nodo invia un file di comando netio.json come richiesta HTTP (POST) per controllare il dispositivo NETIO 4All.
Richiesta HTTP (GET)
Questo nodo invia una richiesta HTTP (GET) e restituisce la risposta di stato.
L'indirizzo precompilato punta alla demo online di NETIO 4All, dove puoi testare la connessione senza avere un dispositivo NETIO alla tua scrivania.
netio-4all.netio-products.com
È possibile impostare il proprio indirizzo IP in questi nodi; tuttavia, l'IP deve essere modificato in entrambi i nodi di richiesta HTTP, POST e GET.
Passaggio 7: nodi pulsanti
Facendo clic sul nodo del pulsante viene generato un messaggio contenente un file netio.json (immagine a destra) che viene quindi inviato tramite il nodo post http alla presa di alimentazione intelligente netio.
Passaggio 8: nodo funzione
Un nodo funzione è un nodo speciale che consente di scrivere una funzione JavaScript personalizzata.
In questa istruzione, la funzione seleziona i valori dal file JSON analizzato (ora un oggetto JSON) e li assegna alle proprietà dell'oggetto msg.
Il codice è suddiviso in quattro sezioni:
- Assegnazione di valori dall'oggetto JSON alle singole proprietà dell'oggetto msg
-
Gestione degli errori nel caso in cui la presa di rete in rete non supporti le misurazioni globali
Se la presa di rete in rete non supporta la misurazione dei valori globali, Node-RED visualizzerà errori perché questa funzione non troverebbe la rispettiva proprietà, ad es. msg.payload. GlobalMeasure. Voltage, poiché non sarebbe presente nell'oggetto JSON. In questo caso, la proprietà dell'oggetto msg, ad es. msg. Voltage, è impostato su 0 e l'errore viene rilevato e gestito.
- Assegnazione dei valori dello stato delle uscite
- Impostazione dei colori dei valori dello stato di uscita visualizzati in base agli stati di uscita
Passaggio 9: nodo JSON e Inject Node
Nodo JSON
Il nodo JSON analizza il file JSON e lo trasforma in un oggetto JSON.
In risposta dal server alla richiesta GET, il nodo HTTP Request restituisce un file JSON contenente lo stato corrente del dispositivo NETIO 4x, ma è semplicemente un file di testo, quindi per lavorare con i dati, il file JSON ha bisogno da analizzare in un oggetto JSON.
Inietta nodo
Ogni secondo, questo nodo attiva il nodo HTTP Request che invia una richiesta GET.
Di conseguenza, i valori nella Dashboard vengono aggiornati con un periodo di un secondo
Passaggio 10: nodo di testo e nodo di debug
Nodo di testo
Visualizza un campo di testo nel dashboard. In questa istruzione, i nodi di testo visualizzano la corrente, la tensione, il modello, la versione del firmware o la versione JSON.
L'etichetta viene visualizzata nel dashboard e il nome è il nome del nodo visualizzato nel flusso in Node-RED.
Nodo di debug
Visualizza il msg.payload.
Passaggio 11: nodo grafico
Questo nodo traccia il grafico corrente nel dashboard in base al valore del payload.
Questo nodo può solo tracciare grafici in base al valore del payload.
Per questo motivo, viene utilizzato un nodo funzione per impostare msg.payload sul valore che deve essere visualizzato.
msg.payload = msg. TotalCurrent;
Passaggio 12: nodo di misura e nodi di collegamento
Nodo indicatore
Questo nodo aggiunge un widget indicatore al dashboard.
In questa istruzione, ogni misuratore visualizza una proprietà dell'oggetto msg: tensione [V], corrente [A], frequenza [Hz] e il vero fattore di potenza (TPF) complessivo.
Nodi di collegamento
I nodi di collegamento e di uscita funzionano come un tunnel. Il msg.payload arriva nel nodo link in ed esce dal nodo link out.
L'ho usato per rendere il flusso un po' più chiaro e più facile da leggere.
Passaggio 13: grazie per aver letto il mio Instructable
Spero che ti sia piaciuto il mio istruttivo e spero che tu abbia imparato qualcosa di nuovo.
Questa istruzione è solo una versione abbreviata di una guida diversa che ho creato
La guida originale è più lunga e molto più orientata ai dettagli e generalmente meglio strutturata. Se non hai capito qualcosa o pensi che mi sia sfuggito o non abbia spiegato abbastanza qualcosa, puoi sicuramente trovarlo lì.
Ti prometto che non rimarrai deluso
Originale:
Inoltre ci sono guide simili sui vari usi dinode-RED, quindi se sei interessato sentiti libero di esplorare:
Utilizzo dell'API REST URL in node-RED
www.netio-products.com/it/application-notes/an29-node-red-example-of-url-api-comunicazione-con-netio-4x
Lavorare con REST XML in node-RED
www.netio-products.com/it/application-notes/an31-node-red-example-of-rest-xml-comunicazione-con-netio-4x
Lavorare con TCP/Modbus in node-RED
Prossimamente:)
Consigliato:
Kcam- Webcam con microfono e altoparlante (usb) per lavorare da casa: 5 passaggi
Kcam- Webcam con microfono e altoparlante (usb) per lavoro da casa: questa è la mia prima istruzione e questo è il momento del blocco quando lavori da casa e questo progetto fa anche parte della sfida del lavoro da casa per questo, per favore vota me in modo da poter vincere il concorso. Ma per favore vota se ti è piaciuto
Lavorare con LCD (Arduino): 4 passaggi
Lavorare con LCD (Arduino): Ciao, oggi mostrerò come lavorare con un semplice LCD con l'aiuto di Arduino Uno. Per questo, userò TinkerCAD che è abbastanza facile da usare per testare progetti semplici come questo. Se vuoi sapere come usare TinkerCAD puoi controllare il
Lavorare con i LED utilizzando Arduino UNO nei circuiti TinkerCAD: 7 passaggi
Lavorare con LED utilizzando Arduino UNO nei circuiti TinkerCAD: questo progetto dimostra come lavorare con LED e Arduino nei circuiti TinkerCAD
Lavorare con due LED usando Arduino UNO nei circuiti TinkerCAD: 8 passaggi
Lavorare con due LED utilizzando Arduino UNO nei circuiti TinkerCAD: questo progetto dimostra come lavorare con due LED e Arduino nei circuiti TinkerCAD
Come lavorare con Arduino e diversi LED RGB: 3 passaggi
Come lavorare con Arduino e diversi LED RGB: Arduino è un piccolo dispositivo straordinario. Ma una delle applicazioni più utilizzate per questo potente dispositivo è spesso quella di far lampeggiare o lampeggiare un LED. Questo tutorial ti mostrerà tre modi per lavorare con LED RGB e Arduino.1. Il primo modo è usare un semplice