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 register Type Access Range Description Data values
1000 99999 Read/write Integer 0..1 C4 Start/stop unit 1-Start, 0-Stop
1001 10000 Read/write Integer 0..1 Season (heating permitted or prohibited) 1-Winter, 0-Summer (heating element off)
1002 10001 Read/write 2x Char/Int8 0x0000..0x183B Time, hhmm Ex. 8:05 => 0x0805, 18:30 => 0x121E (18=0x12, 30=0x1E)
1003 10002 Read/write Integer 1-7 Day of the week 1-Mon, 2-Tue, 3-Wed, 4-Thu, 5-Fri, 6-Sat, 7-Sun
1004 10003 Read/write 2x Char/Int8 0x0101..0x0C1F Month-day date, mmdd Ex. 9th May => 0x0509, 31th Sept => 0x091F (Sept=0x09, 31=0x1F)
1005 10004 Read/write Integer 1900-2100 Year date, yyyy Ex. 2023
1006 10005 Read/write Integer 1..100 Modbus ID, default 20 Ex. 20
1007 10006 Read Integer 11..14 Alarm status (warnings) 14-Service, 13-Heater off, 11-Rotor stop
1008 10007 Read Binary 0x00..0x7F [b0-b7, 0..1]
Ex. 0x40=>64=>01000000
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)
1009 10008 Read Integer 3..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
1010 10009 Read Integer 0..100 Recuperation level (rotating heat exchanger, DIP switch 1 set to ON - not adjustable directly only through setpoint temperature) 0 to 100%
1011 10010 Read Integer 0..100 Electric heater level (heating element, DIP switch 2 set to OFF) 0 to 100%
1012 10011 Read Integer 0..100 Water heating level (external, if installed, DIP switch 2 set to ON) 0 to 100%
1013 10012 Read Integer 0..100 Water cooling level (external, if installed, DIP switch 2 set to ON) 0 to 100%

Ventilation settings and status

Modbus register Actual register Type Access Range Description Data values
1100 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)
1101 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
1102 10101 Read/write Integer 0..1 Control mode (Auto/Manual) (no Comfort or Economy mode available) 0-Manual (preset fan speed), 1-Auto (schedule)
1103 10102 Read/write Integer 20..100 / 0 Supply ventilation intensity level 1 (EC-type fan) 20 to 100% (EC-fan only)
1104 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)
1105 10104 Read/write Integer 20..100 / 0 Supply ventilation intensity level 3 (EC-type fan) 20 to 100% (EC-fan only)
1106 10105 Read/write Integer 20..100 / 0 Supply ventilation intensity level 4 (EC-type fan) 20 to 100% (EC-fan only)
1107 10106 Read/write Integer 20..100 / 0 Exhaust ventilation intensity level 1 (EC-type fan) 20 to 100% (EC-fan only)
1108 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)
1109 10108 Read/write Integer 20..100 / 0 Exhaust ventilation intensity level 3 (EC-type fan) 20 to 100% (EC-fan only)
1110 10109 Read/write Integer 20..100 / 0 Exhaust ventilation intensity level 4 (EC-type fan) 20 to 100% (EC-fan only)
1111 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
1112 10111 Read/write Integer 1..90 Override mode timer duration 1 to 90 minutes
1113 10112 Read Integer 0..90 Override timer count down 0 to 90 minutes
1114 10113 Read Binary 0..1 AHU (Air Handling Unit) fans status 0-Stopped, 1-Operating
1115 10114 Read Integer 0..100 Supply fan level (current level) 0 to 100%
1116 10115 Read Integer 0..100 Exhaust fan level (current level) 0 to 100%

Temperature settings and status

