
The Sinclair S-Therm Ontario (SMH-xxxIRB series) is a DC inverter air-to-water monoblock heat pump that connects to TapHome via Modbus RTU over RS-485. The template provides comprehensive control of heating, cooling, hot water production, floor commissioning, disinfection, and weather-dependent operation. The heat pump uses R32 refrigerant and is available in 1-phase (4–16 kW) and 3-phase (10–16 kW) variants.
The template exposes 38 devices covering temperature sensors, setpoint controls, operation modes, timer functions, and outdoor unit diagnostics with monitoring of 50+ error and protection coils.
Hardware connection
Indoor unit PCB overview

The indoor unit PCB has 4 RS-485 connectors for Modbus communication:
| Connector | Type | Pinout |
|---|---|---|
| CN1 | RS-485 with 12V (4-pin) | 1: +12V, 2: B, 3: A, 4: GND |
| CN2 | RS-485 without 12V (4-pin) | 1: B, 2: A |
| CN3 | RS-485 without 12V (3-pin) | B, A |
| CN4 | RS-485 with 12V (4-pin) | 1: GND, 2: B, 3: A, 4: +12V |
For TapHome: Use connector CN3 (3-pin, RS-485 without 12V) or CN2 (4-pin, RS-485 without 12V) for the BMS connection to TapHome Core:
- B → B-/D- on TapHome RS-485
- A → A+/D+ on TapHome RS-485
Wired controller RS-485 interface
The wired controller provides two communication interfaces:
| Interface | Type | Pinout | Use |
|---|---|---|---|
| 1 — BMS | 2-wire, AWG24 twisted pair | 1: B, 2: A | Connect to BMS/TapHome via RS-232 to RS-485 converter |
| 2 — +12VDC | 4-wire, AWG24, 8m max | 1: +12VDC, 2: B, 3: A, 4: GND | Equipment communication line (powered by equipment) |
Important — Interface 1 outputs RS-485 signals. If connecting through the wired controller BMS port, an RS-232 to RS-485 converter is required. For direct RS-485 connection, use the indoor unit PCB connectors (CN1–CN4) instead.
Technical specifications
- Communication: Modbus RTU, RS-485
- Baud rate: 9600, no parity, 1 stop bit
- Slave ID range: 1–253 (default 1)
- Cable: AWG24 twisted pair, Class V
- Protocol: Read Multiple Coils (0x01), Read Multiple Registers (0x03), Write Multiple Coils (0x0F), Write Multiple Registers (0x10)
Configuration
Setting the Modbus address
The Modbus Slave ID is configured via the wired controller touchscreen:
- Power on the controller, press COMMISSION to access the COMMISSION page
- Press FUNCTION to go to the FUNCTION page
- Press Next (rightmost button) to navigate to FUNCTION page 4/4 where “Address” is displayed
- Select Address and use + / - to set the desired value (range 1–253, default 1)
- Press OK to save


