TapHome

Sinclair Ontario Heat Pump

Modbus RTU
Submitted by
Last updated: 03. 2026
Sinclair Ontario Heat Pump

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
Sinclair Ontario indoor unit PCB layout showing RS-485 connectors CN1-CN4

The indoor unit PCB has 4 RS-485 connectors for Modbus communication:

ConnectorTypePinout
CN1RS-485 with 12V (4-pin)1: +12V, 2: B, 3: A, 4: GND
CN2RS-485 without 12V (4-pin)1: B, 2: A
CN3RS-485 without 12V (3-pin)B, A
CN4RS-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:

InterfaceTypePinoutUse
1 — BMS2-wire, AWG24 twisted pair1: B, 2: AConnect to BMS/TapHome via RS-232 to RS-485 converter
2 — +12VDC4-wire, AWG24, 8m max1: +12VDC, 2: B, 3: A, 4: GNDEquipment 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:

  1. Power on the controller, press COMMISSION to access the COMMISSION page
  2. Press FUNCTION to go to the FUNCTION page
  3. Press Next (rightmost button) to navigate to FUNCTION page 4/4 where “Address” is displayed
  4. Select Address and use + / - to set the desired value (range 1–253, default 1)
  5. Press OK to save
Sinclair Ontario wired controller COMMISSION menu for Modbus address setup
Sinclair Ontario address setting screen showing range 1-253

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
  1. 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
  2. Verify the Modbus Slave address on the wired controller (COMMISSION → FUNCTION 4/4 → Address)
  3. Confirm TapHome is set to: 9600 baud, no parity, 1 stop bit
  4. Try using the indoor unit PCB connectors (CN1–CN4) directly instead of the wired controller BMS port
Mode changes not working
  1. Verify the unit is OFF before changing the operation mode — mode changes are blocked while the unit is running
  2. Check that the water tank is installed (C:29) if selecting Hot water, Cool+Hot water, or Heat+Hot water modes
  3. For heating-only units, Cool and Cool+Hot water modes are ineffective
Holiday Mode / Manual Defrost not activating
  1. The unit must be OFF (H:42 = 0x55) before these functions can be enabled
  2. The template WriteScript checks the ON/OFF state and shows a warning if the system is on
Sensor errors appearing in TapHome
  1. Check the specific error coil in the Outdoor Unit Status service attributes
  2. For indoor unit sensor errors (C:152–C:160), inspect the corresponding temperature sensor connections on the PCB
  3. Use the Error Reset service action (H:44) to clear recoverable faults after resolving the issue

Available devices

Sinclair Ontario Module
Service Attributes
T-HP max [°C]reads H:16 (UInt16); maximum heat pump outlet temperature, range 40–55°C, default 50°C
Cool run time [min]reads H:33 (UInt16); minimum compressor run time in cooling mode, range 1–10 min, default 3 min
Heat run time [min]reads H:34 (UInt16); minimum compressor run time in heating mode, range 1–10 min, default 5 min
Water Pump Statereads C:175 (Bool); On/Off status of indoor unit water pump
Other thermalreads C:27 (Bool); With/Without — whether other thermal source is enabled
Other thermal logicreads H:35 (UInt16); other thermal source logic mode 1–3
T-Other switch on [°C]reads H:15 (Int16); outdoor temperature threshold for other thermal source activation, range -20 to 18°C
Other Heat Source Statereads C:169 (Bool); On/Off status of other heat source
Optional E-Heater logicreads H:37 (UInt16); optional e-heater logic mode 1–2
Current limit value [A]reads H:38 (UInt16); maximum current limit, range 0–50 A, default 16 A
Power limit [kW]reads H:43 (UInt16) × 10; power limit in kW (register value × 10), range 0–10 kW
Service Actions
Set T-HP maxwrites H:16 (UInt16); range 40–55°C
Set Cool run timewrites H:33 (UInt16); range 1–10 min
Set Heat run timewrites H:34 (UInt16); range 1–10 min
Set Other thermalwrites C:27 (Bool); 0=Without, 1=With
Set Other thermal logicwrites H:35 (UInt16); range 1–3
Set T-Other switch onwrites H:15 (Int16); range -20 to 18°C
Change Optional E-Heater logicwrites H:37 (UInt16); range 1–2
Change Current limit valuewrites H:38 (UInt16); range 1–50 A
Change Power limitwrites H:43 (UInt16); value in 0.1 kW units, range 1–100 (= 0.1–10 kW)
Reset errorwrites H:44 (UInt16); 0=Does not clear fault, 1=Clear fault

Sinclair Ontario

Service Attributes
T-HP max [°C]
modbusr(H, 16, uint16)
Cool run time [min]
modbusr(H, 33, uint16)
Heat run time [min]
modbusr(H, 34, uint16)
Water Pump State
if(modbusr(c, 175, bool), "On", "Off")
Other thermal
if(modbusr(c,27,bool), "With", "Without")
Other thermal logic
modbusr(h,35,uint16)
T-Other switch on [°C]
MODBUSR(H, 15, Int16)
Other Heat Source State
if(modbusr(c, 169, bool), "On", "Off")
Optional E-Heater logic
modbusr(h,37,uint16)
Current limit value [A]
modbusr(h,38,uint16)
Power limit [kW]
modbusr(h,43,uint16) * 10
Service Actions
Set T-HP max
Parameters: T-HP max (40–55 C)
modbusw(H, 16, uint16, C)
Set Cool run time
Parameters: Cool run time (1–10 min)
modbusw(H, 33, uint16, min)
Set Heat run time
Parameters: Heat run time (1–10 min)
modbusw(H, 34, uint16, min)
Set Other thermal
Parameters: Other thermal
modbusw(c, 27, bool, ot)
Set Other thermal logic
Parameters: Logic (1–3 lo)
modbusw(h,35,uint16,lo)
Set T-Other switch on
Parameters: T-Other switch on (-20–18 temperature)
modbusw(h,15,int16,temperature)
Change Optional E-Heater logic
Parameters: Logic (1–2 lo)
modbusw(h,37,uint16,lo)
Change Current limit value
Parameters: limit (1–50 lo)
modbusw(h,38,uint16,lo)
Change Power limit
Parameters: Value [0.1 * kW] (1–100 val)
modbusw(h,43,uint16,val)
Reset error
Parameters: Parameter1
modbusw(h,44,uint16,Abr1)
Delta-T Cooling Thermostat

Cooling temperature differential — controls hysteresis band around cooling setpoint (2–10°C)

Register: H:29 UInt16 Unit: °C numeric

Delta-T Cooling

Read desired temperature
MODBUSR(H, 29, uInt16)
Write desired temperature
MODBUSW(H, 29, uInt16, round(Se))
Delta-T Heating Thermostat

Heating temperature differential — controls hysteresis band around heating setpoint (2–10°C)

Register: H:30 UInt16 Unit: °C numeric

Delta-T Heating

Read desired temperature
MODBUSR(H, 30, uInt16)
Write desired temperature
MODBUSW(H, 30, uInt16, round(Se))
Delta-T Room Temperature Thermostat

Room temperature differential for thermostat on/off cycling (1–5°C)

Register: H:32 UInt16 Unit: °C numeric

Delta-T Room Temperature

Read desired temperature
MODBUSR(H, 32, uInt16)
Write desired temperature
MODBUSW(H, 32, uInt16,round(Se))
Air Removal Multi-value Switch

Water system air purge — Air, Water tank, or Off

Register: H:41 UInt16 numeric
Values / States: Air · Water tank · Off

Air Removal

Read switch state
MODBUSR(H, 41, uInt16)
Write switch state
MODBUSW(H, 41, uInt16, Mu)
Clock Timer Switch
Register: C:9 Bool

Clock Timer

Read switch state
MODBUSR(C, 9, Bool)
Write switch state
MODBUSW(C, 9, Bool, St)
Control State Switch

Selects control mode — T-water out (water outlet temperature) or T-room (room temperature)

Register: C:17 Bool
Values / States: T-room · T-water out
Service Actions
Set Remote sensor

Control State

Read switch state
MODBUSR(C, 17, Bool)
Write switch state
MODBUSW(C, 17, Bool, St)
Read (module)
if(modbusr(c, 160, bool), adderror("Remote Room Temp Sensor Error"));
Service Attributes
Remote sensor
if(modbusr(C, 33, bool), "With", "Without")
Service Actions
Set Remote sensor
Parameters: Remote sensor
modbusw(C, 33, bool, rs)
Discharge Pressure Temperature Sensor Read-only

