Zigbee Energy Reporting Switch Jasco 45856 / GE 45856GE

I've just been working on it, it wasn't good enough quality to give out, I had hard coded the reporting interval to 0.1W and 1s for testing so it made a terrifying amount of data. For me I had it in a dedicated testing hub so I didn't care really, but it might be enough to affect hub performance for others.

Anyways, I've got it in good shape I think. Enough for people to play with a bit and see how it works. I'll try and share it tonight/tomorrow.

Now that's I've gotten this part written I'm feeling better about sharing it.

So stay tuned, won't be long.

1 Like

I have added/modified preferences in ST drivers before. Maybe I can help with that bit. Let me know.

Either way, much appreciated!!

Would your driver support the 45857 dimmer, as well as the switch?

2.1.6 will have updates to the dimmer and a dedicated switch driver, both with configurable power reporting.

5 Likes

@aruffell Here you go, this works for me, I haven't played with all the various time settings, but it seems good. :slight_smile:

Raw file you can import:

https://raw.githubusercontent.com/as-j/ge_smart_switch/master/ge_smart_switch.groovy

Let me know if it works for you. I assume I have the signature wrong, I haven't tested it, so just select it by hand for the device.

Hehe, this is why I like to let things bake for a bit, I forgot to add switch on/off reporting. Pushed the changed to github this morning.

I also like to be able to reset the energy value. Watching power is "easy" but telling when a washer/dryer/something is done via total power used is useful as well. For example if a small load of washing takes at least 0.5kWh then even when the power use drops for a moment you can say it's probably not done yet. It's much easier if you can start at 0kWh and then watch it accumulate. Unfortunately I don't know how to make the device reset the accumulated energy attribute. (for shits and giggles I tried writing 0 to it, but it appears to report an error I didn't bother decoding) And I couldn't see anything in the Simple Monitoring (0702) spec regarding reset of accumulated energy, but I just browsed it quickly and I don't really know Zigbee so I'm probably just missing something obvious. So I hacked it in. When resetEnergy is called store the value and take a delta from that stored value. If energy ever reports less than what we stored I assume the device was power cycled, and clear the stored value. Not perfect but should work for a lot of use cases.

1 Like

I just finished installing the switches. While in the attic I did brief tests and did not see energy reporting but it is likely I do not know how to use this yet. I have 5 years experience with ST but just a few days with HE.

Thank you for sharing your driver!!

EDIT:

The fingerprint wasn't for the in-wall switch so I copied over the fingerprint from ST's DTH and made the name a little more generic so it applies to both.

metadata {
    definition (name: "GE/Jasco Smart Switch", namespace: "asj", author: "asj") {
    capability "Configuration"
    capability "Refresh"
    capability "PowerMeter"
    capability "EnergyMeter"
    capability "Sensor"
    capability "Outlet"
    capability "Switch"

    command "resetEnergy"

    //fingerprint profileId: "0104", inClusters: "0000,0003,0006,0B05,0702", manufacturer: "Jasco", model: "45853", deviceJoinName: "GE Smart Plug-In Switch"
    
    // GE/Jasco
	fingerprint profileId: "0104", inClusters: "0000, 0003, 0004, 0005, 0006, 0702, 0B05", outClusters: "0003, 000A, 0019", manufacturer: "Jasco", model: "45853", deviceJoinName: "GE ZigBee Plug-In Switch"
	fingerprint profileId: "0104", inClusters: "0000, 0003, 0004, 0005, 0006, 0702, 0B05", outClusters: "000A, 0019", manufacturer: "Jasco", model: "45856", deviceJoinName: "GE ZigBee In-Wall Switch"
    }

    preferences {
        //standard logging options
        input name: "logEnable", type: "bool", title: "Enable debug logging", defaultValue: true
        input name: "txtEnable", type: "bool", title: "Enable descriptionText logging", defaultValue: true
        input name: "powerChange", type: "enum", title: "Power Report Value Change:", defaultValue: powerChangeOptions[0], options: powerChangeOptions
        input name: "powerReport", type: "enum", title: "Power Reporting Interval:", defaultValue: timeReportOptions[0], options: timeReportOptions
        input name: "energyChange", type: "enum", title: "Energy Report Value Change:", defaultValue: energyChangeOptions[0], options: energyChangeOptions
        input name: "energyReport", type: "enum", title: "Energy Reporting Interval:", defaultValue: timeReportOptions[0], options: timeReportOptions
    }
}

Edit 2:

I tried a few iterations of the fingerprint and HE keeps using the Generic Zigbee Switch driver:

If HE works the same way as ST, I believe that the most accurate fingerprint wins. In my various attempts I removed outClusters, and swapped a couple values in the inClusters (don't think it matters but I made it match what the device reports). Nothing seemed to make a difference. I assume all I need to do is save the driver and nothing else - if something else must be done, such as publishing on the ST platform, then my tests are invalid.

Thanks! None the less I've imported the changes and updated github. Not sure what must be done....I'm pretty new to this all anyways. :confused:

I am not sure whether I have a defective switch or something went wrong during configuration and is 'stuck'. I installed 5 of these zigbee switches to build out the zigbee network for the HE hub. All report power except one, which I believe did at some point, then stopped. It seems to be measuring energy usage (can't tell whether it is accurate) but power stays at 0.0.

I tried removing and adding back, I tried resetting and rediscovering, I tried removing and resetting. Nothing worked. I also tried including it on the ST network and no power reading there either.

Since it was reporting a 6kWh reading for energy, and I believe it increased since last night, it would seem that it simply got stuck with power reports disabled.

I have only tried setting the power threshold to 10 and below. The other HVAC unit reports 6W at rest and 730W when the heating is running (gas).

Is there any chance that the parameters telling the switch to report power is 'stuck'? Even if it did, a hardware reset (10 up clicks) should clear memory but somehow the energy reporting isn't lost. Seems like I can't force HE to really forget the device. Regardless of what I do, it always knows it was joined prior. This is handy in most cases but not when you really want to be sure you have done a full reset.

I may be mistaken, but I don't think Hubitat will "automatically select" a user driver. If you install a user driver, you must go to the driver drop-down in the device, scroll all the way to the bottom, and select the driver from the list of "User" drivers.

In this way, Hubitat "prefers" official drivers, and you are required to "override" the default selection.

S.

sorry, should have replied to an earlier post in this thread, please consider this response to earlier post regarding it defaulting to the "Generic Zigbee Switch" driver.

refresh on the device just reads and reports the 2 attributes (power and energy) so regardless of the reporting settings refresh should always work.

You can also turn on debug logs and see what the logs say. Descriptive text is pretty human readable, and debug logs is pretty raw. Give that a try and run refresh() on it and see what it says. Clicking configure will update the reporting parameters which could be useful as well.

It will if the user driver has the correct fingerprint, if a user driver and hubitat driver have the same fingerprint it will select the user driver first...

1 Like

I stand corrected! Learn something new every day. Thanks Mike.

S.

I fixed the fingerprint in the driver. @aruffell let me know it works for you, looks like the inwall switch has a slightly different fingerprint than the plugin. (the plugin works for me)

I purchased a replacement switch given the power and energy are actually not being reported (energy has a value but it has not changed since my last post). This is also true when joined to the ST zigbee network so unless the ST DTH is not setting the reporting to on, and the HE driver has an issue where it set it to off and can't revert it (unlikely), then in must be a device issue.

Anyway, I will test your latest iteration of the driver when adding this new switch. The fingerprint appears to be the same as one I have already tested earlier when adding it, and HE was still proposing the Generic driver.

If only I could see the code in the Generic driver... I looked everywhere and could not find the source code of the included drivers.

Is it publicly available anywhere?

The numbers are the same, but I wonder if it's just doing a string compare or if order maters. So the order was different and there were spaces. Didn't try to see which mattered but when I had a new device join it offered me my user driver. I just cut & paste from report on join and it worked for me.

Good luck withe the new switch. Also remember both debug options offer a wealth of info that makes debugging possible, though maybe not always successful.

(thanks @mike.maxwell for confirming it will offer the user driver, hence was worth fixing)

The order matters, spaces do not.

1 Like

Make sure you update the driver, there was a typo in configure() and it wasn't setting up reporting properly. Give it up an update and see if it works better.

https://raw.githubusercontent.com/as-j/ge_smart_switch/master/ge_smart_switch.groovy

I have something weird going on and not sure whether it is a driver issue or something else. I have two of these switches powering my two HVAC systems. When the GAS heating turns on, power consumption is max 300W. My upstairs HVAC is now reporting up to 11,000W (screenshot below only shows ~9kW but I've seen it up to 11kW) which is not possible and even though I turned off all reporting, it keeps sending the reports quite frequently.

The two switches were installed/configured at the same time. Notice that the upstairs system has generated over 9000 reports while the downstairs one is only at 47 for the same time period.

The switches used are the same... driver the same as well.

@aruffell Just to double check, this my driver vs the built in one? Have you tried clicking configure on the one upstairs? Maybe it got configured badly at some point for reporting?

If that doesn't help, here's my 2 thoughts:

  1. Try the built in driver, does it behave differently?
  2. If you turn on debug, can you send me the outout?