---
title: "Geminox THRi"
description: "Geminox THRi gas condensing boiler connected via Amit DM-OT2 OpenTherm-to-Modbus RTU gateway."
url: "https://taphome.com/en/compatibility/geminox-thri/"
language: en
lastmod: 2026-03-20
generator: hugo
ai:
  topics: ["modbus-rtu","boiler","opentherm","rs485","gateway","dhw"]
  questions: ["How to integrate Geminox THRi boiler with TapHome?","What does the Geminox THRi TapHome template control?","How to connect Amit DM-OT2 OpenTherm gateway to TapHome via RS-485?","How to configure the DIP switch address on the Amit DM-OT2?","How does the extra OpenTherm register reading mechanism work?","How to control heating and DHW temperature setpoints on the Geminox THRi?"]
---

# Geminox THRi

Communication: Modbus RTU

- [Amit DM-OT2 Product Page](https://amitomation.cz/en/product/communication-converters/dm-ot2/)

The Geminox THRi is a gas condensing boiler connected to TapHome through the Amit DM-OT2 OpenTherm-to-Modbus RTU gateway. The DM-OT2 translates the boiler's OpenTherm protocol into Modbus RTU holding registers, giving TapHome access to temperature sensors, heating and DHW thermostats, burner status, and heat source power monitoring.

The template uses bitmask registers for status and control (H:100 and H:200), Float registers for temperatures and pressure, and a cyclic extra OT register reading mechanism to retrieve min/max values from OpenTherm data-IDs that are not mapped to standard registers.

## Hardware connection

### Gateway overview

The Amit DM-OT2 is a DIN-rail mounted converter with a galvanically isolated RS-485 interface and an OpenTherm/+ interface. It acts as an OpenTherm master, communicating with the boiler, and as a Modbus RTU slave on the RS-485 bus.

### Technical specifications

- **Power supply:** 20–30 V DC, max 30 mA
- **Operating temperature:** -40°C to +70°C
- **Protocol:** Modbus RTU Slave, RS-485
- **Baud rate:** 9600, no parity, 2 stop bits
- **Max converters:** 63 on a single RS-485 network
- **RS-485 isolation:** Galvanic, 500 V AC
- **Mounting:** 35 mm DIN rail

### Terminal connections

| Terminal | Signal | Description |
|----------|--------|-------------|
| **1** | G485 | RS-485 ground |
| **2** | B | RS-485 signal B (-) |
| **3** | A | RS-485 signal A (+) |
| **4** | GND | Power supply ground |
| **5** | +24V | Power supply +24 V DC |
| **6** | RC1 | OpenTherm/+ interface |
| **7** | RC2 | OpenTherm/+ interface |

### RS-485 wiring to TapHome

Connect using a **3-wire RS-485 connection**:

- **A** (terminal 3) → A+/D+ on TapHome RS-485
- **B** (terminal 2) → B-/D- on TapHome RS-485
- **G485** (terminal 1) → GND on TapHome power supply (**mandatory**)

> [!WARNING]
> **Important — Grounding**
>
> The G485 ground wire **must** be connected between the DM-OT2 and the TapHome power supply. Without proper grounding, communication errors may occur.

### Bus termination

The DM-OT2 has jumpers for RS-485 termination:

- **Jumpers fitted** — terminal station (idle states and terminations active). Use on the **last** device on the bus.
- **Jumpers not fitted** — intermediate station. Use on all other devices.

Both jumpers must always be set simultaneously.

## Configuration

### DIP switch addressing

DIP switches ADR0–ADR5 (switches 1–6) set the Modbus slave address (range 1–63). Address 0 is not permitted.

**Address calculation:** Each switch represents a binary value — ADR0=1, ADR1=2, ADR2=4, ADR3=8, ADR4=16, ADR5=32. Sum the values of switches in the ON position.

**Address examples:**

| Address | Switches ON |
|---------|-------------|
| **1** | ADR0 |
| **2** | ADR1 |
| **3** | ADR0 + ADR1 |
| **5** | ADR0 + ADR2 |
| **10** | ADR1 + ADR3 |

**Recommended:** Address 1 (ADR0=ON, all others OFF).

### Communication speed

DIP switches COMM0–COMM3 (switches 7–10) configure the baud rate and parity. For TapHome, set:

- **COMM0:** OFF, **COMM1:** OFF, **COMM2:** ON — this selects 9600 baud, no parity

With no parity selected, the DM-OT2 automatically uses 2 stop bits. Changes take effect immediately.

### Protocol selection

DIP switch MODE (switch 11) selects the protocol:

- **Not fitted (OFF)** — Modbus RTU (**required for TapHome**)
- **Fitted (ON)** — ARION protocol

A change takes effect after a restart.

## Device capabilities

### Status monitoring

Three binary status sensors read individual bits from the Status register (H:100):

- **Burner** (bit 4) — indicates whether the burner flame is active
- **Heating** (bit 2) — indicates whether central heating is active
- **DHW Heating** (bit 3) — indicates whether domestic hot water heating is active

These sensors update every 2500 ms and provide real-time visibility into the boiler's operating state.

### Heating and DHW control

Two enable switches control heating and DHW via the Control register (H:200):

- **Heating Enable** (bit 5) — enables or disables central heating
- **DHW Enable** (bit 6) — enables or disables domestic hot water heating

Both switches use a read-modify-write pattern: the template reads the full H:200 register, masks out the target bit, sets the new value, and writes back. A counter-based debounce (cnt=5 polling cycles) ensures the switch shows the written state immediately after toggling, preventing flickering while the boiler processes the command.

### Temperature thermostats

Two thermostat devices provide both current temperature reading and setpoint control:

- **Heating Circuit Temperature** — reads the current flow temperature from H:102 (Float) and reads/writes the desired temperature to H:201 (Float). A service attribute shows the min/max setpoint range from OpenTherm data-ID 49.
- **DHW Thermostat** — reads the current DHW temperature from H:106 (Float) and reads/writes the desired temperature to H:205 (Float). A service attribute shows the min/max setpoint range from OpenTherm data-ID 48.

### Temperature sensors

Three read-only temperature sensors provide additional monitoring:

- **Flue Gas Temperature** (H:118) — exhaust gas temperature from the boiler, useful for monitoring combustion efficiency
- **Return Water Temperature** (H:108) — return water temperature from the heating circuit
- **Outdoor Temperature** (H:110) — outdoor ambient temperature from the boiler's sensor, used for weather-compensated heating curves

All temperature registers use 32-bit Float format (2 consecutive holding registers).

### Pressure monitoring

- **Heating Circuit Pressure** (H:114) — water pressure in the heating circuit in bar. Low pressure may indicate a water leak or the need to refill the system.

### Heat source power

- **Heat Source Power** — a dimmer model representing the boiler's modulation level. Two service attributes from OpenTherm data-ID 15 show the minimum modulation percentage and the maximum boiler power in kW.

## Extra OpenTherm register reading

The template includes a cyclic mechanism for reading OpenTherm data-IDs that are not directly mapped to standard Modbus registers. This is used to retrieve min/max temperature ranges and boiler capacity data.

**How it works:**

1. The module ReadScript enables extra OT register reading by setting bit 10 of H:200
2. It writes the desired OpenTherm data-ID to H:216 and triggers a read via H:217
3. The response appears in H:120, with status in H:121 (1=success, 3=error)
4. The script cycles through three data-IDs: **48** (DHW min/max), **49** (heating min/max), and **15** (boiler capacity)

The retrieved values are stored in internal variables (TUV_MM, Top_MM, Kotol_MM) and made available as service attributes on the corresponding devices.

## Service diagnostics

The module exposes nine service attributes for monitoring:

- **Gateway ID** (H:0) — confirms the gateway type (197 = DM-OT2)
- **Firmware Version** (H:1) — current gateway firmware version
- **Time** (H:2) — gateway uptime counter
- **Guard Time** (H:4) — Modbus communication failure evaluation timeout in milliseconds
- **Reset Counter** (H:8) — number of gateway resets (resettable via service action)
- **Modbus Message Counter** (H:9) — total Modbus messages processed (resettable via service action)
- **DHW Present** (H:100, bit 6) — whether DHW heating capability is available
- **TV2 Present** (H:100, bit 7) — whether a secondary heating circuit is available
- **Heat Source Power [%]** (H:112) — current boiler modulation as a percentage

Two service actions allow resetting the gateway counters:

- **Reset Reset Counter** — clears the gateway reset counter (H:8)
- **Reset Modbus Message Counter** — clears the Modbus message counter (H:9)

The module ReadScript also monitors OpenTherm communication status (H:100 bit 0) and device errors (H:100 bit 1, H:101), reporting them as errors and warnings in TapHome.

## LED indicators

| LED | Function |
|-----|----------|
| **PWR** | Converter is powered |
| **RxD** | Receiving data on RS-485 |
| **TxD** | Transmitting data on RS-485 |
| **RxOT** | Receiving data on OpenTherm |
| **TxOT** | Transmitting data on OpenTherm |

**Normal state:** PWR on, RxD/TxD blink during Modbus communication, RxOT/TxOT blink during OpenTherm communication.

## Troubleshooting

### No Modbus communication (RxD/TxD LEDs not blinking)

1. **Check RS-485 cables:**
   - A (terminal 3) correctly connected to A+/D+ on TapHome
   - B (terminal 2) correctly connected to B-/D- on TapHome
   - **G485 (terminal 1) connected to TapHome power supply ground** — most common issue
2. Verify the Modbus slave address on DIP switches ADR0–ADR5
3. Confirm DIP switch MODE is OFF (Modbus RTU selected)
4. Check the communication speed settings (COMM0=OFF, COMM1=OFF, COMM2=ON for 9600 baud)
5. Confirm TapHome is set to: 9600 baud, no parity, 2 stop bits

### No OpenTherm communication (RxOT/TxOT LEDs not blinking)

1. Check the wiring between RC1/RC2 terminals and the boiler's OpenTherm connector
2. Verify the boiler supports OpenTherm (not all Geminox models have an OT interface)
3. Check that the DM-OT2 has correct power supply (20–30 V DC)

### OT communication error in TapHome

If TapHome reports "OT communication error" (Status bit 0 = 0):

1. Check the OpenTherm wiring between the DM-OT2 and the boiler
2. Restart the DM-OT2 by cycling power
3. Check the Guard Time service attribute — if set to 0, the connection is permanently marked as disconnected

### Device error in TapHome

If TapHome reports "Device error" (Status bit 1 = 1):

1. Read the Last Error register value from TapHome warnings
2. Consult the boiler's service manual for the specific error code
3. The error originates from the boiler itself, not the gateway

### Additional capabilities

The DM-OT2 gateway also exposes registers for boiler supply water temperature (H:116), direct DHW temperature (H:104), and additional control bits on H:200 for OT communication enable and error acknowledgment. These can be added in a future template update.

## Available devices

Geminox THRi (via Amit DM-OT2) Module

Service Attributes

|                        |                                                                                                              |
|------------------------|--------------------------------------------------------------------------------------------------------------|
| Gateway ID             | reads H:0 (UInt16); switch: 197=\\'DM-OT2\\', other=\\'Unknown\\'; identifies the Amit DM-OT2 gateway        |
| Firmware Version       | reads H:1 (UInt16); gateway firmware version number                                                          |
| Time                   | reads H:2 (UInt32); gateway uptime or system time counter                                                    |
| Guard Time \[ms]       | reads H:4 (UInt16); Modbus guard time in milliseconds                                                        |
| Reset Counter          | reads H:8 (UInt16); number of gateway resets since last clear                                                |
| Modbus Message Counter | reads H:9 (UInt16); total Modbus messages processed since last clear                                         |
| DHW Present            | reads bit 6 of Status (H:100); \\'Yes\\' if DHW heating is available, \\'No\\' otherwise                     |
| TV2 Present            | reads bit 7 of Status (H:100); \\'Yes\\' if secondary heating circuit (TV2) is available, \\'No\\' otherwise |
| Heat Source Power \[%] | reads H:112 (Float); current boiler modulation/power output as percentage                                    |

Service Actions

|                              |                                                            |
|------------------------------|------------------------------------------------------------|
| Reset Reset Counter          | writes H:8 (UInt16) = 0; clears the gateway reset counter  |
| Reset Modbus Message Counter | writes H:9 (UInt16) = 0; clears the Modbus message counter |

Burner Reed Contact Read-only

Burner flame status — active when the boiler burner is firing

Register: H:100 UInt16 bitmask

Heating Reed Contact Read-only

Central heating status — active when the heating circuit is running

Register: H:100 UInt16 bitmask

DHW Heating Reed Contact Read-only

Domestic hot water heating status — active when the DHW circuit is running

Register: H:100 UInt16 bitmask

Heating Enable Switch

Enables or disables central heating via read-modify-write on the control register

Register: H:200 UInt16 bitmask

Values / States: ON · OFF

DHW Enable Switch

Enables or disables domestic hot water heating via read-modify-write on the control register

Register: H:200 UInt16 bitmask

Values / States: ON · OFF

Flue Gas Temperature Temperature Sensor Read-only

Exhaust gas temperature from the boiler combustion chamber

Register: H:118 Float Unit: °C numeric

Return Water Temperature Temperature Sensor Read-only

Return water temperature from the heating circuit

Register: H:108 Float Unit: °C numeric

Heating Circuit Temperature Thermostat

Heating circuit flow temperature with adjustable setpoint and min/max range from OpenTherm

Register: H:102 → H:201 Float Unit: °C numeric

Service Attributes

|                                       |
|---------------------------------------|
| Heating Circuit Min / Max Temperature |

Heating Circuit Pressure Variable Read-only

Water pressure in the heating circuit

Register: H:114 Float Unit: bar numeric

DHW Thermostat Thermostat

Domestic hot water temperature with adjustable setpoint and min/max range from OpenTherm

Register: H:106 → H:205 Float Unit: °C numeric

Service Attributes

|                           |
|---------------------------|
| DHW Min / Max Temperature |

Outdoor Temperature Temperature Sensor Read-only

Outdoor ambient temperature from the boiler sensor

Register: H:110 Float Unit: °C numeric

Heat Source Power Dimmer Read-only

Boiler modulation level with min modulation percentage and max power service attributes

Service Attributes

|                     |
|---------------------|
| Min Modulation \[%] |
| Max Power \[kW]     |

**Connection:** Modbus RTU • 9600 baud• 8N2 • Slave ID: $\[SlaveId]

Possible improvements (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

## Sources

- Amit DM-OT2 Datasheet
  
  [amitomation.cz](https://amitomation.cz/en/product/communication-converters/dm-ot2/) 2026-03-20
  
  [PDF](https://taphome.com/compatibility/devices/geminox-thri/manufacturer/dm-ot2-datasheet.pdf)
- Amit DM-OT2 Product Page
  
  [amitomation.cz](https://amitomation.cz/en/product/communication-converters/dm-ot2/) 2026-03-20
- OpenTherm-to-Modbus Register Reference (Unipi MM-OT101)
  
  [kb.unipi.technology](https://kb.unipi.technology/_media/files:products:extensions_gateyways:mm-ot101:mm-ot101-technical_manual_en.pdf) 2026-03-20

## Related Documentation

- [Modbus Integration](https://taphome.com/en/compatibility/modbus-guide/)
- [Modbus](https://taphome.com/en/docs/integration/modbus/)
- [Simple configuration using templates](https://taphome.com/en/docs/integration/modbus/templates/)
- [Modbus scripts and prefetch](https://taphome.com/en/docs/script/modbus-scripts/)
- [Modbus functions](https://taphome.com/en/docs/script/modbus/)
- [Modbus data types](https://taphome.com/en/docs/script/modbus-data-types/)

