Savoir/Intégration/Node-RED

GuideM-Center

Compteurs M-Bus avec le M-Center dans Node-RED

Node-RED se prête bien à la conversion, au filtrage et à la distribution des valeurs de comptage vers d’autres systèmes. Il récupère les valeurs dans l’EMU M-Center, via Modbus TCP ou via MQTT.

Ce qu’il vous faut

  • Un M-Center configuré avec licence serveur Modbus TCP (210.300.04) ou licence MQTT (210.300.03).
  • Pour Modbus, le paquet node-red-contrib-modbus, installable via « Gérer la palette ».
  • Pour MQTT, un broker accessible au M-Center et à Node-RED.

Voie 1 : Modbus TCP

  1. Dans le M-Center, saisir le code OBIS des registres souhaités. L’index de soutirage tarif 1 (1-0:1.8.1) se trouve alors au registre 1030.
  2. Dans Node-RED, ajouter un nœud « Modbus Read ». Serveur : IP du M-Center, port 502, type TCP.
  3. Unit-ID : l’adresse d’appareil Modbus du compteur dans le M-Center.
  4. FC 3 (Read Holding Registers), adresse 1029 pour le registre 1030, quantité 2, intervalle de lecture par exemple 15 minutes.
  5. Ajouter un nœud de fonction qui combine les deux registres en un nombre à virgule flottante.
// Deux registres de 16 bits (big endian, mot de poids fort en premier) -> 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 = "logement1/soutirage_t1";
return msg;

Le manuel compte les registres à partir de 1, node-red-contrib-modbus attend l’adresse à partir de 0. D’où 1029 pour le registre 1030. Comparez la première valeur à l’index dans le M-Center.

Pour plusieurs compteurs, créez un nœud de lecture par compteur avec son propre Unit-ID. Les adresses restent les mêmes tant que les codes OBIS sont saisis.

Voie 2 : MQTT

Avec la licence MQTT, le M-Center publie chaque valeur sous son propre topic. Un nœud « mqtt in » avec un abonnement générique reçoit toutes les valeurs d’un M-Center :

<préfixe>/emu/mcenter/<MAC>/meterreading/#

Ajoutez d’abord un nœud debug et regardez les topics et le contenu des messages. Séparez ensuite les valeurs par topic avec un nœud switch, par exemple selon le code OBIS en fin de chemin.

Quelle voie ?

Modbus TCPMQTT
Adressesfixes, documentées dans le manueltopic par compteur et registre
InterrogationNode-RED interroge activementle M-Center envoie de lui-même
Autres systèmesune requête propre par systèmeautant d’abonnés que souhaité sur le broker
Licence210.300.04210.300.03

Questions fréquentes


Node-RED peut-il lire les registres d’état ?

Oui. Dès le registre 11910 (float32) ou 11912 (uint64) se trouve le code d’état de la dernière relève : 1 réussie, 2 non réussie, 3 réussie avec message du compteur. Lisez les registres d’état en uint64.

Comment lire un uint64 ?

Lire quatre registres à partir de l’adresse uint64, par exemple dès 1031 pour le registre 1032, et les évaluer dans le nœud de fonction avec buf.readBigUInt64BE(0).

À lire aussi


SEITEM-Bus vers Modbus TCPTable des registres SEITEM-Bus vers MQTTStructure des topics SEITEDonnées de comptage dans GrafanaGuide SEITEAutres intégrationsVue d’ensemble

Des questions sur l’intégration ?


Envoyez-nous votre liste de compteurs. Nous vous aidons pour les adresses, les codes OBIS et les licences.

Téléphone
+41 (0)41 545 03 00

Support technique
helpdesk [at] emuag.ch
Formulaire de support →