TapHome

Domat UC100 Thermostat

Modbus RTU
Submitted by
Last updated: 03. 2026
Domat UC100 Thermostat

The Domat UC100 is a communicative room heating controller from Domat Control System (Czech Republic) that connects to TapHome via Modbus RTU over RS-485. The controller measures room temperature, controls a heating valve output via PWM, provides fan speed and heating/cooling mode selection, and optionally reports CO2 concentration.

The UC100 works either autonomously with its built-in PI controller and weekly scheduler, or as a slave device controlled from TapHome. The TapHome template exposes temperature reading and setpoint, fan speed, heating/cooling mode, a digital output for the valve relay, and a CO2 sensor.

Archived product — The Domat UC100 is no longer in production. The current replacement is the Domat UC102. The TapHome template remains functional for existing UC100 installations.

Hardware connection

Terminal connections
Domat UC100 terminal connections and technical specifications

The UC100 has 9 screw terminals on the bottom part of the housing:

TerminalFunction
1NC — not connected
2NC — not connected
3DO1 — heating valve output (SSR, max 0.4 A at 24 V AC)
4NC — not connected
5G0 — power and output reference point
6G0 — power and output reference point
7G — power (24 V AC)
8K- — RS-485 communication (-)
9K+ — RS-485 communication (+)
Technical specifications
  • Power supply: 24 V AC ±10%
  • Consumption: 600 mVA + peripherals (approx. 5 VA)
  • Measuring range: -20 to +50 °C
  • Sensor accuracy: ±1.5 K (with software correction)
  • Output: 1× solid state relay (SSR), PWM controlled, max 0.4 A at 24 V AC
  • Communication: Modbus RTU, RS-485, optically isolated
  • Default settings: 9600 baud, 8 data bits, no parity, 1 stop bit
  • Protection: IP20
RS-485 wiring

Connect using a 2-wire RS-485 connection plus power:

  • K+ (terminal 9) → A+/D+ on TapHome RS-485
  • K- (terminal 8) → B-/D- on TapHome RS-485
  • G (terminal 7) → 24 V AC power
  • G0 (terminals 5, 6) → Power and output reference point
Domat UC100 wiring diagram — power, RS-485 communication and valve connection

Cable specification:

  • Type: LAM DATAPAR 2×0.8 or JYTY 2×1 (2-wire for communication)
  • For combined power + communication: 4-core LAM DATAPAR 2×2×0.8 or JYTY 4×1
  • Twisted pair recommended for EMC (LAM DATAPAR or Belden 8205)
  • Max cable length: approximately 50 m for 10 controllers (with 15% voltage drop limit)

Important — RS-485 bus isolation

The RS-485 bus on the UC100 is galvanically isolated. This means the bus can connect controllers regardless of how they are powered. However, ensure proper termination on the last device using the BUS END DIP switch.

Configuration

DIP switches
Domat UC100 DIP switches on back of PCB and installation guidelines

Three DIP switches are located on the back of the PCB:

SwitchFunction
BUS ENDIf ON, the bus is terminated with a resistor (set ON for the last device on the line)
USRNot used, reserved for future applications
INITSets the controller to default state — address 1, baud rate 9600
Enabling Modbus communication

Modbus RTU communication is enabled by default on the UC100. The default slave address is 1 and the baud rate is 9600.

To change the Modbus address or baud rate:

  1. Connect the UC100 via RS-485 to a PC running ModComTool (free configuration software from Domat)
  2. Scan for the controller on the bus
  3. Open the controller window in ModComTool
  4. Change the slave address in register 4 LSB (range 1–247)
  5. Change the baud rate in register 4 MSB if needed (13 = 9600, default)
  6. Restart the controller — address and baud rate changes take effect only after restart

To reset to defaults (INIT procedure):

  1. Connect the device via RS-485 to a PC with ModComTool
  2. Set the INIT DIP switch to ON
  3. Apply power (use only the connector without bottom part)
  4. Find the controller in ModComTool (Scan)
  5. Set INIT to OFF
  6. Open the controller window and click the Init button
  7. Remove and reapply power
Bus termination

Set the BUS END DIP switch to ON on the last UC100 on the RS-485 bus. All other controllers should have BUS END set to OFF. TapHome Core has a built-in 120 Ω termination resistor on its BUS terminals.

Device capabilities

Temperature control (Thermostat)

