Cesta 1: Modbus TCP
- 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.
- V Node-RED přidejte uzel «Modbus Read». Server: IP M-Center, port 502, typ TCP.
- Unit-ID: adresa zařízení Modbus měřiče v M-Center.
- FC 3 (Read Holding Registers), adresa 1029 pro registr 1030, počet 2, interval dotazu např. 15 minut.
- 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 TCP | MQTT | |
|---|---|---|
| Adresy | pevné, zdokumentované v příručce | téma na měřič a registr |
| Dotazování | Node-RED se aktivně dotazuje | M-Center odesílá samo |
| Další systémy | vlastní dotazování pro každý systém | libovolný počet odběratelů v brokeru |
| Licence | 210.300.04 | 210.300.03 |