Paso 1: introducir los códigos OBIS en el M-Center
En el M-Center, introduzca el código OBIS de cada registro que deba recibir Home Assistant. Así el valor queda en una dirección fija, por ejemplo la lectura de energía importada tarifa 1 (1-0:1.8.1) en el registro 1030. Anote el «número de dispositivo servidor Modbus TCP» de cada contador. En Home Assistant es la dirección del dispositivo.
Compruebe también la unidad del registro en el M-Center. Home Assistant toma el valor numérico; la unidad la define usted. Si en el M-Center figura Wh, introduzca Wh en Home Assistant.
Paso 2: configurar Modbus en Home Assistant
Complete el configuration.yaml. El ejemplo lee importada tarifa 1 y tarifa 2 de un contador con dirección de dispositivo 9 y el contador de agua con dirección 12:
modbus:
- name: m_center
type: tcp
host: 192.168.1.50 # IP del M-Center
port: 502
sensors:
- name: "Vivienda 1 importada tarifa 1"
slave: 9 # dirección de dispositivo en el M-Center
address: 1029 # registro 1030, contado desde 0
input_type: holding
data_type: float32
unit_of_measurement: Wh
device_class: energy
state_class: total_increasing
scan_interval: 900
- name: "Vivienda 1 importada tarifa 2"
slave: 9
address: 1059 # registro 1060
input_type: holding
data_type: float32
unit_of_measurement: Wh
device_class: energy
state_class: total_increasing
scan_interval: 900
- name: "Vivienda 1 agua fría"
slave: 12
address: 2999 # registro 3000
input_type: holding
data_type: float32
unit_of_measurement: m³ # unidad como en el M-Center
device_class: water
state_class: total_increasing
scan_interval: 900
Tres puntos donde a menudo falla algo:
- Dirección: el manual cuenta los registros desde 1, Home Assistant desde 0. Por eso el ejemplo usa 1029 para el registro 1030. Compruébelo una vez con una lectura conocida.
- Orden de bytes: el M-Center entrega big endian con la palabra alta primero. Coincide con el ajuste por defecto de Home Assistant; no hace falta
swap. - Nombre de la clave: según la versión de Home Assistant, la dirección del dispositivo se llama
slaveodevice_address. Vale la documentación de su versión.
El scan_interval de 900 segundos corresponde al intervalo de lectura del M-Center de 15 minutos. Consultar más a menudo no aporta valores más recientes.
Paso 3: panel de energía
Tras reiniciar, los sensores aparecen en Home Assistant. Como llevan device_class: energy o water y state_class: total_increasing, se pueden seleccionar en Ajustes → Paneles → Energía como consumo de red, dispositivo o consumo de agua.
Alternativa: MQTT
Si el M-Center tiene la licencia MQTT, puede publicar sus valores en el broker de Home Assistant, por ejemplo en el complemento Mosquitto. Los topics siguen el esquema <prefijo>/emu/mcenter/<MAC>/meterreading/<número de serie>/byobis/<código OBIS>.
Observe los mensajes antes de configurar, por ejemplo con MQTT Explorer o en la integración MQTT de Home Assistant en «Escuchar un topic». Después cree un sensor MQTT por topic y lea el valor según el contenido del mensaje.
Modbus es la vía más sencilla si solo Home Assistant necesita los valores. MQTT compensa si otros sistemas también deben leerlos.