The template provides a thermostat device that reads the current room temperature from H:16 and the desired (setpoint) temperature from H:10, both with automatic ÷100 conversion to °C. The setpoint can be written back to H:10 from TapHome.

The UC100’s built-in PI controller processes the temperature difference and drives the PWM output accordingly. The controller supports three operation modes — Day (comfort), Night (standby), and Off (depression) — each with separate heating and cooling setpoints.

Default setpoints:

ModeHeatingCooling
Day / Comfort21 °C24 °C
Night / Standby19 °C26 °C
Off / Depression12 °C35 °C
Fan mode

The fan speed is read from the low byte of H:20 as a bitmask. The template decodes the bit position into a value 0–4:

Bit valueDecodedMeaning
1 (bit 0)0Speed 0 (off)
2 (bit 1)1Speed 1
4 (bit 2)2Speed 2
8 (bit 3)3Speed 3
16 (bit 4)4Speed 4

Writing is handled by the module writescript, which combines the fan speed and heating/cooling mode into a single H:20 write: (1 << fan_value) | ((1 << mode_value) << 8).

Heating/Cooling mode

The operating mode is read from the high byte of H:20 using the same bitmask decoding as fan speed. Values 0–4 represent different operating modes.

The fan speed and heating/cooling mode share the same register (H:20) — the module writescript ensures both values are written atomically in a single Modbus transaction.

Digital output DO1

The template exposes the heating valve relay output at H:6 as an on/off switch. This controls the SSR (solid state relay) on terminal 3, which drives a thermal actuator or heating valve (max 0.4 A at 24 V AC). The write uses a “write-if-changed” strategy to avoid unnecessary bus traffic.

CO2 sensor

The template reads CO2 concentration from H:199 with a 5-minute poll interval. This register is not documented in the 2012 Modbus register table and is likely a newer firmware extension or an external CO2 sensor module connected to the UC100.

The CO2 sensor reading is only available on UC100 units equipped with the optional CO2 sensor module. If no CO2 sensor is connected, the register may return 0 or an invalid value.

Module writescript

The module writescript atomically writes both fan speed and heating/cooling mode in a single register:

1
MODBUSW(H, 20, Int16, (1 << Mu3) | ((1 << Mu4) << 8))

Where Mu3 is the fan mode device value and Mu4 is the heating/cooling mode device value. This ensures both settings are always consistent.

Important notes

Register address discrepancy

The TapHome XML template uses register addresses that do not match the official 2012 Modbus register table. For example, H:16 in the template reads current temperature, but the 2012 documentation lists register 16 as “Night/Standby heating setpoint”. Similarly, H:10 in the template is used for desired temperature, while the 2012 docs describe it as “Manual control”.

This discrepancy is most likely due to the template targeting a newer firmware version than the 2012 documentation. The UC100 has been in production for many years and the register layout may have been reorganized in later firmware revisions.

If the template does not work correctly with your UC100 unit, check the firmware version. The template may require a firmware version newer than 13200 (the version documented in the 2012 Modbus register table).

Temperature warm-up

After switching the UC100 on, allow approximately 90 minutes for the internal heat to dissipate before the temperature sensor measures correctly. Do not calibrate the sensor correction immediately after powering on.

Change-over function

The UC100 supports a change-over function that switches between heating and cooling modes. The change-over signal can be sent via Modbus from TapHome or another master. When change-over is active, cooling setpoints come into effect. This is useful in systems with heat pumps that support heating/cooling change-over.

Troubleshooting

No Modbus communication
  1. Check RS-485 cables:
    • K+ (terminal 9) correctly connected to A+/D+ on TapHome
    • K- (terminal 8) correctly connected to B-/D- on TapHome
  2. Verify the Modbus slave address matches TapHome configuration (default is 1)
  3. Confirm communication parameters: 9600 baud, 8 data bits, no parity, 1 stop bit
  4. Check the BUS END DIP switch — set ON only on the last device on the bus
  5. Ensure the UC100 is powered with 24 V AC
Temperature readings incorrect
  1. Allow 90 minutes warm-up after initial power-on
  2. Check that the controller is not exposed to direct sunlight, heat sources, or cold draughts
  3. Verify the sensor correction value in register 37 (default -1.5 K)
  4. If register values appear wrong, check the firmware version — the template may target a different register layout than older firmware
