UK Home Electricity Usage Monitor

I’m happy with Smapee.

Sure the signature system isn’t perfect, but it’s better than nothing.

The great thing compared to much of the competition is that it measures real power (kW) rather than apparent power (VA) as it doesn’t just rely on current clamps. It also samples the mains voltage and is able to calculate the phase angle / power factor. This is important with modern electronic device loads.

1 Like

The ST integration isn’t great though, as its cloud to cloud, running on a timer. So you can’t instantly trigger things based on load changes (or solar generation).

I got my new Efergy meter setup yesterday and installed the Efergy 2.0 (Connect) for SmartThings by @tonesto7 and I am very impressed so far.

The power usage shows in watts and updates about every 30 seconds.
It now shows up in SmartThings and in SmartTiles.

Here is the link if anyone is interested - https://community.smartthings.com/t/updated-efergy-2-0-connect/27879

I use the British Gas smart meter and that seems to work well , just wish i could integrate it into ST

I’m using the Aeon HEM (Gen2 UK version, with one clamp) with my own device handler.

As well as energy and power, it measures current, voltage, and power factor too. It works really well:

I’m also shipping the data to InfluxDB and visualising it using Grafana. I wrote a how-to guide here: http://codersaur.com/2016/04/smartthings-data-visualisation-using-influxdb-and-grafana/

Some example charts:

FYI: I also have a home-brew project in the pipeline which will apply some real-time analysis using machine learning to identify individual appliance energy usage (similar to what Smapee and Sense claim to do, but better ;)).

I use Smappee with Gas sensor in UK - works fine. And I think it would work fine with SmartThings IF you only have one location.

But I have 2 Smappee Locations and SmartThings does not understand that and choose which-ever was created first. (Reported to SmartThings support 6 weeks ago - no updates as usual)

I don’t know much about the gas integration, but if it’s like the solar part then it’s next to useless as you cannot use the solar reading to act as a trigger for anything.

I use a Watson at home to monitor energy usage and solar generation (shame you can’t buy them anymore). I rewrote parts of the efergy device handler so it would work with Watson, and also with EnergyHive since they have the same back-end systems. You can still buy the EnergyHive sensors and they seem pretty cheap and the web logging is free and rather nice.

If you want my code, I’m happy to share.

I would be interested if anyone has any ideas on mootoring gas usage without a smart meter.

Jon

For the record I returned the Smappee. Left logging for well over a month but it just couldn’t differentiate between the different appliances and I simply don’t have time to turn the lot off and then isolate them one by one. Real shame!

Can’t agree more. Worst £170 I’ve ever spent. Interesting you still tried after reading my rant earlier in the thread :slight_smile:

@Jon_Hope please share your code. I’d be interested to see if I can get this integrated.

Sure, I will send you a private message when I’m in front of my computer and can easily cut and paste.

1 Like

Just wondering if you got any further with this? Or for that matter if anyone else has?

I’ve got an EU v2 and its reporting Volts at 89:

Current States
energy: 0.04 kWh
power: 1124.4 W
voltage: 89.034 V
current: 25.095 A
powerCost: 2.38586691672 £/day
lastReset: 2017/04/25 06:44:54
statsMode: Today
costOfEnergy: 0.00327117 £
energyToday: 2.486 kWh
costOfEnergyToday: 0.21978726 £
energy24Hours: 13.650 kWh
costOfEnergy24Hours: 1.20679650 £
energy7Days: 45.328 kWh
costOfEnergy7Days: 4.00744848 £
energyMonth: 45.221 kWh
costOfEnergyMonth: 3.99798861 £
energyYear: 45.221 kWh
costOfEnergyYear: 3.99798861 £
energyLifetime: 45.328 kWh
costOfEnergyLifetime: 4.00744848 £
dispPower: 1124.4 W
dispPowerCost: £2.39 per day
dispCurrent: 25.1 A
dispVoltage: 89.0 V
dispEnergy: 0.04 kWh
dispCostOfEnergy: £0.00
dispEnergyPeriod: 2.49 kWh
dispCostOfEnergyPeriod: £0.22

Are you all still using the DTH linked by @daleajones above.

Cheers

Ive got the mihome (Energinie) hub and whole house monitor. There is a smart app to hook that into smartthings.

Hub will also give you other connected device and swicth capability…

and here is the monitor

for smart app…

Hi Jon

