Conoscenza/Integrazione/Node-RED

GuidaM-Center

Contatori M-Bus con l’M-Center in Node-RED

Node-RED è adatto a convertire, filtrare e distribuire i valori dei contatori ad altri sistemi. Prende i valori dall’EMU M-Center, via Modbus TCP o via MQTT.

Cosa serve

  • Un M-Center configurato con licenza server Modbus TCP (210.300.04) o licenza MQTT (210.300.03).
  • Per Modbus il pacchetto node-red-contrib-modbus, installabile tramite «Gestisci palette».
  • Per MQTT un broker raggiungibile da M-Center e Node-RED.

Via 1: Modbus TCP

  1. Nell’M-Center inserire il codice OBIS dei registri desiderati. La lettura del prelievo tariffa 1 (1-0:1.8.1) si trova allora al registro 1030.
  2. In Node-RED aggiungere un nodo «Modbus Read». Server: IP dell’M-Center, porta 502, tipo TCP.
  3. Unit-ID: l’indirizzo di dispositivo Modbus del contatore nell’M-Center.
  4. FC 3 (Read Holding Registers), indirizzo 1029 per il registro 1030, quantità 2, intervallo di lettura ad esempio 15 minuti.
  5. Aggiungere un nodo funzione che unisce i due registri in un numero in virgola mobile.
// Due registri a 16 bit (big endian, parola alta per prima) -> float32
const buf = Buffer.alloc(4);
buf.writeUInt16BE(msg.payload[0], 0);
buf.writeUInt16BE(msg.payload[1], 2);
msg.payload = buf.readFloatBE(0);
msg.topic = "appartamento1/prelievo_t1";
return msg;

Il manuale conta i registri da 1, node-red-contrib-modbus si aspetta l’indirizzo da 0. Per questo 1029 per il registro 1030. Confrontate il primo valore con la lettura nell’M-Center.

Per più contatori create un nodo di lettura per contatore con il proprio Unit-ID. Gli indirizzi restano uguali finché i codici OBIS sono inseriti.

Via 2: MQTT

Con la licenza MQTT l’M-Center pubblica ogni valore con il proprio topic. Un nodo «mqtt in» con un abbonamento con carattere jolly riceve tutti i valori di un M-Center:

<prefisso>/emu/mcenter/<MAC>/meterreading/#

Collegate prima un nodo debug e osservate topic e contenuto dei messaggi. Poi separate i valori per topic con un nodo switch, ad esempio secondo il codice OBIS alla fine del percorso.

Quale via?

Modbus TCPMQTT
Indirizzifissi, documentati nel manualetopic per contatore e registro
InterrogazioneNode-RED interroga attivamentel’M-Center invia da sé
Altri sistemiun’interrogazione propria per ogni sistemaabbonati illimitati sul broker
Licenza210.300.04210.300.03

Domande frequenti


Node-RED può leggere i registri di stato?

Sì. Dal registro 11910 (float32) o 11912 (uint64) si trova il codice di stato dell’ultima lettura: 1 riuscita, 2 non riuscita, 3 riuscita con segnalazione del contatore. Leggete i registri di stato come uint64.

Come leggo uint64?

Leggere quattro registri dall’indirizzo uint64, ad esempio da 1031 per il registro 1032, e valutarli nel nodo funzione con buf.readBigUInt64BE(0).

Per approfondire


SEITEM-Bus su Modbus TCPTabella dei registri SEITEM-Bus su MQTTStruttura dei topic SEITEDati dei contatori in GrafanaGuida SEITEAltre integrazioniPanoramica

Domande sull’integrazione?


Inviateci l’elenco dei contatori. Vi aiutiamo con indirizzi, codici OBIS e licenze.

Telefono
+41 (0)41 545 03 00

Supporto tecnico
helpdesk [at] emuag.ch
Modulo di supporto →