TapHome

solvimus MBUS-GEM – vodoměr M-Bus

Modbus TCP
Přidal
Poslední aktualizace: 11. 2026
solvimus MBUS-GEM – vodoměr M-Bus

TapHome nemá vlastní rozhraní M-Bus. Drátový vodoměr M-Bus se připojuje přes bránu M-Bus na Modbus a TapHome ho čte jako zařízení Modbus TCP. Tato šablona používá bránu solvimus MBUS-GEM (MBUS-GE20M, MBUS-GE80M, MBUS-GE125M, MBUS-GE250M, MBUS-GE500M): brána čte měřiče na své sběrnici M-Bus a jejich data nabízí jako server Modbus TCP na portu 502. Jeden importovaný modul představuje jeden vodoměr; pro další měřiče se šablona importuje znovu.

Šablona čte objem vody v m³, průtok, který hlásí samotný měřič, a průměrný průtok mezi dvěma odečty brány v l/h. Průměrný průtok slouží k detekci úniků: smart rules v TapHome ho mohou porovnávat s limity, například aby spustily alarm, když voda teče i v noci.

Komunitní šablona — zatím neotestovaná na hardwaru. Šablona vznikla v portálu TapHome z uživatelské příručky solvimus MBUS-GEM (verze 1.31). Neběžela na skutečné bráně a měřiči ani na simulátoru. Její čísla registrů (RegMeter, RegVolume, RegFlow) jsou zástupné hodnoty: po importu je instalátor nastaví podle sloupce Register na kartě Meter brány. Než se budete na hodnoty spoléhat, ověřte spojení testovacím režimem brány (viz Konfigurace); zkušenosti z praxe jsou vítány. XML si stáhněte na této stránce nebo z portálu TapHome: solvimus MBUS-GEM – vodoměr M-Bus — komunitní šablona, a importujte ho jako nový modul.

Co potřebujete

  • Bránu solvimus MBUS-GEM pro drátový M-Bus s Modbus TCP: MBUS-GE20M, MBUS-GE80M, MBUS-GE125M, MBUS-GE250M nebo MBUS-GE500M. MBUS-GEWM je varianta pro bezdrátový M-Bus a tato šablona ji nepokrývá.
  • Drátový vodoměr M-Bus (EN 13757), který brána dokáže odečíst. Ultrazvukové vodoměry obvykle hlásí i průtok.
  • Bránu a řídicí jednotku Core ve stejné lokální síti.

Hardwarové připojení

MBUS-GEM se montuje na 35mm lištu DIN a má šroubové svorky pro M-Bus a napájení a ethernetový port RJ45 (10/100 Mbit/s).

ModelJednotková zatížení M-BusŠířkaNapájeníRychlost M-Bus
MBUS-GE20M202 moduly21,6–24,5 VDCmax. 19200 bps
MBUS-GE80M802 moduly21,6–24,5 VDCmax. 19200 bps
MBUS-GE125M1253 moduly12–36 VDCmax. 9600 bps
MBUS-GE250M2503 moduly12–36 VDCmax. 9600 bps
MBUS-GE500M5003 moduly12–36 VDCmax. 9600 bps

Jedno jednotkové zatížení (UL) většinou odpovídá jednomu měřiči.

  1. Připojte linku M-Bus vodoměru na svorky M-Bus brány.
  2. Připojte bránu ethernetovým kabelem do lokální sítě.
  3. Připojte externí zdroj 24 VDC. Brána se spustí sama.

Konfigurace

Síť a seznam měřičů

Brána se dodává se statickou IP adresou 192.168.1.101 (maska podsítě 255.255.255.0, brána sítě 192.168.1.254); její webové rozhraní se otevře na http://192.168.1.101/. Při prvním přihlášení musí administrátor změnit heslo. Nástroj Netdiscover od solvimus najde bránu v síti a umí ji přepnout na jinou statickou adresu nebo na DHCP; při DHCP najdete přidělenou adresu v DHCP serveru podle MAC adresy brány. Bez DHCP serveru si brána vybere adresu z rozsahu 169.254.x.x. Šablona oslovuje bránu IP adresou, proto jí dejte pevnou adresu nebo rezervaci v DHCP.

Ve webovém rozhraní vyhledejte měřiče na sběrnici M-Bus, aby se vodoměr objevil v seznamu měřičů na kartě Meter i se svými hodnotami (objem a průtok, pokud ho měřič hlásí).