Address 0 and 126 cannot be used. Address 0 is reserved for broadcast (received by all units), and address 126 is reserved.
Communication precautions
- Operation modes can only be changed when the unit is OFF
- For heating-only units, “Cool” and “Cool+Hot water” settings are ineffective
- When the water tank is unavailable, “Hot water”, “Cool+Hot water”, and “Heat+Hot water” modes are ineffective
- Parameter modifications with memory function activated work immediately but are memorized after 30 minutes
Device capabilities
Power and operation mode
- ON/OFF (H:42) — turns the heat pump on or off. Uses special encoding: 0xAA (170) = ON, 0x55 (85) = OFF. The ON/OFF state is shared across multiple devices (Holiday Mode, Manual Defrost, and Floor Debug check it before allowing changes)
- Operation Mode (H:2) — selects Heat, Hot water, Cool+Hot water, Heat+Hot water, or Cool. Modes can only be changed when the unit is OFF. The template warns if a water-related mode is selected but no water tank is available
Temperature setpoints
The template provides separate setpoints for each control scenario:
- Water Outlet Temperature Heating Setpoint (H:10) — target water outlet temperature for heating, 20–60°C (high-temp) or 20–55°C (low-temp), default 45°C
- Water Outlet Temperature Cooling Setpoint (H:9) — target water outlet temperature for cooling, 7–25°C, default 18°C
- Room Temperature Heating Setpoint (H:12) — room temperature target for heating, 18–30°C, default 20°C (active only when Control State is set to T-room)
- Room Temperature Cooling Setpoint (H:11) — room temperature target for cooling, 18–30°C, default 24°C (active only when Control State is set to T-room)
- Control State (C:17) — switches between water outlet temperature control (T-water out) and room temperature control (T-room). Has a service attribute showing whether a remote room sensor is installed (C:33), and a service action to configure it
Temperature monitoring
The template reads 9 temperature sensors from the heat pump, all using ÷10 conversion from raw register values:
- Outdoor Temperature (H:118) — ambient outdoor air temperature
- Water Outlet Temperature (H:125) — water leaving the plate heat exchanger
- Water Inlet Temperature (H:127) — water entering the plate heat exchanger
- Gas Pipe Temperature (H:130) — refrigerant vapor line temperature
- Liquid Pipe Temperature (H:131) — refrigerant liquid pipe temperature
- Discharge Pressure (H:124) — compressor discharge pressure as saturated temperature equivalent
- Optional Water Sensor (H:126) — optional water temperature sensor reading
- Remote Room Temperature (H:129) — remote room sensor reading (warns if remote sensor is not available)
- Hot Water Tank (H:128) — current water tank temperature with setpoint control (H:13, range 40–80°C)
Hot water tank
Hot Water Tank reads the current tank temperature (H:128, ÷10) and controls the desired temperature (H:13, range 40–80°C, default 50°C). The ReadScript monitors whether a water tank is installed (C:29) and checks for sensor errors (C:156).
Six service attributes provide additional monitoring:
- Water Tank Heater State, Tank Heater Logic, Other Thermal Logic
- Delta-T hot water (2–8°C), Cool+Hot Water Priority, Heat+Hot Water Priority
Four service actions allow configuration of tank heater logic, hot water differential, and mode priorities.
Temperature differentials
Three thermostat devices control hysteresis bands:
- Delta-T Cooling (H:29) — cooling temperature differential, 2–10°C, default 5°C
- Delta-T Heating (H:30) — heating temperature differential, 2–10°C, default 10°C
- Delta-T Room Temperature (H:32) — room temperature differential, 1–5°C, default 2°C
Weather-dependent operation
Weather-Dependent Operation (C:22) enables automatic adjustment of setpoints based on outdoor temperature. When enabled, heating and cooling setpoints are recalculated according to weather curves.
Six service attributes display the current curve parameters:
- AT-Heat / AT-Cool — ambient temperature lower/upper bounds
- RT-Heat / RT-Cool — room temperature lower/upper bounds
- WT-Heat / WT-Cool — water temperature lower/upper bounds
Timers and scheduling
- Weekly Timer (C:8) — enables/disables weekly timer schedule
- Clock Timer (C:9) — enables/disables clock timer function
- Temperature Timer (C:10) — enables/disables temperature-based timer function
Comfort and energy features
- Quiet Mode (C:21) — reduces running noise via automatic compressor and fan speed control. Available in cooling, heating, and water heating modes
- Fast Hot Water (C:18) — runs heat pump + water tank e-heater simultaneously for faster hot water production
- Solar Heater (C:16) — enables solar heater priority for energy conservation. Warns if solar is not available. Has a service attribute and action for configuring solar availability (C:31)
- Holiday Mode (C:34) — keeps indoor/water temperature in range to prevent freezing. Only for heating. Requires system OFF to enable
- Emergency Mode (C:26) — enables emergency heating via e-heater only when outdoor unit fails
E-heater and auxiliary configuration
- Optional E-Heater (H:3) — configures auxiliary electric heater count: 1 set, 2 sets, or Off
- E-Heater Activation Temperature (H:14) — outdoor temperature threshold for e-heater activation, -20 to 18°C, default -15°C
Thermostat
- Thermostat Configuration (H:39) — configures external thermostat connection type: Without, Air, or Air+Hot water
- Thermostat State (H:132) — reads external thermostat demand: Cool, Heat, or Off
Floor commissioning
Floor Commissioning (C:25) manages the floor preheating process for initial floor heating system use. The system must be turned OFF before enabling.
Four service attributes monitor the commissioning process:
- Floor Debug Segments (1–10 sections), Period 1 Temperature (25–35°C)
- Delta-T of Segment (2–10°C), Segment Time (12–72 hours)
Six service actions control the process: Enable, Start, Stop, and individual parameter configuration.
Disinfection
Disinfection (H:135 read / C:23 write) manages the water system disinfection cycle with status reporting: Off, Running, Done, or Failed. A service attribute shows the disinfection temperature setpoint (H:4, range 40–70°C, default 70°C), and three service actions allow setting the temperature, starting, and stopping the cycle.
Maintenance functions
- Manual Defrost (C:36) — triggers a manual defrost cycle. Requires system OFF to enable
- Force Mode (H:40) — for refrigerant recovery and debugging only: Force-cool, Force-heat, or Off
- Air Removal (H:41) — purges air from the water system: Air, Water tank, or Off
Outdoor unit diagnostics
Outdoor Unit Status (H:117) reports the current unit state: Cool, Heat, Hot water, or Off. The ReadScript monitors 38 error and protection coils across three groups:
Outdoor unit errors (C:88–C:109): Ambient/defrost/discharge/suction sensor errors, fan error, high/low pressure protection, capacity DIP setting error, economizer sensor errors, system recoverable/irrecoverable protection, flow switch protection, 4-way valve error
Drive/compressor errors (C:128–C:151): DC bus voltage errors, AC current protection, IPM/PFC errors, startup error, phase loss, compressor overcurrent, over-speed, desynchronizing, stalling, drive communication error, radiator/IPM overtemperature, charging circuit error, AC input voltage error
Indoor unit sensor errors: Condenser/e-heater/refrigerant liquid/vapor/water tank sensor errors, remote room sensor error
Twelve service attributes provide component-level monitoring:
- Compressor State, Fan State, 4-way Valve State
- Crankcase Heater, Underpan Heater, Defrosting State, Oil Return State
- T-discharge, T-defrost, T-suction, T-economizer in/out (all ÷10 °C)
Module-level service attributes and actions
The module exposes 11 service attributes for system configuration monitoring:
- T-HP max — maximum heat pump outlet temperature (40–55°C)
- Cool/Heat run time — minimum compressor run time per mode
- Water Pump State — indoor unit water pump On/Off
- Other thermal — whether other thermal source is enabled, with logic mode and switch-on temperature
- Other Heat Source State — On/Off status
- Optional E-Heater logic — e-heater logic mode
- Current limit value — maximum current limit (0–50 A)
- Power limit — power limit in kW (register value x 10)
Ten service actions allow configuration of these parameters, plus an Error Reset action (H:44) to clear faults.
Additional capabilities
The heat pump also exposes registers for gate-card control (C:11), refrigerant recovery (C:35), manual 2-way valve control (C:37), floor debug temperature and remaining time readback (H:133–H:136), weather-dependent calculated setpoint (H:137), and compressor setting/running frequency (H:142–H:143). Communication error coils between the wired controller and indoor/outdoor units and drive (C:64–C:66) are also available. These can be added in a future template update.
Troubleshooting
No Modbus communication
- Check RS-485 cables:
- B wire correctly connected to B-/D- on TapHome
- A wire correctly connected to A+/D+ on TapHome
- If using wired controller Interface 1, ensure an RS-232 to RS-485 converter is installed
- Verify the Modbus Slave address on the wired controller (COMMISSION → FUNCTION 4/4 → Address)
- Confirm TapHome is set to: 9600 baud, no parity, 1 stop bit
- Try using the indoor unit PCB connectors (CN1–CN4) directly instead of the wired controller BMS port
Mode changes not working
- Verify the unit is OFF before changing the operation mode — mode changes are blocked while the unit is running
- Check that the water tank is installed (C:29) if selecting Hot water, Cool+Hot water, or Heat+Hot water modes
- For heating-only units, Cool and Cool+Hot water modes are ineffective
Holiday Mode / Manual Defrost not activating
- The unit must be OFF (H:42 = 0x55) before these functions can be enabled
- The template WriteScript checks the ON/OFF state and shows a warning if the system is on
Sensor errors appearing in TapHome
- Check the specific error coil in the Outdoor Unit Status service attributes
- For indoor unit sensor errors (C:152–C:160), inspect the corresponding temperature sensor connections on the PCB
- Use the Error Reset service action (H:44) to clear recoverable faults after resolving the issue
