Aeon Home Energy Meter ZW095-A

Yeah pretty certain


I have a G2 that is marked as a Gen 5 on the outside. What did the device say it is in the data section?

It looks like you have it securely joined or something or that's a different version of firmware than I've dealt with. I don't ever see mine using encapsulation that isn't handled. Maybe it's something I haven't done in the parameters. How do you have the parameters set up?

I left most us this default.

I did not join it securely intentional. My Z-Wave settings are just lock and Garage doors. Beyond that is there a way to check?


Those Crc16Encap messages I can handle probably.

I'm not sure why that firmware version is doing that though. All of the ones up to that point were MultiChannelCmdEncap. I would potentially open a support ticket with them and ask if you can get 1.31 and rollback... or ask them what the differences are at least. Mine doesn't do that so you would have to do the debugging. I'll send you a pm with something to try if you want to do that. Did you move to 1.35 to fix something in particular?

As far as the other bug goes in RM, there is no capability for current so how did you set it up? Custom attribute? And what did you choose as the trigger? I'm not seeing any problem with it.

or when comparing it with a number.

Are you sure it's updating current and the current attribute has a value?

I just bought the device, brand new, and cannot get it to work in HE/RM usablely.

If I use the driver posted here.....

I can get current/current 1, but the attribute is "string" not "number". With it set that way I cannot use </> in RM, so it does me no good (other than seeing it gives reading on both clamps).

@ogiewon helped me make some changes to get it to be "number". However when ever I use the changes he gave (thanks to him, but he could only help so much without a unit, see posts), RM goes to a blank white screen as soon as I select current as a trigger, from custom attribute.

Changes and results shown here

When using your driver I get the same white screen when selecting "current" and the following error in the log (with rule logging on)

If I choose "current 1" (using your driver) as the trigger it is fine, but I do not get reading for separate clamp so that does no good.

Sorry I have no clue what this mean (not a coder), I would roll back firmware if that would help (and if possible for a rookie). I will open a ticket with them either way to see what they say. Honestly I am not sure exactly what to say, but will give it a go.

Hopes this help provide some insight for you. I find HE users more helpful than most companies, we'll see how Aeotech is. If you think the fix is possible with current firmware, I would be happy to try out any ideas you have. I appreciate any and all help. Thank you,

EDIT: here is what I got back from Aeotech (quickly I might add):

This indicates that CRC 16 encapsulation is not supported in your hub, what you can do here is disable CRC16 by setting:
Parameter 13 [1 byte] = 0
This will disable CRC16 encapsulation.

I do not see a way to set that in the driver, any thoughts? They neglected to answer my request about how to rollback firmware, to which I will inquire again.

With the settings above changed I am now getting info from the device now but it looks like it is all empty.

Trying to use current still crashes the rule (see above) and setting it to current 1 still gives (?) ?.

EDIT: Aeotech sent me this

The HEM Gen5 shouldn't be firmware updated or downgraded, this would cause its calibration to stop working properly and report inaccurate results.

EDIT 2: I am working with an Aeotec engineer that is modifying a driver by Dillon A Miller. It seems to be getting better. I will post the result when completed for review by all.

The crashing is happening because those attributes aren't getting updated. One driver treats them like a number and the other like a String but you have been supplying the data to them with both drivers. My driver thinks they are a number (which they are) but the other driver has put String data in them. Number exceptions happen when a number class finds a value that can't parse into a number because they're null or missing or whatever. My driver is expecting numbers. They aren't there because of fiddling or the other drive.

If you have really disabled CRC16 encapsulation then my driver should work if you haven't use the other driver to put strings in those attributes or you can flush all of the other values out.

If it was me... that ported driver was soooo messy. That's why I made mine. Exclude your device (so you can delete it and clear all of those numbers that are really Strings... that driver is filthy), re-include with only my driver. Check if current is populating (because CRC16 encapsulation is disabled) and then go about using RM if everything works up to that point.

Since you've refreshed my memory that CRC16 encapsulation is parameter 13 I will turn it on with mine and see what breaks and fix that. Or... I will force my version to always turn it off.... one of the two.

*edit: I'm seeing pretty much all of the drivers around for this device turn off Crc16 Encapsulation so I'm just going to do that in mine. It was off by default in my firmware. I'll push an update after dinner probably.


Please excuse me if a stated anything abruptly. I have nothing but thanks for your efforts and I'm just trying to post what I have gathered thus far, to try and help further development. I am sure the problem is not with your driver at all, but instead me and my luck to have a firmware that does not work. In my ignorance I am just trying to help by showing differences in hopes of a solution.

