Domekt Komfovent C4 Plus Modbus Registers

From ivc wiki
Jump to navigationJump to search
Komfovent 200ve wiring diagram.png

Domekt Komfovent C4 is a AHU (Air Handling Unit) for use in a balanced HVAC system. The C4 is an older standard use from approx. 2011 to 2016.

If you have a unit without a control panel or want to interface the unit with an external automation. ex. Home Assistant, the following data will make that possible.

To make sure the unit works at all, jump the FC-wires together and the unit should start spinning at max. after three seconds. This confirms that the MCU works as expected.

Tools

To manually interface with the unit over Modbus, I would recommend trying the trail version of Modbus Poll. You will have a complete control interface and can easily send queries and receive responses from the unit.

Later you can use Home Assistant to build an entire control panel, better than what is provided by the OEM.

Connection

Connect the unit to a computer using the provided RS485/ModBus cable extruding from the top. There is no need to add 820 Ohm 5V pull-up/gnd pull-down or 120 Ohm termination. It works fine as is.

Komfovent c4 pinout.png

The pin-out is as the following:

RJ-45 flat cable Wire color Function
Pin 1 - Not used
Pin 2 - Not used
Pin 3 Red +24VDC
Pin 4 Yellow RS485 A+
Pin 5 Green RS485 B-
Pin 6 White Gnd
Pin 7 - Not used
Pin 8 - Not used

Modbus settings

Domekt c4 plus dip switches.png

To establish a working connection, it's important to match the following connection parameters. A single wrong setting will make the connection not work at all.

Bits per second/baudrate 19200
Data bits/word length 8
Parity Even
Stop bits 1

It is also important to use the correct Modbus ID. It's the identifier on the bus and has to be correct in order for communication to happen with the AHU.

The C4 unit has a different Modbus ID than later models, so make sure to double check. Either of the following will work with only one unit on the Modbus line.

Modbus ID 20 (specific C4 identification address)
254 (common identification address)

Register list

The C4 unit uses the following Modbus data register functions to read and write data.

A CR2032 battery keeps the registers concurrent when the unit is unplugged, ex. the time and date. Needs replacing after 8 years.

The unit will respond 01 Illegal register or 01 Illegal data register if you are trying to access something that does not exist. If you receive Timeout responses, make sure you use Modbus ID 20, cabling is correct, and the unit is plugged into the mains.

Description Modbus protocol Function description Unit properties
Read data Function code 03 Read Holding Registers / analog output holding registers Operation status, temperatures, fans speed, and etc.
Write data single register Function code 06 Preset Single Register / analog output holding register Turn on/off unit, set temperature, change auto/manual mode
Write multiple data registers Function code 16 Preset Multiple Registers / two analog output holding registers Set multiple individual registers at once, same as 06

Controller registers available on the C4 unit. When manually inquiring the unit, use the actual register address. This is because Domekt offsets the register address by add 9000 and subtract -1, ex. register address 1000 => 99999.

  • EC = Stepper type fan motor, digitally controlled - DIP switch 3 set to ON
  • AC = Regular alternating current type motor, transformer controlled - DIP switch 3 set to OFF

General settings and status

