Venmar (Vanee/Broan) ERV / HVAC controller output

Unfortunately I have the touch controller so will have to look into if that had proper locations to connect to ESP32. Also wondering if it would be simpler to connect the ESP32 directly to ERV control terminals for auxiliary control either directly or using a relay.

Hello guys, nice thread! been peepin at it for a while now. I have the touchscreen control and I wish I could change the working mode to recirculation/turbo/continuous as well as speeds at will with my own controller. I’m currently sniffing out the comms with an RS485 USB dongle. Baud rate seems to be 38400 and boy there is a lot going on. ERV pings controller every few miliseconds until controller answers. Then they share data continuously one after the other. Next step will be to emulate the controller from my PC… wish me luck! I’m begining to find the switchbot idea pretty elegant…

2 Likes

Good luck, I have the touch controller as well. Another approach with that one maybe to see if you can emulate the secondary Bluetooth controller for it. It won’t provide full control but at least you can have it set to turbo for 20/40/60 minute intervals with that function.

Good luck!

I got me two RS485 dongles, I was going to do a RPi Man-in-the-Middle attack on it where at first it just forwards traffic, then later can insert traffic.

Then my job got seriously busy and that had to be postponed.

I’m running the Switchbot now, but it does get out of sync every now and then, so I’m really hoping you’ll be successful!

@ewoolley04 : Thank you so much for your code, this will help us a lot.
Quick question for you: Seems that first code line is missing, what is the component name for the first bloc ?

component_name?:
  - platform: gpio
    pin: GPIO4 #TP28
    inverted: true
    id: gpio_4_output
  - platform: gpio
    pin: GPIO16 #TP29
    inverted: true
    id: gpio_16_output
  - platform: gpio
    pin: GPIO17 #TP17
    inverted: true
    id: gpio_17_output

Can you post any pictures of the solder points?
Are these tiny surface-mount points, or something bigger someone with no soldering skills can handle?

Stumbled upon this and I’m trying to do the exact same thing, any chance you can share your automations? Thanks!

I just got a BLP150E75NS ERV with VTSPEEDW wall control.
I hooked up a 485 to USB adapter and it seems to be 38400 baud 8N1.
I took hex dumps at all speed settings and fed them into Google Gemini which gave some clues as to the protocol. CFM seems to be reported by the ERV as 32b floats, frames appear to be using typical modbus style 16b CRC. If anyone wants to help I have posted the data dumps here. I suppose I might also try dumping the flash from the wall control itself as it has a labeled ARM SWD header.

3 Likes

Fantastic! CFM is something that I’d really be interested in getting my hands on. This provides clues on the state of filters (the more clogged, the less airflow) and also to better understand functioning patterns and calibration.

I’ll follow this thread!

Hello,

I am still very interested in your project regarding the ERV BLP150E75NS and its communication protocol. I would love to know what your objectives are with this project and what you hope to achieve.

If possible, I would also like to obtain additional data, including input and output CFM, as well as values for indoor and outdoor temperature and humidity.

I would be happy to discuss this further and explore possibilities with you. Thank you in advance for your response.

@holstein13 Do you have the STL files for the switchbot+remote you’ve made?

If anyone else is looking, this model worked fine for me:

Then this for the state machine if you have a energy monitor plug

  - platform: template
    sensors:
      erv_status:
        friendly_name: "ERV Status"
        unique_id: sensor.erv_status
        value_template: >-
          {% set power = states('sensor.erv_energy_power')|float %}
          {% if power > 50 and power < 80 %}
            Mid
          {% elif power > 80 and power < 90 %}
            Max
          {% elif power > 90 %}
            Turbo
          {% elif power < 10 %}
            Off
          {% else %}
            Min
          {% endif %}

I’ve started work on an esphome component that works with these units. You’ll need an esp32 and an rs485<->uart converter. You can buy some off the shelf units with one pre-installed (waveshare makes the one I use, it’s some 6 relay industrial board)

Reverse engineering info: Reverse Engineering an ERV - Message on the wire
component repo: GitHub - nspitko/broan_erv_uart: ESPHome component for reading/writing information to Broan ERVs via serial

This is still in early development so don’t expect it to be stable and a lot of features are still missing (currently can only set fan mode and speed)

7 Likes

Omg! You figure out what I missed a few years ago! Thx a lot nspitko! I will following this very closely and try to contribute if I can

I have the touch controller on mine - I thought I could talk to it over bluetooth but sadly this is not the usecase they had in mind.

I would like to help providing packet captures but I dont know where to start… Pointers ?

I have all the ESP32 hardware to talk RS485 with the system fwiw.

It’s looking like there’s probably no easy way to make the wall remote controllers compatible with the esp component. I was able to pick up a VTTOUCHW on the cheap so I’m going to explore this a bit more this week, but even if I do get it working it’s going to be very fragile. Most likely the only real solution is going to be to MITM the remote, and that’s outside the scope of this project (though if someone wanted to add support I’d be happy to PR it and offer advice along the way)

The aux remotes should still work fine though as they use the dry contact interface to override the smart controllers.

For now the most valuable thing anyone can do is just try the component out and let me know if it works on your particular model. I’ve already found differences I need to account for in the sample size of two we have right now, so more data means more units supported.

Any chance someone could share how the rs485 bits are wired into the ERV? I know just enough about a lot of this to try things but not enough to be good at it.

Edit: Nevermind, figured it out. I was using an old max485 board that required handling for send/receive. Switched to an auto send/receive rs485 board and now it’s working.

Hey this is very cool… I’ve got a Venmar AVS X30

My use case is similar… I want to be able to on demand kick the HRV into turbo mode on demand. I was thinking would it be simpler to mimic the auxillary controller to do this? Rather than play around with the main controller wiring?

would be as “simple” as mimicing the signals the aux controller would be sending but via a esp32 acting as a UART (learning a lot of this as I go). Seems the ESP32 can act as an UART out of the box?

thanks for providing any insights

All you need for the AUX interface is a relay module. Should be easy to set up with esphome or even a bunch of off the shelf zigbee/zwave modules. There are some posts earlier in this thread that discuss how to do the wiring, I think it’s just OVR to +12v but double check.

I will hopefully look into automating mine soon. Hopefully we can figure it out.