Modbus Climate

The modbus thermostat allows you to use a sensor value (current temperature) and target value (target temperature) from Modbus registers.


To use your Modbus thermostat in your installation, add the following to your configuration.yaml file:

# Example configuration.yaml entry
  - platform: modbus
    name: Watlow F4T
    hub: hub1
    slave: 1
    data_type: uint
    data_count: 1
    scale: 0.1
    offset: 0
    precision: 1
    max_temp: 30
    min_temp: 15
    temp_step: 1
    target_temp_register: 2782
    current_temp_register: 27586

Configuration Variables

name stringRequired

Name of the device

hub string(Optional, default: default)

The name of the hub.

slave integerRequired

The number of the slave (Optional for tcp and upd Modbus, use 1).

target_temp_register integerRequired

Register number for target temperature (Setpoint).

current_temp_register integerRequired

Register number for current temperature (Process value).

current_temp_register_type string(Optional, default: holding)

Modbus register type (holding, input) for current temperature, default holding.

data_type string(Optional, default: float)

Response representation (int, uint, float, custom). If float selected, value will converted to IEEE 754 floating point format.

data_count integer(Optional, default: 2)

Number of registers to read.

precision integer(Optional, default: 1)

Number of valid decimals.

scale float(Optional, default: 1)

Scale factor (output = scale * value + offset).

offset float(Optional, default: 0)

Final offset (output = scale * value + offset).

max_temp integer(Optional, default: 35)

Maximum setpoint temperature.

min_temp integer(Optional, default: 5)

Maximum setpoint temperature.

temp_step float(Optional, default: 0.5)

The supported step size a target temperature can be increased/decreased.

temperature_unit string(Optional, default: C)

Temperature unit reported by the current_temp_register. C or F


Service Description
set_temperature Set Temperature. Requires value to be passed in, which is the desired target temperature. value should be in the same type as data_type