Znalosti/Integrace/Home Assistant

NávodM-Center

Měřiče M-Bus s M-Center v Home Assistant

Home Assistant má vestavěnou integraci Modbus. S ní přímo čtete hodnoty všech měřičů připojených k EMU M-Center a spojíte elektřinu, teplo a vodu v panelu energie.

Co potřebujete

  • Nakonfigurované M-Center s licencí server Modbus TCP (210.300.04) nebo s licencí MQTT (210.300.03).
  • IP adresu M-Center a adresu zařízení Modbus každého měřiče.
  • Kódy OBIS zadané u registrů, které se mají číst.
  • Přístup ke configuration.yaml v Home Assistant.

Krok 1: zadat kódy OBIS v M-Center

V M-Center zadejte kód OBIS u každého registru, který má jít do Home Assistant. Hodnota pak má pevnou adresu, např. odběr v tarifu 1 (1-0:1.8.1) v registru 1030. U každého měřiče si poznamenejte «číslo zařízení serveru Modbus TCP». V Home Assistant je to adresa zařízení.

Zkontrolujte také jednotku registru v M-Center. Home Assistant převezme číselnou hodnotu, jednotku zadáváte sami. Je-li v M-Center Wh, zadejte v Home Assistant Wh.

Krok 2: nakonfigurovat Modbus v Home Assistant

Doplňte configuration.yaml. Příklad čte odběr v tarifu 1 a 2 elektroměru s adresou zařízení 9 a vodoměr s adresou 12:

modbus:
  - name: m_center
    type: tcp
    host: 192.168.1.50      # IP M-Center
    port: 502
    sensors:
      - name: "Byt 1 odber T1"
        slave: 9              # adresa zařízení v M-Center
        address: 1029         # registr 1030, počítáno od 0
        input_type: holding
        data_type: float32
        unit_of_measurement: Wh
        device_class: energy
        state_class: total_increasing
        scan_interval: 900
      - name: "Byt 1 odber T2"
        slave: 9
        address: 1059         # registr 1060
        input_type: holding
        data_type: float32
        unit_of_measurement: Wh
        device_class: energy
        state_class: total_increasing
        scan_interval: 900
      - name: "Byt 1 studena voda"
        slave: 12
        address: 2999         # registr 3000
        input_type: holding
        data_type: float32
        unit_of_measurement: m³    # jednotka jako v M-Center
        device_class: water
        state_class: total_increasing
        scan_interval: 900

Tři místa, kde to často nefunguje:

  • Adresa: příručka počítá registry od 1, Home Assistant od 0. Proto je v příkladu 1029 pro registr 1030. Jednou ověřte na známém stavu měřiče.
  • Pořadí bajtů: M-Center dodává big endian s vyšším slovem napřed. To odpovídá výchozímu nastavení Home Assistant, swap není potřeba.
  • Název klíče: podle verze Home Assistant se adresa zařízení jmenuje slave nebo device_address. Platí dokumentace vaší verze.

scan_interval 900 sekund odpovídá 15minutovému intervalu odečtu M-Center. Častější dotazování nepřinese novější hodnoty.

Krok 3: panel energie

Po restartu se senzory objeví v Home Assistant. Protože mají device_class: energy nebo water a state_class: total_increasing, můžete je vybrat v Nastavení → Dashboardy → Energie jako odběr ze sítě, zařízení nebo spotřebu vody.

Alternativa: MQTT

Má-li M-Center licenci MQTT, může publikovat hodnoty do brokeru Home Assistant, např. do doplňku Mosquitto. Témata mají tvar <prefix>/emu/mcenter/<MAC>/meterreading/<výrobní číslo>/byobis/<kód OBIS>.

Před konfigurací si prohlédněte zprávy, např. v MQTT Explorer nebo v integraci MQTT Home Assistant pod «Poslouchat téma». Pak vytvořte pro každé téma senzor MQTT a čtěte hodnotu podle obsahu zprávy.

Modbus je jednodušší cesta, pokud hodnoty potřebuje jen Home Assistant. MQTT se vyplatí, když mají číst i další systémy.

Časté dotazy


Jakou licenci potřebuji pro Home Assistant?

Pro Modbus licenci server Modbus TCP 210.300.04, pro MQTT licenci MQTT 210.300.03. Stačí jedna z nich.

Proč Home Assistant ukazuje jinou hodnotu?

Nejčastěji je adresa posunutá o jedna nebo jde o jiný registr. Pro srovnání přečtěte stejnou hodnotu nástrojem modpoll nebo jiným nástrojem Modbus a porovnejte se stavem v M-Center.

Mohu použít float32 nebo uint64?

Obojí. float32 je jednodušší, ale velmi velké stavy měřičů zaokrouhluje. Pro uint64 (registr 1032 místo 1030) nastavte data_type: uint64.

Další informace


SEITEM-Bus do Modbus TCPMapa registrů SEITEM-Bus do MQTTStruktura témat SEITEUvedení M-Center do provozuNávod SEITEDalší integracePřehled

Dotazy k integraci?


Pošlete nám seznam měřičů a vaši konfiguraci. Pomůžeme s adresami a kódy OBIS.

Telefon
+41 (0)41 545 03 00

Technická podpora
helpdesk [at] emuag.ch
Formulář podpory →