Tietoa/Integraatio/Home Assistant

OhjeM-Center

M-Bus-mittarit M-Centerin kautta Home Assistantiin

Home Assistantissa on sisäänrakennettu Modbus-integraatio. Sen avulla luet suoraan kaikkien EMU M-Centeriin liitettyjen mittarien arvot ja kokoat sähkön, lämmön ja veden energiapaneeliin.

Mitä tarvitaan

  • Konfiguroitu M-Center ja Modbus TCP -palvelinlisenssi (210.300.04) tai MQTT-lisenssi (210.300.03).
  • M-Centerin IP-osoite ja jokaisen mittarin Modbus-laiteosoite.
  • OBIS-koodit syötettynä luettaville rekistereille.
  • Pääsy Home Assistantin configuration.yaml-tiedostoon.

Vaihe 1: OBIS-koodit M-Centeriin

Syötä M-Centerissä OBIS-koodi jokaiselle rekisterille, joka viedään Home Assistantiin. Silloin arvolla on kiinteä osoite, esim. tariffin 1 kulutus (1-0:1.8.1) rekisterissä 1030. Merkitse jokaisesta mittarista muistiin «Modbus TCP -palvelimen laitenumero». Home Assistantissa se on laiteosoite.

Tarkista myös rekisterin yksikkö M-Centerissä. Home Assistant ottaa lukuarvon, yksikön määrität itse. Jos M-Centerissä on Wh, syötä Home Assistantiin Wh.

Vaihe 2: Modbus Home Assistantissa

Täydennä configuration.yaml. Esimerkki lukee laiteosoitteen 9 mittarin tariffien 1 ja 2 kulutuksen sekä osoitteen 12 vesimittarin:

modbus:
  - name: m_center
    type: tcp
    host: 192.168.1.50      # M-Centerin IP
    port: 502
    sensors:
      - name: "Asunto 1 kulutus T1"
        slave: 9              # laiteosoite M-Centerissä
        address: 1029         # rekisteri 1030, nollasta laskettuna
        input_type: holding
        data_type: float32
        unit_of_measurement: Wh
        device_class: energy
        state_class: total_increasing
        scan_interval: 900
      - name: "Asunto 1 kulutus T2"
        slave: 9
        address: 1059         # rekisteri 1060
        input_type: holding
        data_type: float32
        unit_of_measurement: Wh
        device_class: energy
        state_class: total_increasing
        scan_interval: 900
      - name: "Asunto 1 kylma vesi"
        slave: 12
        address: 2999         # rekisteri 3000
        input_type: holding
        data_type: float32
        unit_of_measurement: m³    # yksikkö kuten M-Centerissä
        device_class: water
        state_class: total_increasing
        scan_interval: 900

Kolme kohtaa, joissa usein menee pieleen:

  • Osoite: käyttöohje laskee rekisterit yhdestä, Home Assistant nollasta. Siksi esimerkissä on 1029 rekisterille 1030. Tarkista kerran tunnetulla mittarilukemalla.
  • Tavujärjestys: M-Center toimittaa big endian, ylempi sana ensin. Tämä vastaa Home Assistantin oletusta, swap ei ole tarpeen.
  • Avaimen nimi: Home Assistantin versiosta riippuen laiteosoitteen avain on slave tai device_address. Oman versiosi dokumentaatio ratkaisee.

scan_interval 900 sekuntia vastaa M-Centerin 15 minuutin lukuväliä. Tiheämpi kysely ei tuo uudempia arvoja.

Vaihe 3: energiapaneeli

Uudelleenkäynnistyksen jälkeen anturit näkyvät Home Assistantissa. Koska niillä on device_class: energy tai water ja state_class: total_increasing, voit valita ne kohdassa Asetukset → Kojelaudat → Energia verkkokulutukseksi, laitteeksi tai vedenkulutukseksi.

Vaihtoehto: MQTT

Jos M-Centerissä on MQTT-lisenssi, se voi julkaista arvot Home Assistantin välittäjään, esim. Mosquitto-lisäosaan. Topicit noudattavat mallia <etuliite>/emu/mcenter/<MAC>/meterreading/<sarjanumero>/byobis/<OBIS-koodi>.

Tarkastele viestejä ennen konfigurointia, esim. MQTT Explorerilla tai Home Assistantin MQTT-integraatiossa kohdassa «Kuuntele topicia». Luo sitten yksi MQTT-anturi topicia kohden ja lue arvo viestin sisällön mukaan.

Modbus on yksinkertaisempi tapa, jos arvoja tarvitsee vain Home Assistant. MQTT kannattaa, kun myös muut järjestelmät lukevat samoja arvoja.

Usein kysyttyä


Minkä lisenssin tarvitsen Home Assistantia varten?

Modbusille Modbus TCP -palvelinlisenssin 210.300.04, MQTT:lle MQTT-lisenssin 210.300.03. Toinen riittää.

Miksi Home Assistant näyttää väärän arvon?

Yleensä osoite on yhden verran sivussa tai rekisteri on väärä. Lue vertailun vuoksi sama arvo modpollilla tai muulla Modbus-työkalulla ja vertaa M-Centerin lukemaan.

Voinko käyttää float32:ta tai uint64:ää?

Molempia. float32 on yksinkertaisempi, mutta pyöristää hyvin suuria mittarilukemia. uint64:lle (rekisteri 1032 eikä 1030) aseta data_type: uint64.

Lue lisää


SEITEM-Bus Modbus TCP:ksiRekisterikartta SEITEM-Bus MQTT:ksiTopic-rakenne SEITEM-Centerin käyttöönottoOhje SEITELisää integraatioitaYleiskatsaus

Kysyttävää integraatiosta?


Lähetä meille mittariluettelo ja konfiguraatiosi. Autamme osoitteissa ja OBIS-koodeissa.

Puhelin
+41 (0)41 545 03 00

Tekninen tuki
helpdesk [at] emuag.ch
Tukilomake →