Conocimiento/Integración/Home Assistant

GuíaM-Center

Contadores M-Bus con el M-Center en Home Assistant

Home Assistant tiene una integración Modbus incorporada. Con ella lee directamente los valores de todos los contadores del EMU M-Center y reúne electricidad, calor y agua en el panel de energía.

Lo que necesita

  • Un M-Center configurado con licencia de servidor Modbus TCP (210.300.04) o licencia MQTT (210.300.03).
  • La dirección IP del M-Center y la dirección de dispositivo Modbus de cada contador.
  • Códigos OBIS introducidos en los registros que quiera consultar.
  • Acceso al configuration.yaml de Home Assistant.

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 slave o device_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.

Preguntas frecuentes


¿Qué licencia necesito para Home Assistant?

Para Modbus, la licencia de servidor Modbus TCP 210.300.04; para MQTT, la licencia MQTT 210.300.03. Basta con una.

¿Por qué Home Assistant muestra un valor incorrecto?

Normalmente la dirección está desplazada en uno o es el registro equivocado. Para comparar, lea el mismo valor con modpoll u otra herramienta Modbus y compárelo con la lectura en el M-Center.

¿Puedo usar float32 o uint64?

Ambos. float32 es más sencillo pero redondea las lecturas muy grandes. Para uint64 (registro 1032 en lugar de 1030) ajuste data_type: uint64.

Seguir leyendo


SEITEM-Bus a Modbus TCPMapa de registros SEITEM-Bus a MQTTEstructura de topics SEITEPuesta en marcha del M-CenterGuía SEITEMás integracionesResumen

¿Preguntas sobre la integración?


Envíenos su lista de contadores y la configuración. Le ayudamos con direcciones y códigos OBIS.

Teléfono
+41 (0)41 545 03 00

Soporte técnico
helpdesk [at] emuag.ch
Formulario de soporte →