Viden/Integration/Node-RED

VejledningM-Center

M-Bus-målere med M-Center i Node-RED

Node-RED egner sig godt til at omregne, filtrere og fordele målerværdier til andre systemer. Værdierne henter du fra EMU M-Center, via Modbus TCP eller via MQTT.

Det skal du bruge

  • Et konfigureret M-Center med licensen Modbus TCP-server (210.300.04) eller MQTT-licensen (210.300.03).
  • Til Modbus pakken node-red-contrib-modbus, installeres via «Administrer palet».
  • Til MQTT en broker, som M-Center og Node-RED kan nå.

Vej 1: Modbus TCP

  1. Angiv OBIS-koden for de ønskede registre i M-Center. Forbrug tarif 1 (1-0:1.8.1) ligger så i register 1030.
  2. Tilføj en node «Modbus Read» i Node-RED. Server: IP for M-Center, port 502, type TCP.
  3. Unit-ID: målerens Modbus-enhedsadresse i M-Center.
  4. FC 3 (Read Holding Registers), adresse 1029 for register 1030, antal 2, pollinterval f.eks. 15 minutter.
  5. Tilkobl en function-node, der sætter de to registre sammen til et kommatal.
// To 16-bit-registre (big endian, høje ord først) -> 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 = "lejlighed1/forbrug_t1";
return msg;

Manualen tæller registre fra 1, node-red-contrib-modbus forventer adressen fra 0. Derfor 1029 for register 1030. Sammenlign den første værdi med målerstanden i M-Center.

Til flere målere opretter du én læsenode pr. måler med eget Unit-ID. Adresserne forbliver de samme, så længe OBIS-koderne er angivet.

Vej 2: MQTT

Med MQTT-licensen publicerer M-Center hver værdi under sit eget topic. En «mqtt in»-node med wildcard-abonnement modtager alle værdier fra ét M-Center:

<præfiks>/emu/mcenter/<MAC>/meterreading/#

Tilkobl først en debug-node, og se topics og beskedindhold igennem. Del derefter værdierne op pr. topic med en switch-node, f.eks. efter OBIS-koden i slutningen af stien.

Hvilken vej?

Modbus TCPMQTT
Adresserfaste, dokumenteret i manualentopic pr. måler og register
ForespørgselNode-RED spørger aktivtM-Center sender selv
Flere systemeregen forespørgsel pr. systemvilkårligt mange abonnenter i brokeren
Licens210.300.04210.300.03

Ofte stillede spørgsmål


Kan Node-RED læse statusregistrene?

Ja. Fra register 11910 (float32) eller 11912 (uint64) ligger statuskoden for den seneste aflæsning: 1 vellykket, 2 mislykket, 3 vellykket med melding fra måleren. Læs statusregistre som uint64.

Hvordan læser jeg uint64?

Læs fire registre fra uint64-adressen, f.eks. fra 1031 for register 1032, og behandl dem i function-noden med buf.readBigUInt64BE(0).

Læs mere


SEITEM-Bus til Modbus TCPRegisteroversigt SEITEM-Bus til MQTTTopic-struktur SEITEMålerdata i GrafanaVejledning SEITEFlere integrationerOversigt

Spørgsmål om integrationen?


Send os målerlisten. Vi hjælper med adresser, OBIS-koder og licenser.

Telefon
+41 (0)41 545 03 00

Teknisk support
helpdesk [at] emuag.ch
Supportformular →