Fan mode or heating/cooling mode not responding
  1. Verify that H:20 is writable on your UC100 firmware version
  2. Check the module writescript is correctly combining fan and mode values
  3. If using an older firmware, the bitmask encoding at H:20 may not be supported — consult the ModComTool configuration software to verify register assignments

Available devices

Domat UC100 Module

Domat UC100 Thermostat

Write (module)
MODBUSWNE(H, 20, Int16, (1 << Mu3) | ((1 << Mu4) << 8))
Thermostat Thermostat

Room temperature sensor and setpoint control — reads current temperature from H:16 and desired temperature from H:10, both with /100 conversion to °C

Register: H:16 (current temp), H:10 (desired temp)H:10 Int16 Unit: °C numeric

Thermostat

Read temperature
MODBUSR(H, 16, Int16) / 100
Read desired temperature
MODBUSR(H, 10, Int16) / 100
Write desired temperature
MODBUSW(H, 10, Int16, Se * 100)
Fan Mode Multi-value Switch Read-only

Fan speed selector — reads from H:20 low byte bitmask, values 0–4 decoded from bit position

Register: H:20 (& 0x00FF) Int16 bitmask
Values / States: ON · OFF

Fan Mode

Read switch state
SWITCH(MODBUSR(H, 20, Int16) & 0x00FF, 1, 0, 2, 1, 4, 2, 8, 3, 16, 4, 0)
Heating/Cooling Mode Multi-value Switch Read-only

Operating mode selector — reads from H:20 high byte bitmask, values 0–4 decoded from bit position

Register: H:20 (>> 8) Int16 bitmask
Values / States: ON · OFF

Heating/Cooling Mode

Read switch state
SWITCH(MODBUSR(H, 20, Int16) >> 8, 1, 0, 2, 1, 4, 2, 8, 3, 16, 4, 0)
Digital Output DO1 Switch

Heating valve relay output — controls SSR on terminal 3, max 0.4 A at 24 V AC

Register: H:6H:6 Bool
Values / States: ON · OFF

Digital Output DO1

Read switch state
MODBUSR(H, 6, Bool)
Write switch state
MODBUSWNE(H, 6, Bool, St)
CO2 Sensor Variable Read-only

CO2 concentration in ppm — reads H:199 with 5-minute poll interval, requires optional CO2 sensor module

Register: H:199 Int16 Unit: ppm numeric

CO2 Sensor

Read
MODBUSR(H, 199, Int16) / 1
Connection: Modbus RTU • 9600 baud• 8N1 • Slave ID: $[SlaveId]
Possible improvements (14)
  • 21 Actual Temperature — Measured room temperature (value/100 °C) — documented as the actual temperature register; template uses H:16 instead (which docs say is Night heating setpoint)
  • 13 Actual Heating Setpoint — Actual heating setpoint including user correction (value/100 °C) — read-only calculated value
  • 14 Actual Cooling Setpoint — Actual cooling setpoint including user correction (value/100 °C) — read-only calculated value
  • 22 Outside Temperature — Outside temperature R/W (value/100 °C) — can be written for display purposes
  • 23 Presence Mode — Set presence mode: bit 0=comfort/day, bit 1=standby/night, bit 2=off, bit 3=auto, bit 4=party; bit 15=write enable
  • 25 LSB Actual Control Mode — Current active control mode (comfort/standby/off) — follows presence mode or weekly schedule
  • 8 LSB PID Output HEAT — Heating PI controller output 0–100% — useful for monitoring valve modulation
  • 8 MSB PID Output COOL — Cooling PI controller output 0–100% — only in change-over mode
  • 7 MSB Heating/Cooling Demand — Binary demand flags — bit 2: heating demand (PID > 5%), bit 3: cooling demand (PID > 5%)
  • 12 Temperature Correction — User setpoint correction R/W (value/100 °C) — resets at each mode change
  • 15 Day/Comfort Heating Setpoint — Day/comfort mode heating setpoint R/W EEPROM (default 21°C)
  • 18 Day/Comfort Cooling Setpoint — Day/comfort mode cooling setpoint R/W EEPROM (default 24°C)
  • 10 LSB Manual Control / Change-over — Manual control bitmask — bit 1: heat output (1=manual), bit 5: change-over active. NOTE: template uses H:10 for desired temperature — this may be the same register with different firmware interpretation
  • 54–137 Weekly Time Schedule — 7 days × 6 events × (time + value) — complete weekly schedule for Day/Night/Off mode switching

Sources