Krok 1: wpisać kody OBIS w M-Center
W M-Center proszę wpisać kod OBIS przy każdym rejestrze, który ma trafić do Home Assistant. Wtedy wartość ma stały adres, np. stan poboru w taryfie 1 (1-0:1.8.1) w rejestrze 1030. Dla każdego licznika proszę zanotować «numer urządzenia serwera Modbus TCP». W Home Assistant jest to adres urządzenia.
Proszę sprawdzić także jednostkę rejestru w M-Center. Home Assistant przejmuje wartość liczbową, jednostkę ustala się samodzielnie. Jeśli w M-Center jest Wh, w Home Assistant należy wpisać Wh.
Krok 2: skonfigurować Modbus w Home Assistant
Proszę uzupełnić configuration.yaml. Przykład odczytuje pobór w taryfie 1 i 2 licznika o adresie urządzenia 9 oraz wodomierz o adresie 12:
modbus:
- name: m_center
type: tcp
host: 192.168.1.50 # IP M-Center
port: 502
sensors:
- name: "Mieszkanie 1 pobor taryfa 1"
slave: 9 # adres urządzenia w M-Center
address: 1029 # rejestr 1030, liczony od 0
input_type: holding
data_type: float32
unit_of_measurement: Wh
device_class: energy
state_class: total_increasing
scan_interval: 900
- name: "Mieszkanie 1 pobor taryfa 2"
slave: 9
address: 1059 # rejestr 1060
input_type: holding
data_type: float32
unit_of_measurement: Wh
device_class: energy
state_class: total_increasing
scan_interval: 900
- name: "Mieszkanie 1 woda zimna"
slave: 12
address: 2999 # rejestr 3000
input_type: holding
data_type: float32
unit_of_measurement: m³ # jednostka jak w M-Center
device_class: water
state_class: total_increasing
scan_interval: 900
Trzy miejsca, w których często coś nie działa:
- Adres: instrukcja liczy rejestry od 1, Home Assistant od 0. Dlatego w przykładzie jest 1029 dla rejestru 1030. Proszę raz sprawdzić na znanym stanie licznika.
- Kolejność bajtów: M-Center dostarcza big endian ze starszym słowem na początku. Odpowiada to ustawieniu domyślnemu Home Assistant,
swapnie jest potrzebny. - Nazwa klucza: zależnie od wersji Home Assistant adres urządzenia nazywa się
slavelubdevice_address. Decyduje dokumentacja posiadanej wersji.
scan_interval 900 sekund odpowiada interwałowi odczytu M-Center wynoszącemu 15 minut. Częstsze odpytywanie nie daje nowszych wartości.
Krok 3: panel energii
Po ponownym uruchomieniu czujniki pojawiają się w Home Assistant. Ponieważ mają device_class: energy lub water i state_class: total_increasing, można je wybrać w Ustawienia → Pulpity → Energia jako pobór z sieci, urządzenie lub zużycie wody.
Alternatywa: MQTT
Jeśli M-Center ma licencję MQTT, może publikować wartości w brokerze Home Assistant, np. w dodatku Mosquitto. Tematy mają schemat <prefiks>/emu/mcenter/<MAC>/meterreading/<numer seryjny>/byobis/<kod OBIS>.
Przed konfiguracją proszę obejrzeć wiadomości, np. w MQTT Explorer lub w integracji MQTT Home Assistant pod «Nasłuchuj tematu». Następnie dla każdego tematu tworzy się czujnik MQTT i odczytuje wartość zgodnie z treścią wiadomości.
Modbus jest prostszą drogą, jeśli wartości potrzebuje tylko Home Assistant. MQTT opłaca się, gdy mają je odczytywać także inne systemy.