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

Thanks @Fonske, I am running the version 2 hardware you send me for a few days now and it all works as expected. And thanks for your “after sales” support.

1 Like

Has anyone managed to switch the valve of the co2 module via modbus? so you can choose the zone of ventilation

I have added a delay to the script in my scenario:

-script:
  - id: on_boot
    then:
      - delay: 300s  # Adjust the delay time based on your needs
      - lambda: |-
          auto new_value = 2;
          ...
          ...

The reason for this is when you have a total power failure in the whole house and the power comes back, the ESP will boot up much quicker than the Brink does, meaning the script is executed, but the ventilation unit is not responding yet.

Thank you.

I have added it also to my github code.

Another note:
Currently i have connected a m5stack RS485 with an m5stack Atom S3 lite.

Power supply from Brink 24VDC to the 12V / GND connection on the m5stack.
It has a wider range of DC power supply, it won’t give any problems.
Also it has an i2C connector, so SCD41 or ENVIII is also possible (missing values on the inlet brink from suction side house.

2 Likes

Hi there. Great work you have here!

Question If I understood well this latest setup you have - you used the 24v supply from brink terminal to power the m5stack on the Atomic rs485 base which then is connected/suplies the Atmom s3 lite? No need for 12v supply or DC-DC down step?

Thanks in advance!

@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