Comunicare con le macchine utilizzando il Connector Host di Edge MC e Node-RED

Prev Next

Scopri come utilizzare il Connector Host di Edge MC per comunicare con i dispositivi Node-RED

Nel seguente articolo vedremo...

  • Configurare il Connector Host di Edge MC
  • Creare una funzione di connettore per comunicare con il tuo dispositivo
  • Creeremo un’app per comunicare con il tuo dispositivo

Prerequisiti

  • Assicurati di aver abilitato Node-RED sul tuo Edge MC. Per le istruzioni su come farlo, consulta questo articolo.

Riepilogo

Sfruttando il Connector Host del proprio Edge MC, è possibile utilizzare un'app per attivare funzioni di connessione che comunicano con Node-RED in esecuzione su un dispositivo Tulip. Ciò consentirà, in definitiva, di scrivere sui dispositivi da un'app Tulip.

Configurazione del Connector del proprio Edge MC

Nota: se non hai familiarità con i connettori e le funzioni di connettore in Tulip, consulta questo articolo.

Per iniziare, accedi alla pagina dei Connettori e fai clic su Crea connettore. Apparirà una finestra modale che ti chiederà di inserire le seguenti informazioni:

  • Nome: scegli un nome per il tuo connettore
  • Descrizione: scegli un nome per il tuo connettore
  • Tipo di connettore: seleziona HTTP

Successivamente, dovrai specificare i dettagli del connettore. Fai clic sul pulsante " Produzione, test e sviluppo " per aprire la finestra modale " Modifica dettagli connettore " e inserisci le seguenti informazioni:

  • In esecuzione su: seleziona l’host del connettore EMC Nota: se questa opzione non è visibile, accedi al portale Edge MC e assicurati che l’host del connettore sia stato abilitato.
  • Host: inserisci " localhost"
  • Porta: inserisci 1880 (questa è la porta su cui è in esecuzione Node-RED)
  • TLS: inserisci " No"

Non è necessario aggiungere intestazioni o certificati. Ora sei pronto per fare clic su "Test" e verificare che la connessione sia corretta. Infine, fai clic su "Salva".

Creazione di una funzione del connettore

Ora che hai configurato con successo il tuo connettore, sei pronto per iniziare a creare funzioni di connettore per comunicare con i tuoi dispositivi Tulip. In questo esempio Node-RED fungerà da server HTTP.

Per configurare la funzione del connettore, dovrai configurarla sia in Tulip che nell’editor di Node-RED. In questo esempio, creeremo una semplice funzione che accetta come input "firstName " e "lastName" e restituisce una risposta del tipo "Hello firstName lastName!", oltre a un timestamp.

Creazione della funzione di connessione in Tulip

Accedete al connettore del vostro Edge MC e selezionate “Crea funzione” nell’angolo in alto a destra.

Selezionare "GET" come "Tipo di richiesta" e inserire l’endpoint: /helloWorld. Anche se questa scelta può sembrare arbitraria, in un passaggio successivo configureremo questo endpoint nell’editor di Node-RED:

{height="" width=""}Configurare gli input della funzione in modo da includere "First Name " e " Last Name":

{height="" width=""}Nel corpo della richiesta, seleziona Tipo di contenuto: JSON e imposta le seguenti chiavi per gli input. Queste verranno utilizzate in seguito nell’editor di Node-RED:

{height="" width=""}Ora aggiungi le seguenti uscite alla funzione del connettore: "Message" e "Time". Aggiungi il corpo associato alle uscite, in modo che possano essere richiamati nell’editor di Node-RED:

{height="" width=""}Successivamente, verifica che il " Tipo di risposta " sia impostato su JSON.

La configurazione della funzione connettore sul lato Tulip è ora completata. Fare clic su Salva per salvare la funzione connettore.

Creazione del flusso in Node-RED

È ora il momento di aprire l’editor di Node-RED dal portale Edge MC e configurare un nuovo flusso.

Per prima cosa, trascina un nodo http dalla sezione "Rete" nell’editor. Imposta il nodo con la seguente configurazione:

{height="" width=""}È importante che il " Metodo di richiesta " e l’“URL di richiesta” corrispondano alla funzione di connettore configurata in Tulip.

Successivamente, trascinare e rilasciare un nodo "change " con la seguente configurazione:

{height="" width=""}Imposta msg.payload su JSON e lascialo come oggetto vuoto: {}

Ora inserisci un nodo "template". Qui puoi prelevare le proprietà del messaggio in entrata (gli input della funzione di connettore) e utilizzarle per costruire una stringa (ad es. "Hello World").


## {{req.body.firstName}}

## {{req.body.lastName}}!

Ora è il momento di aggiungere un altro nodo di modifica, per acquisire un timestamp e inviarlo come parte della risposta. Configura il nodo come segue:

{height="" width=""}A questo punto il nostro flusso ha accettato gli input inviati da Tulip ed è ora il momento di configurare una risposta. Per farlo, trascina e rilascia un nodo di risposta HTTP. Configura la risposta in modo che abbia un codice di stato pari a 200, OK:

{height="" width=""}Il flusso complessivo è ora completato e dovrebbe apparire simile a quanto segue:

{height="" width=""}Si noti che i nodi verdi nel flusso sopra riportato sono nodi di debug, utilizzati per mostrare il payload nell’editor di Node-RED.

Il passo finale consisterà nel distribuire il flusso dall’editor di Node-RED. A questo punto sarà possibile testare la funzione del connettore dall’ambiente di test di Tulip,

Esecuzione della funzione del connettore tramite un'app

Ora che avete configurato il connettore e una funzione di connettore che comunica efficacemente con il vostro dispositivo utilizzando Node-RED come server HTTP, siete pronti a integrare questa funzionalità nelle vostre app.

In questo esempio, sono presenti due caselle di immissione dati per inserire le variabili firstName e lastName che verranno inviate nella nostra richiesta:

{height="" width=""}Nel pulsante "Say Hello!", inserite il seguente trigger per richiamare la funzione del connettore:

{height="" width=""}Una volta inseriti i dati e cliccato su "Say Hello!", avrai effettivamente inviato una richiesta HTTP al tuo dispositivo Tulip e ricevuto una risposta JSON.

Per testare la tua app, clicca sul pulsante "Test" nell’App Editor per entrare in modalità di sviluppo!