I have a Blitzwolf SHP13 “smart plug” and while it got added well into openHab, I’m having a hard time getting it to update its current and power channels.
I used to ssh console to run the following command:
zigbee endpoint 51205/1
Which gave me a very long list of attributes, among which the two that I’m interested in like this:
S 1288 r-- UNSIGNED_16_BIT_INTEGER RMS Current Sun Sep 18 12:05:20 CEST 2022 139
S 1291 r-- SIGNED_16_BIT_INTEGER Active Power Sun Sep 18 12:04:52 CEST 2022 18
I then used the reportcfg command on the 1288 attribute which gave me the following result:
Cluster 2820, Attribute 1288, type UNSIGNED_16_BIT_INTEGER, minimum reporting interval: 3, maximum reporting interval: 7200, timeout: 0
What is the unit of time used for “maximum reporting interval”? I’m asking because, if it’s seconds, then 7200 is 2 hours and yet, according to the reportcfg result, the last update to the values has been more than 24 hours ago.
If it’s indeed seconds, what could explain that it does not update on a regular basis? In particular, why doesn’t it update when the plug gets turned off?
Well, I left it untouched for 5 days, and the zigbee endpoint report showed that the value has not been updated ever since.
However, if I open the “Thing” page and simply click the Save text at the top right, then the value is immediately updated.
I also tried showing the “Channel details” page for any of the channel. When I click “Done” at the top right, it also updates the values, and for all channels.
It’s as if the device needs to be queried for values, rather than sending them on a periodical basis.
Is this something plausible? If yes, is there a way to setup some sort of a polling read?
This gives the reporting configuration, but this doesn’t necessarily mean that there will be ANY reporting. You should also check the binding table to see if the destination of your coordinator is configured. If not, there will be no reporting, and no update.
And the 1288 and 1291 attributes are under the 0B04 Electrical Measurement section, so I believe this is expected.
What is missing here to get reporting on a regular basis instead of only when I press the Done button?
Assuming that 000D6F000DBA13AC is your coordinator, then the device should be sending reports based on the fact that reporting is also configured (as per the info in your previous post). It looks like the binding has this all configured correctly so I’m not sure why you’re not getting any data.
As a matter of interest, what do you receive if you manually read those channels (using the zigbee read command).
Yes, that’s my coordinator.
Here is what zigbee read 51205/1 2820 is giving:
Reading endpoint C805/1, cluster server cluster Electrical Measurement (0B04), attributes RMS Voltage, RMS Current, Active Power, Cluster Revision
Response for cluster 0x0b04
Attribute 1285 RMS Voltage UNSIGNED_16_BIT_INTEGER 232
Attribute 1288 RMS Current UNSIGNED_16_BIT_INTEGER 171
Attribute 1291 Active Power SIGNED_16_BIT_INTEGER 23
Attribute 65533 Cluster Revision UNSIGNED_16_BIT_INTEGER 1
And after that, the timestamp indicated by reportcfg is updated to the date time the command was run. This behavior is pretty much the same as the one I see when I press the “Done” text in the paperUI interface for the channel details.
So it seems everything is configured properly for communication is happening alright when asked for manually. But I don’t know why this does not happen automatically, nor if there is a way to setup a polling mechanism for this.