Nastavení Modbus na kartě Server

  1. Modbus mode nastavte na Modbus TCP a Modbus port nechte na 502.
  2. Modbus float only nechte vypnuté. Tento režim odstraní pole typu a jednotky, která šablona kontroluje.
  3. Modbus swap nechte vypnuté. Šablona očekává výchozí pořadí slov (nejvýznamnější slovo první).
  4. Doporučuje se zapnout Modbus multi slave. Každý měřič se pak stane samostatným virtuálním Modbus slave s vlastní adresou (1–247) a číslování registrů začíná u každého měřiče znovu, takže měřiče stejného typu mají stejná čísla registrů.

Po zapnutí nebo vypnutí multi slave je třeba adresy na kartě Meter přidělit znovu (kontextová nabídka Allocate).

Cyklus odečtu

Brána čte měřiče nezávisle na požadavcích Modbus: v Readout cycle na kartě Configuration nebo v Cycle (v sekundách) pro jednotlivý měřič na kartě Meter. Tato nastavení určují, jak čerstvé jsou hodnoty v TapHome. Některé bateriové měřiče M-Bus dovolí jen omezený počet odečtů za den; před nastavením krátkého cyklu si prohlédněte technický list měřiče.

Nastavení šablony po importu

Brána nemá pevnou tabulku registrů. Každý záznam měřiče a každá hodnota měřiče dostane vlastní blok 10 holding registrů a začátek každého bloku ukazuje sloupec Register na kartě Meter. Pořadí hodnot odpovídá pořadí, v jakém měřič posílá své záznamy M-Bus, takže se mezi modely měřičů liší. Šablona proto drží začátek každého bloku v proměnné modulu a každou adresu registru počítá z ní.

NastaveníKdeHodnota
IP adresaParametr importuAdresa brány (dialog importu navrhne 192.168.1.100; brána se dodává s 192.168.1.101)
SlaveIdParametr importu (výchozí 1)S multi slave: číslo ve sloupci Register v řádku měřiče. Bez multi slave: 255
RegMeterProměnná modulu (výchozí 10)S multi slave: 10 (záznam měřiče začíná v každém virtuálním slave na 10). Bez multi slave: číslo ve sloupci Register v řádku měřiče
RegVolumeProměnná modulu (výchozí 20)Číslo ve sloupci Register v řádku objemu měřiče (jednotka m³)
RegFlowProměnná modulu (výchozí 30)Číslo ve sloupci Register v řádku průtoku měřiče (jednotka m³/h, m³/min nebo m³/s)

Výchozí hodnoty 10, 20 a 30 odpovídají jen rozložení testovacího režimu brány; přepište je čísly skutečného měřiče.

Každé zařízení kontroluje typ záznamu a jednotku svého bloku. Nesprávné číslo zobrazí na zařízení chybu, která jmenuje proměnnou modulu, například RegVolume does not point to a volume value in m³ … copy the Register number of this value from the gateway Meter tab.

Kontrola spojení přes Modbus test

Když je na kartě Server zapnutý Modbus test, brána poskytuje statická testovací data: záznam měřiče na registru 10 a hodnotu energie (jednotka Wh, 1234,5678 Wh) na registru 20. S výchozími proměnnými modulu pak Objem vody přijme registr 10 jako záznam měřiče (s varováním, že médium testovacího měřiče, kód 2, není voda) a ohlásí, že registr 20 není hodnota objemu (kód jednotky 5). Když uvidíte přesně tato hlášení, IP adresa, port, adresa slave a čísla registrů se k bráně dostávají tak, jak mají. Potom testovací režim vypněte a nastavte proměnné modulu pro skutečný měřič.

Možnosti zařízení

Všechna tři zařízení jsou jen pro čtení a čtou se každých 15 s. Jejich hodnoty se mění, jen když brána odečte měřič, v jejím cyklu odečtu.

Objem vody

Objem vody je stav vodoměru v m³ na tři desetinná místa, čtený jako škálovaná hodnota s plovoucí desetinnou čárkou z bloku objemu. Zařízení kontroluje i záznam měřiče:

HlášeníTypVýznam
RegMeter does not point to a meter entry …ChybaRegMeter ukazuje na blok, který není záznamem měřiče
RegMeter points to a meter with medium code …, which is not a water meter …VarováníMěřič není vodoměr (přijaté kódy média: voda, studená voda, teplá voda, horká voda a dvojitý registr vody) — zkontrolujte RegMeter a SlaveId
The gateway could not read the meter in its last readout …ChybaZkontrolujte zapojení M-Bus, adresu měřiče a seznam měřičů v bráně
Not all meter values were updated in the last gateway readoutVarováníPoslední odečet nebyl úplný

Servisní atribut Výrobní číslo měřiče ukazuje výrobní číslo měřiče M-Bus a pomáhá ověřit, že šablona čte správný měřič. Výrobní číslo, které obsahuje písmena, se zobrazí jako 0.

Průměrný průtok vody

Průměrný průtok vody je nárůst objemu mezi dvěma posledními odečty brány vydělený časem mezi jejich časovými značkami, v l/h. Přepočítá se, jen když se změní časová značka odečtu měřiče, takže jde o průměr za jeden cyklus odečtu.

  • Po prvním odečtu, po restartu řídicí jednotky Core a po vynulování měřiče (objem nižší než předtím) je hodnota 0 až do dalšího odečtu.
  • Pokud brána přestane měřič odečítat, zůstane poslední průměr; Objem vody pak ukazuje chybu odečtu.

Zařízení čte stejný blok objemu jako Objem vody. Samotnou detekci úniků — limity, otevírací dobu, alarmy — nastavíte přes smart rules v TapHome; šablona dodá hodnotu.

Průtok vody

Průtok vody je průtok, který hlásí samotný měřič, přepočítaný na m³/h (z m³/h, m³/min nebo m³/s). Ne každý vodoměr M-Bus hlásí průtok; ultrazvukové měřiče obvykle ano.

Řešení problémů

Žádná komunikace

  • Zkontrolujte, že brána a řídicí jednotka Core jsou ve stejné síti a brána odpovídá na ping.
  • Zkontrolujte, že Modbus je na kartě Server zapnutý, port je 502 a neblokuje ho firewall.
  • Použijte testovací režim popsaný výše.
  • Brána ve standardní konfiguraci přijme najednou nejvýše pět spojení Modbus TCP; nad tento limit nové spojení zavře nejstarší.

Chyba jmenuje proměnnou modulu

Číslo v této proměnné ukazuje na blok jiného typu nebo jednotky. Číslo znovu přepište ze sloupce Register na kartě Meter; při multi slave zkontrolujte i SlaveId. Po zapnutí nebo vypnutí multi slave přidělte adresy znovu (Allocate) a přepište nová čísla.

Hodnoty se nemění

Zkontrolujte cyklus odečtu brány a limit odečtů měřiče. Systémový čas brány musí být správný (nastavený ručně nebo přes SNTP), jinak jsou časové značky odečtu i průměrný průtok nesprávné.

Malá odchylka od webu brány

Hodnota s plovoucí desetinnou čárkou má asi 7 platných číslic, takže poslední číslice se mohou mírně lišit od hodnoty ve webovém rozhraní brány.

Dostupná zařízení

solvimus MBUS-GEM – vodoměr Modul
Vlastní proměnné
RegMeter (numeric) = 10Začátek záznamu měřiče (výrobní číslo, čas odečtu, stav odečtu) — při Modbus multi slave 10, jinak číslo ze sloupce Register v řádku měřiče na kartě Meter
RegVolume (numeric) = 20Začátek hodnoty objemu (jednotka m³) — číslo ze sloupce Register v řádku objemu na kartě Meter
RegFlow (numeric) = 30Začátek hodnoty průtoku (jednotka m³/h, m³/min nebo m³/s) — číslo ze sloupce Register v řádku průtoku na kartě Meter
Objem vody Proměnná Pouze ke čtení

Stav vodoměru v m³ na tři desetinná místa; zobrazí chybu, když brána měřič nedokázala odečíst

Registr: H:RegVolume+4 Float Jednotka: m³ numeric
Servisní atributy
Výrobní číslo měřičeVýrobní číslo měřiče M-Bus — potvrdí, že šablona čte správný měřič

Objem vody

Čtení
VAR info := MODBUSR(H, RegVolume+7, UInt16);
VAR unit := GETBITS(info, 0, 8);
VAR factor := SWITCH(unit, 7, 1, 0);
IF GETBITS(info, 8, 8) != 0 OR factor = 0
    ADDERROR(1, "RegVolume does not point to a volume value in m³ (entry type " + TOSTRING(GETBITS(info, 8, 8)) + ", unit code " + TOSTRING(unit) + ") – copy the Register number of this value from the gateway Meter tab");
    RETURN(NaN);
END
RETURN(ROUND(MODBUSR(H, RegVolume+4, Float) * factor * 1000) / 1000);
Čtení (modul)
VAR meterInfo := MODBUSR(H, RegMeter+7, UInt16);
VAR medium := 0;
VAR flags := 0;
IF GETBITS(meterInfo, 8, 8) != 2
    ADDERROR(1, "RegMeter does not point to a meter entry (entry type " + TOSTRING(GETBITS(meterInfo, 8, 8)) + ") – set RegMeter to the start of the meter entry (10 with Modbus multi slave, otherwise the Register number of the meter row in the gateway Meter tab)");
