
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

The UC100 has 9 screw terminals on the bottom part of the housing:
| Terminal | Function |
|---|---|
| 1 | NC — not connected |
| 2 | NC — not connected |
| 3 | DO1 — heating valve output (SSR, max 0.4 A at 24 V AC) |
| 4 | NC — not connected |
| 5 | G0 — power and output reference point |
| 6 | G0 — power and output reference point |
| 7 | G — power (24 V AC) |
| 8 | K- — RS-485 communication (-) |
| 9 | K+ — 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

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

Three DIP switches are located on the back of the PCB:
| Switch | Function |
|---|---|
| BUS END | If ON, the bus is terminated with a resistor (set ON for the last device on the line) |
| USR | Not used, reserved for future applications |
| INIT | Sets 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:
- Connect the UC100 via RS-485 to a PC running ModComTool (free configuration software from Domat)
- Scan for the controller on the bus
- Open the controller window in ModComTool
- Change the slave address in register 4 LSB (range 1–247)
- Change the baud rate in register 4 MSB if needed (13 = 9600, default)
- Restart the controller — address and baud rate changes take effect only after restart
To reset to defaults (INIT procedure):
- Connect the device via RS-485 to a PC with ModComTool
- Set the INIT DIP switch to ON
- Apply power (use only the connector without bottom part)
- Find the controller in ModComTool (Scan)
- Set INIT to OFF
- Open the controller window and click the Init button
- 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:
| Mode | Heating | Cooling |
|---|---|---|
| Day / Comfort | 21 °C | 24 °C |
| Night / Standby | 19 °C | 26 °C |
| Off / Depression | 12 °C | 35 °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 value | Decoded | Meaning |
|---|---|---|
| 1 (bit 0) | 0 | Speed 0 (off) |
| 2 (bit 1) | 1 | Speed 1 |
| 4 (bit 2) | 2 | Speed 2 |
| 8 (bit 3) | 3 | Speed 3 |
| 16 (bit 4) | 4 | Speed 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:
| |
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
- Check RS-485 cables:
- K+ (terminal 9) correctly connected to A+/D+ on TapHome
- K- (terminal 8) correctly connected to B-/D- on TapHome
- Verify the Modbus slave address matches TapHome configuration (default is 1)
- Confirm communication parameters: 9600 baud, 8 data bits, no parity, 1 stop bit
- Check the BUS END DIP switch — set ON only on the last device on the bus
- Ensure the UC100 is powered with 24 V AC
Temperature readings incorrect
- Allow 90 minutes warm-up after initial power-on
- Check that the controller is not exposed to direct sunlight, heat sources, or cold draughts
- Verify the sensor correction value in register 37 (default -1.5 K)
- 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
- Verify that H:20 is writable on your UC100 firmware version
- Check the module writescript is correctly combining fan and mode values
- If using an older firmware, the bitmask encoding at H:20 may not be supported — consult the ModComTool configuration software to verify register assignments
