Wattwatchers and HomeKit: Experiments in Home Energy Automation

Wattwatchers HomeKit prototype demo

Wattwatchers’ product suite provides great awareness and insight into how you use energy. And it can definitely help you identify where you can make improvements. 

But optimising your energy use is hard work. A customer in a recent research interview put it succinctly as: “I’m too busy to be better” when it comes to energy efficiency and management.

At Wattwatchers we believe you shouldn’t need more time to “be better”. We envisage a future where you can simply automate your home energy management—to the level you are comfortable with, and without relinquishing ultimate control, of course.

Home automation systems like Apple’s HomeKit and Google Home already let you automate many things that can help with energy efficiency. From turning off the lights when someone leaves a room to closing windows and blinds on sunny days. 

But energy itself—both its use and generation—is currently mostly not integrated with home automation systems. We think this should change so you can more easily optimise your energy use without thinking about it.

Use cases

Some key opportunities to integrate energy management and home automation revolve around shifting your energy use to when it is cheapest. This is relevant when you have rooftop solar, or when you are on a plan with dynamic pricing.

Rooftop solar

For most households with rooftop solar it makes sense to use as much of the generated energy on-site instead of feeding it into the grid.1 A good way to do so is to (only) switch on appliances that use significant energy, but aren’t time-sensitive, when the sun is shining. Think pool pumps, hot water systems and, increasingly, EVs. Or washing machines—load it up in the morning and have your home automation turn it on at the optimal time. And how about charging any battery powered devices, like lawn mowers, power tools, etc.? Why not charge these appliances when you have solar energy to use, and stop charging when you don’t?

Dynamic tariffs

Or maybe you are on a time-of-use tariff with your energy retailer. Wouldn’t it be great to automatically turn those same appliances on during off-peak hours? This is even more crucial when you are with a retailer where pricing reflects the spot market price, like Amber Electric. These plans can be very cost effective (at times you even get paid to use electricity!), but there are times where energy is very expensive. Imagine the savings—and peace of mind—when you can automatically turn things on when prices are low and off when they get too high.


We decided to build a prototype to explore how we can integrate these scenarios into Apple’s HomeKit home automation platform. We did so without building any new hardware, instead we used the Homebridge framework. Homebridge allows you to bring smart home devices into HomeKit that are not natively supported. In our case, Homebridge allowed us to write a plugin that exposes relevant aspects of a Wattwatchers device to HomeKit, like so:

Wattwatchers, Homebridge and HomeKit

The concept for the plugin was:

  • Sign in with your MyEnergy account, giving you access to the same sites you have access to in the MyEnergy app.
  • Expose the switches on the Wattwatchers device to HomeKit. If your site/device has switching capabilities, and you have privileges to control those, you can then configure automations in HomeKit that turn the switches on and off, affecting the relevant circuits in your home.
  • If your site has solar, to expose your excess solar to HomeKit. You can then use the amount of excess solar available as a trigger for an automation—either to trigger a switch on your Wattwatchers device or to trigger other appliances that are available in your HomeKit setup, e.g. a smart plug.

Workarounds and creative solutions

Sounds simple, right?

Well, this is where things got interesting. HomeKit has a very strictly defined set of supported services (e.g. switches, door bells, etc.) and characteristics (e.g. brightness, battery level, water level, etc.).

Integrating our desired features within the limitations of HomeKit required some workarounds and creative solutions.

Energy not a ‘first class citizen’

First of all, energy and power are currently not characteristics within the HomeKit universe. This meant we couldn’t have our plugin expose the amount of excess solar capacity (in watts) to HomeKit. To work around this, we modelled excess solar as an occupancy sensor, which switches to ‘occupancy detected’ when a nominated amount of excess solar (configured in the plugin) is exceeded.

Asynchronous switches

Secondly, asynchronous switches aren’t a defined service within HomeKit. ‘What are asynchronous switches,’ you may ask? The switches on Wattwatchers devices do not turn on and off instantaneously—they’re not like a typical light switch. It can take a few seconds between requesting a switching event, and the switch being activated. Because HomeKit doesn’t support the concept of an asynchronous switch, we modelled the switches as garage doors. The possible states of a garage door (open / closing / closed / opening) mapped nicely to the switch states (on / turning off / off / turning on).

Complex automation rules

Finally, the HomeKit app only supports very simple ‘if this, then that’–style automation rules. For switching on a light that’s fine. But for switching heavy loads like pool pumps and hot water systems it’s problematic. You don’t want to turn your pool pump off and back on when a cloud temporarily shades your solar panels—frequent switching will wreck your pump. Ideally you would configure an automation rule that says: Switch the pool pump on when excess solar is above 1200W but only if the pump didn’t switch off in the past 30 minutes. These sorts of complex rules are not currently possible in the HomeKit app, so we built this delay mechanism into the plugin itself.

The finished product

Below are a couple of screenshots of the Homebridge plugin. Once signed in with your MyEnergy account details, the plugin automatically exposes any available switches to HomeKit. For sites with solar you can configure how the occupancy sensor (that emulates the excess solar) behaves. You can configure the threshold of excess solar that needs to be crossed for the sensor to switch to “On”, the threshold that needs to be crossed to switch back to “Off”, and the minimum time interval the sensor is required to remain on or off.

Wattwatchers Homebridge plugin configuration
Image 1 & 2 above: The Sign-in and Configuration screens of the Wattwatchers Homebridge plugin

The video below demonstrates the integration of Wattwatchers switches with HomeKit by manually using the Home app to switch a device on and off. This demonstrates the switches working within HomeKit. In real life settings you would take it a step further and use the switches as part of a HomeKit automation rule. For example, when automatically switching your pool pump on when you have enough excess solar.

Video demo of the Wattwatchers HomeKit prototype


Bringing energy monitoring and control into the home automation universe makes a lot of sense. To make energy efficiency manageable it needs to be automated. Connecting energy monitoring with smart devices allows you to do just that.

Sadly, Apple’s HomeKit is not quite ready for this yet. The lack of energy units in HomeKit makes straightforward integrations hard2, and the lack of support for complex rules limits the implementation of useful automations.

There are ways to work around all these issues, but mainstream adoption will require a much more seamless experience.

If this blog post got you excited to try the Wattwatchers Homebridge plugin at home, please get in touch.

1 The exception are households on a very high legacy feed-in-tariff. If your feed-in-tariff is higher than your import tariff it makes financial sense to export as much of your solar power as possible.

2 Smart appliance company Eve has (somewhat) worked around this issue by defining their own custom energy characteristics. These can be used within the Eve app, but not within Apple’s Home app. The Wattwatchers HomeBridge plugin also uses the characteristics defined by Eve, which means you can view and use excess solar energy (in watts) directly within the Eve app.