Compressor discharge pressure as saturated temperature equivalent

Register: H:124 Int16 Unit: °C numeric

Discharge Pressure

Read temperature
MODBUSR(H, 124, Int16)/10
Disinfection Multi-value Switch

Water system disinfection cycle status — Off, Running, Done, or Failed

Register: H:135C:23 UInt16 numeric
Values / States: Off · Running · Done · Failed
Service Actions
Set Disinfection Temp
Start Disinfection
Stop Disinfection

Disinfection

Read switch state
MODBUSR(H, 135, uInt16)
Write switch state
if (Mu = 1, modbusw(C, 23, bool, 1));
if (Mu = 0 or Mu = 2, modbusw(C, 23, bool, 0));
Service Attributes
Disinfection Temp [°C]
modbusr(H, 4, uint16)
Service Actions
Set Disinfection Temp
Parameters: Disinfection Temp (40–70 C)
modbusw(H, 4, uint16, C)
Start Disinfection
modbusw(C, 23, bool, 1)
Stop Disinfection
modbusw(C, 23, bool, 0)
Emergency Mode Switch

Emergency heating via e-heater only — activates when outdoor unit fails

Register: C:26 Bool

Emergency Mode

Read switch state
MODBUSR(C, 26, Bool)
Write switch state
MODBUSW(C, 26, Bool, St)
Fast Hot Water Switch

Simultaneous heat pump + e-heater operation for faster water heating

Register: C:18 Bool

Fast Hot Water

Read switch state
MODBUSR(C, 18, Bool)
Write switch state
MODBUSW(C, 18, Bool, St)
Floor Commissioning Reed Contact Read-only

Floor preheating process for initial floor heating system use — requires system OFF

Register: C:25 Bool
Service Attributes
Floor Debug Segments
Floor Debug Period 1 temp
Delta-T of segment
Segment time
Service Actions
Enable Floor Debug
Start Floor Debug
Stop Floor Debug
Set Floor Debug Segments
Set Floor Debug Period 1 temp
Set Delta-T of segment
Set Segment time

Floor Commissioning

Read
MODBUSR(C, 25, Bool)
Service Attributes
Floor Debug Segments
modbusr(H,5,uint16)
Floor Debug Period 1 temp [°C]
modbusr(H,6,uint16)
△T of segment [°C]
modbusr(h,7,uint16)
Segment time [hours]
modbusr(h,8,uint16)
Service Actions
Enable Floor Debug
Parameters: On/Off
if sw = 0
    MODBUSW(C, 24, Bool, 0);
else
    if on_off = 0
        MODBUSW(C, 24, Bool, 1);
    else
        return("Please turn off the system first");
    end
end
Start Floor Debug
MODBUSW(C, 25, Bool, 1)
Stop Floor Debug
MODBUSW(C, 25, Bool, 0)
Set Floor Debug Segments
Parameters: Sections (1–10 se)
modbusw(H,5,uint16,se)
Set Floor Debug Period 1 temp
Parameters: Temperature (25–35 C)
modbusw(h,6,uint16,C)
Set △T of segment
Parameters: Temperature (2–10 C)
modbusw(h,7,uint16,C)
Set Segment time
Parameters: Time (12–72 h)
modbusw(h,8,int16,h)
Force Mode Multi-value Switch

Forced operation for refrigerant recovery and debugging only — not for normal use

Register: H:40 UInt16 numeric
Values / States: Force-cool · Force-heat · Off

Force Mode

Read switch state
MODBUSR(H, 40, uInt16)
Write switch state
MODBUSW(H, 40, uInt16, Mu)
Holiday Mode Switch

Keeps indoor/water temperature in range to prevent freezing — heating only, requires system OFF

Register: C:34 Bool

Holiday Mode

Read switch state
MODBUSR(C, 34, Bool)
Write switch state
if on_off = 0
    MODBUSW(C, 34, Bool, St);
else
    counter := 10;
end
Read (module)
if counter > 0
    addwarning("Please turn off the system first!");
    counter := counter -1;
end
Hot Water Tank Thermostat

Water tank temperature and setpoint control (40–80°C) with heater state and priority monitoring

