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

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 values with decimals/floating integers (not used on C4)

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
  • AC = Regular alternating current type motor, transformer controlled

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 0x0000..0x2359 Time, hhmm Ex. 8:05 => 0x0805
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 0x0101..0x1231 Month-day date, mmdd Ex. 9th May => 0x0509
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 (heat exchanger) 0 to 100%
1011 10010 Read Integer 0..100 Electric heater level (heating element) 0 to 100%
1012 10011 Read Integer 0..100 Water heating level (external, if installed) 0 to 100%
1013 10012 Read Integer 0..100 Water cooling level (external, if installed) 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,
2-Normal fan speed (recommended),
3-High fan speed
1101 10100 Read Integer 0..4 Ventilation intensity level (current operation) 0-Standby,
1-Low fan speed,
2-Normal fan speed,
3-High fan speed,
4-Override mode
1102 10101 Read/write Integer 0..1 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 0-Disable, 1-Enable
1112 10111 Read/write Integer 1..90 Override mode timer 1 to 90 minutes
1113 10112 Read Integer 0..90 Override mode timer (current 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 10199 Read Integer -300..750 Supply air temperature, C (to rooms) -30 to 75C, 10x C, ex. 250 => 25.0C
1201 10200 Read/write Integer 0..300 Setpoint temperature, C (for calculation of recuperation, heating levels) 0 to 30C, 10x C, ex. 25.0C => 250
1202 10201 Read/write Integer 0..300 Temperature correction, C (time based) -90 to +90C, 10x C, ex. +4.5C => 45
1203 10202 Read/write 2x Char 0x0000..0x2359 Temperature correction start time Ex. 08:05 => 0x0805
1204 10203 Read/write 2x Char 0x0000..0x2359 Temperature correction end time Ex. 15:05 => 0x1505
1205 10204 Read Integer -100..1100 Water temperature, C (external, if installed) -10 to 110C, 10x C, ex. 320 => 32.0C

Schedule settings

Modbus register Actual register Type Access Range Description Data values
1300 10299 Read/write 2x Char 0x0000..0x2359 Mon1 start time Ex. 08:05 => 0x0805
1301 10300 Read/write 2x Char 0x0000..0x2359 Mon1 stop time Ex. 15:05 => 0x1505
1302 10301 Read/write 2x Char 0x0000..0x2359 Mon2 start time Ex. 08:05 => 0x0805
1303 10302 Read/write 2x Char 0x0000..0x2359 Mon2 stop time Ex. 15:05 => 0x1505
10303 1304 Read/write 2x Char 0x0000..0x2359 Mon3 start time Ex. 08:05 => 0x0805
10304 1305 Read/write 2x Char 0x0000..0x2359 Mon3 stop time Ex. 15:05 => 0x1505
1306 10305 Read/write 2x Char 0x0000..0x2359 Tue1 start time Ex. 08:05 => 0x0805
1307 10306 Read/write 2x Char 0x0000..0x2359 Tue1 stop time Ex. 15:05 => 0x1505
1308 10307 Read/write 2x Char 0x0000..0x2359 Tue2 start time Ex. 08:05 => 0x0805
1309 10308 Read/write 2x Char 0x0000..0x2359 Tue2 stop time Ex. 15:05 => 0x1505
1310 10309 Read/write 2x Char 0x0000..0x2359 Tue3 start time Ex. 08:05 => 0x0805
1311 10310 Read/write 2x Char 0x0000..0x2359 Tue3 stop time Ex. 15:05 => 0x1505
1312 10311 Read/write 2x Char 0x0000..0x2359 Wed1 start time Ex. 08:05 => 0x0805
1313 10312 Read/write 2x Char 0x0000..0x2359 Wed1 stop time Ex. 15:05 => 0x1505
1314 10313 Read/write 2x Char 0x0000..0x2359 Wed2 start time Ex. 08:05 => 0x0805
1315 10314 Read/write 2x Char 0x0000..0x2359 Wed2 stop time Ex. 15:05 => 0x1505
1316 10315 Read/write 2x Char 0x0000..0x2359 Wed3 start time Ex. 08:05 => 0x0805
1317 10316 Read/write 2x Char 0x0000..0x2359 Wed3 stop time Ex. 15:05 => 0x1505
1318 10317 Read/write 2x Char 0x0000..0x2359 Thu1 start time Ex. 08:05 => 0x0805
1319 10318 Read/write 2x Char 0x0000..0x2359 Thu1 stop time Ex. 15:05 => 0x1505
1320 10319 Read/write 2x Char 0x0000..0x2359 Thu2 start time Ex. 08:05 => 0x0805
1321 10320 Read/write 2x Char 0x0000..0x2359 Thu2 stop time Ex. 15:05 => 0x1505
1322 10321 Read/write 2x Char 0x0000..0x2359 Thu3 start time Ex. 08:05 => 0x0805
1323 10322 Read/write 2x Char 0x0000..0x2359 Thu3 stop time Ex. 15:05 => 0x1505
1324 10323 Read/write 2x Char 0x0000..0x2359 Fri1 start time Ex. 08:05 => 0x0805
1325 10324 Read/write 2x Char 0x0000..0x2359 Fri1 stop time Ex. 15:05 => 0x1505
1326 10325 Read/write 2x Char 0x0000..0x2359 Fri2 start time Ex. 08:05 => 0x0805
1327 10326 Read/write 2x Char 0x0000..0x2359 Fri2 stop time Ex. 15:05 => 0x1505
1328 10327 Read/write 2x Char 0x0000..0x2359 Fri3 start time Ex. 08:05 => 0x0805
1329 10328 Read/write 2x Char 0x0000..0x2359 Fri3 stop time Ex. 15:05 => 0x1505
1330 10329 Read/write 2x Char 0x0000..0x2359 Sat1 start time Ex. 08:05 => 0x0805
1331 10330 Read/write 2x Char 0x0000..0x2359 Sat1 stop time Ex. 15:05 => 0x1505
1332 10331 Read/write 2x Char 0x0000..0x2359 Sat2 start time Ex. 08:05 => 0x0805
1333 10332 Read/write 2x Char 0x0000..0x2359 Sat2 stop time Ex. 15:05 => 0x1505
1334 10333 Read/write 2x Char 0x0000..0x2359 Sat3 start time Ex. 08:05 => 0x0805
1335 10334 Read/write 2x Char 0x0000..0x2359 Sat3 stop time Ex. 15:05 => 0x1505
1336 10335 Read/write 2x Char 0x0000..0x2359 Sun1 start time Ex. 08:05 => 0x0805
1337 10336 Read/write 2x Char 0x0000..0x2359 Sun1 stop time Ex. 15:05 => 0x1505
1338 10337 Read/write 2x Char 0x0000..0x2359 Sun2 start time Ex. 08:05 => 0x0805
1339 10338 Read/write 2x Char 0x0000..0x2359 Sun2 stop time Ex. 15:05 => 0x1505
1340 10339 Read/write 2x Char 0x0000..0x2359 Sun3 start time Ex. 08:05 => 0x0805
1341 10340 Read/write 2x Char 0x0000..0x2359 Sun3 stop time Ex. 15:05 => 0x1505
1342 10341 Read/write Integer 0..3 Mon1 ventilation level (fan speed) 0-Standby, 1-Low, 2-Normal, 3-High
1343 10342 Read/write Integer 0..3 Mon2 ventilation level (fan speed) 0 to 3
1344 10343 Read/write Integer 0..3 Mon3 ventilation level (fan speed) 0 to 3
1345 10344 Read/write Integer 0..3 Tue1 ventilation level (fan speed) 0-Standby, 1-Low, 2-Normal, 3-High
1346 10345 Read/write Integer 0..3 Tue2 ventilation level (fan speed) 0 to 3
1347 10346 Read/write Integer 0..3 Tue3 ventilation level (fan speed) 0 to 3
1348 10347 Read/write Integer 0..3 Wed1 ventilation level (fan speed) 0-Standby, 1-Low, 2-Normal, 3-High
1349 10348 Read/write Integer 0..3 Wed2 ventilation level (fan speed) 0 to 3
1350 10349 Read/write Integer 0..3 Wed3 ventilation level (fan speed) 0 to 3
1351 10350 Read/write Integer 0..3 Thu1 ventilation level (fan speed) 0-Standby, 1-Low, 2-Normal, 3-High
1352 10351 Read/write Integer 0..3 Thu2 ventilation level (fan speed) 0 to 3
1353 10352 Read/write Integer 0..3 Thu3 ventilation level (fan speed) 0 to 3
1354 10353 Read/write Integer 0..3 Fri1 ventilation level (fan speed) 0-Standby, 1-Low, 2-Normal, 3-High
1355 10354 Read/write Integer 0..3 Fri2 ventilation level (fan speed) 0 to 3
1356 10355 Read/write Integer 0..3 Fri3 ventilation level (fan speed) 0 to 3
1357 10356 Read/write Integer 0..3 Sat1 ventilation level (fan speed) 0-Standby, 1-Low, 2-Normal, 3-High
1358 10357 Read/write Integer 0..3 Sat2 ventilation level (fan speed) 0 to 3
1359 10358 Read/write Integer 0..3 Sat3 ventilation level (fan speed) 0 to 3
1360 10359 Read/write Integer 0..3 Sun1 ventilation level (fan speed) 0-Standby, 1-Low, 2-Normal, 3-High
1361 10360 Read/write Integer 0..3 Sun2 ventilation level (fan speed) 0 to 3
1362 10361 Read/write Integer 0..3 Sun3 ventilation level (fan speed) 0 to 3