Water Heater: Bradford White

Requesting support for the Bradford White platform for

I’m happy to do any sort of local debugging or network monitoring to help expedite this.

Sadly, looks like API support isn’t on their short term roadmap. This was the response I got from Bradford White when I asked about API, MQTT, or even Modbus access:

My name is Julian and I am Bradford White’s IoT Product Manager.
At this time, we do NOT have an API connection to Home Assistant. That has been something that more and more people have been asking about but as of now it is not in our short-term roadmap.

1 Like

Have not had the time to crack open my connect module yet…but according to this it’s an ESP32 running the show…which is promising.

1 Like

I just created a custom integration in the evenings this week: GitHub - ablyler/home-assistant-bradford-white-connect

Feel free to kick the tires and let me know how it goes. :slight_smile:

1 Like

You’re amazing, thanks! Unfortunately ours is offline for a year during a remodel but I’ll return to tire-kicking when it’s done.

Testing this. So far so good. I’ve been waiting for this for a while. I even attempted to do it myself with some rudimentary programming skills. However, I got bogged down by the authentication stuff since I don’t have much experience with web/app programming. Everything works so far. Will report any issues on the repo.

Is there any way to bypass the connect module and just interface with the water heater directly? I don’t (yet) have the connect module but my water heater has a RJ45 port on it that I believe speaks the GEA2 protocol. Is there a way to connect an ESP32 to this port to directly speak to the water heater and skip the connect module?

1 Like

Found some related projects on github:

The module does send a bit to the TX/RX

If I find out anything I will share.

There is NO reason this goes on the cloud…so I am looking for a way to

1 - hit this thing locally
2 - reverse engineer it

Because they have never made it really work the way it needs to…and they even removed features that I used to use.

And I hate the cloud…so…there is also that.

What is the picture of?

I would love a way to connect to the RJ45 port and bypass the connect. I’ve had a number of issues with the API endpoint going down or the connect needing power cycled.

Bradford White’s connect module speaks GEA2 to the water heater on one port, and uses Wi-Fi to make an HTTPS connection to an AWS server that implements Bradford White’s cloud.

I haven’t snooped on the HTTPS connection, but I suspect that you could spoof that server address (since IoT devices rarely validate server certificates) and make a man-in-the-middle device that intercepts the traffic.

But I advise against that. The connect device isn’t reliable. It loses its Wi-Fi connection and needs to be restarted periodically. The firmware is not robust. Bradford White didn’t design this device or write the firmware, so they don’t seem to have the expertise to support and improve it. I doubt that it will ever get any better.

And based on Bradford White’s poor support for the cloud service, I suspect that their bean counters will decide to terminate the cloud service within a few years. When that happens, your man-in-the middle device won’t work any more.

I imagine that you’d have better results by removing the connect module entirely and interfacing with the water heater directly using your own ESP32 or similar. Two obstacles:

  1. The GEA2 port speaks a variant of RS485. You need a bit of electronics fiddling to interface the ESP32 to that port.
  2. You need to speak the low-level protocol to talk to the water heater. Other folks have already done that work; you can find Python and Javascript libraries to do it.

That’s a photo of the serial debug port on a BW connect adapter circuit board. If you plan to connect to it, please note that it operates at 3 volts. It is not safe above 3v3, (it’s not even safe at 5V) so don’t connect a real RS-232 cable.

Yup, I am getting all the information I need from the serial port. Just an FYI I am the original reverse engineer’er of the Mitsubishi protocol and Balboa Spa (it was so long ago you’d have go back through dozens of GitHub repos to see the thanks…) I am familiar with the ins and outs of reverse engineering.

For those without this board, GEA2 is ideal, I don’t have the time to make an ESPHome version of GEA2, though given how many things use it, that would be awesome to have.

For those with the board, I am getting all I need from the logs on the pins I shared. I hope to have an esphome version of a controller which can connect to this board soon. Then at least I can keep if off the cloud.

The work @ablyler did is awesome (THANKS!) but it doesnt seem to represent the way my DHWH works and keep fording it into eco vs hybrid. I might have time to debug and share back to that project and I would love to add more of the sensors to the integration (I left a note on his repo about some help understanding his calling patterns so I can layer them in). I am seeing that ENTIRE JSON on the serial port.

It is indeed a piece of junk otherwise…I have mine on a zigbee outlet to power cycle it.

If ANYONE out there knows about GEA2, it would be awesome to get a library for it…

If you could put a proxy between your mobile device and the API to capture what requests / responses you get when using the BWConnect app, that would help me debug any issues you are seeing.

Also, there is a GEA2 library now: GitHub - geappliances/tiny-gea-api