#Updates Showing in Zwave JS but not HA?

1 messages · Page 1 of 1 (latest)

sweet wraith
#

I thought Zwave JS UI is supposed to integrate with the HA update entities? I have a zooz zen22 running 4.0.1, which HA shows as up-to-date but when I went to OTA updates in zwave js ui it says 4.4.1 is available. Even after seeing that, HA still says I'm up to date. I have 110 devices so I didn't click through each one but I clicked a bunch and this was the only one I could find the discrepancy. Is there a way to make sure HA syncs with zwave js ui so if there are other updates I see them?

jovial flume
#

HA checks for updates on its own schedule

river ibex
#

Surely it should have picked up the update that has been available for 4 months now though

#

Any chance you've ignored that update somehow?

jovial flume
#

Depends on when the node was added. Added 4 months ago, should have been found by now. Added 5 mins ago to a 110+ node network, will take 9+ hours for first update check.

#

For the original question though, there's no synchronization between Z-Wave JS UI and HA.

sweet wraith
#

I can't say for sure how long this node has been on my mesh but it's node 28 so it's been around for a long time. Months if not over a year. As a note, I posted this almost 24h ago and it still hasn't shown up as available in HA

#

I don't think it's an ignore because when I look HA shows this even now. I don't ignore updates frequently but I think this would still show the new version?

#

Zwave JS shows this.

#

I can force the update from zwave js I just didn't want to do that in case there was any debug info I could pull to help figure it out

jovial flume
#

There's no logging for the update entity except when it fails and that's a debug log.

#

You can check the device diagnostic file but I don't think it has anything concerning update entities.

#

You aren't restarting HA regularly, right?

#

The /config/.storage/core.restore_state has the stored state of the update entities, you could see if there's anything unusual for that one

#

If you turn on integration debug logging you could wait and see if the request is ever made (there will be a ton of logging though).

#
2024-09-25 15:32:09.094 DEBUG (MainThread) [zwave_js_server] Publishing message:
{'apiKey': '2e39d98fc56386389fbb35e5a98fa1b44b9fdd8f971460303587cff408430d4cfcde6134',
 'command': 'controller.get_available_firmware_updates',
 'includePrereleases': True,
 'messageId': 'b9e64c6b59e94a169d53b6db02fd846b',
 'nodeId': 24}

2024-09-25 15:32:09.289 DEBUG (MainThread) [zwave_js_server] Received message:
WSMessage(type=<WSMsgType.TEXT: 1>, data='{"type":"result","success":true,"messageId":"b9e64c6b59e94a169d53b6db02fd846b","result":{"updates":[]}}', extra='')
#
2024-09-25 15:42:09.095 DEBUG (MainThread) [zwave_js_server] Publishing message:
{'apiKey': '2e39d98fc56386389fbb35e5a98fa1b44b9fdd8f971460303587cff408430d4cfcde6134',
 'command': 'controller.get_available_firmware_updates',
 'includePrereleases': True,
 'messageId': '4aec1f7f04614ca3a5c8448110fcdb7c',
 'nodeId': 2}

2024-09-25 15:42:09.293 DEBUG (MainThread) [zwave_js_server] Received message:
WSMessage(type=<WSMsgType.TEXT: 1>, data='{"type":"result","success":true,"messageId":"4aec1f7f04614ca3a5c8448110fcdb7c","result":{"updates":[{"device":{"manufacturerId":99,"productType":18756,"productId":12344,"firmwareVersion":"5.29","rfRegion":9},"version":"5.26","changelog":"1. Original Release Firmware","channel":"stable","files":[{"target":0,"integrity":"sha256:9e7841287948fd4208f8f332b4ecb07fdcc1a5290b78b3569b5b60600402701f","url":"https://raw.githubusercontent.com/jascoproducts/firmware/9b5520f5056f7d3fce3fa6adc28bdaf27f8d0a68/zwave/Enbrighten-GE/ZW3005/14294%20-%20In-Wall%20Smart%20Paddle%20Dimmer%2C%20500S/5.26/ZW3005_Enbrighten-GE_14294_5.26.hex"}],"downgrade":true,"normalizedVersion":"5.26.0"}]}}', extra='')
sweet wraith
#

