Modbus is an open communication protocol. It lets you expand your TapHome project by thousands of compatible devices – IO modules, special sensors etc.

Core comes with three bus terminals. Besides TapHome internal bus they also support Modbus. This means that you don’t need to buy any extra device from TapHome in order to connect to Modbus devices.

Supported Modbus types

  • Modbus RTU
  • Modbus TCP


In Menu – Settings – Hardware – Modbus, select Add Modbus Devices

Supported Modbus Device types

Use generic device types to define custom Modbus integration:

  • Temperature sensor
  • Thermostat
  • Switch
  • Multi-value Switch
  • Dimmer / Analog Output
  • Electric meter
  • Modbus Wrapper

Preset devices

  • Atrea
  • Domat M312 (Triac PWM Output Module)
  • Domat UC100 Thermostat
  • Acean DWH5x
  • SFAR MiniModbus 1TE (PT100/500/1000 temperature sensor input)

Service settings

Open device – Service Settings – tab Device

Read and Write expressions

MODBUSR(<RegisterType>, <RegisterAddress>, <DataType>)

MODBUSW(<RegisterType>, <RegisterAddress>, <DataType>, <DeviceVariableToWrite>)

<RegisterType> = C (coil), A (analog input), H (holding register), D (discrete input), SC (single coil), SH (single holding register)

<RegisterAddress> = modbus register address

<DataType> = Int16 (-32,768 to 32,767), Uint16 (0 to 65,535), Int32 (-2,147,483,648 to 2,147,483,647), Uint32 (0 to 4294967295), Bool (0 or 1). All data types can have one of the prefixes “BigEndian” or “LittleEndian” to define byte order.

<DeviceVariableToWrite> = Device variable to be written to modbus register – can be found in advanced settings

Example: Use Expression to get actual temperature from Modbus device

MODBUSR(H, 20, Int16)/100
   Returns value of holding register on address 20 in int16 format and divides it by 100.


Different devices implement expressions to get and/or write their values from/to Modbus:

  • Read temperature (Temperature sensor / Thermostat)
  • Read humidity (Thermostat)
  • Read switch state (Switch / Multivalue switch)
  • Write switch state (Switch / Multivalue switch)
  • Read desired temperature (Thermostat)
  • Write desired temperature (Thermostat)
  • Read total consumption (Electric meter)
  • Read demand (Electric meter)
  • Read level (AO)
  • Write level (AO)

Internal poll interval

Number of milliseconds; defines how often values should be refreshed.