TapHome

Geminox THRi

Modbus RTU
Submitted by
Last updated: 03. 2026

Vyžaduje externí bránu

Amit DM-OT2

Geminox THRi je plynový kondenzační kotel připojený k TapHome přes bránu Amit DM-OT2 (OpenTherm na Modbus RTU). DM-OT2 překládá protokol OpenTherm kotle do holding registrů Modbus RTU, čímž TapHome získá přístup k teplotním senzorům, termostatům vytápění a TUV, stavu hořáku a monitorování výkonu tepelného zdroje.

Šablona využívá bitmaskové registry pro stav a ovládání (H:100 a H:200), Float registry pro teploty a tlak a cyklický mechanismus čtení extra OT registrů pro získání min/max hodnot z OpenTherm data-ID, které nejsou namapované na standardní registry.

Hardwarové zapojení

Přehled brány

Amit DM-OT2 je převodník montovaný na DIN lištu s galvanicky izolovaným rozhraním RS-485 a rozhraním OpenTherm/+. Funguje jako OpenTherm master komunikující s kotlem a zároveň jako Modbus RTU slave na sběrnici RS-485.

Technické parametry
  • Napájení: 20–30 V DC, max 30 mA
  • Provozní teplota: -40 °C až +70 °C
  • Protokol: Modbus RTU Slave, RS-485
  • Přenosová rychlost: 9600, bez parity, 2 stop bity
  • Max počet převodníků: 63 na jedné síti RS-485
  • Izolace RS-485: Galvanická, 500 V AC
  • Montáž: 35 mm DIN lišta
Připojení svorek
SvorkaSignálPopis
1G485Zem RS-485
2BSignál RS-485 B (-)
3ASignál RS-485 A (+)
4GNDZem napájení
5+24VNapájení +24 V DC
6RC1Rozhraní OpenTherm/+
7RC2Rozhraní OpenTherm/+
Zapojení RS-485 k TapHome

Připojte pomocí 3-vodičového RS-485 připojení:

  • A (svorka 3) → A+/D+ na TapHome RS-485
  • B (svorka 2) → B-/D- na TapHome RS-485
  • G485 (svorka 1) → GND na napájecím zdroji TapHome (povinné)

Důležité — Uzemnění

Zemnící vodič G485 musí být propojen mezi DM-OT2 a napájecím zdrojem TapHome. Bez správného uzemnění mohou nastat chyby v komunikaci.

Zakončení sběrnice

DM-OT2 má jumpery pro zakončení RS-485:

  • Jumpery osazené — koncová stanice (idle stavy a zakončení aktivní). Použijte na posledním zařízení na sběrnici.
  • Jumpery neosazené — mezilehlá stanice. Použijte na všech ostatních zařízeních.

Oba jumpery musí být vždy nastaveny současně.

Konfigurace

Adresování DIP přepínači

DIP přepínače ADR0–ADR5 (přepínače 1–6) nastavují Modbus slave adresu (rozsah 1–63). Adresa 0 není povolena.

Výpočet adresy: Každý přepínač reprezentuje binární hodnotu — ADR0=1, ADR1=2, ADR2=4, ADR3=8, ADR4=16, ADR5=32. Sečtěte hodnoty přepínačů v poloze ON.

Příklady adres:

AdresaPřepínače ON
1ADR0
2ADR1
3ADR0 + ADR1
5ADR0 + ADR2
10ADR1 + ADR3

Doporučeno: Adresa 1 (ADR0=ON, všechny ostatní OFF).

Rychlost komunikace

DIP přepínače COMM0–COMM3 (přepínače 7–10) konfigurují přenosovou rychlost a paritu. Pro TapHome nastavte:

  • COMM0: OFF, COMM1: OFF, COMM2: ON — toto zvolí 9600 baud, bez parity

Pokud není zvolena parita, DM-OT2 automaticky použije 2 stop bity. Změny se projeví okamžitě.

Výběr protokolu

DIP přepínač MODE (přepínač 11) vybírá protokol:

  • Neosazený (OFF) — Modbus RTU (vyžadováno pro TapHome)
  • Osazený (ON) — protokol ARION

Změna se projeví po restartu.

Možnosti zařízení

Monitorování stavu

