Frequently Asked Question
Nativamente il gateway Milesight permette di convertire i dati ricevuti dai nodi LoraWAN in BACNetIP. Tuttavia è possibile convertire i dati anche in ModbusTCP con un po' più di lavoro e di attenzione.
La seguente guida è valida sia per il gateway UG65 che per il gateway UG56 di Milesight. Entrambi supportano software necessari per lo sviluppo dell'applicazione.
L'esempio di codice NODE-RED di seguito è valido per il nodi Milesight EM300-TH. Per integrare altri tipi di sensori occorrerà adeguare il codice.
Innanzitutto occorre aggiornare il firmware del gateway all'ultima versione disponibile al seguente indirizzo https://www.milesight.com/iot/resources/download-center/#firmware-sdk
Quindi occorre scaricare ed installare il pacchetto SDK Python presente allo stesso indirizzo precedente e caricarlo nell'apposito menu
Quindi occorre avviare APP MANAGER
ed infine installare il pacchetto MODBUS presente tra gli allegati di questo articolo.
A questo punto il pacchetto MODBUS è installato e funzionante. Risponde a qualsiasi ID modbus e per area di memoria Holding Register fino all'indirizzo 10000
Ora viene la parte difficile: occorre creare uno script in NODE-RED per recuperare i dati inviati dai sensori e scrivere il valore in area di memoria MODBUS TCP locale.
Abilitare il NODE-RED e salvare. Quindi fare click su LAUNCH per aprire interfaccia NODE-RED.
Le credenziali sono le stesse del UG65/UG56.
Una volta avviato Node-RED, facendo click sul tasto LAUNCH si viene portati al sito per la programmazione.
Per prima cosa occorre installare il pacchetto MODBUS. Per fare questo assicurarsi che il gateway abbia accesso ad internet per potersi scaricare i pacchetti necessari. Quindi andare nel menù MANAGE PALETTE e cercare il pacchetto node-red-contrib-modbus
Al termine dell'installazione occorre importare il file di configurazione.
Per importare il file di configurazione Node-RED presente tra gli allegati (LoraWAN-2-ModbusTCP.json) occorre editare con notepad il file, copiarne il contenuto e quindi andare nel menù Import per incollarlo
Una volta incollato il codice e dato IMPORT Node-RED creerà un nuovo Flow contenente i nodi corretti per la conversione.
Occorre a questo punto editare il nodo application/+/device/+/rx per inserire le credenziali corrette
username: loraadm
password: URloraadm123456
Dopo aver dato UPDATE e DONE fino a chiudere tutte le schermate occorre effettuare il DEPLOY
Il codice Node-RED prende i dati inviati dalle sonde EM300-TH e li appoggia in aree di memoria Modbus con un offset di 10 word.
Importante affinchè il codice funzioni correttamente è fare attenzione a registrare i dispositivi LoraWAN sul Network Server a bordo del gateway utilizzando come nome un numero che va da 1 in su.
Questo valore verrà utilizzato dal codice Node-RED per calcolare offset delle variabili di quel dispositivo.
Il codice Node-RED appoggia i valori di ciascun dispositivo seguendo questa formula (deviceName) - 1) * 10
Le variabili sono
fCnt all'indirizzo "offset" + 0: contatore incrementale dei messaggi inviati dal nodo
temperature all'indirizzo "offset" + 1: temperatura rilevata x 10 °C
humidity all'indirizzo "offset" + 2: umidità rilevata x 10 %rH
battery all'indirizzo "offset" + 3: valore della batteria in percentuale
rssi all'indirizzo "offset" + 9: valore del livello di segnale ricevuto dal gateway