Modbus register actual Type Access Range Description Data values
99999 Read/write Integer 0..1 Operation start/stop 1-Start, 0-Stop
10000 Read/write Integer 0..1 Season (heating permitted or prohibited) 1-Winter, 0-Summer (air heater off)
10001 Read Integer 11..14 Alarm status (warnings) 14-Service, 13-Heater off, 11-Rotor stop
10002 Read Binary 0x0..0xF [b3-b0, 0..1]
Ex. 0x01=>64=>00000001
b0=1, rotating heat exchanger
DIP switch status b0-Heat exchange type,
b1-Heater type,
b2-Fan type,
b3-OVR-mode
(1-On, 0-Off)
10003 Read/write 2x Char/Int8 0x0000..0x183B Time, hhmm Ex. 8:05 => 0x0805, 18:30 => 0x121E (18=0x12, 30=0x1E)
10004 Read/write Integer 1-7 Day of the week 1-Mon, 2-Tue, 3-Wed, 4-Thu, 5-Fri, 6-Sat, 7-Sun
10005 Read/write 2x Char/Int8 0x0101..0x0C1F Month-day date, mmdd Ex. 9th May => 0x0509, 31th Sept => 0x091F (Sept=0x09, 31=0x1F)
10006 Read/write Integer 1900-2100 Year date, yyyy Ex. 2023
10007 Read Binary 0x00..0x7F [b7-b0, 0..1]
Ex. 0x40=>64=>00000010
b1=1, supply sensor B1 fault
Alarm status (stop flags) b1-Supply sensor B1,
b2-Heater overheating,
b3-Water temp. low,
b4-Rotor stop,
b5-Frost possibility,
b6-Air temp. high,
b7-Air temp. low
(1-Fault, 0-None)
10008 Read Integer 0..28 Alarm status (stop code) 3-Rotor stop,
4-Heater overheating,
9-Supply sensor B1,
19-Air temp. low,
20-Air temp. high,
27-Water temp. low,
28-Frost possibility
10009 Read/write Integer 1..100 Modbus ID, default 20 Ex. 20
10010 Read/write - - Unknown
10011 Read - - Unknown

Ventilation settings and status

Modbus register actual Type Access Range Description Data values
10099 Read/write Integer 1..3 Ventilation intensity level (manual mode) 1-Low fan speed (60VAC),
2-Normal fan speed (recommended) (150VAC),
3-High fan speed (230VAC)
10100 Read Integer 0..4 Ventilation intensity level current 0-Standby,
1-Low fan speed,
2-Normal fan speed,
3-High fan speed,
4-Override mode
10101 Read/write Integer 0..1 Control mode (Auto/Manual) (no Comfort or Economy mode available) 0-Manual (preset fan speed), 1-Auto (schedule)
10102 Read/write Integer 20..100 / 0 Supply ventilation intensity level 1 (EC-type fan) 20 to 100% (EC-fan only)
10103 Read/write Integer 20..100 / 0..2 Supply ventilation intensity level 2 (EC-type fan / AC-type fan) 20 to 100% (EC-fan), 0 to 2 (AC-fan)
10104 Read/write Integer 20..100 / 0 Supply ventilation intensity level 3 (EC-type fan) 20 to 100% (EC-fan only)
10105 Read/write Integer 20..100 / 0 Supply ventilation intensity level 4 (EC-type fan) 20 to 100% (EC-fan only)
10106 Read/write Integer 20..100 / 0 Exhaust ventilation intensity level 1 (EC-type fan) 20 to 100% (EC-fan only)
10107 Read/write Integer 20..100 / 0..2 Exhaust ventilation intensity level 2 (EC-type fan / AC-type fan) 20 to 100% (EC-fan), 0 to 2 (AC-fan)
10108 Read/write Integer 20..100 / 0 Exhaust ventilation intensity level 3 (EC-type fan) 20 to 100% (EC-fan only)
10109 Read/write Integer 20..100 / 0 Exhaust ventilation intensity level 4 (EC-type fan) 20 to 100% (EC-fan only)
10110 Read/write Integer 0..1 Override/"OVR"-mode, enables fan intensity level 4 (maximum) for a set time period 0-Disable, 1-Enable - DIP switch 4 set to ON will disable the exhaust fan, or OFF to leave both fans running
10111 Read/write Integer 1..90 Override mode timer duration 1 to 90 minutes
10112 Read Integer 0..90 Override timer count down 0 to 90 minutes

Temperature settings and status