Register: H:128H:13 Int16 Unit: °C numeric
Service Attributes
Water Tank Heater State
Tank heater Logic
Other thermal logic
Delta-T hot water
Cool+Hot Water Priority
Heat+Hot Water Priority
Service Actions
Set Tank heater Logic
Set Delta-T hot water
Set Cool+Hot Water Priority
Set Heat+Hot Water Priority

Hot Water Tank

Read temperature
MODBUSR(H, 128, Int16)/10
Read desired temperature
MODBUSR(H, 13, uInt16)
Write desired temperature
MODBUSW(H, 13, uInt16, round(Se))
Read (module)
water_tank := modbusr(C, 29, bool);

if(!water_tank, adderror("No Water Tank Installed"));
if(modbusr(c, 156 , bool), adderror("Water Tank Temp Sensor Error"));
Service Attributes
Water Tank Heater State
if(modbusr(c, 173, bool), "On", "Off")
Tank heater Logic
modbusr(H, 36, uint16)
Other thermal logic
modbusr(H, 35, uint16)
△T-hot water [°C]
modbusr(H, 31, uint16)
Cool+Hot Water Priority
if(modbusr(c, 19, bool), "Hot water", "Cool")
Heat+Hot Water Priority
if(modbusr(c, 20, bool), "Hot water", "Heat")
Service Actions
Set Tank heater Logic
Parameters: Logic (1–2 L)
modbusw(H, 36, uint16, L)
Set △T-hot water
Parameters: △T (2–8 C)
modbusw(H, 31, uint16, C)
Set Cool+Hot Water Priority
Parameters: Priority
modbusw(C, 19, bool, P)
Set Heat+Hot Water Priority
Parameters: Priority
modbusw(C, 20, bool, P)
Manual Defrost Switch

Triggers manual defrost cycle — requires system OFF

Register: C:36 Bool

Manual Defrost

Read switch state
MODBUSR(C, 36, Bool)
Write switch state
if on_off = 0
    MODBUSW(C, 36, Bool, St);
else
    counter := 10;
end
Operation Mode Multi-value Switch

Heat pump operating mode — Heat, Hot water, Cool+Hot water, Heat+Hot water, or Cool

Register: H:2 UInt16 numeric
Values / States: Heat · Hot water · Cool+Heat water · Heat +Hot water · Cool

Operation Mode

Read switch state
var ret := MODBUSR(H, 2, uInt16);

if( !water_tank and (ret = 2 or ret = 3 or ret = 4), addwarning("Water tank is unavailable"));

return(ret)
Write switch state
MODBUSw(H, 2, uInt16,Mu)
ON/OFF Switch
Register: H:42 UInt16 numeric

ON/OFF

Read switch state
var status := MODBUSR(H, 42, uint16);

if status = 0xAA
    on_off := 1;
    return(1);
else
    on_off := 0;
    return(0);
end
Write switch state
if St = 0
    MODBUSW(H, 42, uint16, 0x55);
else
    MODBUSW(H, 42, uint16, 0xAA);
end
Optional E-Heater Multi-value Switch

Auxiliary electric heater configuration — 1 set, 2 sets, or Off

Register: H:3 UInt16 numeric
Values / States: 1 set · 2 sets · Off

Optional E-Heater

Read switch state
MODBUSR(H, 3, uInt16)
Write switch state
MODBUSw(H, 3, uInt16,Mu)
Outdoor Unit Status Multi-value Switch Read-only

Outdoor unit operating state with 38 error/protection coil monitoring and component diagnostics

Register: H:117 UInt16 numeric
Values / States: Cool · Heat · Hot water · Off

Outdoor Unit Status

