Wiedza/Integracja/Node-RED

InstrukcjaM-Center

Liczniki M-Bus z M-Center w Node-RED

Node-RED dobrze nadaje się do przeliczania, filtrowania i rozsyłania wartości liczników do innych systemów. Wartości pobiera z EMU M-Center, przez Modbus TCP lub przez MQTT.

Co jest potrzebne

  • Skonfigurowany M-Center z licencją serwera Modbus TCP (210.300.04) lub licencją MQTT (210.300.03).
  • Dla Modbus pakiet node-red-contrib-modbus, do zainstalowania przez «Zarządzaj paletą».
  • Dla MQTT broker osiągalny dla M-Center i Node-RED.

Droga 1: Modbus TCP

  1. W M-Center wpisać kod OBIS przy wybranych rejestrach. Stan poboru w taryfie 1 (1-0:1.8.1) jest wtedy w rejestrze 1030.
  2. W Node-RED dodać węzeł «Modbus Read». Serwer: IP M-Center, port 502, typ TCP.
  3. Unit-ID: adres urządzenia Modbus licznika w M-Center.
  4. FC 3 (Read Holding Registers), adres 1029 dla rejestru 1030, liczba 2, interwał odpytywania np. 15 minut.
  5. Dołączyć węzeł funkcji, który składa dwa rejestry w liczbę zmiennoprzecinkową.
// Dwa rejestry 16-bitowe (big endian, starsze słowo najpierw) -> 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 = "mieszkanie1/pobor_t1";
return msg;

Instrukcja liczy rejestry od 1, node-red-contrib-modbus oczekuje adresu od 0. Dlatego 1029 dla rejestru 1030. Proszę porównać pierwszą wartość ze stanem licznika w M-Center.

Dla kilku liczników tworzy się po jednym węźle odczytu na licznik z własnym Unit-ID. Adresy pozostają takie same, dopóki kody OBIS są wpisane.

Droga 2: MQTT

Z licencją MQTT M-Center publikuje każdą wartość pod własnym tematem. Węzeł «mqtt in» z subskrypcją wieloznaczną odbiera wszystkie wartości jednego M-Center:

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

Najpierw proszę dołączyć węzeł debug i obejrzeć tematy oraz treść wiadomości. Następnie rozdzielić wartości według tematu węzłem switch, np. według kodu OBIS na końcu ścieżki.

Która droga?

Modbus TCPMQTT
Adresystałe, udokumentowane w instrukcjitemat na licznik i rejestr
OdpytywanieNode-RED odpytuje aktywnieM-Center wysyła samodzielnie
Kolejne systemyosobne odpytywanie dla każdego systemudowolna liczba subskrybentów w brokerze
Licencja210.300.04210.300.03

Najczęstsze pytania


Czy Node-RED może odczytać rejestry stanu?

Tak. Od rejestru 11910 (float32) lub 11912 (uint64) jest kod stanu ostatniego odczytu: 1 udany, 2 nieudany, 3 udany z komunikatem licznika. Rejestry stanu proszę odczytywać jako uint64.

Jak odczytać uint64?

Odczytać cztery rejestry od adresu uint64, np. od 1031 dla rejestru 1032, i przetworzyć je w węźle funkcji za pomocą buf.readBigUInt64BE(0).

Czytaj dalej


SEITEM-Bus do Modbus TCPMapa rejestrów SEITEM-Bus do MQTTStruktura tematów SEITEDane z liczników w GrafanaInstrukcja SEITEWięcej integracjiPrzegląd

Pytania dotyczące integracji?


Proszę przesłać listę liczników. Pomożemy z adresami, kodami OBIS i licencjami.

Telefon
+41 (0)41 545 03 00

Wsparcie techniczne
helpdesk [at] emuag.ch
Formularz wsparcia →