Personally (with my limited knowledge and complete lack of expertise) think your driver looks better, options and easy of use wise, and only went that direction under the advisement of Aeotec.

To which I want to point out he recommended your driver in the end.

I would suggest trying this device handler here from codehq to see if it works better:

He admittedly does not have great expertise with groovey (of which I have NONE)

Hmm, going to have to try to work through the code so i'll need to wait until i can get a setup working here so that i can directly test. I'm not very good at groovy so it'll take some trial and error on my side.
I'm not confident in fixing since my knowledge base here in groovy coding is pretty amateurish this but i will see what I can do.
When i took a look at adding current in the past, i couldn't find any specifics.

I have nothing but respect towards both of you for helping those of us that know nothing.

Here is the final edit of what he and I were working with thus far.

Again this is only in an effort to help, if it does not, my apologizes.

1 Like

I did a diff with your pastebin and my driver and they are identical minus three white space changes (after I removed your carrots). Did you paste the wrong thing or have you not made any changes to my driver yet?

Either way, I pushed a new driver tonight with some changes for CRC16 encapsulation.

 *  2020-04-22: Added preference and handled CRC16 encapsulation
 *              Changed precision from 2 decimal places to read precision from the command for meter reports
 *              Added preference and added descriptive logging to meter reports
1 Like

He had not made any changes to yours yet. I sent it to him, at the same time, he sent it to me. I get the same error with either driver, so I has to be something that changed in the firmware update (just my luck). I posted what he sent back to me, just for your review. Thank you for taking the time to do so, and updating yours. It does not give the Encap errors anymore.

If I use the "other" driver, selecting Voltage or Power works fine, but when I pick Energy, Current (or 1 -2) it gives the white screen/error below.

When using your updated driver, I can pick anything but current 1-2 and it is fine. However when I pick just "current" the rule 'semi crashes'. It gives me this screen with no comparison options, so all I can do is cancel out

This error does not show up in the driver log just in the rule log

Please show a screenshot of the Aeon Device Details page. I am curious if all of the attributes have been updated or not.

I meant to do a full removal this morning and forgot. I just removed the device from HE, and then shutdown the hub (trying to start "clean"). Unplugged both devices and let them sit for 5 minutes. Booted up and added the device back into HE. That seemed to help a lot.

I can now select any compatibility without RM going white. The white screen/rule error is gone.

Current is populating but Current 1 - 2 are not. I get the (?) when selected in RM. I also get an "unknown" at 0.000. These screen shots are all taken with the drier on. The 3.334 current should be mostly coming from clamp 1. Clamp 2 is the water heater and does not pull much (no one using water right now either).

@codahq @ogiewon With this progress I can use the device, so an immense Thank You! Sorry for my ignorance along the way.

We are trying to move the drier upstairs, and my wants notifications before I get the green light. With "Current" now usable, I can make it work. It would be nice to have the clamps separated, but not a deal breaker. Without good logging (I know it is possible with additional setup) it really is unnecessary.


Here is the shot requested and the current logs.


Glad things are starting to look better on your system. Here is one of my two laundry RM4 Rules I use for notifications. It may help you avoid duplicate/false notifications. It's been very reliable for our house.


Thankfully our drier is basic and comes on then goes off. HA gods willing that should be the easy part.

However I did notice your using "Power" not "Current". Another thing to point out I guess is that "Power" does not change on my unit. You can see in the shot above Power is 0.00, while Current is 3.334. Observation, not a complaint.

The example is still greatly appreciated. I stink at rules, and have started keeping a folder of ones I see that could be helpful to have. This one will go in there! PB's are new to me, but I can see how they can be used to avoid multiple notices/actions (had similar issue with another rule, I am fixing now)

1 Like

You can setup 1 reporting group to do all of the current values.

And then use the other groups to do other things if you want (and they also support multiple values). The problem you'll run into is that if you select multiple values Hubitat does not load them back so every time you save the page you have to reselect them or they are lost.

Also, for some reason your HEM is sending current values as scale2 values it appears. You won't know what that means (I don't even know what that means) but I would like you to put something in your code to debug what your firmware version is doing. I'll PM it to you.



Just a quick thank you for your work on this driver!


Is this driver available? Github replies with a 404, thanks!

@lou.ronnau check out what I just posted here

Thanks @TechMedX this is working for me :grinning:

1 Like

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.