Read switch state
MODBUSR(H, 117, uInt16)
Read (module)
if(modbusr(c, 88 , bool), adderror("Ambient Temp Sensor Error"));
if(modbusr(c, 89 , bool), adderror("Defrost Temp Sensor Error"));
if(modbusr(c, 90 , bool), adderror("Discharge Temp Sensor Error"));
if(modbusr(c, 91 , bool), adderror("Suction Temp Sensor Error"));
if(modbusr(c, 92 , bool), adderror("ODU Fan Error"));
if(modbusr(c, 93 , bool), adderror("High-Pressure Sensor Error"));
if(modbusr(c, 94 , bool), adderror("High Pressure Protection"));
if(modbusr(c, 95 , bool), adderror("Low Pressure Protection"));
if(modbusr(c, 96 , bool), adderror("High Discharge Protection"));
if(modbusr(c, 97 , bool), adderror("Capacity DIP Setting Error"));
if(modbusr(c, 98 , bool), adderror("Communication Error between IDU and ODU"));
if(modbusr(c, 99 , bool), adderror("Economizer In Sensor Error"));
if(modbusr(c, 100 , bool), adderror("Economizer Out Sensor Error"));
if(modbusr(c, 102 , bool), adderror("System Recoverable Protection"));
if(modbusr(c, 103 , bool), adderror("System Irrecoverable Protection"));
if(modbusr(c, 108 , bool), adderror("Flow Switch Protection"));
if(modbusr(c, 109 , bool), adderror("4-way valve error"));
if(modbusr(c, 128 , bool), adderror("DC Bus Low-voltage or Voltage Drop"));
if(modbusr(c, 129 , bool), adderror("DC Bus Over-voltage"));
if(modbusr(c, 129 , bool), adderror("DC Bus Over-voltage"));
if(modbusr(c, 130 , bool), adderror("AC Current Protection (Input Side)"));
if(modbusr(c, 131 , bool), adderror("IPM Error"));
if(modbusr(c, 132 , bool), adderror("PFC Error"));
if(modbusr(c, 133 , bool), adderror("Startup Error"));
if(modbusr(c, 134 , bool), adderror("Phase Loss"));
if(modbusr(c, 135 , bool), adderror("Drive Module Resetting"));
if(modbusr(c, 136 , bool), adderror("Compressor Overcurrent"));
if(modbusr(c, 137 , bool), adderror("Over-speed"));
if(modbusr(c, 138 , bool), adderror("Charging Circuit Error or Current Sensor Error"));
if(modbusr(c, 139 , bool), adderror("Desynchronizing"));
if(modbusr(c, 140 , bool), adderror("Compressor Stalling"));
if(modbusr(c, 141 , bool), adderror("Drive Communication Error"));
if(modbusr(c, 142 , bool), adderror("Radiator or IPM or PFC Over-temperature"));
if(modbusr(c, 143 , bool), adderror("Defective Radiator or IPM or PFC"));
if(modbusr(c, 146 , bool), adderror("Charging Circuit Error"));
if(modbusr(c, 147 , bool), adderror("AC Input Voltage Error"));
if(modbusr(c, 148 , bool), adderror("Drive Board Temp Sensor Error"));
if(modbusr(c, 149 , bool), adderror("AC Contactor Protection or Input Cross-zero Error"));
if(modbusr(c, 150 , bool), adderror("Temp Drift Protection"));
if(modbusr(c, 151 , bool), adderror("Sensor Connection Protection (Connection to Phase U or V failed)"));
Service Attributes
Compressor State
if(modbusr(c, 80, bool), "On", "Off")
Fan State
if(modbusr(c, 81, bool), "On", "Off")
4-way Valve State
if(modbusr(c, 83, bool), "On", "Off")
Compressor Crankcase Heater State
if(modbusr(c, 84, bool), "On", "Off")
Underpan Heater State
if(modbusr(c, 85, bool), "On", "Off")
Defrosting State
if(modbusr(c, 86, bool), "Defrosting", "End")
Oil Return State
if(modbusr(c, 87, bool), "In oil return", "No oil return")
T-discharge [°C]
MODBUSR(H, 119, Int16)/10
T-defrost [°C]
MODBUSR(H, 120, Int16)/10
T-suction [°C]
MODBUSR(H, 121, Int16)/10
T-economizer in [°C]
MODBUSR(H, 122, Int16)/10
T-economizer out [°C]
MODBUSR(H, 123, Int16)/10
Quiet Mode Switch

Reduces running noise via automatic compressor and fan speed control

Register: C:21 Bool

Quiet Mode

Read switch state
MODBUSR(C, 21, Bool)
Write switch state
MODBUSW(C, 21, Bool, St)
Room Temperature Cooling Setpoint Thermostat

Room temperature target for cooling — active only when Control State is set to T-room (18–30°C)

Register: H:11 UInt16 Unit: °C numeric

Room Temperature Cooling Setpoint

