Multiple Innr SP 234 plugs report incorrect power consumption (W)

Just purchased 3 Innr SP 234 Zigbee 15A Smart Outlets with Power Monitoring, they each seem to report power (W) incorrectly by similar amount:

Unit 1 - A dehumidifier typically draws 530w, reported in HA as 55.7W
Unit 2 - Tripp-Lite UPS Screen shows output between 162w to 171w, reported in HA as 19.1W
Unit 3 - 75w old school incandescent light bulb reported in HA as 7.1W

I did not install any Innr app on my phone. I simply unboxed them, and paired with my Sonoff Zigbee bridge via ZHA integration.

I’m not sure what to do about the incorrect Power Monitoring.

1 Like

I use some Samsung SmartThings Zigbee plugs (via deConz) to measure power, and they do something similar but with the total kWh used. It is always incorrect by a factor of 10.

The simplest fix I found for it was to create a new template sensor for each plug, where I multiplied the given value by 10. I then use that in all my dashboards/energy monitoring etc.

I’m not sure what the ZHA interface looks like, but I can actually see in deConz where the incorrect multiplier is applied - you may be able to do something similar in ZHA by looking at the power cluster.

I don’t see something called “Power Cluster”, but for the 75w bulb draw… I can see:

Some of Cluster “ElectricalMeasurement” Attributes:
ac_power_divisor (id: 0x0605) - Value 10
ac_power_multiplier (id: 0x0604) - Value 1
ac_current_divisor (id: 0x0603) - Value 1000
ac_current_multiplier (id: 0x0602) - Value 1
ac_voltage_divisor (id: 0x0601) - Value 1
ac_voltage_multiplier (id: 0x0602) - Value 1

active_power (id: 0x050b) - value 71

I tried altering “ac_power_divisor” from 10 to 1 and click [SET ZIGBEE ATTRIBUTE], but it doesn’t seem to stick. I also tried set Manufacture Code Override to “1” doesn’t seem to get saved either.

I get your idea of creating a template, but seems these Zigbee attribute updates should work.

So +1 for Innr, they actually responded to my email very promptly. They said the following:

Blockquote
Thank you for your message. I forwarded your message to our dev team this morning and just got a response, and it seems like your right! Attribute 0x0605 “AC Power Divisor” has a wrong default value: it is set to 10 while it should be 1. The fix for this will be implemented in our newer batches.

Blockquote
Luckily (like you already know), you can make a correction in the presented value with Home Assistant, so that you have the correct values.

I know I can make a new template sensor to fix this, but it seems like I should be able to fix the Zigbee attribute itself. I can’t figure that out. Hopefully someone here can help.

I tried:

  1. Integrations > ZHA > Select Device > Manage Clusters
  2. Select Cluster “ElectricalMeasurement (0x0b04)”
  3. Select attribute “ac_power_divisor (id: 0x0605)”
  4. Set Value of 1
  5. Click [SET ZIGBEE ATTRIBUTE]

The reported W value does not change. If I Click [GET ZIGBEE ATTRIBUTE] it still returns “10” not the “1” I set.

How does one set a new Zigbee value? In the Dev Tools > Services, I tried this:

service: zha.set_zigbee_cluster_attribute
data:
  ieee: 84:71:27:ff:fe:98:04:a0
  endpoint_id: 1
  cluster_id: 2820
  attribute: 1541
  value: '1'

NOTE: When you toggle between YAML & GUI mode it converts the HEX values to Decimal.

Upon clicking [CALL SERVICE], it seems to be accepted, but nothing happens to the reported value.

Do devices need to be restarted? does HA need to be restarted? seems like this should all be real-time changes.

The various multiplier and divisor attributes I can see in the power measurement cluster in deConz are all marked as read only, indicating I cannot write new values to them. That doesn’t guarantee that’s the same in your Innr plug, but it seems likely from your testing.

From what I understand, I think ZHA supports creating custom quirks, which you might be able to load into your own ZHA configuration to correct it at the source?

I asked some questions in the discord zigbee channel, and they confirmed the attribute is read-only. As you suggested, I would need to create a ZHA Quirk to override it if the manufacture will not fix it via OTA.

I know ZERO about creating quirks, if I can’t figure that out, I’ll just fall back to using a template sensor to multiply the value by 10.

Was able to fix the reading by using a sensor template.

sensor:
  - platform: template
    sensors:
      unraid_plug_watts:
        friendly_name: "UnRaid Plug Watts"
        unit_of_measurement: "W"
        value_template: "{{ states('sensor.unraid_plug_watts_x10')|float * 10 | round (2) }}"
        icon_template: mdi:flash`
1 Like

@merkas - Pretty much exactly what I did as well. I left the original entity names assuming I can use them natively in the future and did a new entity for the converted value.

After a few more email exchanges with Innr support, I learned SHOULD they release a firmware fix for this, it would require the use of their Hub to deploy the firmware upgrade, which is not currently being sold in the US (and I don’t want to buy anyway). They did offer to replace the units should a fix come available. I’ve asked to be notified when a fix is available.