Znalosti/Integrace/Node-RED

NávodM-Center

Měřiče M-Bus s M-Center v Node-RED

Node-RED se dobře hodí k přepočtu, filtrování a rozesílání hodnot měřičů do dalších systémů. Hodnoty získáte z EMU M-Center přes Modbus TCP nebo přes MQTT.

Co potřebujete

  • Nakonfigurované M-Center s licencí server Modbus TCP (210.300.04) nebo s licencí MQTT (210.300.03).
  • Pro Modbus balík node-red-contrib-modbus, instalace přes «Manage palette».
  • Pro MQTT broker, na který dosáhne M-Center i Node-RED.

Cesta 1: Modbus TCP

  1. V M-Center zadejte kód OBIS u požadovaných registrů. Odběr v tarifu 1 (1-0:1.8.1) je pak v registru 1030.
  2. V Node-RED přidejte uzel «Modbus Read». Server: IP M-Center, port 502, typ TCP.
  3. Unit-ID: adresa zařízení Modbus měřiče v M-Center.
  4. FC 3 (Read Holding Registers), adresa 1029 pro registr 1030, počet 2, interval dotazu např. 15 minut.
  5. Připojte uzel function, který složí dva registry do desetinného čísla.
// Dva 16bitové registry (big endian, vyšší slovo napřed) -> 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 = "byt1/odber_t1";
return msg;

Příručka počítá registry od 1, node-red-contrib-modbus očekává adresu od 0. Proto 1029 pro registr 1030. Porovnejte první hodnotu se stavem měřiče v M-Center.

Pro více měřičů vytvořte jeden čtecí uzel na měřič s vlastním Unit-ID. Adresy zůstávají stejné, dokud jsou zadány kódy OBIS.

Cesta 2: MQTT

S licencí MQTT publikuje M-Center každou hodnotu pod vlastním tématem. Uzel «mqtt in» s odběrem se zástupným znakem přijme všechny hodnoty jednoho M-Center:

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

Nejprve připojte uzel debug a prohlédněte si témata a obsah zpráv. Poté rozdělte hodnoty podle tématu uzlem switch, např. podle kódu OBIS na konci cesty.

Která cesta?

Modbus TCPMQTT
Adresypevné, zdokumentované v příručcetéma na měřič a registr
DotazováníNode-RED se aktivně dotazujeM-Center odesílá samo
Další systémyvlastní dotazování pro každý systémlibovolný počet odběratelů v brokeru
Licence210.300.04210.300.03

Časté dotazy


Může Node-RED číst stavové registry?

Ano. Od registru 11910 (float32) nebo 11912 (uint64) je stavový kód posledního odečtu: 1 úspěšný, 2 neúspěšný, 3 úspěšný s hlášením měřiče. Stavové registry čtěte jako uint64.

Jak přečtu uint64?

Přečtěte čtyři registry od adresy uint64, např. od 1031 pro registr 1032, a zpracujte je v uzlu function pomocí buf.readBigUInt64BE(0).

Další informace


SEITEM-Bus do Modbus TCPMapa registrů SEITEM-Bus do MQTTStruktura témat SEITEData z měřičů v GrafaněNávod SEITEDalší integracePřehled

Dotazy k integraci?


Pošlete nám seznam měřičů. Pomůžeme s adresami, kódy OBIS a licencemi.

Telefon
+41 (0)41 545 03 00

Technická podpora
helpdesk [at] emuag.ch
Formulář podpory →