Tři binární stavové senzory čtou jednotlivé bity ze stavového registru (H:100):

  • Hořák (bit 4) — indikuje, zda je plamen hořáku aktivní
  • Vytápění (bit 2) — indikuje, zda je ústřední vytápění aktivní
  • Ohřev TUV (bit 3) — indikuje, zda je ohřev teplé užitkové vody aktivní

Tyto senzory se aktualizují každých 2500 ms a poskytují přehled o provozním stavu kotle v reálném čase.

Ovládání vytápění a TUV

Dva přepínače ovládají vytápění a TUV přes řídicí registr (H:200):

  • Povolení vytápění (bit 5) — zapíná nebo vypíná ústřední vytápění
  • Povolení TUV (bit 6) — zapíná nebo vypíná ohřev teplé užitkové vody

Oba přepínače používají vzor read-modify-write: šablona přečte celý registr H:200, zamaskuje cílový bit, nastaví novou hodnotu a zapíše zpět. Debounce na bázi počítadla (cnt=5 cyklů) zajistí, že přepínač zobrazí zapsaný stav okamžitě po přepnutí, čímž se předejde blikání během zpracování příkazu kotlem.

Teplotní termostaty

Dvě termostatická zařízení poskytují čtení aktuální teploty i ovládání požadované teploty:

  • Teplota topného okruhu — čte aktuální průtokovou teplotu z H:102 (Float) a čte/zapisuje požadovanou teplotu do H:201 (Float). Servisní atribut zobrazuje rozsah min/max z OpenTherm data-ID 49.
  • Termostat TUV — čte aktuální teplotu TUV z H:106 (Float) a čte/zapisuje požadovanou teplotu do H:205 (Float). Servisní atribut zobrazuje rozsah min/max z OpenTherm data-ID 48.
Teplotní senzory

Tři senzory teploty pouze pro čtení poskytují doplňkový monitoring:

  • Teplota spalin (H:118) — teplota výfukových plynů z kotle, užitečná pro monitorování účinnosti spalování
  • Teplota zpátečky (H:108) — teplota vratné vody z topného okruhu
  • Venkovní teplota (H:110) — venkovní teplota ze senzoru kotle, používaná pro ekvitermní regulaci

Všechny teplotní registry používají 32bitový Float formát (2 po sobě jdoucí holding registry).

Monitorování tlaku
  • Tlak topného okruhu (H:114) — tlak vody v topném okruhu v barech. Nízký tlak může indikovat únik vody nebo potřebu doplnění systému.
Výkon tepelného zdroje
  • Výkon tepelného zdroje — dimmer model reprezentující úroveň modulace kotle. Dva servisní atributy z OpenTherm data-ID 15 zobrazují minimální procento modulace a maximální výkon kotle v kW.

Čtení extra OpenTherm registrů

Šablona obsahuje cyklický mechanismus pro čtení OpenTherm data-ID, které nejsou přímo namapované na standardní Modbus registry. Slouží k získání rozsahů min/max teplot a údajů o kapacitě kotle.

Jak to funguje:

  1. Modul ReadScript aktivuje čtení extra OT registrů nastavením bitu 10 v H:200
  2. Zapíše požadované OpenTherm data-ID do H:216 a spustí čtení přes H:217
  3. Odpověď se objeví v H:120, stav v H:121 (1=úspěch, 3=chyba)
  4. Skript cyklicky prochází tři data-ID: 48 (TUV min/max), 49 (vytápění min/max) a 15 (kapacita kotle)

Získané hodnoty se ukládají do interních proměnných (TUV_MM, Top_MM, Kotol_MM) a zpřístupňují jako servisní atributy na příslušných zařízeních.

Servisní diagnostika

Modul zpřístupňuje devět servisních atributů pro monitorování:

  • Gateway ID (H:0) — potvrzuje typ brány (197 = DM-OT2)
  • Verze firmwaru (H:1) — aktuální verze firmwaru brány
  • Čas (H:2) — počítadlo doby provozu brány
  • Guard Time (H:4) — časový limit vyhodnocení selhání Modbus komunikace v milisekundách
  • Počítadlo restartů (H:8) — počet restartů brány (resetovatelné servisní akcí)
  • Počítadlo Modbus zpráv (H:9) — celkový počet zpracovaných Modbus zpráv (resetovatelné servisní akcí)
  • TUV přítomen (H:100, bit 6) — zda je dostupný ohřev teplé užitkové vody
  • TV2 přítomen (H:100, bit 7) — zda je dostupný sekundární topný okruh
  • Výkon tepelného zdroje [%] (H:112) — aktuální modulace kotle v procentech