Modbus register Actual register Type Access Range Description Data values
1200 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
1201 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
1202 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
1203 10302 Read/write 2x Char/Int8 0x0000..0x183B Temperature correction start time Ex. 08:05 => 0x0805
1204 10303 Read/write 2x Char/Int8 0x0000..0x183B Temperature correction end time Ex. 15:05 => 0x0F05 (15=0x0F, 05=0x05)
1205 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 register Type Access Range Description Data values
1300 10199 Read/write 2x Char/Int8 0x0000..0x183B Mon1 start time Ex. 08:05 => 0x0805
1301 10200 Read/write 2x Char/Int8 0x0000..0x183B Mon1 stop time Ex. 15:05 => 0x0F05
1302 10201 Read/write 2x Char/Int8 0x0000..0x183B Mon2 start time Ex. 08:05 => 0x0805
1303 10202 Read/write 2x Char/Int8 0x0000..0x183B Mon2 stop time Ex. 15:05 => 0x0F05
1304 10203 Read/write 2x Char/Int8 0x0000..0x183B Mon3 start time Ex. 08:05 => 0x0805
1305 10204 Read/write 2x Char/Int8 0x0000..0x183B Mon3 stop time Ex. 15:05 => 0x0F05
1306 10205 Read/write 2x Char/Int8 0x0000..0x183B Tue1 start time Ex. 08:05 => 0x0805
1307 10206 Read/write 2x Char/Int8 0x0000..0x183B Tue1 stop time Ex. 15:05 => 0x0F05
1308 10207 Read/write 2x Char/Int8 0x0000..0x183B Tue2 start time Ex. 08:05 => 0x0805
1309 10208 Read/write 2x Char/Int8 0x0000..0x183B Tue2 stop time Ex. 15:05 => 0x0F05
1310 10209 Read/write 2x Char/Int8 0x0000..0x183B Tue3 start time Ex. 08:05 => 0x0805
1311 10210 Read/write 2x Char/Int8 0x0000..0x183B Tue3 stop time Ex. 15:05 => 0x0F05
1312 10211 Read/write 2x Char/Int8 0x0000..0x183B Wed1 start time Ex. 08:05 => 0x0805
1313 10212 Read/write 2x Char/Int8 0x0000..0x183B Wed1 stop time Ex. 15:05 => 0x0F05
1314 10213 Read/write 2x Char/Int8 0x0000..0x183B Wed2 start time Ex. 08:05 => 0x0805
1315 10214 Read/write 2x Char/Int8 0x0000..0x183B Wed2 stop time Ex. 15:05 => 0x0F05
1316 10215 Read/write 2x Char/Int8 0x0000..0x183B Wed3 start time Ex. 08:05 => 0x0805
1317 10216 Read/write 2x Char/Int8 0x0000..0x183B Wed3 stop time Ex. 15:05 => 0x0F05
1318 10217 Read/write 2x Char/Int8 0x0000..0x183B Thu1 start time Ex. 08:05 => 0x0805
1319 10218 Read/write 2x Char/Int8 0x0000..0x183B Thu1 stop time Ex. 15:05 => 0x0F05
1320 10219 Read/write 2x Char/Int8 0x0000..0x183B Thu2 start time Ex. 08:05 => 0x0805
1321 10220 Read/write 2x Char/Int8 0x0000..0x183B Thu2 stop time Ex. 15:05 => 0x0F05
1322 10221 Read/write 2x Char/Int8 0x0000..0x183B Thu3 start time Ex. 08:05 => 0x0805
1323 10222 Read/write 2x Char/Int8 0x0000..0x183B Thu3 stop time Ex. 15:05 => 0x0F05
1324 10223 Read/write 2x Char/Int8 0x0000..0x183B Fri1 start time Ex. 08:05 => 0x0805
1325 10224 Read/write 2x Char/Int8 0x0000..0x183B Fri1 stop time Ex. 15:05 => 0x0F05
1326 10225 Read/write 2x Char/Int8 0x0000..0x183B Fri2 start time Ex. 08:05 => 0x0805
1327 10226 Read/write 2x Char/Int8 0x0000..0x183B Fri2 stop time Ex. 15:05 => 0x0F05
1328 10227 Read/write 2x Char/Int8 0x0000..0x183B Fri3 start time Ex. 08:05 => 0x0805
1329 10228 Read/write 2x Char/Int8 0x0000..0x183B Fri3 stop time Ex. 15:05 => 0x0F05
1330 10229 Read/write 2x Char/Int8 0x0000..0x183B Sat1 start time Ex. 08:05 => 0x0805
1331 10230 Read/write 2x Char/Int8 0x0000..0x183B Sat1 stop time Ex. 15:05 => 0x0F05
1332 10231 Read/write 2x Char/Int8 0x0000..0x183B Sat2 start time Ex. 08:05 => 0x0805
1333 10232 Read/write 2x Char/Int8 0x0000..0x183B Sat2 stop time Ex. 15:05 => 0x0F05
1334 10233 Read/write 2x Char/Int8 0x0000..0x183B Sat3 start time Ex. 08:05 => 0x0805
1335 10234 Read/write 2x Char/Int8 0x0000..0x183B Sat3 stop time Ex. 15:05 => 0x0F05
1336 10235 Read/write 2x Char/Int8 0x0000..0x183B Sun1 start time Ex. 08:05 => 0x0805
1337 10236 Read/write 2x Char/Int8 0x0000..0x183B Sun1 stop time Ex. 15:05 => 0x0F05
1338 10237 Read/write 2x Char/Int8 0x0000..0x183B Sun2 start time Ex. 08:05 => 0x0805
1339 10238 Read/write 2x Char/Int8 0x0000..0x183B Sun2 stop time Ex. 15:05 => 0x0F05
1340 10239 Read/write 2x Char/Int8 0x0000..0x183B Sun3 start time Ex. 08:05 => 0x0805
1341 10240 Read/write 2x Char/Int8 0x0000..0x183B Sun3 stop time Ex. 15:05 => 0x0F05
1342 10241 Read/write Integer 0..3 Mon1 ventilation level (fan speed) 0-Standby, 1-Low, 2-Normal, 3-High
1343 10242 Read/write Integer 0..3 Mon2 ventilation level (fan speed) 0 to 3
1344 10243 Read/write Integer 0..3 Mon3 ventilation level (fan speed) 0 to 3
1345 10244 Read/write Integer 0..3 Tue1 ventilation level (fan speed) 0-Standby, 1-Low, 2-Normal, 3-High
1346 10245 Read/write Integer 0..3 Tue2 ventilation level (fan speed) 0 to 3
1347 10246 Read/write Integer 0..3 Tue3 ventilation level (fan speed) 0 to 3
1348 10247 Read/write Integer 0..3 Wed1 ventilation level (fan speed) 0-Standby, 1-Low, 2-Normal, 3-High
1349 10248 Read/write Integer 0..3 Wed2 ventilation level (fan speed) 0 to 3
1350 10249 Read/write Integer 0..3 Wed3 ventilation level (fan speed) 0 to 3
1351 10250 Read/write Integer 0..3 Thu1 ventilation level (fan speed) 0-Standby, 1-Low, 2-Normal, 3-High
1352 10251 Read/write Integer 0..3 Thu2 ventilation level (fan speed) 0 to 3
1353 10252 Read/write Integer 0..3 Thu3 ventilation level (fan speed) 0 to 3
1354 10253 Read/write Integer 0..3 Fri1 ventilation level (fan speed) 0-Standby, 1-Low, 2-Normal, 3-High
1355 10254 Read/write Integer 0..3 Fri2 ventilation level (fan speed) 0 to 3
1356 10255 Read/write Integer 0..3 Fri3 ventilation level (fan speed) 0 to 3
1357 10256 Read/write Integer 0..3 Sat1 ventilation level (fan speed) 0-Standby, 1-Low, 2-Normal, 3-High
1358 10257 Read/write Integer 0..3 Sat2 ventilation level (fan speed) 0 to 3
1359 10258 Read/write Integer 0..3 Sat3 ventilation level (fan speed) 0 to 3
1360 10259 Read/write Integer 0..3 Sun1 ventilation level (fan speed) 0-Standby, 1-Low, 2-Normal, 3-High
1361 10260 Read/write Integer 0..3 Sun2 ventilation level (fan speed) 0 to 3
1362 10261 Read/write Integer 0..3 Sun3 ventilation level (fan speed) 0 to 3