Friday, February 19, 2016

Getting Green Bean Going

My current Raspberry Pi project when complete, will allow me to monitor and control my GEGeoSpring (TM) hybrid electric water heater I installed in October 2014.
Geospring GEH50DEEDSRB installed in crawl space.
I have model GEH50DEEDSR (SR=Red top cabinet) but the same water heater is available with a charcoal top (GEH50DEEDSC).

Summer 2015 I purchased a GE CONNECTPLUS and installed it on the water heater, so I could control the water heater using the GeoSpring app.  I also installed a tank booster to increase the effective capacity of the tank.

GE Connect Plus
The GeoSpring app is very limited.  It only lets you switch modes between all electric, high demand, hybrid, heat pump, or vacation as well as adjust the water temperature.  It's worked Okay since I started using it after one call to GE support during the install.  GE was very helpful and quickly reset something that got the app connected and working.  If you are having trouble getting the ConnectPlus (aka ACM) working don't fight it - call GE.   Also I found that it's best to use a large screen phone or tablet when getting the ConnectPlus working - the UI is a bit scrambled as you can see below.

App primary layout
App setting (swipe down) - It's a bit scrambled on my phone.
The one major flaw with the app is it does not tell you the actual temperature of the water in the tank which to me is a major limitation.  That's important to know every night at shower time.  If one person has used a lot of hot water the water temperature can be low enough that it would be a good idea for the next person to wait.  If I could tell what the actual water temperature was, I could estimate how long that wait would be.  Since the app does not show the actual water temperature I often just switch the mode to full electric and have them wait 20 minutes or so for it to recover.  If I knew the actual tank temperature they might not have to wait so long or I might be able to leave it in heat pump mode.

Green Bean adapter

Raspberry Pi & Green Bean (in a Lego brick case)
I suspected that the microprocessor in the water heater knew what the tank temperature was, but the app developer decided not to retrieve and display it.  I was going to hack the ConnectPlus, but it turned out I don't have too.  GE has published the GE Appliance Software Development Kit and made available a small USB device called the Green Bean that communicates with the water heater via the same RJ45 port the ConnectPlus uses.

Control panel close up.  Notice the RJ45 socket (small black square)
Note: Do not connect your laptop directly to the water heater using a Ethernet cable.  You can damage your laptop (bad), water heater (worse), or both (Yipes!).

There is only one RJ45 port on the water heater, but the protocol used is a pull down open collector (one wire) bus so you can connect more than one device to it at a time, if you use a RJ45 splitter.  I got a 2 to 1 splitter from eBay for a $1 free shipping.  I'm sure I have one somewhere, but why would I dig through all my stuff for 30 minutes looking for it - to save a buck?  Nope.

FYI -  Plugging the ConnectPlus back into the water heater restores its function, so you don't have to wait for the splitter to show up to test out the green bean.

Output from geospring-test.js. Note sudo has to be used.
 There is sample code on github to use.  As you can see in the above screen shot, the Raspberry Pi is talking to the green bean (via USB), and shows the current tank temperature (138 F).  The kwh data is all zero because the water heater is near enough the set temperature of 140 F that it's not heating the water.

My next post will get into the nitty-gritty of using GeoSpringHack to get all of this to work.

1 comment:

  1. Thanks for the write-up. It doesn't seem like there is much detail on an implementation like this out there. I just installed my Geospring over the weekend and ordered the Green Bean this evening.

    How are you displaying data from or controlling your unit? What are your plans for the project?