Power/Energy not available via zigbee2mqtt

I just installed my first Blue series switch yesterday, and I love all the functionality. I have it paired to zigbee2mqtt (1.27.2) and am using Home Assistant as my hub. I was able to configure most of the functionality as expected, but I am not able to get power or energy readings. I tried setting different values for active/periodic measurement, but the only value that successfully saves is 0. The rest give an error such as:

Publish 'set' 'activePowerReports' to '0x040d84fffexxxxxx' failed: 'Error: Write 0x040d84fffexxxxxx/1 manuSpecificInovelliVZM31SN({"18":{"value":1,"type":33}}, {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":4655,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Status 'INVALID_DATA_TYPE')'

I have also tried via publishing JSON values to the appropriate MQTT topic with the same result. There are a couple other bits of weirdness that may be unrelated, but I figured I would mention them:

  • None of the parameters in zigbee2mqtt have the descriptions as shown in the setup video
  • Some parameters do not indicate a value even though they should (e.g. “powerType”)

Let me know if anyone else is seeing anything similar or has suggestions on a fix. Thanks!

1 Like

I tried updating and restarting Z2M, and I see the following error come through regarding the switch:

Failed to configure '0x040d84fffexxxxxx', attempt 2 (Error: Read 0x040d84fffexxxxxx/1 haElectricalMeasurement(["acVoltageMultiplier","acVoltageDivisor","acCurrentMultiplier"], {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Status 'UNSUPPORTED_ATTRIBUTE') at Endpoint.checkStatus (/app/node_modules/zigbee-herdsman/src/controller/model/endpoint.ts:317:28) at Endpoint.read (/app/node_modules/zigbee-herdsman/src/controller/model/endpoint.ts:480:22) at runMicrotasks (<anonymous>) at processTicksAndRejections (node:internal/process/task_queues:96:5) at Object.readEletricalMeasurementMultiplierDivisors (/app/node_modules/zigbee-herdsman-converters/lib/reporting.js:26:5) at Object.configure (/app/node_modules/zigbee-herdsman-converters/devices/inovelli.js:1219:13) at Configure.configure (/app/lib/extension/configure.ts:115:13))

FWIW, I just installed a second switch and ran into the exact same set of issues.

Neural is wired correct?

Inovelli VZM35-SN fix for energy reporting by nathanfiscus · Pull Request #4801 · Koenkk/zigbee-herdsman-converters (github.com)

5 Likes

So if we want to use this patched converter before @koenkk pushes his next monthly release of z2m, how do we do it?

Edit: I’m running z2m in a docker-like setup (podman container on an Oh-La Labs Collective Core beta unit), with mosquitto and node-red rounding things out.

You can download the convertor in the PR and use the custom convertor functionality to override the built-in version.

https://www.zigbee2mqtt.io/advanced/support-new-devices/01_support_new_devices.html#_2-adding-your-device

3 Likes

@harjms, yep!

@nathanfiscus, thanks for jumping on that. Looks like the solution!

2 Likes

I’m using Home Assistant in a VM and the main branch of the Zigbee2MQTT add-on (currently 1.28.0-1). To make the above linked updated file work properly in that setup, I had to adjust the require statement paths slightly by replacing the ../ with zigbee-herdsman-convertors/ like so:

const fz = require('zigbee-herdsman-converters/converters/fromZigbee');
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const exposes = require('zigbee-herdsman-converters/lib/exposes');
const globalStore = require('zigbee-herdsman-converters/lib/store');
const reporting = require('zigbee-herdsman-converters/lib/reporting');
const ota = require('zigbee-herdsman-converters/lib/ota');
const utils = require('zigbee-herdsman-converters/lib/utils');

Once done I’m getting power readings in Zigbee2MQTT now. :+1:

My exact steps:

  1. Save the inovelli.js file locally and modify the require statements per above.
  2. Using the File Editor in Home Assistant, upload it to the config/zigbee2mqtt folder.
  3. Edit config/zigbee2mqtt/configuration.yaml and add a line like so:
external_converters:
  - inovelli.js
  1. Restart zigbee2mqtt and you should have the power readings.
3 Likes

@tigers Thanks, this worked for me. Also my effects are now working as well!

1 Like

I’m guessing this also fixes setting the powerType: Neutral setting error I can see on my newly installed switch?

Publish 'set' 'powerType' to 'Kitchen Switch' failed: 'Error: Write 0x385b44fffeee15c6/1 manuSpecificInovelliVZM31SN({"21":{"value":1,"type":16}}, {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":4655,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Status 'READ_ONLY')'

You can’t set the power type. The switch auto detects it.

It looks like you probably need to update your instance of Z2M that attribute is set to read only in the latest version.

I’m using the Z2M Add On, so I’m waiting for that update. I suppose I could switch to the beta channel. But that would explain the Read Only error messages I’ve seen. Edit: It’s apparently running Z2M 1.28.0

So when I get to the part where you said to add the lines in the configuration.yaml, is this what it’s supposed to be looking like?

When I try to put a “-” in front of the .js file name, it gives me a syntax error in Studio Code Server. The screenshot above is the only way I was able to get Z2M to restart, but it doesn’t seem to correct the power/energy readout.

That file looks like JSON and not YAML so you don’t need the “-” character. You can also just go to zigbee2mqtt and add it via the gui and avoid manually edit the configuration file altogether:

2 Likes

Got it. Adding the .js file through the GUI seems to have sorted things out with the configuration file. Thanks!

1 Like

Happy to report that Z2M 1.28.1 adds the power and energy monitoring.

image

As well as the power type thing I commented on last week.

image

2 Likes