Dvě servisní akce umožňují resetování počítadel brány:

  • Reset počítadla restartů — vymaže počítadlo restartů brány (H:8)
  • Reset počítadla Modbus zpráv — vymaže počítadlo Modbus zpráv (H:9)

Modul ReadScript také monitoruje stav OpenTherm komunikace (H:100 bit 0) a chyby zařízení (H:100 bit 1, H:101), které hlásí jako chyby a varování v TapHome.

LED indikátory

LEDFunkce
PWRPřevodník je napájen
RxDPříjem dat na RS-485
TxDVysílání dat na RS-485
RxOTPříjem dat na OpenTherm
TxOTVysílání dat na OpenTherm

Normální stav: PWR svítí, RxD/TxD blikají během Modbus komunikace, RxOT/TxOT blikají během OpenTherm komunikace.

Řešení problémů

Žádná Modbus komunikace (LED RxD/TxD neblikají)
  1. Zkontrolujte RS-485 kabely:
    • A (svorka 3) správně připojeno k A+/D+ na TapHome
    • B (svorka 2) správně připojeno k B-/D- na TapHome
    • G485 (svorka 1) připojeno k zemi napájecího zdroje TapHome — nejčastější problém
  2. Ověřte Modbus slave adresu na DIP přepínačích ADR0–ADR5
  3. Potvrďte, že DIP přepínač MODE je OFF (zvolen Modbus RTU)
  4. Zkontrolujte nastavení rychlosti komunikace (COMM0=OFF, COMM1=OFF, COMM2=ON pro 9600 baud)
  5. Ověřte, že TapHome je nastaven na: 9600 baud, bez parity, 2 stop bity
Žádná OpenTherm komunikace (LED RxOT/TxOT neblikají)
  1. Zkontrolujte zapojení mezi svorkami RC1/RC2 a OpenTherm konektorem kotle
  2. Ověřte, že kotel podporuje OpenTherm (ne všechny modely Geminox mají OT rozhraní)
  3. Zkontrolujte, že DM-OT2 má správné napájení (20–30 V DC)
Chyba OT komunikace v TapHome

Pokud TapHome hlásí „OT communication error" (Status bit 0 = 0):

  1. Zkontrolujte OpenTherm zapojení mezi DM-OT2 a kotlem
  2. Restartujte DM-OT2 odpojením a opětovným připojením napájení
  3. Zkontrolujte servisní atribut Guard Time — pokud je nastaven na 0, připojení je trvale označeno jako odpojené
Chyba zařízení v TapHome

Pokud TapHome hlásí „Device error" (Status bit 1 = 1):

  1. Přečtěte hodnotu registru Last Error z varování TapHome
  2. Podívejte se do servisního manuálu kotle pro konkrétní chybový kód
  3. Chyba pochází ze samotného kotle, nikoli z brány
Další možnosti

Brána DM-OT2 zpřístupňuje také registry pro teplotu přívodní vody kotle (H:116), přímou teplotu TUV (H:104) a další řídicí bity na H:200 pro povolení OT komunikace a potvrzení chyb. Tyto možnosti mohou být přidány v budoucí aktualizaci šablony.

Dostupná zařízení

Geminox THRi (via Amit DM-OT2) Modul
Servisní atributy
ID brányreads H:0 (UInt16); switch: 197=\'DM-OT2\', other=\'Unknown\'; identifies the Amit DM-OT2 gateway
Verze firmwarureads H:1 (UInt16); gateway firmware version number
Časreads H:2 (UInt32); gateway uptime or system time counter
Ochranný čas [ms]reads H:4 (UInt16); Modbus guard time in milliseconds
Počítadlo resetůreads H:8 (UInt16); number of gateway resets since last clear
Počítadlo Modbus zprávreads H:9 (UInt16); total Modbus messages processed since last clear
TUV přítomnoreads bit 6 of Status (H:100); \'Yes\' if DHW heating is available, \'No\' otherwise
TV2 přítomnoreads bit 7 of Status (H:100); \'Yes\' if secondary heating circuit (TV2) is available, \'No\' otherwise
Výkon zdroje tepla [%]reads H:112 (Float); current boiler modulation/power output as percentage
Servisní akce
Resetovat počítadlo resetůwrites H:8 (UInt16) = 0; clears the gateway reset counter
Resetovat počítadlo Modbus zprávwrites H:9 (UInt16) = 0; clears the Modbus message counter

