Aeotec DSB09104 Home Energy Meter not updating in HASS


Hey all,

I got a few of these the other day super-cheap but have been having trouble getting them to update in HASS. They are a little bit different than my DSB28 and the configs I have for it don’t seem to work for these meters. They update just fine in OZWCP, just not in HASS. Is there a trick here that I’m missing? Thanks so much!


I bought some to and appear to be having the same issue. Haven’t looked into in depth.

I only get one reading coming back into HA, however OZWCP shows several being reported from he unit.


Messed around a bunch more with the settings but still no luck. It’s read correctly when HASS starts up, but doesn’t ever update again. OZWCP shows a near real-time update to the watts and other info. Other thing that’s odd in HASS is there are at least 2 of each value. Example:

That’s ONE energy meter. I assume it should have 3 values, one for each leg then a total. No idea why there are more than that. And still don’t know why it’s not updating.


After days of fiddling around I got mine to work in Hass! I changed lots of stuff and at this point there are probably config items that I don’t really need in in the zwave xml and the configuration.yaml. But it’s working so I’m leaving them for now. Here’s my setup that finally worked:

  • updated device firmware to 3.61

  • In configuration.yaml:
    usb_path: /dev/zwave
    config_path: /usr/lib64/python3.4/site-packages/libopenzwave-0.3.1-py3.4-linux-x86_64.egg/config
    polling_interval: 30000
    polling_intensity: 1
    refresh_value: 2

  • In the zwcfg.xml:

    • Node id line, changed listening=“true”
    • changed poll_intensity = 1 for first line under COMMAND_CLASS_SENSOR_MULTILEVEL that looks like this
      Value type=“decimal” genre=“user” instance=“1” index=“4” label=“Power” units=“W” read_only=“true” write_only=“false” verify_changes=“false” poll_intensity=“1” min=“0” max=“0” value=“1276.990”
  • “Power Changed” value = 1

  • “Wattage Threshold” value = 25

  • “Wattage Percentage Change” value = 10

  • “Group 1 Reports” value = 6

  • “Group 2 Reports” value = 6

  • “Group 3 Reports” value = 6

  • “Group 1 Interval” value = 10

  • “Group 2 Interval” value = 20

  • “Group 3 Interval” value = 30

Like I said, some of this may be redundant and can be removed, but for now it’s working perfectly in Hass.

Best of luck to you!


Thanks @Scott_Johnston! Going to play this weekend and see if I can get it working. Do you by chance have a link to that firmware? I dug and dug on their website and couldn’t find the gen 1 firmware. Thanks again and I’ll let you know if I get mine up and running!


I never could find the firmware on the Aeotec site either, but I found it here The link is from this helpful site

I also found links to 3.67 and was going to try that next if 3.61 didn’t work. Here it is in case anyone wants to try it


Great, thanks much! I’ll give it a shot and see if I can get mine working. Appreciate it!


@Scott_Johnston still no joy. :frowning: Did everything you said and it’s still not updating in HASS. One thing that may be related is that setting the values in the OZWCP they don’t seem to stick. Such as, I set the “Power Changed” to a 1, submit, then on the next refresh it’s back to a 0. Tried many, MANY times to make the value stick but it just will not. I’m thinking this is maybe the issue? Any other thoughts?


I discovered that trying to update the config from the OZWCP for this device never works so I was manually editing the zwcfg.xml file. I would give that a try if you haven’t yet. Be sure to turn Hass off first or you’ll loose your changes.

I’ve attached the zwcfg.xml entries for that device in case you want to reference it.

zwcfg.xml (19.7 KB)

Best of luck!

Wink bought

thanks @Scott_Johnston this info and the sample config worked for me.
Now instead of no data, I have an abundance.

I assume the data is doubled for readings from each leg.
thanks again

what I did:
copied and pasted your node example over the current using and xml editor, then changed the node id and added a name. (while I was in there I added names to the rest of my wave devices)

now i have nice wave name devices showing up in HA.


@Scott_Johnston nailed it! Looks like manually tweaking the values in the xml resolved the issue. Now to update and tweak the other 3. Really appreciate it!!!


I’m running into this same issue, but when I change zwcfg*.xml, it reverts back when HA is restarted. Any ideas what I’m missing? Thanks.


@Smith you have to stop HA, make the change, then start HA. If you try to change the config file while it’s running it will always revert back when you restart.


@danodemano Thanks, but that hasn’t worked either. When I stop HA, change zwcfg and then restart HA, I log in and can see the DSB09104 values updated… they look great. But within seconds, all values revert back and I see that the zwcfg file has also switched back.


I just had a huge breakthrough with this device, so let me share what I found. I have seen examples that say set it to “12” or some other low value, but I wanted reports from the individual legs as well as the HEM totals. I pored over the HEM G1 manual, reminded myself how to get byte values from individual configuration bits, wrote a quick spreadsheet, then entered in the values for my desired configuration. I entered the resultant value into Parameter 101 in the Z-Wave Manager > Node Management > Node Config Options drop-down list, hit the Set Config Parameter, changed Parameter 111 (update interval) to 30 (seconds), and watched my HEM card in the States display jump to life!

I had previously set the HEM to “Basic” report level, and I am on firmware 3.64

Here’s what I used to get my value:


After reading all this, and trying every possible way, I was able to finally understand how to get the readings I wanted. but the problem with auto reporting still persist. It only reports when I restart HA or reboot Pi.
any development on this?

using HA 0.49.0 on RPi2 (also have RPi3 if needed)
with Hassbian instalation
Aeotec ZW090 Gen5 US Z-wave USB stick
Aeotec DSB09104 Energy Meter

My config is :

usb_path: /dev/ttyACM0
config_path: /srv/homeassistant/lib/python3.4/site-packages/python_openzwave/ozw_config
polling_interval: 60000

my xml config:
> Node id="2" name="" location="" basic="4" generic="33" specific="1" type="Routing Multilevel Sensor" listening="true" frequentListening="true" beaming="true" routing="true" max_baud_rate="40000" version="3" query_stage="Complete"

> <Value type="decimal" genre="user" instance="1" index="4" label="Power" units="W" read_only="true" write_only="false" verify_changes="false" poll_intensity="1" min="0" max="0" value="1074.480" />

> <Value type="byte" genre="config" instance="1" index="3" label="Power changed" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="1" value="0">

> <Value type="byte" genre="config" instance="1" index="20" label="USB powered" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="1" value="1">

I have GRP1 (101) set to - 1794 ( for total reading of Watts and kWh on clamps 1 and 2)
I have GRP2 (102) set to - 14337 (for total reading of Voltage and Amps on clamps 1 and 2)
I have GRP3 (103) set to - 0

all intervals set to - 30 (30s)


Can you clarify what you entered for group101? Was it 6926? Should I also do this for group102?



Can someone tell me what each sensor represents? I have three that show the same thing (and change every 30 seconds), then the #2 sensor shows a higher value that never updates. Thanks.


it all depends on how you add you reading to, follow this setup
for example:
if you want it just to read total kWh and Watts, you would have to add decimal value 1 + decimal value 2. and put the total (3) in the value setup of parameter 101 in your xml file.
that way when you restart HA only those sensors will appear on your “States” in HA.
the reason you getting a bunch of sensor its because you using the standard xml setup


I’m still confused as to the difference between group 1, 2, and 3 reports. I just want a sensor to show watts for each of the two clamps and then a total (I could do a template sensor if I have to).

So would I just set Group 101 reports to 770 (2 + 256 + 512)?

Do I need to do anything or Group 102 or 103?