Brink Flair 325 Heat recovery unit ESPhome modbus integration (~$5)

@homeroleal
Thats correct.
The m5stack RS485 base can be connected to 24 VDC without any issues.
It has a A0Z1282CI and 4.5V to 36V operating input voltage range.

Atom + RS485 base connected to Brink Flair:

1 Like

How about the tail converter? Has anyone used this one ATOM Tail485 - RS485 Converter for ATOM | m5stack-store

Or would the line transceiver chip be an issue?

@homeroleal

It is also suitable for 24VDC (and converts it to 5VDC to the atom).
So i cant find a reason that it shouldnā€™t work.

However the I2C port on the atom is then used for the power + RS485 communication and not available anymore for an extra I2C sensor, like the ENVIII or ENVIV or SCD40/41, which could be handy on the brink ā€œinlet suction from houseā€ measurements.

1 Like

True thanks for the point of view!

I wonder if does have this sensor, but just doesnā€™t expose it via modbus. Iā€™ve been trying to make sense of how the bypass behaves and my impression so far is that it doesnā€™t use the ā€œto outsideā€ temperature but rather something slightly higher.

I tried reading the NTC2 sensor at 4082 but that returns 9999 for my Brink Flair 300.

Hi all,
first of all thanks for this integration!!

I tested it on my Flair 400 with an ESP8266.
After some difficulties I got it to work.
I can set the flow value, but I donā€™t get any values back.

Any idea what this could be?

I inserted the code from the first Post.

Btw: I tried to import the GitHub - fonske/Brink-flair-modbus: Modbus RTU communication with Brink Flair to use in home assistant / esphome project.
Can anyone help me with the folder structure? How can I import this to ESPHome?
Or do you know a good instruction/video for this kind of folder import?

Thanks in advance!!!

@MarcHA
You probably have faults on the modbus communication, because you dont have any values, only the input numbers programmed in the esp.

I dont think the esp8266 (wemos d1 mini) is suitable for this job.
I tried it in the beginning but soon it became unresponsive.
A wemos d1 mini pro could do it probably.

I would advise to use the atom S3 lite with the atom RS485 base from M5Stack.
I dont no where you live, but i can deliver it to you. (depends on where you live. I live in the netherlands)

The structure is not so difficult.
When you copy all the github files in esphome to your esphome directory, following the directory structure, and put brink.yaml in the esphome directory, it should install and compile locally.
Like this, brink.yaml

substitutions:
  name: brink
  friendly_name: Brink
  device_description: "Esphome component for Brink Flair with modbus"
  timezone: "Europe/Amsterdam"
###  Settings Brink Flair (no need to change normally)
###  menu 14-Communication: TypeBus=Modbus, Slave modbusaddress=20, Baudrate=19200, Parity=Even
  modbusaddress: "20"

# In order to use other language or a different ESP chip, fix include file name below:
# Currently supported languages are en, nl. 
# ESP32 is a mh-et-live or wemos d32 mini, esp8266 is a wemos d1 mini, esp32s3 is a lilygo ESP32S3-T7
# Be carefull not to upload the wrong code to the wrong chip. This could brick your ESP chip.
# Choose the correct type for your Brink model, so the correct max flow can be setup with a slider.

#packages:
#  remote_package:
#    url: https://github.com/fonske/Brink-flair-modbus
#    ref: main
#    refresh: 0s
#    files: [ esphome/type/brink-325.yaml,
#             esphome/labels/.brink-labels-en.yaml, 
#             esphome/.brink.base.yaml, 
#             esphome/boards/board-esp32S3.yaml,
#             esphome/sensors/sensor-enviii-i2c-m5stack.yaml,
#             esphome/sensors/sensor-brink_hum_sensor.yaml,
#             esphome/sensors/sensor-brink_co2_1_sensor.yaml
#           ]
    ## options are:
      # esphome/type/.brink-300.yaml
      # esphome/type/.brink-325.yaml
      # esphome/type/.brink-400.yaml
      # esphome/type/.brink-450.yaml
      # esphome/type/.brink-600.yaml
      # esphome/labels/.brink-labels-en.yaml
      # esphome/labels/.brink-labels-nl.yaml
      # esphome/.brink.base.yaml
      # esphome/boards/board-esp32.yaml
      # esphome/boards/board-esp32S3.yaml
      # esphome/boards/board-esp8266.yaml
      # esphome/boards/board-esp8266-d1-mini-pro.yaml
      # esphome/boards/board-m5stack-atom
      # esphome/boards/board-m5stack-atoms3-lite
      # esphome/sensors/sensor-scd41-i2c-dfrobot.yaml
      # esphome/sensors/sensor-scd41-i2c-m5stack.yaml
      # esphome/sensors/sensor-enviii-i2c-m5stack.yaml
      # esphome/sensors/sensor-enviv-i2c-m5stack.yaml
      # esphome/sensors/sensor-dht22.yaml
      # esphome/sensors/sensor-brink_hum_sensor.yaml
      # esphome/sensors/sensor-brink_co2_1_sensor.yaml
      # esphome/sensors/sensor-brink_co2_2_sensor.yaml
      # esphome/sensors/sensor-brink_co2_3_sensor.yaml
      # esphome/sensors/sensor-brink_co2_4_sensor.yaml