Geminox THRi (cez Amit DM-OT2)

Čtení (modul)
Status := modbusr(H, 100, Uint16);
if(getbit(Status, 0) = 0, adderror("Chyba komunikacie OT"));
if(getbit(Status, 1) = 1, adderror("Chyba zariadenia OT"));

var lastError := modbusr(H, 101, Uint16);
if(lastError != 0, addwarning("Chyba zariadenia " + lastError));

# povol citanie extra OT registrov
var ret := modbusr(H, 200, Uint16);
if getbit(ret, 10) = 0
    modbusw(H, 200, Uint16, ret + (1 << 10));
end

# citanie extra OT registrov
var reg := modbusr(H,216,Uint16);
var stat := modbusr(H,121,Uint16);
var out := 0;
if reg = 48
    #TUV Min/Max
    if  stat = 1
        out := modbusr(H,120,Uint16);
        TUV_MM := out;
        modbusw(H, 216, Uint16, 49);
        modbusw(H, 217, Uint16, 1);
    end
elseif reg = 49
    #kurenie Min/Max
    if stat = 1
        out := modbusr(H,120,Uint16);
        Top_MM := out;
        modbusw(H, 216, Uint16, 15);
        modbusw(H, 217, Uint16, 0);
    end
elseif reg = 15
    #kotol Min/Max
    if stat = 1
        out := modbusr(H,120,Uint16);
        Kotol_MM := out;
        modbusw(H, 216, Uint16, 48);
        modbusw(H, 217, Uint16, 1);
    end 
else
    #zaciname s TUV Min/Max
    modbusw(H, 216, Uint16, 48);
    modbusw(H, 217, Uint16, 1);
end

if modbusr(H,121,Uint16) = 3
    #ak chyba zaciname odznova s TUV Min/Max
    modbusw(H, 216, Uint16, 48);
    modbusw(H, 217, Uint16, 1);
end
Servisní atributy
ID
switch(modbusr(H, 0, Uint16),
197, "DM-OT2",
"Unknown")
Verze firmware
modbusr(H, 1, Uint16)
Čas
modbusr(H, 2, Uint32)
GuardTime [ms]
modbusr(H, 4, Uint16)
Počítadlo resetů
modbusr(H, 8, Uint16)
Počítadlo MODBUS zpráv
modbusr(H, 9, Uint16)
Ohřev TUV přítomen
if(getbit(Status, 6), "Ano", "Ne")
TV2 přítomna
if(getbit(Status, 7), "Ano", "Ne")
Výkon topného zdroje [%]
modbusr(H, 112, Float)
Servisní akce
Nulovat Počítadlo resetů
modbusw(H, 8, Uint16, 0)
Nulovat Počítadlo MODBUS zpráv
modbusw(H, 9, Uint16, 0)
Hořák Jazýčkový kontakt Pouze ke čtení

Stav plamene hořáku — aktivní, když hořák kotle spaluje

Registr: H:100 UInt16 bitmask

Hořák

Čtení
getbit(Status, 4)
Vytápění Jazýčkový kontakt Pouze ke čtení

Stav ústředního vytápění — aktivní, když topný okruh běží

Registr: H:100 UInt16 bitmask

Vytápění

Čtení
getbit(Status, 2)
Ohřev TUV Jazýčkový kontakt Pouze ke čtení

Stav ohřevu teplé užitkové vody — aktivní, když okruh TUV běží

Registr: H:100 UInt16 bitmask

Ohřev TUV

Čtení
getbit(Status, 3)
Povolení vytápění Přepínač

Zapíná nebo vypíná ústřední vytápění přes read-modify-write na řídicím registru

Registr: H:200 UInt16 bitmask

Povolení vytápění

Čtení stavu přepínače
if cnt = 0
    var ret := getbit(modbusr(H,200,Uint16), 5);
    return (ret);
else
    cnt := cnt -1;
    return (St);
