Kunnskap/Integrasjon/Home Assistant

VeiledningM-Center

M-Bus-målere med M-Center i Home Assistant

Home Assistant har en innebygd Modbus-integrasjon. Med den leser du direkte verdiene fra alle målere som er koblet til EMU M-Center, og samler strøm, varme og vann i energipanelet.

Dette trenger du

  • Et konfigurert M-Center med lisensen Modbus TCP-server (210.300.04) eller MQTT-lisensen (210.300.03).
  • IP-adressen til M-Center og Modbus-enhetsadressen for hver måler.
  • OBIS-koder angitt for registrene som skal leses.
  • Tilgang til configuration.yaml i Home Assistant.

Trinn 1: angi OBIS-koder i M-Center

Angi i M-Center OBIS-koden for hvert register som skal til Home Assistant. Da har verdien en fast adresse, f.eks. forbruk tariff 1 (1-0:1.8.1) i register 1030. Noter for hver måler «Modbus TCP-server enhetsnummer». I Home Assistant er det enhetsadressen.

Sjekk også registerets enhet i M-Center. Home Assistant overtar tallverdien, enheten angir du selv. Står det Wh i M-Center, angir du Wh i Home Assistant.

Trinn 2: konfigurer Modbus i Home Assistant

Utvid configuration.yaml. Eksempelet leser forbruk i tariff 1 og 2 for en måler med enhetsadresse 9 og en vannmåler med adresse 12:

modbus:
  - name: m_center
    type: tcp
    host: 192.168.1.50      # IP for M-Center
    port: 502
    sensors:
      - name: "Leilighet 1 forbruk T1"
        slave: 9              # enhetsadresse i M-Center
        address: 1029         # register 1030, telt fra 0
        input_type: holding
        data_type: float32
        unit_of_measurement: Wh
        device_class: energy
        state_class: total_increasing
        scan_interval: 900
      - name: "Leilighet 1 forbruk T2"
        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: "Leilighet 1 kaldtvann"
        slave: 12
        address: 2999         # register 3000
        input_type: holding
        data_type: float32
        unit_of_measurement: m³    # enhet som i M-Center
        device_class: water
        state_class: total_increasing
        scan_interval: 900

Tre steder der det ofte ikke fungerer:

  • Adresse: bruksanvisningen teller registre fra 1, Home Assistant fra 0. Derfor står det 1029 for register 1030 i eksempelet. Sjekk én gang mot en kjent målerstand.
  • Byterekkefølge: M-Center leverer big endian med det høye ordet først. Det tilsvarer standardinnstillingen i Home Assistant, swap trengs ikke.
  • Nøkkelnavn: avhengig av Home Assistant-versjon heter enhetsadressen slave eller device_address. Dokumentasjonen for din versjon gjelder.

scan_interval 900 sekunder tilsvarer M-Centers avlesningsintervall på 15 minutter. Å spørre oftere gir ikke nyere verdier.

Trinn 3: energipanelet

Etter en omstart vises sensorene i Home Assistant. Siden de har device_class: energy eller water og state_class: total_increasing, kan du velge dem under Innstillinger → Dashbord → Energi som nettforbruk, enhet eller vannforbruk.

Alternativ: MQTT

Har M-Center MQTT-lisensen, kan den publisere verdiene til Home Assistants broker, f.eks. tillegget Mosquitto. Topics følger mønsteret <prefiks>/emu/mcenter/<MAC>/meterreading/<serienummer>/byobis/<OBIS-kode>.

Se på meldingene før konfigurasjonen, f.eks. i MQTT Explorer eller i Home Assistants MQTT-integrasjon under «Lytt til et topic». Opprett deretter én MQTT-sensor per topic og les verdien ut fra meldingens innhold.

Modbus er den enkleste veien hvis bare Home Assistant trenger verdiene. MQTT lønner seg når også andre systemer skal lese.

Vanlige spørsmål


Hvilken lisens trenger jeg for Home Assistant?

For Modbus lisensen Modbus TCP-server 210.300.04, for MQTT MQTT-lisensen 210.300.03. Én av dem holder.

Hvorfor viser Home Assistant feil verdi?

Som oftest er adressen forskjøvet med én, eller det er feil register. Les til sammenligning den samme verdien med modpoll eller et annet Modbus-verktøy og sammenlign med standen i M-Center.

Kan jeg bruke float32 eller uint64?

Begge. float32 er enklere, men runder av svært store målerstander. For uint64 (register 1032 i stedet for 1030) stiller du inn data_type: uint64.

Les mer


SEITEM-Bus til Modbus TCPRegisteroversikt SEITEM-Bus til MQTTTopic-struktur SEITEIdriftsettelse av M-CenterVeiledning SEITEFlere integrasjonerOversikt

Spørsmål om integrasjonen?


Send oss målerlisten og konfigurasjonen din. Vi hjelper deg med adresser og OBIS-koder.

Telefon
+41 (0)41 545 03 00

Teknisk support
helpdesk [at] emuag.ch
Supportskjema →