Integrating Brink Flair HRV with Home Assistant

Hi.

This is heavily inspired by this medium post and also this great guy. It works at least with Brink Flair 325 and 400 (but likely some other ones too) without any extra accessories from Brink (e.g. the “Plus” extension). I would recommend this unit from both Homeassistant integration point of view (boils down to having local control via modbus) but also from other specs (works, silent, efficient, …).

Update: There is now also this post about using just ESPHome and ESP boards

I wanted to do the integration via Brink HRV <-> modbus <-> rs485 to TTL UART <-> ESP8266 <-> wifi <-> home-assistant, but I didn’t manage to make it work with ESP8266 in the end.

I then chose the same solution as in the post above: taking one of my old Raspberry Pi 3B+ (not running anything else), connected the ModBus via USB RS485 converter (like 3$) to that Raspberry, connected that to the wifi and to my MQTT broker so it can be later automated via MQTT platform sensors in HA.

What’s different from the original post is that I leveraged the input_select and can set the level appropriately from the lovelace interface. I also added a few additional metrics and sensors (not all though) and switches (such as bypass). For anyone interested, it works great, local first, still being able to set things from the display as well (although it overrides the modbus settings for ~30 minutes as per the manual). I would recommend this type of HRV if you care about automating your ventilation system (which I think you should).

Here are all my configs.

Update (November 2021):

flow-400.json contains a slightly improved version with preheater and “enable modbus” switch that is needed after every restart to make it work. You might want some of that even if you have Brink 325.


I was able to set up simple rules such as if there is high humidity somewhere or too much CO2 (I have some CO2 mh-z19 sensors), trigger the “max” mode, or when no one is at home → switch it off.

2 Likes

Nice NodeRed solution, where did you got stuck with the ESP?
I also have been, with success, on the same track for reading and display values directly with this 3,3V parts: https://www.aliexpress.com/item/1005001992729937.html and a TTgo

This RS485-TTL has only rx and tx to control, makes it easier.
Got my inspiration from this blog post:
http://shahrulnizam.com/esp32-lesson-modbus-energy-meter/

:wave: I really just wanted to use ESPHome and that didn’t have a good modbus controller integration back in then. Now I think it has, so I might try again (although the current raspberry works flawlessly, but it’s still much more complicated and e.g. when SD card crashes, I will have to figure again how to make everything work which is annoying :smiley: ).

1 Like

Thank you for the ESPHome reference.
I did know the project but was not aware it had RS485 implemented.

Once things work, it takes courage to rework and simplify them :woozy_face:

Update: Added better handling of negative values. They are read from modbus as values subtracted from 65536, so a transformation needs to be applied.

Thanks for the great implementation and detailed explanation.
Now I only run into the problem that the payload is always ‘0’…with every modbus-register.

Does anyone have an idea what could be causing this?

Setup:

  1. Brink Flair 400 Plus
    – connected a signal cable to the X06 connector on the “plus board” to pin 2 & 3
    – on the “base board” the 120ohm jumper (x12) is connected. The x121 and x122 are disconnected
  2. For the signal cable I used a “KNX bus cable” (2x2x0,8 twisted with shield). Only 2 are connected. Length is about 12 meter.
  3. RS485 USB connector directly into my Raspberry Pi 4B. Because there is only a A and B connection on the RS485-USB, I did’t connect a ground cable.
    Status:
  • Node red gives a ‘active’ status to the modbus entities.
  • Modbus injects give a succes message in Node Red.
    …but only a payload=0 is given back…

Ugh, no idea, seems like a lot of moving parts (Plus board, KNX, …) that differ too much from my setup. I really have just a 2m long UTP cable (using just one pair of the 4 pairs) connected to ModBus on the unit and then in RS485 USB in Raspberry, works fine.

Did you config something in the Flair-configuration?
…besides the menu 14-Communication: TypeBus=Modbus, Slave Address=20, Baudrate=19200, Parity=Even;

No, I haven’t it’s the factory settings identical to yours.

1 Like

Hi,
I’m using Loxone to read the Modbus registers and had a similar problem. After contacting Brink yesterday it seems that if you have a plus board, you need to set the communication to brink bus. This enables the communication between the main board and the plus board. After that I immediately started receiving data. I dont have any of the jumpers connected.