end
Zápis stavu přepínače
var ret := modbusr(H,200,Uint16);
var x := (ret & 0xffdf) + (St << 5);
modbusw(H, 200, Uint16, x);
cnt := 5;
Povolení TUV Přepínač

Zapíná nebo vypíná ohřev teplé užitkové vody přes read-modify-write na řídicím registru

Registr: H:200 UInt16 bitmask

Povolení TUV

Čtení stavu přepínače
if cnt = 0
    var ret := getbit(modbusr(H,200,Uint16), 6);
    return (ret);
else
    cnt := cnt -1;
    return (St);
end
Zápis stavu přepínače
var ret := modbusr(H,200,Uint16);
var x := (ret & 0xffbf) + (St << 6);
modbusw(H, 200, Uint16, x);
cnt := 5;
Teplota spalin Teplotní senzor Pouze ke čtení

Teplota výfukových plynů ze spalovací komory kotle

Registr: H:118 Float Jednotka: °C numeric

Teplota spalin

Čtení teploty
MODBUSR(H, 118, Float)
Teplota zpátečky Teplotní senzor Pouze ke čtení

Teplota vratné vody z topného okruhu

Registr: H:108 Float Jednotka: °C numeric

Teplota zpátečky

Čtení teploty
MODBUSR(H, 108, Float)
Teplota topného okruhu Termostat

Průtoková teplota topného okruhu s nastavitelným setpointem a rozsahem min/max z OpenTherm

Registr: H:102H:201 Float Jednotka: °C numeric
Servisní atributy
Teplota topného okruhu min / max

Teplota topného okruhu

Čtení teploty
MODBUSR(H, 102, Float)
Čtení požadované teploty
MODBUSR(H, 201, Float)
Zápis požadované teploty
MODBUSW(H, 201, Float, Se)
Servisní atributy
Min / Max Teplota Vykurovacieho okruhu
getbyte(Top_MM, 1) + "/" + getbyte(Top_MM, 0)
Tlak topného okruhu Proměnná Pouze ke čtení

Tlak vody v topném okruhu

Registr: H:114 Float Jednotka: bar numeric

Tlak topného okruhu

Čtení
MODBUSR(H, 114, Float)
Termostat TUV Termostat

Teplota teplé užitkové vody s nastavitelným setpointem a rozsahem min/max z OpenTherm

Registr: H:106H:205 Float Jednotka: °C numeric
Servisní atributy
Teplota TUV min / max

Termostat TUV

Čtení teploty
MODBUSR(H, 106, Float)
Čtení požadované teploty
MODBUSR(H, 205, Float)
Zápis požadované teploty
MODBUSW(H, 205, Float, Se)
Servisní atributy
Min / Max Teplota TUV
getbyte(TUV_MM, 1) + "/" + getbyte(TUV_MM, 0)
Venkovní teplota Teplotní senzor Pouze ke čtení

Venkovní teplota ze senzoru kotle

Registr: H:110 Float Jednotka: °C numeric

Venkovní teplota

Čtení teploty
MODBUSR(H, 110, Float)
Výkon tepelného zdroje Stmívač Pouze ke čtení

Úroveň modulace kotle s atributy minimálního procenta modulace a maximálního výkonu

Servisní atributy
Min modulace [%]
Max výkon [kW]

Výkon tepelného zdroje

Čtení úrovně
MODBUSR(H, 112, Float) / 100
Servisní atributy
Minimalna modulacia [%]
getbyte(Kotol_MM, 1)
Max vykon [kW]
getbyte(Kotol_MM, 0)
Připojení: Modbus RTU • 9600 baud• 8N2 • Slave ID: $[SlaveId]
Možná vylepšení (5)
  • H:104 DHW Temperature (direct) — H:104 Float — likely DHW flow temperature; not exposed as separate device (DHW Thermostat uses H:106 for current)
  • H:116 Boiler Water Temperature — H:116 Float — boiler flow/supply water temperature; could complement return water temp
  • H:200 bit 0 OT Communication Enable — Bit 0 of H:100 indicates OT comm status; corresponding control bit on H:200 could enable/disable OT communication
  • H:200 bit 1 Device Error Acknowledge — Bit 1 of H:100 indicates device error; potential error acknowledgment via H:200
  • H:203 Heating Circuit Desired Temperature (alternative) — Potential alternative setpoint register; template uses H:201 for heating circuit desired temp

Zdroje