Here's from the restore state, not an expert but looks normal: { "state": {"entity_id":"update.kitchen_accent_lights_firmware","state":"off","attributes":{"auto_update":false,"installed_version":"4.0.1","in_progress":false,"latest_version":"4.0.1"> "extra_data": { "latest_version_firmware": null }, "last_seen": "2024-09-25T23:49:31.965071+00:00" },

#

I can turn on debug logs, how long should I wait to see if the API is called? a day?

jovial flume
#

It does at most once a day.

sweet wraith
#

ok, I enabled debug logging for zwave

#

Ok I enabled it and spotted this already:

#
WSMessage(type=<WSMsgType.TEXT: 1>, data='{"type":"result","success":true,"messageId":"5e3b1d4f7eda4a3c8abcb8189efaaec7","result":{"updates":[{"device":{"manufacturerId":99,"productType":18770,"productId":12595,"firmwareVersion":"5.26","rfRegion":9},"version":"5.23","changelog":"1. Original Release Firmware","channel":"stable","files":[{"target":0,"integrity":"sha256:f7a7f0f925c679d4e13fc74ecd79d8b8b697bdb26d02e9dd6822d5a2529d63f3","url":"https://raw.githubusercontent.com/jascoproducts/firmware/9b5520f5056f7d3fce3fa6adc28bdaf27f8d0a68/zwave/Enbrighten-GE/ZW1002/14288%20-%20In-Wall%20Smart%20Outlet%2C%20Tamper%20Resistant%2C%20500S/5.23/ZW1002_Enbrighten-GE_14288_5.23.hex"}],"downgrade":true,"normalizedVersion":"5.23.0"},{"device":{"manufacturerId":99,"productType":18770,"productId":12595,"firmwareVersion":"5.26","rfRegion":9},"version":"5.24","changelog":"1. Updated Devkit from 6.51.09 to 6.51.10","channel":"stable","files":[{"target":0,"integrity":"sha256:841a5e3d7226c9f9b2eec8472a15b4b9db82042406900247761ce786158764ad","url":"https://raw.githubusercontent.com/jascoproducts/firmware/9b5520f5056f7d3fce3fa6adc28bdaf27f8d0a68/zwave/Enbrighten-GE/ZW1002/14288%20-%20In-Wall%20Smart%20Outlet%2C%20Tamper%20Resistant%2C%20500S/5.24/ZW1002_Enbrighten-GE_14288_5.24.hex"}],"downgrade":true,"normalizedVersion":"5.24.0"}]}}', extra='')```
#

I don't see the specific Zooz device herethough

jovial flume
#

Does each node individually throughout the day

sweet wraith
#

ah gotcha

#

unfortunately the way the logs puts this on multiple lines makes setting up a nice easy grep to capture it tricky

jovial flume
#

When you startup HA and it loads all of the update entities, it will set a timer and trigger an update check 5 mins apart for each one. So if you had 110 update entities, the last entity loaded would be checked 550 minutes later. Then for each entity it schedules the next update 1 day later.

sweet wraith
#

got it, so tl;dr since I updated to the 2024.10.0 beta today, don't update to b1 till I let it run long enough to capture the log 🙂

jovial flume
#

I suppose if you want to speed it up, disable all the other update entities

#

Could easily be done in the UI.

sweet wraith
#

how do you do that quickly without me clicking 100?

jovial flume
#

Select all then unselect the one you want.

sweet wraith
#

ah so something like open entities, filter by zwave integration, filter by update. disable them all except this one?

#

I never had a reason to bulk enable/disable so never saw this option before

jovial flume
#

yep

#

some of that is probably relatively new with the table updates

#

So you can also start from the z-wave integration page and click on the "entities" to filter by the integration instance

sweet wraith
#

yup got it done, just waiting till the next poll

jovial flume
#

You might need to reload the integration to accelerate it, I don't think disabling entities restarts it.

sweet wraith
#

ok I'll check in 5 mins

jovial flume
#

Since the delay is set on startup and last check.

sweet wraith
#

I restarted it to be safe doesn't hurt

jovial flume
#

Would be nice if the entity could show when the next update is scheduled, and when the last check was done.

sweet wraith
#

you sure it's every 5 mins? It's been 6 since I restarted. I noticed the other ones seemed spaced 10 mins

sweet wraith
#

hmm been 11 now anyway

jovial flume
#

Maybe disabling the entities doesn't work

sweet wraith
#

but I'm seeing nothing, not that it picked a different node, just hasn't sent one

#

maybe it doesn't log disabled ones or something

jovial flume
#

cause all the others are disabled. but i think it still configured the delay.

sweet wraith
#

ok well I'll still leave them disabled, it will make it easier to spot because it means the next time I see get_available_firmware_updates in the logs it should be my node, right? Even if it takes hours?

jovial flume
#

The other option would be to edit the code to remove the delay. Ease of that depends on your installation.

sweet wraith
#

HAOS

jovial flume
#

I think you could install it as a custom component, but I haven't tried it.

sweet wraith
#

yeah I've done that before. I think I'll probably just wait. This is my production HA and my wife yells at me when I break all the automations 🙂

#

I think if I just edit /usr/src/homeassistant/homeassistant/components/zwave_js/update.py and restart ha that may work

jovial flume
#

Possibly. Depends on what happens when you restart HA in HAOS, not sure if it re-creates the container or just restarts the container, or restarts in the running container.

sweet wraith
#

easy enough to try. Guess that means I need to turn on debug logging via yaml though so it doesn't get shut off when I restart ha

#

pretty sure the UI debug logs turn off on restart?

jovial flume
#

That might be the case. I have my test instance configuration in configuration.yaml

sweet wraith
#

easy enough for me to change this one line, restart ha and see if it worked

jovial flume
#
logger:
  default: info
  logs:
    homeassistant.components.zwave_js: debug
    zwave_js_server: debug
sweet wraith
#

argh didn't add the zwave_js_server one

#

code change survived the restart but nothing in logs so restarting again adding zwave_js_server too

#

hmm restarted again, I basically changed the code so delay = 0 instead of the 5 mins. Still not seeing it in th elogs

jovial flume
#

The entity of interest is still enabled?

sweet wraith
#

yup

jovial flume
#

I assume the node's not currently Dead?

sweet wraith
#

asleep... which is also odd for a mains powered device?

jovial flume
#

Uh, yeah

#

Guess I should have asked earlier, but wasn't expecting that to be the case for a ZEN22.

sweet wraith
#

same

jovial flume
#

Well, that explains it.

sweet wraith
#

didn't cross my mind to check that

jovial flume
#

Can you post the device diagnostic?

jovial flume
#

Lol that's all kinds of messed up.

#
      "isListening": false,

causes it to be considered a battery device

#
      "maxDataRate": 9600,
      "supportedDataRates": [
        9600
      ],

is odd for a Z-Wave Plus device

#

This is hosed:

      "deviceClass": {
        "basic": {
          "key": 5,
          "label": "unknown (0x05)"
        },
        "generic": {
          "key": 112,
          "label": "UNKNOWN (0x70)"
        },
        "specific": {
          "key": 0,
          "label": "Unused"
        }
      },
#

Have you tried a re-interview yet?

sweet wraith
#

I thought I did but I can make sure

#

it's like switching between alive and dead every few seconds after doing that

#

now it's just dead

jovial flume
#

Maybe that was the issue in the first place and the flags were just messed up

#

It's been working from HA?

#

sending commands

sweet wraith
#

it's not a device I frequently turn on/off from HA so honestly no idea

#

lol this device hates me. I factory reset it and reincluded it. Working fine in zwave js but HA didn't create a device for it

#

I'm wondering if there's a device issue. I excluded and included again, it shows up in HA now but the interview must be failing because nothing sees that it's a dimmer

#

I had to force a reinterview a few times and now it's working. I will keep an eye on this

#

also, now it shows the update for the firmware is available. Guess I'll do that, faulty device - maybe the firmware fixes it!

elder birch