Kennis/Integratie/Home Assistant

HandleidingM-Center

M-Bus-meters met het M-Center in Home Assistant

Home Assistant heeft een ingebouwde Modbus-integratie. Daarmee leest u de waarden van alle meters aan het EMU M-Center rechtstreeks uit en brengt u elektriciteit, warmte en water samen in het energiedashboard.

Dit hebt u nodig

  • Een ingericht M-Center met Modbus TCP-serverlicentie (210.300.04) of MQTT-licentie (210.300.03).
  • Het IP-adres van het M-Center en het Modbus-apparaatadres van elke meter.
  • Vastgelegde OBIS-codes bij de registers die u wilt opvragen.
  • Toegang tot de configuration.yaml van Home Assistant.

Stap 1: OBIS-codes in het M-Center vastleggen

Leg in het M-Center bij elk register dat Home Assistant moet krijgen de OBIS-code vast. Dan staat de waarde op een vast adres, bijvoorbeeld de meterstand verbruik tarief 1 (1-0:1.8.1) op register 1030. Noteer voor elke meter het «Modbus TCP Server-apparaatnummer». Dat is in Home Assistant het apparaatadres.

Controleer ook de eenheid van het register in het M-Center. Home Assistant neemt de getalswaarde over, de eenheid legt u zelf vast. Staat in het M-Center Wh, voer dan in Home Assistant Wh in.

Stap 2: Modbus in Home Assistant instellen

Vul de configuration.yaml aan. Het voorbeeld leest verbruik tarief 1 en tarief 2 van een meter met apparaatadres 9 en de watermeter met adres 12:

modbus:
  - name: m_center
    type: tcp
    host: 192.168.1.50      # IP van het M-Center
    port: 502
    sensors:
      - name: "Woning 1 verbruik tarief 1"
        slave: 9              # apparaatadres in het M-Center
        address: 1029         # register 1030, geteld vanaf 0
        input_type: holding
        data_type: float32
        unit_of_measurement: Wh
        device_class: energy
        state_class: total_increasing
        scan_interval: 900
      - name: "Woning 1 verbruik tarief 2"
        slave: 9
        address: 1059         # register 1060
        input_type: holding
        data_type: float32
        unit_of_measurement: Wh
        device_class: energy
        state_class: total_increasing
        scan_interval: 900
      - name: "Woning 1 koud water"
        slave: 12
        address: 2999         # register 3000
        input_type: holding
        data_type: float32
        unit_of_measurement: m³    # eenheid zoals in het M-Center
        device_class: water
        state_class: total_increasing
        scan_interval: 900

Drie punten waarop het vaak misgaat:

  • Adres: de handleiding telt de registers vanaf 1, Home Assistant vanaf 0. Daarom staat in het voorbeeld 1029 voor register 1030. Controleer dat één keer met een bekende meterstand.
  • Bytevolgorde: het M-Center levert big endian met het hoogste woord eerst. Dat komt overeen met de standaardinstelling van Home Assistant, een swap is niet nodig.
  • Sleutelnaam: afhankelijk van de versie van Home Assistant heet het apparaatadres slave of device_address. Bepalend is de documentatie van uw versie.

De scan_interval van 900 seconden komt overeen met het uitleesinterval van het M-Center van 15 minuten. Vaker opvragen levert geen nieuwere waarden op.

Stap 3: energiedashboard

Na de herstart verschijnen de sensoren in Home Assistant. Omdat ze device_class: energy resp. water en state_class: total_increasing hebben, kunt u ze onder Instellingen → Dashboards → Energie selecteren als netverbruik, apparaat of waterverbruik.

Alternatief: MQTT

Heeft het M-Center de MQTT-licentie, dan kan het zijn waarden publiceren naar de broker van Home Assistant, bijvoorbeeld de Mosquitto-add-on. De topics volgen het schema <prefix>/emu/mcenter/<MAC>/meterreading/<serienummer>/byobis/<OBIS-code>.

Bekijk de berichten voordat u gaat instellen, bijvoorbeeld met MQTT Explorer of in de MQTT-integratie van Home Assistant onder «Luisteren naar een topic». Maak daarna voor elk topic een MQTT-sensor aan en lees de waarde uit volgens de inhoud van het bericht.

Modbus is de eenvoudigere weg als alleen Home Assistant de waarden nodig heeft. MQTT loont als ook andere systemen moeten meelezen.

Veelgestelde vragen


Welke licentie heb ik nodig voor Home Assistant?

Voor Modbus de Modbus TCP-serverlicentie 210.300.04, voor MQTT de MQTT-licentie 210.300.03. Eén volstaat.

Waarom toont Home Assistant een verkeerde waarde?

Meestal klopt het adres op één na niet of is het het verkeerde register. Lees ter vergelijking dezelfde waarde met modpoll of een ander Modbus-hulpmiddel en vergelijk met de meterstand in het M-Center.

Kan ik float32 of uint64 gebruiken?

Beide. float32 is eenvoudiger, maar rondt zeer grote meterstanden af. Voor uint64 (register 1032 in plaats van 1030) zet u data_type: uint64.

Verder lezen


SEITEM-Bus naar Modbus TCPRegistertabel SEITEM-Bus naar MQTTTopicstructuur SEITEM-Center in bedrijf stellenHandleiding SEITEMeer integratiesOverzicht

Vragen over de integratie?


Stuur ons uw meterlijst en de configuratie. Wij helpen bij adressen en OBIS-codes.

Telefoon
+41 (0)41 545 03 00

Technische ondersteuning
helpdesk [at] emuag.ch
Supportformulier →