-
-
Notifications
You must be signed in to change notification settings - Fork 588
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Greenwave Powernode 6 measurements reported in wrong instance #2917
Comments
Endpoint 0 is the "root" endpoint, meaning the device itself and not one of the outlets. Some devices use that to report the combined consumption. Can you confirm that, e.g. by adding two similar devices in two outlets and then look at the value if it is roughly double? Looks like the device is also swapping the source/destination endpoint in the queries it receives. We can test if adding that behavior to the flag is enough to make it work. |
Sure. I have another node (ID 2) with the same powerstrip and more devices powered on it. As I thought it would be easier to see the issue on NODE 12 I reported it but on this NODE 2 it happens the same. Starting scenario (please, forget the ugly 'unknown' entity. I don't know why it appeared back in time). Powered devices are on sockets 2, 4 and 6: Please find attached log when I hit Refresh option: I wasn't able to take snapshots to each status change but values changed on socket 1 with this sequence (each one in its proper field according the unit of measurement): 0.5289kWh -> 22,7W -> 0.4503kWh -> 0W -> 0.1842kWh -> 11.8W -> 0kWh -> (...) -> 0.287kWh -> 1.2W To me it seems like hitting the "refresh" button it starts some kind of loop and it reports (on socket 1) the W/kWh information of each socket until it reaches the sixth one and its information remains on socket 1 (unless you click on [2-50-1-reset] to clean it up) Please, notice during the whole process, Watt information of each socket (2-50-X-value-65537) was being updated on their respective fields with no issue. |
Because the device responds with source 0, destination 0 when we query the individual endpoints, the response isn't detected as the response to our request. It then gets treated like an unsolicited message and gets mapped to the first supporting endpoint (which is something I'm looking to change). I'll update the compat flag to also set a different source endpoint when querying the device, hoping it will respond with its endpoint values then. If that doesn't work, I'll need one of those things to test hands-on. Debugging such a severely misbehaving device via issues and screenshots is wasting time I could better invest elsewhere. |
PR is up at #2919 for testing. |
Checklist:
Describe the bug
Measurements still not reported in their right sockets despite #2885
Please, take a look into the Additional Context for more details
Device information
Which device(s) is/are affected (manufacturer/model)? GreenWave Reality Inc. Multi-socket PowerNode (6-plug) NP240 / NP242
What is/are the node IDs? 2, 12
Did you change anything?
Did this use to work before?
How are you using
node-zwave-js
zwavejs2mqtt
(latest) docker imagezwavejs2mqtt
(dev) docker imagezwavejs2mqtt
Manual Docker buildnode-zwave-js
branch:zwavejs2mqtt
branch:HomeAssistant
version XYZnode-zwave-js
branch:zwavejs2mqtt
branch:node-red-contrib-zwave-js
To Reproduce
Steps to reproduce the behavior:
Additional context
I'm pretty sure this issue is related with the #2792 raised a few days ago (already fixed on v7.8.0)
After zwavejs (and zwavejs2mqtt) upgrade to be sure to we already have #2885 included, some things have been improved but some others don't.
Before upgrade:
After upgrade:
However, if you force a meter refresh (manually or by an automatic polling) because, as I said, you need it in order to get updated the kWh information, things mess up: 👎
a. Watt information is shown in socket 1. Not its real socket 1 consumption because there is no device on it
b. kWh information is shown in socket 1. Not its real socket 1 consumption because there is no device on it
c. kWh information of the other sockets aren't updated
Without refreshing/polling we have this (which is OK): [12-50-3-value-66049] Electric Consumed [W] value changes automatically (8.9W, 9.9W,... whatever) and no mess at socket 1:
![imagen](https://user-images.githubusercontent.com/75622100/123642288-67b06300-d823-11eb-99d5-f3c15713134b.png)
However, if I try to refresh (at 13:15 UTC), [12-50-1-value-65537] Electric Consumed [kWh] is updated:
![imagen](https://user-images.githubusercontent.com/75622100/123642620-caa1fa00-d823-11eb-9f8f-4984f2fe7fc5.png)
![imagen](https://user-images.githubusercontent.com/75622100/123642666-d988ac80-d823-11eb-987f-171b8d814b86.png)
![imagen](https://user-images.githubusercontent.com/75622100/123644293-8879b800-d825-11eb-8d4e-87f00473a849.png)
and also [12-50-1-value-66049] Electric Consumed [W] is also updated:
Eventually they go back to 0kWh/0W at socket 1 but kWh of socket 3 (where I have a powered device) wasn't updated at all:
Taking a look at log I think the root cause for points 3.a and 3.b might be information is reported at "Endpoint 0" (? socket only have 6 sockets). According log there is no map for Endpoint 0 so value is assigned to "Endpoint 1" no matter what.
For instance, for the above 0.4893kWh into the second snapshot:
Same seems to happen with those 9.4W assigned to socket 1 too:
Still guessing, I think root cause for 3.c (kWh information for other sockets aren't updated) could be related somehow. It sounds like information is asked for socket X but it is answered to endpoint 0 which turns out to be mapped to endpoint 1 and not its real endpoint X. Does it makes any sense?
Logfile:
zwavejs_2021-06-28.log
The text was updated successfully, but these errors were encountered: