TapHome

solvimus MBUS-GEM – merač tepla M-Bus

Modbus TCP
Pridal
Posledná aktualizácia: 11. 2026
solvimus MBUS-GEM – merač tepla M-Bus

TapHome nemá vlastné rozhranie M-Bus. Merače tepla s káblovým M-Bus (EN 13757) sa pripájajú cez bránu, ktorá prevádza M-Bus na Modbus, a TapHome ich potom číta ako zariadenia Modbus TCP. Táto komunitná šablóna používa bránu solvimus MBUS-GEM (MBUS-GE20M, MBUS-GE80M, MBUS-GE125M, MBUS-GE250M, MBUS-GE500M): brána číta merače na svojom M-Bus a ich hodnoty poskytuje ako server Modbus TCP na porte 502.

Šablóna číta jeden merač tepla (alebo jeden kombinovaný merač tepla a chladu): tepelnú energiu v kWh, objem vykurovacej vody, tepelný výkon, prietok a teplotu prívodu aj spiatočky. Jeden importovaný modul predstavuje jeden merač; pre každý ďalší merač sa šablóna importuje znova. Tepelná energia je obyčajná premenná, nie elektromer, takže ju TapHome nikdy nezapočíta do spotreby elektriny.

Komunitná šablóna — s TapHome na bráne zatiaľ neodskúšaná. Šablóna vznikla podľa používateľskej príručky MBUS-GEM a nebežala proti bráne, meraču tepla ani simulátoru. Jej čísla registrov sú zástupné a treba ich nahradiť číslami, ktoré brána ukazuje pre váš merač (pozri Konfigurácia). Spätná väzba z praxe je vítaná. Stiahnite XML na tejto stránke alebo ho získajte v portáli TapHome: solvimus MBUS-GEM – M-Bus heat meter — komunitná šablóna, a importujte ho ako nový modul.

Čo potrebujete

  • Bránu solvimus MBUS-GEM — MBUS-GE20M (20 jednotkových záťaží), MBUS-GE80M (80), MBUS-GE125M (125), MBUS-GE250M (250) alebo MBUS-GE500M (500). Jedna jednotková záťaž je väčšinou jeden merač.
  • Merač tepla s káblovým M-Bus (EN 13757) na M-Bus brány, alebo kombinovaný merač tepla a chladu.
  • Bránu a TapHome Core v tej istej lokálnej sieti.

Hardvérové pripojenie

MBUS-GEM sa montuje na 35 mm DIN lištu. Vedenie M-Bus z meračov ide na skrutkové svorky M-Bus brány, sieť do jej ethernetového portu RJ45 (10/100 Mbit/s). Brána potrebuje externé jednosmerné napájanie: 21,6–24,5 V DC pre MBUS-GE20M a MBUS-GE80M, 12–36 V DC pre MBUS-GE125M, MBUS-GE250M a MBUS-GE500M. Po pripojení napájania sa spustí sama.

Konfigurácia

Sieťová adresa brány

MBUS-GEM sa dodáva so statickou IP adresou 192.168.1.101 (maska podsiete 255.255.255.0, predvolená brána 192.168.1.254). Jej konfiguračná webová stránka sa otvorí na http://192.168.1.101/; pri prvom prihlásení musí administrátor zmeniť heslo. Nástroj solvimus Netdiscover nájde bránu v sieti a zmení jej IP adresu, masku podsiete a predvolenú bránu, alebo ju prepne na DHCP. Pri DHCP sa adresa pridelená bráne nájde v DHCP serveri podľa jej MAC adresy, ktorú ukazuje aj Netdiscover. Bez DHCP servera si brána zvolí adresu z rozsahu 169.254.x.x.

Šablóna oslovuje bránu jej IP adresou, preto jej nastavte statickú adresu alebo jej adresu rezervujte v DHCP serveri.

Nastavenia brány

Na konfiguračnej webovej stránke, karta Server:

  1. Nastavte Modbus mode na Modbus TCP a Modbus port nechajte na 502.
  2. Modbus float only nechajte vypnuté. Tento režim odstráni polia typu a jednotky, ktoré šablóna kontroluje.
  3. Modbus swap nechajte vypnuté. Šablóna očakáva predvolené poradie slov (najvýznamnejšie slovo prvé).
  4. Zapnite Modbus multi slave (odporúčané). Každý merač sa potom stane samostatným virtuálnym Modbus slave s vlastnou adresou (1–247) a číslovanie registrov začína pre každý merač odznova, takže merače rovnakého typu dostanú rovnaké čísla registrov.

Po zapnutí alebo vypnutí multi slave treba adresy na karte Meter prideliť znova (kontextové menu Allocate).

Zoznam meračov a cyklus odpočtu

Merač tepla musí byť v zozname meračov brány (karta Meter), vyhľadaný na M-Bus alebo vytvorený ručne. Brána číta merače nezávisle od požiadaviek Modbus, v cykle Readout cycle na karte Configuration alebo v cykle Cycle (v sekundách) pre jednotlivý merač na karte Meter. Tieto nastavenia určujú, aké čerstvé sú hodnoty v TapHome. Niektoré batériové merače M-Bus dovoľujú len obmedzený počet odpočtov za deň — pred voľbou krátkeho cyklu si pozrite katalógový list merača.

Nastavenia šablóny po importe

Brána nemá pevnú tabuľku registrov. Záznamu merača aj každej hodnote merača pridelí vlastný blok 10 holding registrov a začiatok každého bloku ukáže v stĺpci Register na karte Meter. Poradie hodnôt zodpovedá poradiu, v akom merač posiela svoje záznamy M-Bus, takže závisí od modelu merača.

NastavenieČo zadať
IP adresaAdresa brány
SlaveIdS multi slave: číslo zo stĺpca Register v riadku merača. Bez multi slave: 255
RegMeterS multi slave: 10 (záznam merača začína v každom virtuálnom slave na 10). Bez multi slave: číslo zo stĺpca Register v riadku merača
RegEnergy, RegVolume, RegPower, RegFlow, RegFlowTemp, RegReturnTempČíslo zo stĺpca Register v riadku príslušnej hodnoty. Ktorý riadok je ktorý, ukazujú stĺpce Description a Unit na karte Meter

IP adresu a SlaveId sa šablóna pýta pri importe; sedem hodnôt Reg… sú premenné modulu. Ich predvolené hodnoty (10, 20, 30 … 70) sú zástupné: 10 a 20 zodpovedajú testovaciemu režimu brány, ostatné len pokračujú po 10. Vždy ich prepíšte.

Každé zariadenie pred zobrazením hodnoty skontroluje typ záznamu a jednotku svojho bloku. Nesprávne číslo vyvolá na zariadení chybu, ktorá menuje premennú modulu, napríklad RegPower does not point to a power value … – copy the Register number of this value from the gateway Meter tab.

Kontrola spojenia

Keď je na karte Server zapnutý Modbus test, brána poskytuje statické testovacie dáta: záznam merača na registri 10 a hodnotu energie 1234,5678 Wh na registri 20. S predvolenými premennými modulu potom Tepelná energia ukáže 1,2 kWh s varovaním, že médium testovacieho merača nie je teplo (testovací merač je elektromer). To dokazuje, že IP adresa, port, adresa slave, čísla registrov a poradie slov sú správne. Ostatné zariadenia hlásia chyby, pretože testovacie dáta ďalšie hodnoty nemajú. Testovací režim potom vypnite.

Možnosti zariadenia

ZariadenieJednotkaČo ukazuje
Tepelná energiakWhCelková tepelná energia, prepočítaná z Wh alebo J a zaokrúhlená na 0,1 kWh
Objem vykurovacej vodym³Celkový objem vykurovacej vody
Tepelný výkonkWOkamžitý tepelný výkon, prepočítaný z W alebo J/h
Prietokm³/hOkamžitý prietok, prepočítaný z m³/min alebo m³/s, keď merač posiela tieto jednotky
Teplota prívodu°CTeplota prívodu vykurovacieho okruhu
Teplota spiatočky°CTeplota spiatočky vykurovacieho okruhu

Stav merača

Tepelná energia sleduje aj samotný merač. Ukáže chybu, keď RegMeter neukazuje na záznam merača alebo keď brána pri poslednom odpočte merač neprečítala, a varovanie, keď neboli aktualizované všetky hodnoty alebo keď médium merača nie je teplo ani chlad. Má dva servisné atribúty:

Servisný atribútPopis
Výrobné číslo meračaVýrobné číslo merača na overenie, že modul číta správny merač
Posledný odpočet meračaPočet minút od posledného odpočtu merača bránou

Všetky hodnoty sa menia len pri každom odpočte brány; zariadenia sa bránu pýtajú každých 15 s.

Riešenie problémov

Žiadna komunikácia

Skontrolujte, že Modbus je zapnutý na karte Server, že port je na oboch stranách 502 a že ho neblokuje firewall. TapHome a brána musia byť v tej istej podsieti alebo mať funkčnú smerovaciu cestu; pomôže ping na bránu. Potom použite kontrolu spojenia opísanú vyššie.

Chyba, ktorá menuje premennú modulu

Číslo v tejto premennej ukazuje na blok iného typu alebo jednotky. Číslo Register znova skopírujte z karty Meter; pri multi slave skontrolujte aj SlaveId.

Hodnoty sa nemenia

Skontrolujte cyklus odpočtu brány a limit odpočtov merača. Systémový čas brány musí byť správny (nastavený ručne alebo cez SNTP), inak je vek posledného odpočtu nesprávny.

Malá odchýlka od hodnoty na webovej stránke brány

Šablóna číta hodnotu s pohyblivou desatinnou čiarkou, ktorá má približne 7 platných číslic. Pred porovnaním znova načítajte kartu Meter brány.

Ďalší klienti Modbus na tej istej bráne

Brána obsluhuje naraz najviac päť spojení Modbus TCP; pri prekročení limitu zatvorí najstaršie. Myslite na to, keď tú istú bránu číta aj systém riadenia budovy alebo displej.

Dostupné zariadenia

solvimus MBUS-GEM – heat meter Modul
Vlastné premenné
RegMeter (numeric) = 10Začiatok záznamu merača (výrobné číslo, čas odpočtu, stav čítania) — 10 pri Modbus multi slave, inak číslo zo stĺpca Register v riadku merača na karte Meter brány
RegEnergy (numeric) = 20Začiatok hodnoty energie (Wh alebo J) — číslo zo stĺpca Register v jej riadku na karte Meter brány
RegVolume (numeric) = 30Začiatok hodnoty objemu (m³) — číslo zo stĺpca Register v jej riadku na karte Meter brány
RegPower (numeric) = 40Začiatok hodnoty výkonu (W alebo J/h) — číslo zo stĺpca Register v jej riadku na karte Meter brány
RegFlow (numeric) = 50Začiatok hodnoty prietoku (m³/h, m³/min alebo m³/s) — číslo zo stĺpca Register v jej riadku na karte Meter brány
RegFlowTemp (numeric) = 60Začiatok hodnoty teploty prívodu (°C) — číslo zo stĺpca Register v jej riadku na karte Meter brány
RegReturnTemp (numeric) = 70Začiatok hodnoty teploty spiatočky (°C) — číslo zo stĺpca Register v jej riadku na karte Meter brány
Tepelná energia Premenná Len na čítanie

Celková tepelná energia merača v kWh; hlási aj, keď brána merač neprečítala alebo hodnoty nie sú aktuálne

Register: H:RegEnergy+4 Float Jednotka: kWh
Servisné atribúty
Výrobné číslo meračaVýrobné číslo merača na overenie, že modul číta správny merač
Posledný odpočet meračaPočet minút od posledného odpočtu merača bránou

Tepelná energia

