Aeon Home Energy Meter ZW095-A

I've just installed a new Aeontec HEM Gen 5 and using @cuboy29's V0.9 driver, but in my dashboard tiles, I'm missing a lot of options... Also, I see that in Aeotec's documentation, there seems to be a lot more available attributes - does anyone have a more up to date version of the driver that can access all those other attributes, by any chance?

2020-02-28 2020-02-28%20(1)

Link to the Parameter page from Aeotec:

I do have a driver for this device but I do not want to get into a support role if I release it in a thread to the public. This device is complicated and hard to understand for many. It took me a bit to wrap my head around how the parameters worked.

If you check my github it is there. It implements all the functionality that the device supports as far as I can tell. I wrote it from scratch because I wasn't jazzed about the drivers I could find available.

I don't have a release thread for this driver on purpose. The driver has issues because of hub limitations (no official multi-select support in preferences primarily). Be ready for a little wonkiness.

3 Likes

Thanks @codahq! I replaced the driver to yours and it seems to do exactly whatI need. If you ever want to make changes and are in need of someone to help test it, let me know. I would be more than happy to help!

You are a genius, really, don't hide those gems to others!

Thanks

I'm curious what you guys think of the driver. Is it easy to use and understand? Does it make sense? This was a tricky device for me to implement all of the functionality on.

I like it. It is easy to use and provides the information I need for my Dashboard. I must say I found a couple of other drivers out there that each have their advantages, but of all those available, yours is the best.

I notice there are 3 "Report Group X Reports *" fields that I haven't played around with - not sure what those do... Same for the "Selective Reporting" toggle.

One thing that I will be doing but haven't done yet as an extract of the data from this and other devices to an external DB for reporting. Once I get to that, I will be interested to see how works with that.

The driver puts some instruction and hints in the state variables. If you go back to the device edit page and reload it the hints will be there. If you also read the manual you will get an idea of what the report groups do.

Most of the drivers I saw hardcoded the report groups to specific reports and chose for the user what they would see. I decided to open all of the functionality up and let the user decide.

If you haven't hit configure yet (don't unless you want it to change your parameters) you are still running with the hardcoded configuration of a previous driver. The report groups and report interval lets you fully customize what the meter sends and how often. The selective reporting lets you minimize the watts reports in any of those reporting groups.

Are you referring to this page?

I am wondering to which manual you are referring - I have browsed at the documentation referenced earlier in this thread - I'll have to look at it again and pay more attention. :slight_smile:

I really like the idea of opening up the functionality to the user! Thanks for that! And at the risk of repeating myself, I really, really like your driver! The questions above I am mostly asking out of curiosity... I am pretty new still to Hubitat (a little over 3 months now) and am really enjoying the learnings!

Yep, I'm talking about that page. It won't populate the hints until you've used my driver to save preferences. Again, don't save preferences unless you want it to change your reporting groups. If you like your HEM the way it is you should find out what your reporting groups are set to before you change them. I don't have any defaults set so you have to choose your own. If you like the ones chosen for you I guess you can always get them back from the other drive though.

Manual being the user guide, yes. So, here is a PDF version of it:

And here is basically the same information from Aeotec's website:

Towards the end they talk about the reporting groups and options.

thank you @codahq for working on this device driver.

I am trying to get this work with RM and having some issues. Using the driver above I am trying to use "current" as a trigger and when I do I get a blank white screen in RM and the following errors in the log.

rule log

driver log

Also I cannot get it to report clamp 1 and 2 current separately, but that is minor in comparison to the RM issue.

Any thoughts?

Are you certain you have a ZW095-A? I just mention because I have a DSB09 that I thought was a ZW095-A and was having all kinds of trouble getting both clamps working.

1 Like

Yeah pretty certain

2 Likes

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?

Well...

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.

2 Likes

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: https://github.com/codahq/hubitat_codahq/blob/master/devicestypes/aeotec-hem-gen5.groovy

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.

https://pastebin.com/raw/fqkf7Q2L

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