Read desired temperature
MODBUSR(H, 11, uInt16)
Write desired temperature
MODBUSW(H, 11, uInt16, round(Se))
Room Temperature Heating Setpoint Thermostat

Room temperature target for heating — active only when Control State is set to T-room (18–30°C)

Register: H:12 UInt16 Unit: °C numeric

Room Temperature Heating Setpoint

Read desired temperature
MODBUSR(H, 12, uInt16)
Write desired temperature
MODBUSW(H, 12, uInt16, round(Se))
Solar Heater Switch

Solar heater priority for energy conservation — warns if solar is not available

Register: C:16 Bool
Service Attributes
Solar setting
Service Actions
Set Solar

Solar Heater

Read switch state
var ret := MODBUSR(C, 16, Bool);

if (ret, if ( !MODBUSR(C, 31, Bool), addwarning("Solar is not available")));

return(ret);
Write switch state
MODBUSW(C, 16, Bool, St)
Service Attributes
Solar setting
if(modbusr(C, 31, bool), "With", "Without")
Service Actions
Set Solar
Parameters: Solar
modbusw(C, 31, bool, S)
E-Heater Activation Temperature Thermostat

Outdoor temperature threshold for auxiliary electric heater activation (-20 to 18°C)

Register: H:14 Int16 Unit: °C numeric

E-Heater Activation Temperature

Read desired temperature
MODBUSR(H, 14, Int16)
Write desired temperature
MODBUSW(H, 14, Int16, round(Se))
Gas Pipe Temperature Temperature Sensor Read-only

Refrigerant gas pipe (vapor line) temperature

Register: H:130 Int16 Unit: °C numeric

Gas Pipe Temperature

Read temperature
MODBUSR(H, 130, Int16)/10
Liquid Pipe Temperature Temperature Sensor Read-only

Refrigerant liquid pipe temperature

Register: H:131 Int16 Unit: °C numeric

Liquid Pipe Temperature

Read temperature
MODBUSR(H, 131, Int16)/10
Optional Water Sensor Temperature Temperature Sensor Read-only
Register: H:126 Int16 Unit: °C numeric

Optional Water Sensor Temperature

Read temperature
MODBUSR(H, 126, Int16)/10
Outdoor Temperature Temperature Sensor Read-only
Register: H:118 Int16 Unit: °C numeric

Outdoor Temperature

Read temperature
MODBUSR(H, 118, Int16)/10
Remote Room Temperature Temperature Sensor Read-only

Remote room temperature sensor reading — warns if remote sensor is not available

Register: H:129 Int16 Unit: °C numeric

Remote Room Temperature

Read (module)
if( !modbusr(C, 33, bool), addwarning("Remote sensor not available"))
Read temperature
MODBUSR(H, 129, Int16)
Water Inlet Temperature (Plate Exchanger) Temperature Sensor Read-only
Register: H:127 Int16 Unit: °C numeric

Water Inlet Temperature (Plate Exchanger)

Read temperature
MODBUSR(H, 127, Int16)/10
Water Outlet Temperature (Plate Exchanger) Temperature Sensor Read-only
Register: H:125 UInt16 Unit: °C numeric

Water Outlet Temperature (Plate Exchanger)

Read temperature
MODBUSR(H, 125, uInt16)/10
Temperature Timer Switch
Register: C:10 Bool

Temperature Timer

Read switch state
MODBUSR(C, 10, Bool)
Write switch state
MODBUSW(C, 10, Bool, St)
Thermostat Configuration Multi-value Switch

External thermostat connection type — Without, Air, or Air+Hot water

Register: H:39 UInt16 numeric
Values / States: Without · Air · Air + Hot water

Thermostat Configuration

Read switch state
MODBUSR(H, 39, uInt16)
Write switch state
MODBUSW(H, 39, uInt16, Mu)
Thermostat State Multi-value Switch Read-only

External thermostat demand status — Cool, Heat, or Off

Register: H:132 Int16 numeric
Values / States: Cool · Heat · Off

Thermostat State

Read switch state
MODBUSR(H, 132, Int16)
Weather-Dependent Operation Switch

Automatic setpoint adjustment based on outdoor temperature using weather curves

Register: C:22 Bool
Service Attributes
AT-Heat
AT-Cool
RT-Heat
RT-Cool
WT-Heat
WT-Cool