Modbus register actual Type Access Range Description Data values
10299 Read Integer -300..750 Supply air temperature, C (after heat exchanger and heater element, to rooms) -30 to 75C, 10x C, ex. 250 => 25.0C
10300 Read/write Integer 0..300 Supply set point temperature, C (for calculation of recuperation, heating levels) 0 to 30C, 10x C, ex. 25.0C => 250
10301 Read/write Integer 0..300 Temperature correction, C (time based, lower or raise temperature in a set period) -90 to +90C, 10x C, ex. +4.5C => 45
10302 Read/write 2x Char/Int8 0x0000..0x183B Temperature correction start time Ex. 08:05 => 0x0805
10303 Read/write 2x Char/Int8 0x0000..0x183B Temperature correction stop time Ex. 15:05 => 0x0F05 (15=0x0F, 05=0x05)
10304 Read Integer -100..1100 Water temperature, C (external, if installed, DIP switch 2 set to ON) -10 to 110C, 10x C, ex. 320 => 32.0C

Schedule settings

Modbus register actual Type Access Range Description Data values
10199 Read/write 2x Char/Int8 0x0000..0x183B Mon1 start time Ex. 08:05 => 0x0805
10200 Read/write 2x Char/Int8 0x0000..0x183B Mon1 stop time Ex. 15:05 => 0x0F05
10201 Read/write 2x Char/Int8 0x0000..0x183B Mon2 start time Ex. 08:05 => 0x0805
10202 Read/write 2x Char/Int8 0x0000..0x183B Mon2 stop time Ex. 15:05 => 0x0F05
10203 Read/write 2x Char/Int8 0x0000..0x183B Mon3 start time Ex. 08:05 => 0x0805
10204 Read/write 2x Char/Int8 0x0000..0x183B Mon3 stop time Ex. 15:05 => 0x0F05
10205 Read/write 2x Char/Int8 0x0000..0x183B Tue1 start time Ex. 08:05 => 0x0805
10206 Read/write 2x Char/Int8 0x0000..0x183B Tue1 stop time Ex. 15:05 => 0x0F05
10207 Read/write 2x Char/Int8 0x0000..0x183B Tue2 start time Ex. 08:05 => 0x0805
10208 Read/write 2x Char/Int8 0x0000..0x183B Tue2 stop time Ex. 15:05 => 0x0F05
10209 Read/write 2x Char/Int8 0x0000..0x183B Tue3 start time Ex. 08:05 => 0x0805
10210 Read/write 2x Char/Int8 0x0000..0x183B Tue3 stop time Ex. 15:05 => 0x0F05
10211 Read/write 2x Char/Int8 0x0000..0x183B Wed1 start time Ex. 08:05 => 0x0805
10212 Read/write 2x Char/Int8 0x0000..0x183B Wed1 stop time Ex. 15:05 => 0x0F05
10213 Read/write 2x Char/Int8 0x0000..0x183B Wed2 start time Ex. 08:05 => 0x0805
10214 Read/write 2x Char/Int8 0x0000..0x183B Wed2 stop time Ex. 15:05 => 0x0F05
10215 Read/write 2x Char/Int8 0x0000..0x183B Wed3 start time Ex. 08:05 => 0x0805
10216 Read/write 2x Char/Int8 0x0000..0x183B Wed3 stop time Ex. 15:05 => 0x0F05
10217 Read/write 2x Char/Int8 0x0000..0x183B Thu1 start time Ex. 08:05 => 0x0805
10218 Read/write 2x Char/Int8 0x0000..0x183B Thu1 stop time Ex. 15:05 => 0x0F05
10219 Read/write 2x Char/Int8 0x0000..0x183B Thu2 start time Ex. 08:05 => 0x0805
10220 Read/write 2x Char/Int8 0x0000..0x183B Thu2 stop time Ex. 15:05 => 0x0F05
10221 Read/write 2x Char/Int8 0x0000..0x183B Thu3 start time Ex. 08:05 => 0x0805
10222 Read/write 2x Char/Int8 0x0000..0x183B Thu3 stop time Ex. 15:05 => 0x0F05
10223 Read/write 2x Char/Int8 0x0000..0x183B Fri1 start time Ex. 08:05 => 0x0805
10224 Read/write 2x Char/Int8 0x0000..0x183B Fri1 stop time Ex. 15:05 => 0x0F05
10225 Read/write 2x Char/Int8 0x0000..0x183B Fri2 start time Ex. 08:05 => 0x0805
10226 Read/write 2x Char/Int8 0x0000..0x183B Fri2 stop time Ex. 15:05 => 0x0F05
10227 Read/write 2x Char/Int8 0x0000..0x183B Fri3 start time Ex. 08:05 => 0x0805
10228 Read/write 2x Char/Int8 0x0000..0x183B Fri3 stop time Ex. 15:05 => 0x0F05
10229 Read/write 2x Char/Int8 0x0000..0x183B Sat1 start time Ex. 08:05 => 0x0805
10230 Read/write 2x Char/Int8 0x0000..0x183B Sat1 stop time Ex. 15:05 => 0x0F05
10231 Read/write 2x Char/Int8 0x0000..0x183B Sat2 start time Ex. 08:05 => 0x0805
10232 Read/write 2x Char/Int8 0x0000..0x183B Sat2 stop time Ex. 15:05 => 0x0F05
10233 Read/write 2x Char/Int8 0x0000..0x183B Sat3 start time Ex. 08:05 => 0x0805
10234 Read/write 2x Char/Int8 0x0000..0x183B Sat3 stop time Ex. 15:05 => 0x0F05
10235 Read/write 2x Char/Int8 0x0000..0x183B Sun1 start time Ex. 08:05 => 0x0805
10236 Read/write 2x Char/Int8 0x0000..0x183B Sun1 stop time Ex. 15:05 => 0x0F05
10237 Read/write 2x Char/Int8 0x0000..0x183B Sun2 start time Ex. 08:05 => 0x0805
10238 Read/write 2x Char/Int8 0x0000..0x183B Sun2 stop time Ex. 15:05 => 0x0F05
10239 Read/write 2x Char/Int8 0x0000..0x183B Sun3 start time Ex. 08:05 => 0x0805
10240 Read/write 2x Char/Int8 0x0000..0x183B Sun3 stop time Ex. 15:05 => 0x0F05
10241 Read/write Integer 0..3 Mon1 ventilation level (fan speed) 0-Standby, 1-Low, 2-Normal, 3-High
10242 Read/write Integer 0..3 Mon2 ventilation level (fan speed) 0 to 3
10243 Read/write Integer 0..3 Mon3 ventilation level (fan speed) 0 to 3
10244 Read/write Integer 0..3 Tue1 ventilation level (fan speed) 0-Standby, 1-Low, 2-Normal, 3-High
10245 Read/write Integer 0..3 Tue2 ventilation level (fan speed) 0 to 3
10246 Read/write Integer 0..3 Tue3 ventilation level (fan speed) 0 to 3
10247 Read/write Integer 0..3 Wed1 ventilation level (fan speed) 0-Standby, 1-Low, 2-Normal, 3-High
10248 Read/write Integer 0..3 Wed2 ventilation level (fan speed) 0 to 3
10249 Read/write Integer 0..3 Wed3 ventilation level (fan speed) 0 to 3
10250 Read/write Integer 0..3 Thu1 ventilation level (fan speed) 0-Standby, 1-Low, 2-Normal, 3-High
10251 Read/write Integer 0..3 Thu2 ventilation level (fan speed) 0 to 3
10252 Read/write Integer 0..3 Thu3 ventilation level (fan speed) 0 to 3
10253 Read/write Integer 0..3 Fri1 ventilation level (fan speed) 0-Standby, 1-Low, 2-Normal, 3-High
10254 Read/write Integer 0..3 Fri2 ventilation level (fan speed) 0 to 3
10255 Read/write Integer 0..3 Fri3 ventilation level (fan speed) 0 to 3
10256 Read/write Integer 0..3 Sat1 ventilation level (fan speed) 0-Standby, 1-Low, 2-Normal, 3-High
10257 Read/write Integer 0..3 Sat2 ventilation level (fan speed) 0 to 3
10258 Read/write Integer 0..3 Sat3 ventilation level (fan speed) 0 to 3
10259 Read/write Integer 0..3 Sun1 ventilation level (fan speed) 0-Standby, 1-Low, 2-Normal, 3-High
10260 Read/write Integer 0..3 Sun2 ventilation level (fan speed) 0 to 3
10261 Read/write Integer 0..3 Sun3 ventilation level (fan speed) 0 to 3

