Kunnskap/Integrasjon/Node-RED

VeiledningM-Center

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

Node-RED egner seg godt til å regne om, filtrere og fordele målerverdier til andre systemer. Verdiene henter du fra EMU M-Center, via Modbus TCP eller via MQTT.

Dette trenger du

  • Et konfigurert M-Center med lisensen Modbus TCP-server (210.300.04) eller MQTT-lisensen (210.300.03).
  • For Modbus pakken node-red-contrib-modbus, installeres via «Administrer palett».
  • For MQTT en broker som M-Center og Node-RED når.

Vei 1: Modbus TCP

  1. Angi OBIS-koden for de ønskede registrene i M-Center. Forbruk tariff 1 (1-0:1.8.1) ligger da i register 1030.
  2. Legg til en node «Modbus Read» i Node-RED. Server: IP for M-Center, port 502, type TCP.
  3. Unit-ID: målerens Modbus-enhetsadresse i M-Center.
  4. FC 3 (Read Holding Registers), adresse 1029 for register 1030, antall 2, pollintervall f.eks. 15 minutter.
  5. Koble på en function-node som setter sammen de to registrene til et flyttall.
// To 16-bits registre (big endian, høye 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 = "leilighet1/forbruk_t1";
return msg;

Bruksanvisningen teller registre fra 1, node-red-contrib-modbus forventer adressen fra 0. Derfor 1029 for register 1030. Sammenlign den første verdien med målerstanden i M-Center.

For flere målere oppretter du én lesenode per måler med eget Unit-ID. Adressene forblir de samme så lenge OBIS-kodene er angitt.

Vei 2: MQTT

Med MQTT-lisensen publiserer M-Center hver verdi under eget topic. En «mqtt in»-node med wildcard-abonnement mottar alle verdier fra ett M-Center:

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

Koble først på en debug-node og se på topics og meldingsinnhold. Del deretter opp verdiene per topic med en switch-node, f.eks. etter OBIS-koden på slutten av stien.

Hvilken vei?

Modbus TCPMQTT
Adresserfaste, dokumentert i bruksanvisningentopic per måler og register
ForespørselNode-RED spør aktivtM-Center sender selv
Flere systemeregen forespørsel per systemså mange abonnenter du vil i brokeren
Lisens210.300.04210.300.03

Vanlige spørsmål


Kan Node-RED lese statusregistrene?

Ja. Fra register 11910 (float32) eller 11912 (uint64) ligger statuskoden for siste avlesning: 1 vellykket, 2 mislykket, 3 vellykket med melding fra måleren. Les statusregistre som uint64.

Hvordan leser jeg uint64?

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

Les mer


SEITEM-Bus til Modbus TCPRegisteroversikt SEITEM-Bus til MQTTTopic-struktur SEITEMålerdata i GrafanaVeiledning SEITEFlere integrasjonerOversikt

Spørsmål om integrasjonen?


Send oss målerlisten. Vi hjelper deg med adresser, OBIS-koder og lisenser.

Telefon
+41 (0)41 545 03 00

Teknisk support
helpdesk [at] emuag.ch
Supportskjema →