Weather-Dependent Operation

Read switch state
MODBUSR(C, 22, Bool)
Write switch state
MODBUSW(C, 22, Bool, St)
Service Attributes
AT-Heat
MODBUSR(H, 18, Int16) + " / " + MODBUSR(H, 17, uInt16)
AT-Cool
MODBUSR(H, 24, uInt16) + " / " + MODBUSR(H, 23, uInt16)
RT-Heat
MODBUSR(H, 20, uInt16) + " / " + MODBUSR(H, 19, uInt16)
RT-Cool
MODBUSR(H, 26, uInt16) + " / " + MODBUSR(H, 25, uInt16)
WT-Heat
MODBUSR(H, 22, uInt16) + " / " + MODBUSR(H, 21, uInt16)
WT-Cool
MODBUSR(H, 28, uInt16) + " / " + MODBUSR(H, 27, uInt16)
Weekly Timer Switch
Register: C:8 Bool

Weekly Timer

Read switch state
MODBUSR(C, 8, Bool)
Write switch state
MODBUSW(C, 8, Bool, St)
Water Outlet Temperature Cooling Setpoint Thermostat

Water outlet temperature target for cooling — active when Control State is T-water out (7–25°C)

Register: H:125H:9 UInt16 Unit: °C numeric

Water Outlet Temperature Cooling Setpoint

Read temperature
MODBUSR(H, 125, uInt16)/10
Read desired temperature
MODBUSR(H, 9, uInt16)
Write desired temperature
MODBUSW(H, 9, uInt16, round(Se))
Water Outlet Temperature Heating Setpoint Thermostat

Water outlet temperature target for heating — active when Control State is T-water out (20–60°C)

Register: H:125H:10 UInt16 Unit: °C numeric

Water Outlet Temperature Heating Setpoint

Read temperature
MODBUSR(H, 125, uInt16)/10
Read desired temperature
MODBUSR(H, 10, uInt16)
Write desired temperature
MODBUSW(H, 10, Int16, round(Se))
Connection: Modbus RTU • 9600 baud• 8N1 • Slave ID: $[SlaveId]
Possible improvements (16)
  • C:11 Gate-Ctrl. — Gate card control — 0=Close, 1=Open. Hotel gate-card integration.
  • C:35 Refrigerant Recovery — 0=Off, 1=On. For service/maintenance — refrigerant recovery mode.
  • C:37 Cool 2-Way Valve — 0=Off, 1=On. Manual control of cooling 2-way valve.
  • H:117 Unit Status (as sensor) — Currently exposed as Outdoor Unit multi-value switch; could be a dedicated read-only sensor. Values: 01=Cool, 02=Heat, 06=Hot water, 08=Off.
  • H:133 T-floor debug — Current calculated floor debug temperature. Available as read-only sensor.
  • H:134 Debug time — Remaining floor debug time in hours.
  • H:136 Error Time for Floor Debug — Floor debug error timeout in seconds.
  • H:137 T-weather depend — Current calculated weather-dependent setpoint temperature.
  • H:142 Setting frequency — Compressor target frequency, 0–100 Hz.
  • H:143 Running frequency — Compressor actual running frequency, 0–100 Hz.
  • C:38 Heat 2-Way Valve — Read-only. 0=Off, 1=On. Heating 2-way valve state.
  • C:64 Comm Error IDU-Wired Controller — Read-only. 1=Error. Communication error between wired controller and indoor unit.
  • C:65 Comm Error ODU-Wired Controller — Read-only. 1=Error. Communication error between wired controller and outdoor unit.
  • C:66 Comm Error Drive-Wired Controller — Read-only. 1=Error. Communication error between wired controller and drive.
  • C:67 HP-Antifree — Read-only. 0=Off, 1=On. Heat pump antifreeze protection active.
  • C:152-191 Indoor Unit Sensor/State Coils — Various indoor unit sensor errors and component states (E-heater, water pump, valves, etc.). Partially covered by Hot Water Tank readscript (C:156) and Outdoor Unit readscript. Remaining: C:152 (condenser leaving water), C:153 (e-heater leaving water), C:154 (refrigerant liquid), C:155 (condenser entering water), C:158 (vapor line), C:160 (remote room — covered by Control State), C:169–C:191 (component states — partially covered by module service attributes).

Sources