Operation overview

Modbus register actual Type Access Range Description Data values
10399 Read Binary 0x0..0xF [b3-b0, 0..1]
Ex. 0x01=>64=>00000001
b0=1, rotating heat exchanger
DIP switch status b0-Heat exchange type,
b1-Heater type,
b2-Fan type,
b3-OVR-mode
(1-On, 0-Off)
10400 Read/write Integer 0..1 Operation start/stop 1-Start, 0-Stop
10401 Read/write Integer 0..1 Control mode (Auto/Manual) (no Comfort or Economy mode available) 0-Manual (preset fan speed), 1-Auto (schedule)
10402 Read/write Integer 1..3 Ventilation intensity level (manual mode) 1-Low fan speed (60VAC),
2-Normal fan speed (recommended) (150VAC),
3-High fan speed (230VAC)
10403 Read Integer 0..4 Ventilation intensity level current 0-Standby,
1-Low fan speed,
2-Normal fan speed,
3-High fan speed,
4-Override mode
10404 Read Integer 0..100 Supply fan level 0 set point 0 to 100%
10405 Read Integer 0..100 Supply fan level 1 set point 0 to 100%
10406 Read Integer 0..100 Supply fan level 2 set point 0 to 100%
10407 Read Integer 0..100 Exhaust fan level 0 set point 0 to 100%
10408 Read Integer 0..100 Exhaust fan level 1 set point 0 to 100%
10409 Read Integer 0..100 Exhaust fan level 2 set point 0 to 100%
10410 Read Integer 0..100 Override supply fan level set point 0 to 100%
10411 Read Integer 0..100 Override exhaust fan level set point (for standby/0%, set DIP switch 4 to ON) 0 to 100%
10412 Read/write Integer 0..300 Supply set point temperature, C (for calculation of recuperation, heating levels) 0 to 30C, 10x C, ex. 25.0C => 250
10413 Read/write Integer 0..1 Season (heating permitted or prohibited) 1-Winter, 0-Summer (air heating off)
10414 Read/write Integer 0..300 Temperature correction, C (time based, lower or raise temperature in a set period) -90 to +90C, 10x C, ex. +4.5C => 45
10415 Read/write 2x Char/Int8 0x0000..0x183B Temperature correction start time Ex. 08:05 => 0x0805
10416 Read/write 2x Char/Int8 0x0000..0x183B Temperature correction stop time Ex. 15:05 => 0x0F05 (15=0x0F, 05=0x05)
10417 Read Integer -300..750 Supply air temperature, C (after heat exchanger and heater element, to rooms) -30 to 75C, 10x C, ex. 250 => 25.0C
10418 Read Integer -100..1100 Water temperature, C (external, if installed, DIP switch 2 set to ON) -10 to 110C, 10x C, ex. 320 => 32.0C
10419 Read Integer 0..100 Recuperation level (rotating heat exchanger, DIP switch 1 set to ON - not adjustable directly only through supply set point temperature) 0 to 100%
10420 Read Integer 0..100 Supply fan level current 0 to 100%
10421 Read Integer 0..100 Exhaust fan level current 0 to 100%
10422 Read Integer 0..100 Electric heater level current (heating element, DIP switch 2 set to OFF) 0 to 100%
10423 Read Integer 0..100 Water heating level current (external, if installed, DIP switch 2 set to ON) 0 to 100%
10424 Read Integer 0..100 Water cooling level current (external, if installed, DIP switch 2 set to ON) 0 to 100%
10425 Read - - Unknown
10426 Read Integer 11..14 Alarm status (warnings) 14-Service, 13-Heater off, 11-Rotor stop
10427 Read Integer 0..28 Alarm status (stop code) 3-Rotor stop,
4-Heater overheating,
9-Supply sensor B1,
19-Air temp. low,
20-Air temp. high,
27-Water temp. low,
28-Frost possibility