# for developing/testing, uncomment local includes and comment out remote_package part.
packages:
  substitutions: !include labels/.brink-labels-en.yaml
  device_base1: !include .brink.base.yaml
  device_base2: !include boards/board-esp8266.yaml
  device_base3: !include type/brink-400.yaml
#  device_base4: !include sensors/sensor-enviv-i2c-m5stack.yaml
#  device_base5: !include sensors/sensor-brink_hum_sensor.yaml

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

# Put your API key here if you have one
# api:
#   encryption:
#     key: !secret brink_api_key

I had this running fine for about 1 month, but it suddenly stopped working a few days ago. Not sure if it could be related to an update of ESPHome (I did update a few times, also recompiled with newer version, but I didnā€™t notice when exactly this stopped working).
It seems the device canā€™t read from Modbus:

[D][modbus_controller:043]: Modbus command to device=1 register=0xFC0 countdown=0 no response received - removed from send queue

On the RS485 board, only the TXD LED is blinking, not the RXD. I surely didnā€™t change any settings on the HRU. I tried restarting the HRU and the ESP but it didnā€™t help. Iā€™m using a ESP32 devboard and the RS485 is connected to the 3.3V pin. It worked fine until now.

Any idea why it just stopped working? Were there any changes in ESPHome maybe? There were also some restarts of HRU due to power loss. I also resoldered the connections on the RS485 board so they should be ok.

1 Like

It seems the RS485 module became defective. After replacing the module, it works again.

hi there
does anyone know if the viessmann vitovent 300-c is the same as the brink renovent sky 150?
and if so: could you please tell me the modbus address of the device? I am trying to get this working for quite some time now and it wont connect :slightly_frowning_face:

I have another question: is it possible to keep the display working which is already connected via modbus? (viessmann lb1)

I am using an esp32 wroom and these boards

thank you
cheers

Chris

@ChrPrk The modbus adresses are somewhat different then the adresses on the brink Flair (not renovent)

If you change my code on github to your own, you probably get a readout.

There is usually only 1 modbus master possible (the esp32) and not an extra one (the display)
Unless you design one with 2 modbus connections, client and server.
You need to programm that also. (arduino ide?)

Edit: i thought you meant a vitovent-300-W.
So never mind, but i leave this post for anyone who has a vitovent-300-W

OK, so this is going to sound a bit dumb. I first asked about this back in 2022 when I first got my Brink 325, however time pressures and lack of understanding on my part meant I put it on the ā€˜Look another time pileā€™. I decided I need to get on with it now.

My main issue (me) is lack of understanding of electronics and for some reason it totally confuses me. So, I have a 325 and it has the expansion board. I also have a RPi4 running Homeassistant. Could somebody explain what the bits are that I need between the two to make the connections. Iā€™m fairly sure if I have a pile of bits and a reasonable amount of reading I can get going, possibly with a few specific questions if I get stuck.

There seem to be several approaches using different bits, ideally I just need fewest parts in the pile.

One extra question, I have a remote controller (if you can call it that, pretty dumb and low function as far as I can deduce), which is connected by ebus(?) If I go to Homeassistant (via Modbus) will the controller be no longer usable, which is fine by me.

@oldboyredw
You need an esp with modbus adapter which will be feeded with 24VDC power from brink itself.
If you use the expansion board and not the direct RS485 A en B connections, i think you should put the communication to Brinkbus, but it will probably already on that setting inside the brink menu.

Code is on my github.

Choose the esphome/boards/board-m5stack-atoms3-lite option.
I dont now where you leave otherwise i could provide you one with rs485 base.

