Rela AIRela AI Docs
Integrazioni

Gateway con Node-RED (Raspberry Pi)

Guida passo passo per configurare un Raspberry Pi con Node-RED come gateway OPC UA a MQTT per Rela-ai.

Cosa ti serve

  • Raspberry Pi 4 (2GB+ RAM) o qualsiasi Linux con Node.js
  • Cavo ethernet per collegarlo alla rete del PLC
  • Accesso a internet (WiFi o secondo cavo ethernet)
  • Dati del PLC: IP, porta OPC UA, Node ID da monitorare

Passo 1: Installare Node-RED

Se usi Raspberry Pi OS, Node-RED si installa con un solo comando:

bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)

Rispondi "y" a tutte le domande. Al termine:

# Avviare Node-RED come servizio (si avvia automaticamente all'accensione)
sudo systemctl enable nodered
sudo systemctl start nodered

Accedi a Node-RED dal browser: http://<IP-del-raspberry>:1880

A cosa serve

  • Avviare un gateway con Node-RED su una Raspberry Pi in meno di 30 minuti.
  • Tradurre OPC UA in MQTT quando il PLC parla solo OPC UA e vuoi inviare tramite MQTT.
  • Avere un gateway programmabile visivamente (senza codice) per aggiungere trasformazioni.

Come funziona

Installi Node-RED e il plugin OPC UA su una Raspberry Pi. Crei un flow visuale: nodo OPC UA Client (legge dal PLC) → funzione di trasformazione (opzionale) → nodo MQTT Publisher (invia a Rela). Il flow gira 24/7 e si riavvia automaticamente con la Pi.

Passo 2: Installare il plugin OPC UA

Nell'interfaccia di Node-RED, vai su Menu (hamburger) → Manage Palette → Install e cerca:

node-red-contrib-opcua

Clicca su "Install". Questo aggiunge i nodi OPC UA al pannello sinistro.

Passo 3: Creare il flusso OPC UA → MQTT

Trascina questi nodi sul canvas e collegali in ordine:

3.1 Nodo "OPC-UA Client"

  • Endpoint: opc.tcp://<IP-del-PLC>:4840 (l'indirizzo del server OPC UA del PLC)
  • Action: Subscribe
  • Node IDs: i nodi che vuoi monitorare (es: ns=2;s=Temperature)

3.2 Nodo "Function" (trasformare in OPC UA Pub/Sub JSON)

Codice del nodo Function:

// Transforma data change de OPC UA a formato Pub/Sub JSON
var nodeName = msg.topic.split(";").pop() || "Unknown";
var value = msg.payload;

msg.payload = JSON.stringify({
    "MessageType": "ua-data",
    "PublisherId": "Gateway-" + env.get("HOSTNAME"),
    "Messages": [{
        "DataSetWriterId": 1,
        "Payload": {}
    }]
});

// Parsear para agregar el campo dinamico
var obj = JSON.parse(msg.payload);
obj.Messages[0].Payload[nodeName] = {
    "Value": value,
    "SourceTimestamp": new Date().toISOString(),
    "StatusCode": 0
};
msg.payload = JSON.stringify(obj);

return msg;

3.3 Nodo "MQTT Out"

  • Server: URL del broker MQTT (es: mqtt://broker.hivemq.com:1883)
  • Topic: il topic configurato in Rela-ai (es: impianto-nord/gateway-linea1)
  • QoS: 0

3.4 Collegare

[OPC-UA Client] → [Function] → [MQTT Out]

Clicca su Deploy (pulsante rosso in alto a destra).

Passo 4: Verificare

Apri un terminale e abbonati al topic per vedere se arrivano i messaggi:

mosquitto_sub -h broker.hivemq.com -t "impianto-nord/gateway-linea1" -v

Dovresti vedere messaggi JSON ogni volta che un valore cambia nel PLC.

Passo 5: Configurare Rela-ai

  1. Nel dashboard, crea una sorgente con protocollo OPC UA → Via Gateway MQTT
  2. Configura l'URL del broker e il topic che hai usato nel nodo MQTT Out
  3. Rela-ai inizia a ricevere i dati automaticamente

Monitorare piu nodi

Per monitorare piu nodi del PLC contemporaneamente, aggiungi piu nodi "OPC-UA Client" (uno per variabile) e collegali tutti allo stesso nodo Function. Il Function accumulera i campi nel Payload.

Alternativa: usa un solo nodo OPC-UA Client con Action "Subscribe" e configura piu Node ID separati da virgola.

Suggerimenti

  • Riconnessione automatica: Node-RED si riconnette automaticamente se il PLC o il broker si disconnettono.
  • Persistenza: Se il Raspberry Pi si riavvia, Node-RED parte automaticamente (se hai abilitato il servizio).
  • Dashboard Node-RED: Puoi aggiungere un dashboard locale in Node-RED per visualizzare i dati in tempo reale dall'impianto.
  • Sicurezza: Se il PLC richiede autenticazione OPC UA, configura utente/password nel nodo OPC-UA Client.

Benefici chiave

  • Setup in meno di 30 minuti con passi riproducibili.
  • Editor visuale — nessuna programmazione richiesta.
  • Raspberry Pi + alimentazione = gateway completo per meno di $100.
  • Flow riutilizzabili tra impianti dello stesso cliente.
  • Riavvio automatico al boot della Pi.

In questa pagina