Étape 1 : saisir les codes OBIS dans le M-Center
Dans le M-Center, saisissez le code OBIS pour chaque registre que Home Assistant doit recevoir. La valeur se trouve alors à une adresse fixe, par exemple l’index de soutirage tarif 1 (1-0:1.8.1) au registre 1030. Notez le « numéro d’appareil serveur Modbus TCP » de chaque compteur. Dans Home Assistant, c’est l’adresse d’appareil.
Vérifiez aussi l’unité du registre dans le M-Center. Home Assistant reprend la valeur numérique, l’unité, c’est vous qui la définissez. Si le M-Center indique Wh, saisissez Wh dans Home Assistant.
Étape 2 : configurer Modbus dans Home Assistant
Complétez le fichier configuration.yaml. L’exemple lit le soutirage tarif 1 et tarif 2 d’un compteur à l’adresse d’appareil 9 et le compteur d’eau à l’adresse 12 :
modbus:
- name: m_center
type: tcp
host: 192.168.1.50 # IP du M-Center
port: 502
sensors:
- name: "Logement 1 soutirage tarif 1"
slave: 9 # adresse d'appareil dans le M-Center
address: 1029 # registre 1030, compté dès 0
input_type: holding
data_type: float32
unit_of_measurement: Wh
device_class: energy
state_class: total_increasing
scan_interval: 900
- name: "Logement 1 soutirage tarif 2"
slave: 9
address: 1059 # registre 1060
input_type: holding
data_type: float32
unit_of_measurement: Wh
device_class: energy
state_class: total_increasing
scan_interval: 900
- name: "Logement 1 eau froide"
slave: 12
address: 2999 # registre 3000
input_type: holding
data_type: float32
unit_of_measurement: m³ # unité comme dans le M-Center
device_class: water
state_class: total_increasing
scan_interval: 900
Trois points qui posent souvent problème :
- Adresse : le manuel compte les registres à partir de 1, Home Assistant à partir de 0. C’est pourquoi l’exemple indique 1029 pour le registre 1030. Vérifiez-le une fois avec un index connu.
- Ordre des octets : le M-Center fournit du big endian avec le mot de poids fort en premier. Cela correspond au réglage par défaut de Home Assistant, aucun
swapn’est nécessaire. - Nom de clé : selon la version de Home Assistant, l’adresse d’appareil s’appelle
slaveoudevice_address. La documentation de votre version fait foi.
Le scan_interval de 900 secondes correspond à l’intervalle de relève de 15 minutes du M-Center. Interroger plus souvent n’apporte pas de valeurs plus récentes.
Étape 3 : tableau de bord énergie
Après le redémarrage, les capteurs apparaissent dans Home Assistant. Comme ils portent device_class: energy ou water et state_class: total_increasing, on peut les sélectionner sous Paramètres → Tableaux de bord → Énergie comme consommation du réseau, appareil ou consommation d’eau.
Alternative : MQTT
Si le M-Center dispose de la licence MQTT, il peut publier ses valeurs sur le broker de Home Assistant, par exemple sur le module complémentaire Mosquitto. Les topics suivent le schéma <préfixe>/emu/mcenter/<MAC>/meterreading/<numéro de série>/byobis/<code OBIS>.
Regardez les messages avant la configuration, par exemple avec MQTT Explorer ou dans l’intégration MQTT de Home Assistant sous « Écouter un topic ». Créez ensuite un capteur MQTT par topic et lisez la valeur selon le contenu du message.
Modbus est la voie la plus simple si seul Home Assistant a besoin des valeurs. MQTT vaut la peine si d’autres systèmes doivent lire en parallèle.