ELSE
    medium := GETBITS(MODBUSR(H, RegMeter+3, UInt16), 0, 8);
    IF medium != 6 AND medium != 7 AND medium != 21 AND medium != 22 AND medium != 23
        ADDWARNING(2, "RegMeter points to a meter with medium code " + TOSTRING(medium) + ", which is not a water meter – check that RegMeter and SlaveId belong to the water meter");
    END
    flags := MODBUSR(H, RegMeter+8, UInt16);
    IF GETBIT(flags, 0)
        ADDERROR(3, "The gateway could not read the meter in its last readout – check the M-Bus wiring, the meter address and the meter list of the gateway");
    ELSEIF GETBIT(flags, 1)
        ADDWARNING(4, "Not all meter values were updated in the last gateway readout");
    END
END
Servisní atributy
Meter serial number
TOSTRING(MODBUSR(H, RegMeter+0, UInt32))
Průměrný průtok vody Proměnná Pouze ke čtení

Průměrný průtok mezi dvěma posledními odečty brány v l/h — pro detekci úniků, například když voda teče v noci

Registr: H:RegVolume+4, H:RegMeter+4 Float, UInt32 Jednotka: l/h numeric

Průměrný průtok vody

Čtení
VAR info := MODBUSR(H, RegVolume+7, UInt16);
VAR ts := 0;
VAR vol := 0;
IF GETBITS(info, 8, 8) != 0 OR GETBITS(info, 0, 8) != 7
    ADDERROR(1, "RegVolume does not point to a volume value in m³ (entry type " + TOSTRING(GETBITS(info, 8, 8)) + ", unit code " + TOSTRING(GETBITS(info, 0, 8)) + ") – copy the Register number of the volume value from the gateway Meter tab");
    RETURN(NaN);
END
ts := MODBUSR(H, RegMeter+4, UInt32);
IF ts = 0
    RETURN(NaN);
END
IF ts != PrevTime
    vol := MODBUSR(H, RegVolume+4, Float);
    IF PrevTime > 0 AND ts > PrevTime AND vol >= PrevVolume
        AvgFlow := (vol - PrevVolume) * 1000 * 3600 / (ts - PrevTime);
    ELSE
        AvgFlow := 0;
    END
    PrevVolume := vol;
    PrevTime := ts;
END
RETURN(AvgFlow);
Průtok vody Proměnná Pouze ke čtení

Průtok, který hlásí samotný měřič, v m³/h; mění se jen při každém odečtu bránou

Registr: H:RegFlow+4 Float Jednotka: m³/h numeric

Průtok vody

Čtení
VAR info := MODBUSR(H, RegFlow+7, UInt16);
VAR unit := GETBITS(info, 0, 8);
VAR factor := SWITCH(unit, 15, 1, 16, 60, 17, 3600, 0);
IF GETBITS(info, 8, 8) != 0 OR factor = 0
    ADDERROR(1, "RegFlow does not point to a volume flow value (entry type " + TOSTRING(GETBITS(info, 8, 8)) + ", unit code " + TOSTRING(unit) + ") – copy the Register number of this value from the gateway Meter tab");
    RETURN(NaN);
END
RETURN(MODBUSR(H, RegFlow+4, Float) * factor);
Připojení: Modbus TCP • Slave ID: $[SlaveId]
Možná vylepšení (3)
  • H:RegVolume+0 Unscaled meter value (64-bit integer) with scaling factor — Int64 at offset 0–3 with the power-of-ten scaling factor at offset 6; preferred by the manual for exact billing, 0 when the meter sends a floating-point value. The template reads the scaled Float at offset 4.
  • H:RegVolume+8 Timestamp of the value from the meter — UNIX time provided by the meter for the value, 0 if the meter provides none. The template uses the readout time of the meter entry (H:RegMeter+4) instead.
  • H:RegMeter+2 Manufacturer code of the meter — Three letters encoded in 5-bit groups.

Zdroje

  • solvimus MBUS-GEM User manual v1.31 (Modbus TCP server, network configuration)
  • solvimus MBUS-GEM datasheets (MBUS-GE20M/80M and MBUS-GE125M/250M/500M)

Našli jste problém s touto šablonou zařízení?

Napište nám, co nefunguje, co chybí, nebo jak by se měla šablona chovat. Vaše zpětná vazba nám pomáhá udržet katalog přesný.

Komunita — neověřeno

Chcete to použít ve svém TapHome jádře?

Otevřete tuto šablonu v zákaznickém portálu a použijte ji ve svém domově, nebo navrhněte úpravu a odešlete ji zpět do katalogu.

Otevřít v portálu