Čítanie
VAR info := MODBUSR(H, RegEnergy+7, UInt16);
VAR unit := GETBITS(info, 0, 8);
VAR factor := SWITCH(unit, 5, 1000, 6, 3600000, 0);
IF GETBITS(info, 8, 8) != 0 OR factor = 0
    ADDERROR(1, "RegEnergy does not point to an energy 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(ROUND(MODBUSR(H, RegEnergy+4, Float) / factor * 10) / 10);
Čítanie (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 != 4 AND medium != 10 AND medium != 11 AND medium != 12 AND medium != 13
        ADDWARNING(2, "RegMeter points to a meter with medium code " + TOSTRING(medium) + ", which is not a heat meter – check that RegMeter and SlaveId belong to the heat 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é atribúty
Meter serial number
TOSTRING(MODBUSR(H, RegMeter+0, UInt32))
Last meter readout
DATETIME t := NOW();
VAR ts := MODBUSR(H, RegMeter+4, UInt32);
IF(ts = 0, "No readout yet", TOSTRING(ROUND((t.UNIXTIME - ts) / 60)) + " min ago")
Objem vykurovacej vody Premenná Len na čítanie

Celkový objem vykurovacej vody, ktorá pretiekla meračom, v m³

Register: H:RegVolume+4 Float Jednotka: m³

Objem vykurovacej vody

Čítanie
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);
Tepelný výkon Premenná Len na čítanie
Register: H:RegPower+4 Float Jednotka: kW

Tepelný výkon

Čítanie
VAR info := MODBUSR(H, RegPower+7, UInt16);
VAR unit := GETBITS(info, 0, 8);
VAR factor := SWITCH(unit, 13, 1000, 14, 3600000, 0);
IF GETBITS(info, 8, 8) != 0 OR factor = 0
    ADDERROR(1, "RegPower does not point to a power 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, RegPower+4, Float) / factor);
Prietok Premenná Len na čítanie
Register: H:RegFlow+4 Float Jednotka: m³/h

Prietok

Čítanie
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);
Teplota prívodu Teplotný senzor Len na čítanie

Teplota prívodu vykurovacieho okruhu meraná meračom

Register: H:RegFlowTemp+4 Float Jednotka: °C

Teplota prívodu

Čítanie teploty
VAR info := MODBUSR(H, RegFlowTemp+7, UInt16);
VAR unit := GETBITS(info, 0, 8);
VAR factor := SWITCH(unit, 19, 1, 0);
IF GETBITS(info, 8, 8) != 0 OR factor = 0
    ADDERROR(1, "RegFlowTemp does not point to a temperature value in °C (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, RegFlowTemp+4, Float) * factor);
Teplota spiatočky Teplotný senzor Len na čítanie

Teplota spiatočky vykurovacieho okruhu meraná meračom

Register: H:RegReturnTemp+4 Float Jednotka: °C

Teplota spiatočky

Čítanie teploty
VAR info := MODBUSR(H, RegReturnTemp+7, UInt16);
VAR unit := GETBITS(info, 0, 8);
VAR factor := SWITCH(unit, 19, 1, 0);
IF GETBITS(info, 8, 8) != 0 OR factor = 0
    ADDERROR(1, "RegReturnTemp does not point to a temperature value in °C (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, RegReturnTemp+4, Float) * factor);
Pripojenie: Modbus TCP • Slave ID: $[SlaveId]
Možné vylepšenia (6)
  • H:RegX+0 … H:RegX+3, H:RegX+6 Unscaled 64-bit meter value with scaling factor — The manual prefers the INT64 value with its power-of-ten scaling factor for exact billing; the template reads the FLOAT32 value (about 7 significant digits).
  • value block with unit K (code 20) Temperature difference — Many heat meters also send the temperature difference between flow and return; it would be one more value block.
  • second energy value block (combined heat/cooling meter, medium 13) Cooling energy — A combined heat/cooling meter sends a separate cooling energy value; the template reads one energy value.
  • value blocks with a storage number Historic meter values — Stored values such as the reading on the billing date appear as further value rows in the Meter tab.
  • H:RegX+8 Meter value timestamp — UNIX time the meter provides for each value (0 if none); the template uses the readout time of the meter entry instead.
  • H:0 … H:9 (slave 255) Gateway device entry — Serial number, software version and system time of the gateway itself.

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 ste problém s touto šablónou zariadenia?

Napíšte nám, čo nefunguje, čo chýba, alebo ako by sa mala šablóna správať. Vaša spätná väzba nám pomáha udržiavať katalóg presný.

Komunita — nepreverené

Chcete to použiť vo svojom TapHome jadre?

Otvorte túto šablónu v Customer Portali a aplikujte ju na svoj domov, alebo navrhnite zmenu a odošlite ju späť do katalógu.

Otvoriť v portáli