Home Automation

Wave Thermostat finally speaks to HomeSeer

I live in a bunker of a flat, reinforced steel and hardcore in the walls, solid concrete floors and ceilings, makes for fun mobile and WiFi reception. Until about two years ago it had no connected gas supply and relied on electric to generate heat & hot water – it cost an absolute fortune. I finally got the gas connected & everything replaced with a modern Worcester-Bosch boiler, mainly because a boiler fitter I knew highly recommended them. It came with the option of a Wave smart-thermostat and although i had been eyeing up an EcoBee it was looking doubtful it would be available in the UK by the time I was going ahead with the installation. The Hive & Nest devices were available but the boiler had certain functions that only the Wave could utilize – i thought it best to just go with the recommendation.

The system itself is great – it keeps me warm during winter and i can shower in hot water all year round – hurrah.

But what about the “smart” side of things. I run HomeSeer as the central point of my HomeAutomation setup – its pretty old-school but it’s flexible enough to achieve pretty much anything, if you know how or can persist long enough to make it work. My overall goal was to have the stats provided by the thermostat available in HomeSeer so i could base events on them or just show the stats within HSTouch – the touch-screen control portion of HomeSeer. I’m not particularly fussed about being able to override the thermostat via HomeSeer, it’s a nice to have, but the mobile app works perfectly well for that – and honestly i think i’ve had to manually adjust the temperature whilst not in the house twice in two years – not particularly worth the investment in time.

So, i e-mail worcester-bosch hoping to get some information on their API or if they had plans to interface with IFTTT or some other cloud service that i could use as a route to HomeSeer.

“No, go-away, why would you want to do that anyway?”

Turns out, lots of people want to do exactly this…

Hacking the Worcester Wave thermostat in Python – Part 1

After lots of reading and failed attempts to get his code going, i found this:

Nefit Easy™ HTTP server (Link)

HTTP server to access Nefit/Bosch XMPP backend over HTTP.

And within 5 minutes my thermostat was speaking JSON to me – nice.
What did it say?

{"user mode":"clock","clock program":"auto","in house status":"ok","in house temp":22,"hot water active":false,"boiler indicator":"off","control":"weather","temp override duration":0,"current switchpoint":37,"ps active":true,"powersave mode":true,"fp active":false,"fireplace mode":false,"temp override":false,"holiday mode":false,"boiler block":null,"boiler lock":null,"boiler maintenance":null,"temp setpoint":10,"temp override temp setpoint":22,"temp manual setpoint":24,"hed enabled":null,"hed device at home":null,"outdoor temp":18,"outdoor source type":"virtual"}

Now i have this running every 30 minutes available to any system on my LAN i just need to get HomeSeer to pick the data up and throw it into a Virtual Device. Over in HomeSeer world there is a guy called Jon00 – he writes an almost endless amount of plugins for HomeSeer and they are all free! (Check him out) He has a great Website DataScraper and with his help writing some RegEx all is achieved!

Running two lines of RegEx on the above JSON String gives me In-House & External Temperature.

(?s)"in house temp":(.*?),"hot water active"
(?s)"outdoor temp":(.*?),"outdoor source type"

I also used his Dashboard plugin to turn these virtual devices into graphics that can be quickly used in HSTouch, the end result looks like this. I can now pull these into my HSTouch project files and they will update every time the back-end polls for new data every half-hour.

HSTouch still drives me (and everyone else in the world who uses it) crazy, but i’m yet to get my head round HomeRemote which seems to be the replacement du jour – so this will have to do for now.

With colder temperatures on the way it’ll be interesting to see if the newly added data causes me to interact with the system more or less – i imagine a few weeks of learning and tweaking some events and then it’ll require so little intervention i leave it alone and move on.

In addition to these live thermometers i’ll be adding a line graph to chart the last 14 / 30 days of history #DataGeek

I’ve also just seen a new beta of Grafana has come out and it seems to have moved on considerably since i last checked it, i see metrics in my future…