pvyleta / ebusd-brink-hru

Collection of Brink HRU configuration files for ebusd
GNU General Public License v3.0
2 stars 1 forks source link

Deciphering FanMode #5

Open christiaanderidder opened 2 weeks ago

christiaanderidder commented 2 weeks ago

Hi!

First of all I would like to thank you for publishing these configuration files, as they helped me a lot getting ebusd configured for my Brink HRU unit.

While doing so I noticed that my setup is slightly different from the config files. For example, I had to read the CO2 sensor values separately from another ebus circuit instead of getting them from the HRU itself. (see my comment in https://github.com/pvyleta/ebusd-brink-hru/issues/3#issuecomment-2212419678).

I also ran into some issues with the FanMode. For my setup, reading the value seems to work fine, but writing a value seems to have no effect. Both FanMode 40 A1 and FanModeAlternative 40 CB - 01 01 do nothing, even with the Air control panel disconnected.

When the Air control panel is connected, I do see it spamming 40 A1 with FF FF FF 00 00. My guess is that this is related to CO2 demand mode.

When changing the speed using the physical switch or using the Air control panel, I do see a lot of activity on 40 A3. I noticed that you code had a reference to this too at https://github.com/pvyleta/ebusd-brink-hru/blob/main/src/ebus_message.py#L134-L145 . I also had a look at the service tool .NET code but could not find any additional references to this address.

My first suspicion is that it has something to do with CO2 demand mode and it being overridden by a set fan speed.

I am using the following config to monitor the commands:

# Original fan mode fields
#w,,FanMode,FanMode,,,40a1,,,,ULR,0x0=Holiday;0x00010001=Reduced;0x00020002=Normal;0x00030003=High;0xffffff00=Unknown,
#w,,FanModeAlternative,FanModeAlternative,,,40cb,0101,,,UIR,0=Holiday;1=Reduced;2=Normal;3=High,,

# Figure out what these are
w,,FanMode40A1,FanMode40A1,,,40a1,,,,HEX:*
w,,FanMode40CB0101,FanMode40CB0101,,,40cb,0101,,,HEX:*
w,,FanMode40A301,FanMode40A301,,,40a3,01,,,HEX:*
w,,FanMode40A302,FanMode40A302,,,40a3,02,,,HEX:*
w,,FanMode40A303,FanMode40A303,,,40a3,03,,,HEX:*

I was also wondering how it ended up in the python code above and why it was commented out in the end.

I would happily help out deciphering the meaning of these commands, as I can easily trigger them on my system.

pvyleta commented 2 weeks ago

Hello @christiaanderidder, I am happy the config files were of some use to you! The command:

 EbusMessage('FanMode', 'parameterDescriptionFanMode',0x40a3, 0x01, 'w', [Field('', 'UCH', 1, 1.0, '0=Holiday;1=Reduced;2=Normal;3=High', ''), Field('', 'IGN:2', 2, 1.0, '', '')]),

is something I have manually reverse-engineered from commands my Air Controlwas sending, but I was not able to make it work when trying to send with my ebusd adapter (hence I commented it out).

I think there was some special password-ish message at the end (or timestamp?) that seemed like a random giberish, that the air control sent, and without it, my HRU (Sky 300) simply did not accept it at all. Basically I was able to decipher only the flow, but not rest of the meaning of the message.

What I wanted to do, but in the end did not have time for, is to rapidly change flow rate on my air control, to get sufficient number of the 40 A3 messages, to try to decipher the meaning of the last byte (I think it was a last byt, not 100% sure). My hunch was, that the value could have been number of seconds since the last 40 A3 message or something like that.

Out of curiosity - what HRU do you have, and what is your SW version?

christiaanderidder commented 2 weeks ago

Interesting! Mine seems to be sending the same, as well as 0x40a3 0x02 and 0x40a3 0x03. I will see if i can capture some sample output when I change the fan speed and post them here.

I have these components: Brink Renovent Excellent 400 4/0 R Brink Zone Valve 3 Brink CO2 sensors Brink Air Control

All ebus wires are plugged into the circuit board on the zone valve as described in https://www.brinkclimatesystems.nl/documenten/demand-controlled-ventilation-2-0-installation-instructions-gb-611586.pdf

On top of that there are a physical switch (3 way) and a RF receiver (For a fan speed remote) directly connected to the HRU without using ebus (https://www.brinkairshop.nl/nl-nl/producten/ventilatie/renovent-toebehoren/renovent-sky-150/set-rf-ontvanger-zender-4-st)

r,,SoftwareVersion,SoftwareVersion,,,4022,00,,,STR:13,,, does not report any data for me, I wonder if I am on some older software revision. I checked the menus on the air control and HRU but could not find any versions there either. The only version I see is what the air control shows when cycling power, which is S1.04.04.

Is there any other way to get version info that I'm not aware of? I did notice the .NET code of the service tool did indeed have config for different software versions of my HRU.

christiaanderidder commented 2 weeks ago

I ran some quick test, the annotated results can be found below.

After repeating some values found in the logs I got the following results: Writing 00 XX XX to 40 a3 01 puts the HRU in holiday mode Writing 01 XX XX to 40 a3 01 puts the HRU in reduced mode Writing 02 XX XX to 40 a3 01 puts the HRU in normal mode Writing 03 XX XX to 40 a3 01 puts the HRU in high mode The values for XX don't seem to matter in this case.

Writing 00 00 64 to 40 a3 02 puts the HRU auto mode, this command (and other variants like ff 00 64 01 00 64 57 00 64) are continuously seen on the bus. Most likely the Air control panel sending them.

When disconnecting the air control panel, the bus gets a lot more quiet and I can reliably control the fan mode using the commands above without it switching back. I do, however, have to manually request the FanMode being communicated over 40 22 01, because the air control panel no longer does so.

So that would mean that when the 3-way switch or RF remote are used, they force override the fan mode and ignore the "auto" signals from the Air control panel. The control panel then reads the fan mode and displays it accordingly.

All in all the solution to make it all works seems similar to what others did: Make home assistant or other automation software continuously update the fan mode so the switch back to "Auto" does not happen. Additionally adding some sort of "None" option in HA to stop overriding the fan mode and make Air control take over again. This way demand ventilation keeps working and the HA setting behaves like the 3-way switch or RF remote: a temporary override.

The test results Output from ebusd ```csv date,stream,content 2024/07/08 18:51:43,stdout,2024-07-08 16:51:43.926 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:51:43,stdout,2024-07-08 16:51:43.795 [update notice] received write Excellent400 FanMode40A302 QQ=01: 00 00 64 2024/07/08 18:51:38,stdout,2024-07-08 16:51:38.723 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:51:33,stdout,2024-07-08 16:51:33.710 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:51:28,stdout,2024-07-08 16:51:28.642 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:51:23,stdout,2024-07-08 16:51:23.644 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:51:18,stdout,2024-07-08 16:51:18.610 [update notice] received read Excellent400 FanMode QQ=01: Auto ### End RF remote test 2024/07/08 18:51:17,stdout,2024-07-08 16:51:17.981 [update notice] received write Excellent400 FanMode40A1 QQ=01: ff ff ff ff 00 00 2024/07/08 18:51:13,stdout,2024-07-08 16:51:13.563 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:51:08,stdout,2024-07-08 16:51:08.535 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:51:03,stdout,2024-07-08 16:51:03.478 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:51:02,stdout,2024-07-08 16:51:02.526 [update notice] received write Excellent400 FanMode40A302 QQ=01: ff 00 64 2024/07/08 18:50:58,stdout,2024-07-08 16:50:58.464 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:50:53,stdout,2024-07-08 16:50:53.402 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:50:48,stdout,2024-07-08 16:50:48.369 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:50:46,stdout,2024-07-08 16:50:46.747 [update notice] received write Excellent400 FanMode40A1 QQ=01: ff ff ff ff 00 00 2024/07/08 18:50:43,stdout,2024-07-08 16:50:43.341 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:50:38,stdout,2024-07-08 16:50:38.314 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:50:33,stdout,2024-07-08 16:50:33.276 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:50:28,stdout,2024-07-08 16:50:28.258 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:50:23,stdout,2024-07-08 16:50:23.236 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:50:21,stdout,2024-07-08 16:50:21.277 [update notice] received write Excellent400 FanMode40A302 QQ=01: a5 00 64 2024/07/08 18:50:18,stdout,2024-07-08 16:50:18.177 [update notice] received read Excellent400 FanMode QQ=01: Auto ### Press RF remote position 1 2024/07/08 18:50:15,stdout,2024-07-08 16:50:15.571 [update notice] received write Excellent400 FanMode40A1 QQ=01: ff ff ff ff 00 00 2024/07/08 18:50:13,stdout,2024-07-08 16:50:13.154 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:50:08,stdout,2024-07-08 16:50:08.328 [update notice] received write Excellent400 FanMode40A302 QQ=01: ff 00 64 2024/07/08 18:50:08,stdout,2024-07-08 16:50:08.147 [update notice] received read Excellent400 FanMode QQ=01: Holiday 2024/07/08 18:50:06,stdout,2024-07-08 16:50:06.259 [update notice] received write Excellent400 FanMode40A301 QQ=01: 00 04 00 2024/07/08 18:50:03,stdout,2024-07-08 16:50:03.109 [update notice] received read Excellent400 FanMode QQ=01: High ### Messed with aircontrol a bit by mistake 2024/07/08 18:49:57,stdout,2024-07-08 16:49:57.609 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:49:52,stdout,2024-07-08 16:49:52.621 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:49:47,stdout,2024-07-08 16:49:47.573 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:49:44,stdout,2024-07-08 16:49:44.338 [update notice] received write Excellent400 FanMode40A1 QQ=01: ff ff ff ff 00 00 2024/07/08 18:49:42,stdout,2024-07-08 16:49:42.516 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:49:40,stdout,2024-07-08 16:49:40.010 [update notice] received write Excellent400 FanMode40A302 QQ=01: 13 00 64 2024/07/08 18:49:37,stdout,2024-07-08 16:49:37.508 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:49:32,stdout,2024-07-08 16:49:32.461 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:49:27,stdout,2024-07-08 16:49:27.427 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:49:22,stdout,2024-07-08 16:49:22.390 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:49:17,stdout,2024-07-08 16:49:17.380 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:49:13,stdout,2024-07-08 16:49:13.152 [update notice] received write Excellent400 FanMode40A1 QQ=01: ff ff ff ff 00 00 2024/07/08 18:49:11,stdout,2024-07-08 16:49:11.922 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:49:06,stdout,2024-07-08 16:49:06.878 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:49:01,stdout,2024-07-08 16:49:01.859 [update notice] received read Excellent400 FanMode QQ=01: High ### Press RF remote position boost 2024/07/08 18:48:58,stdout,2024-07-08 16:48:58.722 [update notice] received write Excellent400 FanMode40A302 QQ=01: 13 00 64 2024/07/08 18:48:56,stdout,2024-07-08 16:48:56.821 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:48:51,stdout,2024-07-08 16:48:51.758 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:48:46,stdout,2024-07-08 16:48:46.765 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:48:41,stdout,2024-07-08 16:48:41.935 [update notice] received write Excellent400 FanMode40A1 QQ=01: ff ff ff ff 00 00 2024/07/08 18:48:41,stdout,2024-07-08 16:48:41.688 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:48:36,stdout,2024-07-08 16:48:36.699 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:48:31,stdout,2024-07-08 16:48:31.646 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:48:26,stdout,2024-07-08 16:48:26.275 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:48:21,stdout,2024-07-08 16:48:21.253 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:48:17,stdout,2024-07-08 16:48:17.462 [update notice] received write Excellent400 FanMode40A302 QQ=01: a4 00 64 2024/07/08 18:48:16,stdout,2024-07-08 16:48:16.225 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:48:11,stdout,2024-07-08 16:48:11.177 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:48:10,stdout,2024-07-08 16:48:10.720 [update notice] received write Excellent400 FanMode40A1 QQ=01: ff ff ff ff 00 00 2024/07/08 18:48:06,stdout,2024-07-08 16:48:06.148 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:48:01,stdout,2024-07-08 16:48:01.147 [update notice] received read Excellent400 FanMode QQ=01: Normal ### Press RF remote position 3 2024/07/08 18:47:56,stdout,2024-07-08 16:47:56.123 [update notice] received read Excellent400 FanMode QQ=01: Normal 2024/07/08 18:47:51,stdout,2024-07-08 16:47:51.070 [update notice] received read Excellent400 FanMode QQ=01: Normal 2024/07/08 18:47:46,stdout,2024-07-08 16:47:46.154 [update notice] sent poll-read Excellent400 ExtractFanModeSwInput2 QQ=31: ManualSwitch;ManualSwitch 2024/07/08 18:47:46,stdout,2024-07-08 16:47:46.042 [update notice] received read Excellent400 FanMode QQ=01: Normal 2024/07/08 18:47:40,stdout,2024-07-08 16:47:40.763 [update notice] received read Excellent400 FanMode QQ=01: Normal 2024/07/08 18:47:40,stdout,2024-07-08 16:47:40.178 [update notice] sent poll-read Excellent400 ExtractFanModeSwInput1 QQ=31: ManualSwitch;ManualSwitch 2024/07/08 18:47:39,stdout,2024-07-08 16:47:39.545 [update notice] received write Excellent400 FanMode40A1 QQ=01: ff ff ff ff 00 00 2024/07/08 18:47:36,stdout,2024-07-08 16:47:36.208 [update notice] received write Excellent400 FanMode40A302 QQ=01: 5e 00 64 2024/07/08 18:47:35,stdout,2024-07-08 16:47:35.741 [update notice] received read Excellent400 FanMode QQ=01: Normal 2024/07/08 18:47:30,stdout,2024-07-08 16:47:30.681 [update notice] received read Excellent400 FanMode QQ=01: Normal 2024/07/08 18:47:25,stdout,2024-07-08 16:47:25.634 [update notice] received read Excellent400 FanMode QQ=01: Normal 2024/07/08 18:47:20,stdout,2024-07-08 16:47:20.621 [update notice] received read Excellent400 FanMode QQ=01: Normal 2024/07/08 18:47:15,stdout,2024-07-08 16:47:15.574 [update notice] received read Excellent400 FanMode QQ=01: Normal 2024/07/08 18:47:10,stdout,2024-07-08 16:47:10.540 [update notice] received read Excellent400 FanMode QQ=01: Normal 2024/07/08 18:47:08,stdout,2024-07-08 16:47:08.120 [update notice] received write Excellent400 FanMode40A1 QQ=01: ff ff ff ff 00 00 2024/07/08 18:47:05,stdout,2024-07-08 16:47:05.508 [update notice] received read Excellent400 FanMode QQ=01: Normal ### Press RF remote position 2 2024/07/08 18:47:00,stdout,2024-07-08 16:47:00.505 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:46:55,stdout,2024-07-08 16:46:55.124 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:46:54,stdout,2024-07-08 16:46:54.910 [update notice] received write Excellent400 FanMode40A302 QQ=01: ff 00 64 2024/07/08 18:46:50,stdout,2024-07-08 16:46:50.077 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:46:45,stdout,2024-07-08 16:46:45.044 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:46:40,stdout,2024-07-08 16:46:40.025 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:46:36,stdout,2024-07-08 16:46:36.911 [update notice] received write Excellent400 FanMode40A1 QQ=01: ff ff ff ff 00 00 2024/07/08 18:46:34,stdout,2024-07-08 16:46:34.957 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:46:29,stdout,2024-07-08 16:46:29.929 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:46:24,stdout,2024-07-08 16:46:24.911 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:46:14,stdout,2024-07-08 16:46:14.850 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:46:13,stdout,2024-07-08 16:46:13.652 [update notice] received write Excellent400 FanMode40A302 QQ=01: 00 00 64 2024/07/08 18:46:09,stdout,2024-07-08 16:46:09.585 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:46:05,stdout,2024-07-08 16:46:05.711 [update notice] received write Excellent400 FanMode40A1 QQ=01: ff ff ff ff 00 00 2024/07/08 18:46:04,stdout,2024-07-08 16:46:04.543 [update notice] received read Excellent400 FanMode QQ=01: Auto ### Press RF remote position 1 2024/07/08 18:45:59,stdout,2024-07-08 16:45:59.514 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:45:54,stdout,2024-07-08 16:45:54.452 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:45:49,stdout,2024-07-08 16:45:49.464 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:45:44,stdout,2024-07-08 16:45:44.417 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:45:39,stdout,2024-07-08 16:45:39.368 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:45:34,stdout,2024-07-08 16:45:34.522 [update notice] received write Excellent400 FanMode40A1 QQ=01: ff ff ff ff 00 00 2024/07/08 18:45:34,stdout,2024-07-08 16:45:34.370 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:45:32,stdout,2024-07-08 16:45:32.375 [update notice] received write Excellent400 FanMode40A302 QQ=01: 00 00 64 2024/07/08 18:45:29,stdout,2024-07-08 16:45:29.313 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:45:24,stdout,2024-07-08 16:45:24.002 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:45:18,stdout,2024-07-08 16:45:18.935 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:45:13,stdout,2024-07-08 16:45:13.943 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:45:08,stdout,2024-07-08 16:45:08.864 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:45:03,stdout,2024-07-08 16:45:03.836 [update notice] received read Excellent400 FanMode QQ=01: Auto ### Started RF remote test ### Finished Aircontrol test 2024/07/08 18:45:03,stdout,2024-07-08 16:45:03.294 [update notice] received write Excellent400 FanMode40A1 QQ=01: ff ff ff ff 00 00 2024/07/08 18:44:58,stdout,2024-07-08 16:44:58.808 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:44:53,stdout,2024-07-08 16:44:53.780 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:44:51,stdout,2024-07-08 16:44:51.123 [update notice] received write Excellent400 FanMode40A302 QQ=01: ff 00 64 2024/07/08 18:44:48,stdout,2024-07-08 16:44:48.757 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:44:43,stdout,2024-07-08 16:44:43.720 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:44:38,stdout,2024-07-08 16:44:38.369 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:44:33,stdout,2024-07-08 16:44:33.367 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:44:32,stdout,2024-07-08 16:44:32.034 [update notice] received write Excellent400 FanMode40A1 QQ=01: ff ff ff ff 00 00 2024/07/08 18:44:28,stdout,2024-07-08 16:44:28.308 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:44:23,stdout,2024-07-08 16:44:23.280 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:44:18,stdout,2024-07-08 16:44:18.263 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:44:13,stdout,2024-07-08 16:44:13.230 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:44:09,stdout,2024-07-08 16:44:09.827 [update notice] received write Excellent400 FanMode40A302 QQ=01: 13 00 64 2024/07/08 18:44:08,stdout,2024-07-08 16:44:08.167 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:44:03,stdout,2024-07-08 16:44:03.153 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:44:01,stdout,2024-07-08 16:44:01.040 [update notice] received write Excellent400 FanMode40A302 QQ=01: 00 00 64 2024/07/08 18:44:00,stdout,2024-07-08 16:44:00.855 [update notice] received write Excellent400 FanMode40A1 QQ=01: ff ff ff ff 00 00 2024/07/08 18:44:00,stdout,2024-07-08 16:44:00.521 [update notice] received write Excellent400 FanMode40A302 QQ=01: 00 00 64 ### Switched air control to neutral setting (press back on air control) 2024/07/08 18:43:58,stdout,2024-07-08 16:43:58.130 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:43:52,stdout,2024-07-08 16:43:52.841 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:43:47,stdout,2024-07-08 16:43:47.824 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:43:42,stdout,2024-07-08 16:43:42.782 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:43:40,stdout,2024-07-08 16:43:40.177 [update notice] sent poll-read Excellent400 SupplyFanModeSwInput2 QQ=31: ManualSwitch;ManualSwitch 2024/07/08 18:43:37,stdout,2024-07-08 16:43:37.749 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:43:34,stdout,2024-07-08 16:43:34.166 [update notice] sent poll-read Excellent400 SupplyFanModeSwInput1 QQ=31: ManualSwitch;ManualSwitch 2024/07/08 18:43:32,stdout,2024-07-08 16:43:32.711 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:43:32,stdout,2024-07-08 16:43:32.203 [update notice] received write Excellent400 FanMode40A1 QQ=01: ff ff ff ff 00 00 2024/07/08 18:43:28,stdout,2024-07-08 16:43:28.588 [update notice] received write Excellent400 FanMode40A301 QQ=01: 03 ba 36 2024/07/08 18:43:27,stdout,2024-07-08 16:43:27.674 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:43:22,stdout,2024-07-08 16:43:22.622 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:43:17,stdout,2024-07-08 16:43:17.603 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:43:12,stdout,2024-07-08 16:43:12.580 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:43:07,stdout,2024-07-08 16:43:07.312 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:43:02,stdout,2024-07-08 16:43:02.285 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:43:01,stdout,2024-07-08 16:43:01.190 [update notice] received write Excellent400 FanMode40A301 QQ=01: 03 00 00 2024/07/08 18:43:01,stdout,2024-07-08 16:43:01.023 [update notice] received write Excellent400 FanMode40A1 QQ=01: ff ff ff ff 00 00 2024/07/08 18:43:00,stdout,2024-07-08 16:43:00.719 [update notice] received write Excellent400 FanMode40A301 QQ=01: 03 fe ff ### Switched air control to highest setting (boost with 30 min timer) 2024/07/08 18:42:57,stdout,2024-07-08 16:42:57.252 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:42:52,stdout,2024-07-08 16:42:52.254 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:42:47,stdout,2024-07-08 16:42:47.393 [update notice] received write Excellent400 FanMode40A302 QQ=01: 00 00 64 2024/07/08 18:42:47,stdout,2024-07-08 16:42:47.214 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:42:42,stdout,2024-07-08 16:42:42.154 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:42:37,stdout,2024-07-08 16:42:37.169 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:42:34,stdout,2024-07-08 16:42:34.622 [update notice] received write Excellent400 FanMode40A1 QQ=01: ff ff ff ff 00 00 2024/07/08 18:42:32,stdout,2024-07-08 16:42:32.075 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:42:27,stdout,2024-07-08 16:42:27.077 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:42:21,stdout,2024-07-08 16:42:21.683 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:42:16,stdout,2024-07-08 16:42:16.700 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:42:11,stdout,2024-07-08 16:42:11.634 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:42:06,stdout,2024-07-08 16:42:06.631 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:42:06,stdout,2024-07-08 16:42:06.037 [update notice] received write Excellent400 FanMode40A302 QQ=01: 01 00 64 2024/07/08 18:42:03,stdout,2024-07-08 16:42:03.417 [update notice] received write Excellent400 FanMode40A1 QQ=01: ff ff ff ff 00 00 2024/07/08 18:42:01,stdout,2024-07-08 16:42:01.579 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:42:00,stdout,2024-07-08 16:42:00.321 [update notice] received write Excellent400 FanMode40A302 QQ=01: 00 00 64 ### Switched air control to middle setting 2024/07/08 18:41:56,stdout,2024-07-08 16:41:56.552 [update notice] received read Excellent400 FanMode QQ=01: Holiday 2024/07/08 18:41:51,stdout,2024-07-08 16:41:51.535 [update notice] received read Excellent400 FanMode QQ=01: Holiday 2024/07/08 18:41:46,stdout,2024-07-08 16:41:46.482 [update notice] received read Excellent400 FanMode QQ=01: Holiday 2024/07/08 18:41:41,stdout,2024-07-08 16:41:41.464 [update notice] received read Excellent400 FanMode QQ=01: Holiday 2024/07/08 18:41:36,stdout,2024-07-08 16:41:36.046 [update notice] received read Excellent400 FanMode QQ=01: Holiday 2024/07/08 18:41:32,stdout,2024-07-08 16:41:32.252 [update notice] received write Excellent400 FanMode40A1 QQ=01: ff ff ff ff 00 00 2024/07/08 18:41:31,stdout,2024-07-08 16:41:31.029 [update notice] received read Excellent400 FanMode QQ=01: Holiday 2024/07/08 18:41:26,stdout,2024-07-08 16:41:26.002 [update notice] received read Excellent400 FanMode QQ=01: Holiday 2024/07/08 18:41:24,stdout,2024-07-08 16:41:24.770 [update notice] received write Excellent400 FanMode40A301 QQ=01: 00 04 00 2024/07/08 18:41:20,stdout,2024-07-08 16:41:20.985 [update notice] received read Excellent400 FanMode QQ=01: Holiday 2024/07/08 18:41:15,stdout,2024-07-08 16:41:15.973 [update notice] received read Excellent400 FanMode QQ=01: Holiday 2024/07/08 18:41:10,stdout,2024-07-08 16:41:10.911 [update notice] received read Excellent400 FanMode QQ=01: Holiday 2024/07/08 18:41:05,stdout,2024-07-08 16:41:05.868 [update notice] received read Excellent400 FanMode QQ=01: Holiday 2024/07/08 18:41:01,stdout,2024-07-08 16:41:01.267 [update notice] received write Excellent400 FanMode40A301 QQ=01: 00 01 00 2024/07/08 18:41:01,stdout,2024-07-08 16:41:01.047 [update notice] received write Excellent400 FanMode40A1 QQ=01: ff ff ff ff 00 00 ### Switched air control to lowest setting 2024/07/08 18:41:00,stdout,2024-07-08 16:41:00.851 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:40:55,stdout,2024-07-08 16:40:55.818 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:40:50,stdout,2024-07-08 16:40:50.417 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:40:45,stdout,2024-07-08 16:40:45.359 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:40:43,stdout,2024-07-08 16:40:43.688 [update notice] received write Excellent400 FanMode40A302 QQ=01: 00 00 64 2024/07/08 18:40:40,stdout,2024-07-08 16:40:40.316 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:40:35,stdout,2024-07-08 16:40:35.293 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:40:30,stdout,2024-07-08 16:40:30.296 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:40:29,stdout,2024-07-08 16:40:29.833 [update notice] received write Excellent400 FanMode40A1 QQ=01: ff ff ff ff 00 00 2024/07/08 18:40:25,stdout,2024-07-08 16:40:25.234 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:40:15,stdout,2024-07-08 16:40:15.202 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:40:10,stdout,2024-07-08 16:40:10.296 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:40:04,stdout,2024-07-08 16:40:04.926 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:40:02,stdout,2024-07-08 16:40:02.237 [update notice] received write Excellent400 FanMode40A302 QQ=01: 00 00 64 ### Started Aircontrol test 2024/07/08 18:39:59,stdout,2024-07-08 16:39:59.879 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:39:58,stdout,2024-07-08 16:39:58.408 [update notice] received write Excellent400 FanMode40A1 QQ=01: ff ff ff ff 00 00 2024/07/08 18:39:54,stdout,2024-07-08 16:39:54.862 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:39:49,stdout,2024-07-08 16:39:49.803 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:39:44,stdout,2024-07-08 16:39:44.805 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:39:39,stdout,2024-07-08 16:39:39.732 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:39:34,stdout,2024-07-08 16:39:34.733 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:39:29,stdout,2024-07-08 16:39:29.676 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:39:28,stdout,2024-07-08 16:39:28.165 [update notice] sent poll-read Excellent400 ExtractFanModeSwInput2 QQ=31: ManualSwitch;ManualSwitch 2024/07/08 18:39:27,stdout,2024-07-08 16:39:27.214 [update notice] received write Excellent400 FanMode40A1 QQ=01: ff ff ff ff 00 00 2024/07/08 18:39:24,stdout,2024-07-08 16:39:24.657 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:39:22,stdout,2024-07-08 16:39:22.196 [update notice] sent poll-read Excellent400 ExtractFanModeSwInput1 QQ=31: ManualSwitch;ManualSwitch 2024/07/08 18:39:20,stdout,2024-07-08 16:39:20.969 [update notice] received write Excellent400 FanMode40A302 QQ=01: 00 00 64 2024/07/08 18:39:14,stdout,2024-07-08 16:39:14.160 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:39:09,stdout,2024-07-08 16:39:09.106 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:39:04,stdout,2024-07-08 16:39:04.099 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:38:59,stdout,2024-07-08 16:38:59.040 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:38:55,stdout,2024-07-08 16:38:55.990 [update notice] received write Excellent400 FanMode40A1 QQ=01: ff ff ff ff 00 00 2024/07/08 18:38:54,stdout,2024-07-08 16:38:54.032 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:38:48,stdout,2024-07-08 16:38:48.960 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:38:43,stdout,2024-07-08 16:38:43.966 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:38:39,stdout,2024-07-08 16:38:39.714 [update notice] received write Excellent400 FanMode40A302 QQ=01: 5e 00 64 2024/07/08 18:38:38,stdout,2024-07-08 16:38:38.928 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:38:33,stdout,2024-07-08 16:38:33.771 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:38:28,stdout,2024-07-08 16:38:28.742 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:38:24,stdout,2024-07-08 16:38:24.816 [update notice] received write Excellent400 FanMode40A1 QQ=01: ff ff ff ff 00 00 2024/07/08 18:38:23,stdout,2024-07-08 16:38:23.704 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:38:18,stdout,2024-07-08 16:38:18.661 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:38:13,stdout,2024-07-08 16:38:13.623 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:38:08,stdout,2024-07-08 16:38:08.630 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:38:03,stdout,2024-07-08 16:38:03.593 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:37:58,stdout,2024-07-08 16:37:58.559 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:37:58,stdout,2024-07-08 16:37:58.432 [update notice] received write Excellent400 FanMode40A302 QQ=01: 01 00 64 2024/07/08 18:37:53,stdout,2024-07-08 16:37:53.603 [update notice] received write Excellent400 FanMode40A1 QQ=01: ff ff ff ff 00 00 2024/07/08 18:37:53,stdout,2024-07-08 16:37:53.451 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:37:48,stdout,2024-07-08 16:37:48.147 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:37:43,stdout,2024-07-08 16:37:43.103 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:37:38,stdout,2024-07-08 16:37:38.075 [update notice] received read Excellent400 FanMode QQ=01: Auto ### Finished 3 way switch test (switch in position 1) 2024/07/08 18:37:33,stdout,2024-07-08 16:37:33.038 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:37:28,stdout,2024-07-08 16:37:28.005 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:37:22,stdout,2024-07-08 16:37:22.970 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:37:22,stdout,2024-07-08 16:37:22.167 [update notice] received write Excellent400 FanMode40A1 QQ=01: ff ff ff ff 00 00 2024/07/08 18:37:17,stdout,2024-07-08 16:37:17.984 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:37:17,stdout,2024-07-08 16:37:17.164 [update notice] received write Excellent400 FanMode40A302 QQ=01: 00 00 64 2024/07/08 18:37:12,stdout,2024-07-08 16:37:12.931 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:37:07,stdout,2024-07-08 16:37:07.898 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:37:02,stdout,2024-07-08 16:37:02.494 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:36:57,stdout,2024-07-08 16:36:57.470 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:36:52,stdout,2024-07-08 16:36:52.443 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:36:50,stdout,2024-07-08 16:36:50.937 [update notice] received write Excellent400 FanMode40A1 QQ=01: ff ff ff ff 00 00 2024/07/08 18:36:47,stdout,2024-07-08 16:36:47.399 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:36:42,stdout,2024-07-08 16:36:42.386 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:36:37,stdout,2024-07-08 16:36:37.333 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:36:35,stdout,2024-07-08 16:36:35.873 [update notice] received write Excellent400 FanMode40A302 QQ=01: a6 00 64 2024/07/08 18:36:32,stdout,2024-07-08 16:36:32.294 [update notice] received read Excellent400 FanMode QQ=01: Auto ### Switched 3 way switch to position 1 2024/07/08 18:36:27,stdout,2024-07-08 16:36:27.247 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:36:22,stdout,2024-07-08 16:36:22.278 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:36:16,stdout,2024-07-08 16:36:16.979 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:36:11,stdout,2024-07-08 16:36:11.936 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:36:06,stdout,2024-07-08 16:36:06.928 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:36:01,stdout,2024-07-08 16:36:01.875 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:35:56,stdout,2024-07-08 16:35:56.832 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:35:54,stdout,2024-07-08 16:35:54.629 [update notice] received write Excellent400 FanMode40A302 QQ=01: 00 00 64 2024/07/08 18:35:51,stdout,2024-07-08 16:35:51.808 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:35:48,stdout,2024-07-08 16:35:48.508 [update notice] received write Excellent400 FanMode40A1 QQ=01: ff ff ff ff 00 00 2024/07/08 18:35:46,stdout,2024-07-08 16:35:46.782 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:35:41,stdout,2024-07-08 16:35:41.727 [update notice] received read Excellent400 FanMode QQ=01: High 2024/07/08 18:35:36,stdout,2024-07-08 16:35:36.710 [update notice] received read Excellent400 FanMode QQ=01: High ### Switched 3 way switch to position 3 2024/07/08 18:35:31,stdout,2024-07-08 16:35:31.307 [update notice] received read Excellent400 FanMode QQ=01: Normal 2024/07/08 18:35:26,stdout,2024-07-08 16:35:26.290 [update notice] received read Excellent400 FanMode QQ=01: Normal 2024/07/08 18:35:22,stdout,2024-07-08 16:35:22.176 [update notice] sent poll-read Excellent400 SupplyFanModeSwInput2 QQ=31: ManualSwitch;ManualSwitch 2024/07/08 18:35:21,stdout,2024-07-08 16:35:21.277 [update notice] received read Excellent400 FanMode QQ=01: Normal 2024/07/08 18:35:17,stdout,2024-07-08 16:35:17.305 [update notice] received write Excellent400 FanMode40A1 QQ=01: ff ff ff ff 00 00 2024/07/08 18:35:16,stdout,2024-07-08 16:35:16.274 [update notice] received read Excellent400 FanMode QQ=01: Normal 2024/07/08 18:35:16,stdout,2024-07-08 16:35:16.194 [update notice] sent poll-read Excellent400 SupplyFanModeSwInput1 QQ=31: ManualSwitch;ManualSwitch 2024/07/08 18:35:13,stdout,2024-07-08 16:35:13.362 [update notice] received write Excellent400 FanMode40A302 QQ=01: 5e 00 64 2024/07/08 18:35:11,stdout,2024-07-08 16:35:11.196 [update notice] received read Excellent400 FanMode QQ=01: Normal 2024/07/08 18:35:06,stdout,2024-07-08 16:35:06.167 [update notice] received read Excellent400 FanMode QQ=01: Normal 2024/07/08 18:35:01,stdout,2024-07-08 16:35:01.114 [update notice] received read Excellent400 FanMode QQ=01: Normal 2024/07/08 18:34:56,stdout,2024-07-08 16:34:56.111 [update notice] received read Excellent400 FanMode QQ=01: Normal 2024/07/08 18:34:51,stdout,2024-07-08 16:34:51.063 [update notice] received read Excellent400 FanMode QQ=01: Normal 2024/07/08 18:34:46,stdout,2024-07-08 16:34:46.101 [update notice] received write Excellent400 FanMode40A1 QQ=01: ff ff ff ff 00 00 2024/07/08 18:34:45,stdout,2024-07-08 16:34:45.818 [update notice] received read Excellent400 FanMode QQ=01: Normal 2024/07/08 18:34:40,stdout,2024-07-08 16:34:40.780 [update notice] received read Excellent400 FanMode QQ=01: Normal 2024/07/08 18:34:35,stdout,2024-07-08 16:34:35.752 [update notice] received read Excellent400 FanMode QQ=01: Normal 2024/07/08 18:34:32,stdout,2024-07-08 16:34:32.082 [update notice] received write Excellent400 FanMode40A302 QQ=01: ff 00 64 ### Switched 3 way switch to position 2 2024/07/08 18:34:30,stdout,2024-07-08 16:34:30.739 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:34:25,stdout,2024-07-08 16:34:25.716 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:34:20,stdout,2024-07-08 16:34:20.668 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:34:15,stdout,2024-07-08 16:34:15.620 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:34:14,stdout,2024-07-08 16:34:14.905 [update notice] received write Excellent400 FanMode40A1 QQ=01: ff ff ff ff 00 00 2024/07/08 18:34:10,stdout,2024-07-08 16:34:10.586 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:34:05,stdout,2024-07-08 16:34:05.578 [update notice] received read Excellent400 FanMode QQ=01: Auto 2024/07/08 18:34:00,stdout,2024-07-08 16:34:00.203 [update notice] received read Excellent400 FanMode QQ=01: Auto ### Started 3 way switch test (switch in position 1) ```
christiaanderidder commented 2 weeks ago

After a lot of digging this is what I could come up with:

# See: https://github.com/pvyleta/ebusd-brink-hru/issues/5
# In "Standard" ventilation mode FanModeStandard is set to Air Control value every ~30s
# In "Demand Clock" ventilation mode FanModeStandard is set to 0xffffffffff every ~30s
# In "Demand CO2" ventilation mode FanModeStandard is set to 0xffffffffff every ~30s
# Note: 0xff is seen as a NULL value on ebus and can't be read using the config below. It will be reported as '-'
# Note: Use a different name for this field and the read from 0x402201 otherwise home assistant keeps setting the sensor to unknown due to the '-' value
# See: https://github.com/john30/ebusd/issues/1061#issuecomment-1891011267
w,,FanModeStandard,FanModeStandard,,,40a1,,,,ULR,0x00000000=Holiday;0x00010001=Reduced;0x00020002=Normal;0x00030003=High;,

# In "Standard" ventilation mode FanModeDemand is set to Air Control value when making manual changes
# In "Demand Clock" ventilation mode FanModeDemand is set to Air Control value to every ~30s
# In "Demand CO2" ventilation mode FanModeDemand is set to Air Control value to every ~30s
# Note: It's not clear what the value of the last two bytes represent. Ignore them for now
w,,FanModeDemand,FanModeDemand,,,40a3,01,,,UCH,0=Holiday;1=Reduced;2=Normal;3=High;4=Auto,,,,,IGN:2

# In "Standard" ventilation mode FanModeDemandAuto is not set
# In "Demand Clock" ventilation FanModeDemandAuto is not set
# In "Demand CO2" ventilation mode FanModeDemandAuto is set to 0x000064 every ~30s. (Makes 0x4022 switch to Auto)
# Note: We can ignore the first two bytes they are always 00 00
w,,FanModeDemandAuto,FanModeDemandAuto,,,40a3,02,,,IGN:2,,,,,,UCH,0x64=Auto

All in all it looks like the only way to address this properly is by using some sort of external automation (e.g. Home assistant). This way it's easier to select which field to write to (depending on the ventilation mode) and to repeatedly write (to override Air control when in demand mode).

It looks like a pretty standard set of commands, but it does require changing the name of the FanMode field so it might break some integrations.

@pvyleta Would it be helpful if I create a PR that includes these changes?

christiaanderidder commented 1 week ago

A final update. Continuously updating the FanModeDemand using automation does not work when Air control is in demand mode, the fan will spin up and then the moment the FanModeDemandAuto command is issued, the fan will spin down to Auto mode again, even when issuing the updates every second.

I would like to keep demand mode, as it's utilizing the CO2 sensors.So to support overriding the fan mode I will go another route and hook an ESP board up to the RJ12 jack used for the 3-way switch and RF remote. To do this I will implement something similar to https://www.letscontrolit.com/forum/viewtopic.php?t=5702#p49500 .

I've decided to summarize my experiences and configuration files in a repo here: https://github.com/christiaanderidder/brink-renovent-hru

pvyleta commented 1 week ago

Appreciate all the effort and analysis!

I am little overwhelmed with other things, and I will be for some foreseable future, I will be very happy if you create a PR, but in all fairness, I cannot promise when I will look into it - could be weeks or months.