That looks very interesting. Iā€™m in the UK. So, it connects to the 325 with a set of four wires. What connects to RPi, USB or to the gpio? This looks a simple solution. Control status is Auto-Ebus if that is what you are saying by Brinkbus.

I can pick up with you on a PM here if youā€™re OK with that.

@oldboyredw
If you run the esphome addon on home assistant, you can upload the code yourself to an esp through usb using my code from github.
All esphome devices are picked up by home assistant automaticly when connected to your wifi.

I think it might be cheaper to buy an RS485 base board with an atom s3 lite from the UK then from europe mainland?
RS485base: A131 ATOMIC RS485 Base | m5stack-store
Atom s3 lite: C124 AtomS3 Lite ESP32S3 Dev Kit | m5stack-store

@Fonske Thank you. Iā€™ve placed them on order from UK :slight_smile: Iā€™m guessing from your previous comment about the extension board on the Brink the Brink controller may still work with this installed. If so that is a positive because Iā€™ve found their portal to be ā€œnot greatā€.

UPDATE You were right, the two parts arrived today having been ordered from UK yesterday. Now to sort out how to set up and integrate. USB at first I believe to allow the firmware update. Then how do you connect it to the RPI? I have about a 20mtr route from the MVHR unit to where the RPi is sitting. Thanks again for your help.

@oldboyredw
You need to install addon esphome on you home assistant installation.
Then make a yaml file inside /esphome directory with this code
Brink-flair-modbus/esphome/brink.yaml at main Ā· fonske/Brink-flair-modbus (github.com)

Fill in secrets.yaml (in /esphome) with your own wifi credentials
Brink-flair-modbus/esphome/secrets.yaml at main Ā· fonske/Brink-flair-modbus (github.com)

Then choose install in esphome, manual (when factory format remark comes, choose that one) and use
https://web.esphome.io/?dashboard_install
To instal the code connected with usb to the atom. After that it should be accessible through http://brink.local

Automaticly the device will be noticed by home assistant and you can add the device.
Here is some code, you can add to you lovelace menu. (pencel upper right corner - raw menu editor and add the code in the right place)
Brink-flair-modbus/homeassistant at main Ā· fonske/Brink-flair-modbus (github.com)
The images can be copied to a new directory in your home assistant /www/images.
You need to install hacs, to have the pictures and buttons visable with button card (and some other ones maybe, see the warnings when they popup)

Looks like it all installed OK. I hope to connect to the MVHR in a few days.

For info there was an small error in the code on git. Line 24 (see below had a .yaml missing.
esphome/boards/board-m5stack-atoms3-lite,
I changed it to:
esphome/boards/board-m5stack-atoms3-lite.yaml,
Then it worked just great.

As I cant connect for a couple of days Iā€™m not sure if the following error is real or not, Iā€™m getting an error message about the api_key. I wasnt even aware that I had an api key in the brink MVHR. Iā€™ve hunted around the portal and cannot find one.

Secret ā€˜brink_api_keyā€™ not defined
in ā€œ/config/esphome/brink.yamlā€, line 68, column 10

Thanks for all your help.

@Fonske (or anybody who can help)

Well, I got a cable made and everything ready, needless to say I hit two more problems, both ā€˜electricalā€™ and both Iā€™m happy to take advice on. They may be simple. I was going to attach the B,A and Ground to the three connections in X06 and the DC12V to the 24V terminal in X03 on the UWA2-E on my 325.
1: Unlike most of the other connectors there is not a clamp module in X06.
2: There is already something in the X03 connector, the 325 master board itself, so I guess this is bringing power to the UWA2-E.

Iā€™ve included a picture of the UWA2-E below. I took the clamp out of X16 just to see what it is like. It is a double whereas I need a treble. X06 us the red treble connector on the left of the board.

Two questions:
1: Am I trying to connect to the correct places?
2:Does anybody have a suggestion that sort my problems?

@oldboyredw
If there is nothing connected to your ā€œ+ā€ print, just disconnect it.
And connect the modbus A en B en - and +24 Vdc from atom RS485 directly to the main board.
And set the control on modbus instead of brinkbus in the wifi accessible menu from brink.
Edit: if you dont have the 24Vdc, you can always use the usb port in front on the brink to feed the atom S3 RS485 base power instead.

You can leave the api and api key commented out with # if you dont use a api key on your home assistant on brink.yaml