Tip: Removing invisible nodes and updating device firmware

I'm on a quest to figure out what wrong with my Z-Wave mesh and ended up finding some dead nodes and updating some old device firmware before going full Zniffer.

So... some quick notes below on how to find dead z-wave devices and updating device firmware without removing them from Hubitat. Just jotting down my steps while waiting for my device firmware to update since other people may be interested.

The steps below allow you to remove devices that are part of the Z-Wave mesh but not visible to HE. The last part shows how to update firmware without removing devices from HE.

WARNING: This is low level surgery outside the bounds of the Hubitat Hub so only do this if you are fine with losing your whole Z-Wave mesh and starting over from scratch.

Tools:

  1. Windows
    Sorry but the software is Win only

  2. Silicon Labs Z-Wave USB Static Controller
    You may be able to use any USB Z-Wave Stick but I bricked an Aeotec stick so just using the genuine dev stick now.
    $30 at ACC-UZB3-U-STA Silicon Labs | RF/IF and RFID | DigiKey

  3. Z-Wave PC Controller 5.39
    (You may have to sign up at Silicon Labs for an account before downloading)
    Z-Wave Embedded SDK - Silicon Labs

  4. HomeSeer Z-Flash
    $30 at Z-Flash Z-Wave Firmware Update Software – HomeSeer

First I was interested if there were some dead/phantom devices that may be interfering with my mesh. This has been discussed in other threads but here is what I did:

  1. Insert USB Stick into Windows machine
  2. If it doesn't show up as UZB in device manager, select UZB driver from:
    ...\ZWavePCController_v5_39\Bin\ZW050x_USB_VCP_PC_Driver
    UZB
  3. Install PC Controller from:
    ...\ZWavePCController_v5_39\Bin\ZWavePCController\ZWaveControllerSetup.msi
  4. PC: Launch PC controller from start menu
  5. PC: Click the Settings button top-right and select the UZB Com port
    settings
  6. PC: Click Network Management
  7. PC: Click Reset
    reset
  8. HE: Open up a separate Hubitat log page/tab to see progress
  9. HE: Open up the Hubitat Device Discovery page and start Z-Wave device discovery
  10. PC: Click Select Learn Mode
    learn
  11. PC: Select Learn Mode: NWI Button
    ) NWI
  12. Watch HE and PC start communicating and give it time to transfer over information on all the Z-Wave devices. It took a couple minutes for my 70ish devices
  13. PC: You should now see all your Z-Wave devices on the left.
  14. HE: Open up the Z-Wave details and sort by Node (default)
  15. PC: Confirm secondary control by selecting a node switch that you know by looking at the HE list, and turn it on and off by selecting it and clicking the Basic Set On/Off button
  16. Compare the lists and see if there are some missing entries in HE.
    a. I had an old test controller and two old Aeotec sirens I had played with last month that showed up in PC but not in the HE list.
    b. I'm assuming this means the Z-Wave controller in HE knows about these devices but they have no entries in the HE database? Source of trouble anyway.
  17. PC: Select mismatched node
  18. PC: Click Is Failed
  19. PC: Wait and see the device turn red if it's indeed missing/failed
  20. PC: Click Remove Failed
  21. PC: (Repeat for any other mismatched nodes)
  22. PC: For fun, head over to the Topology Map View and refresh to see which device can communicate with another.
  23. PC: Close PC Controller

Then why not update some firmware without removing them from HE? First confirm if you have any devices that can be upgraded at:
http://help.homeseer.com/help/Z-Flash/static/#.firmware_included_with_z_flash

  1. ZF: Keep the USB Z-Wave stick in
  2. ZF: Open the Z-Flash tool. It will use the stick as a valid secondary controller so you don't have to remove devices from HE to update their firmware.
  3. ZF: (Step 1)Select USB Z-Wave Interface and the right COM port, and enable
  4. ZF: Wait for the tool to query all the devices
  5. ZF: (Step 2) Select the device(s) want to update
  6. ZF: (Step 3) Click the File: menu to select an available firmware
    a. If it just says select file there is none built-in but you could ask for an updated file from the manufacturer. Most of them only allow updating by official controllers so don't get your hopes up... but HE could do this in the future... :wink:

Updating about 9 switches and bulbs took about as long as it took to write this so quite a while.

Cheers,
Mattias

8 Likes

Thanks for the write-up. I've been meaning to do a post like this for weeks to compliment the sniffing post.

1 Like

Could you expand on this a bit? I am sitting here looking at a brand new Aeotec Z Stick and wanting to check my system for orphaned devices. Is the driver included with PC Controller compatible with the Z Stick? How did you brick it?

If I had to guess it is carry over from when he was setting up the Zniffer. You don't have to flash any specific firmware to use PC Controller. Any USB Z-Wave stick should work. I have used the Zooz S2 stick and Aeotec stick interchangeably with the firmwares they shipped with. Sometimes the drivers are a bit finicky and you have to set one manually using the "from disk" functionality in control panel but most of the time they are good once you do it the first time.

1 Like

Okay, So I checked things out and had no orphaned devices. So now how do I remove the Z-wave stick device from the hub? If I put it into Z-wave removal mode and press the button on the stick while it is plugged into the pc nothing happens. I do not really like force removing devices. That is what causes orphans.

In PC Controller put in learning mode, then Network Wide Exclusion.
In HE go to zwave settings, then Zwave exclusion mode.
That should exclude the stick.

That didn't work. I ended up in frustration force removing it. I am running a Z-Wave heal now to see if I get any errors.

Edit: I was unable to remove it from device page which is where I force removed it. When I later put the hub into Z-Wave removal mode from the general device inclusion page of the hub it removed an unknown device. I am thinking that maybe I got that sucker.

1 Like

I ended up leaving it connected but unplugged from the USB. It's not a router (I checked in the properties) so I don't think it will cause issues.. but given my recent experiences I don't know if this is true or not.

Was afraid to do anything labelled "network-wide"..

It's actually my second bricked stick. Last year I tried to flash Zniffer on a Aeotec stick that failed. Not sure if it was my fault or if I chose the wrong firmware. After that I got two official Silicon Labs sticks... since I knew I would probably brick another one... which I did.

So this time I sat there and looked at these two files from ...\Zniffer_v4_60\Z-Wave_Firmware\ and about to flash to Zniffer:
sniffer_ZW050x.hex
sniffer_ZW050x_USBVCP.hex

From this page it looked like I should use the "sniffer_ZW050x_USBVCP.hex":
https://forum.fibaro.com/topic/29923-tutorial-z-wave-diagnostics-with-pc-controller-and-zniffer/

Then I changed by mind and decided to try to see if there was something easier such as removing some stale nodes or updating z-wave node device firmwares. I then decided to flash the latest PC Controller firmware as a trial run to make sure the flashing worked and so I could revert back to Controller after being done with Zniffer.

I was then faced with the choice of six firmware in:
SDK_v6_82_00\ProductPlus\Bin\SerialAPI_Controller_Static

serialapi_controller_static_OTW_ZW050x_US.otz
serialapi_controller_static_OTW_ZW050x_US_WITH_BOOTLOADER.hex
serialapi_controller_static_OTW_ZW050x_USBVCP_US.otz
serialapi_controller_static_OTW_ZW050x_USBVCP_US_WITH_BOOTLOADER.hex
serialapi_controller_static_ZW050x_US.hex
serialapi_controller_static_ZW050x_USBVCP_US.hex

Given what the Zniffer page said I thought that the "serialapi_controller_static_ZW050x_USBVCP_US.hex" looked the closest. After installing the PC Programmer USB driver, I managed to read the current Z-Wave Stick firmware and it said the current firmware did not match the file above. So I thought I had an old firmware on the stick and went ahead and flashed it.

Now it shows up as a malfunctioning USB device.

I'm wondering if I should have flashed the "serialapi_controller_static_OTW_ZW050x_USBVCP_US_WITH_BOOTLOADER" but not sure.

I've done a decent amount of Arduino and ESP8266/32 tinkering so I'm wondering if I'm going to have to revive the stick by connecting to the RX/TX test points directly but at $30 a pop it may not be the best fun for buck.

Does anyone know which of the six files is correct to flash?

Cheers,
Mattias

1 Like