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.

Wednesday, February 10, 2016

Getting RaspberryPi in Tune - GRIT

Welcome to GRIT, or should I say G-R-I-T (Getting-Raspberry Pi-In-Tune). My adventures in tuning my Raspberry Pi for what I need/want it to do.

The Raspberry Pi is a small inexpensive computer that runs a version of Linux. You run it headless (no display or keyboard) from another computer - for less than $50.  The Raspberry Pi itself is $35, but you'll need a 10 watt USB power pack, and a 8 gig (or more) micro SD memory card.  If you want (and have) an HDMI monitor and a USB keyboard you can plug them into the Raspberry PI and have a 'desktop' computer.  I recommend you go the headless route.  You can use ssh and vnc to access it from your current laptop or desktop.

I have both a Raspberry Pi B+ and a Raspberry Pi 2.  If you decide to get a Raspberry Pi get the 2.  I use Raspbian for my OS. There are other flavors of Linux you can use on the Raspberry Pi.   I'll skip the setting up of the Raspberry Pi since there are tons of other references you can use.  To find an install by searching on:
raspberry pi headless install ????
Where ???? is your OS (Windows, Mac, Ubuntu etc) of your current laptop or desktop.

Two things.
  1. The Raspberry Pi does not come with WiFi.  You'll either have to use an Ethernet cable to connect it to your router, or buy a USB WiFi adapter (~$10).  I'd start by just plugging it into the router.  One of the advantages of headless (remote) access to the Raspberry Pi is that it can be placed near enough to plug into the router, and you can access it from anywhere in your WiFi network.  You don't have to touch the Raspberry Pi unless you are doing hardware hacks.
  2. Get a case for your Raspberry Pi.  They are cheap (<$5), and will protect your Raspberry Pi from damaging itself or something else.
I'll blog more as I discover useful things.  I've got the Raspberry Pi connected to my water heater using a green bean so stay tuned.