I have a Wattson and Energyhive hub so would be grateful if you could share tyhe code you developed. I want to link my Wattson to Smartthings.

Hi Jon, please can you share your Wattson code. I have one and want to link it to Smartthings.

Hi, sorry I have not logged in for a while.

here is my code, though sadly im only here because my integration stopped working.

/*

  • Wattson Energy Monitor
  • Copyright 2017 Jon Hope
  • Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except
  • in compliance with the License. You may obtain a copy of the License at:
  • http://www.apache.org/licenses/LICENSE-2.0
  • Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
  • on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License
  • for the specific language governing permissions and limitations under the License.

*/
preferences {
input “token”, “text”, title: “Access Token”, required: true
}

metadata {
definition (name: “Wattson Energy Monitor v2”, namespace: “Jon Hope”, author: “Jon_Hope”) {
capability "Power Meter"
capability "Polling"
capability "Health Check"
capability "Refresh"
capability "Sensor"
capability “Actuator”

    attribute "curMonthName", "string"

}

// simulator metadata
simulator {
for (int i = 0; i <= 100; i += 10) {
status “power ${i} Wh”: new physicalgraph.zwave.Zwave().meterV1.meterReport(
scaledMeterValue: i, precision: 3, meterType: 0, scale: 0, size: 4).incomingMessage()
}
}

tiles (scale: 2) {
valueTile(“power”, “device.power”, width:6, height:4)
{
state “device.power”,
label: ‘${currentValue}W’,
icon: “https://cdn4.iconfinder.com/data/icons/environmental-and-ecology/48/environmentalsvg-02-512.png”,
backgroundColors:[
[value: 1, color: “#fff000”],
[value: 200, color: “#fff000”],
[value: 300, color: “#42db13”],
[value: 400, color: “#C3C300”],
[value: 600, color: “#ffce00”],
[value: 800, color: “#FFFB14”],
[value: 1000, color: “#FFA500”],
[value: 1500, color: “#ff7400”],
[value: 2000, color: “#ff5a00”],
[value: 3000, color: “#ff0000”]
]
}

    //graph tile goes here
    

   
    
  
  
    

  //last reading tile 
    valueTile("readingUpdated", "device.readingUpdated", width: 4, height: 2, decoration: "flat") {
            state "default", label:'Last Reading:\n${currentValue}'
}

//refresh tile
standardTile(
                    "refresh",
                    "device.refresh",
                    inactiveLabel: false,
                    decoration: "flat",
                    width: 2,
                    height: 2) {
                            state("default",
                                    action:"polling.poll",
                                    icon:"st.secondary.refresh")
                }

// end of tiles
}

//end of metadata
}

// handle commands
def poll() {
log.debug "Executing ‘poll’"
getReading()

}

// Get the sensor reading
private getReading() {
def today = new java.util.Date()
def strDateFormat = “MMMM”;
def sdf = new java.text.SimpleDateFormat(strDateFormat);
def curMonthName = sdf.format(today)
def curMonth = device.currentValue(‘monthName’)
def readingClosure = {
response ->
log.debug "result: $response.data"
log.debug "last reading time: $response.data.last_reading_time"
log.debug "reading: $response.data.reading"
log.debug "Current Month: $curMonthName"
sendEvent(name: “power”, value: response.data.reading)
def tf = new java.text.SimpleDateFormat(“MMM d, yyyy - h:mm:ss a”)
tf.setTimeZone(TimeZone.getTimeZone(“Europe/London”))
def readingUpdated = "${tf.format(response.data.last_reading_time)}"
log.debug "Last Updated: $readingUpdated"
sendEvent(name: “readingUpdated”, value: readingUpdated)
sendEvent(name: “curMonthName”, value: curMonth)
}

def params = [
uri: “http://www.energyhive.com”,
path: “/mobile_proxy/getInstant”,
query: [“token”: token],
contentType: ‘application/json’
]
httpGet(params, readingClosure)
}

I’m currently pretty close to getting this to work with energyhive:

So just to update you I managed to get version 3 of the efergy device handler working with energyhive. I had to comment out lines 1052 and 528 from the code as written, because I think energyhive’s api is subtly different has has no support for the tarrif rate. Once those lines are gone it seems fine.

Good luck!

Hey, do you know where I can buy the Aeon HEM you’ve mentioned? I’ve just set myself up on InfluxDB/Grafana using your guide and would love to pipe in the power consumption data for my whole home