[RELEASE] Z-Wave Firmware Updater

Thanks! I just threw the file up on my website and looks like it's working now. But yeah, that's good info for future reference! =)

1 Like

Seems to have hung at 3%... =/ Might need to try this again when there's minimal other z-wave traffic. I think I've had instances where motion sensors interrupt z-wave network traffic (querying all the codes from a z-wave lock would hang if anyone moved in a room). =/

Oh... just increased to 5%... How long should an update take? Looks like the update file is 90K...

infofirmware total bytes: 90393

1 Like

It is a pretty drastic change from device to device on how long.. It depends on many factors..

  • Distance from hub
  • Number of hops
  • Legacy z-wave repeaters in route
  • Z-Wave network activity - This is a big one as the firmware update process is designed to pause if it detects a good bit of traffic.. Because the firmware update packets are so big it tries to not totally monopolize the network time.
3 Likes

Fair. It's still progressing, and definitely pausing now and again. Up to 12%. lol. And it's about as far from the hub as possible. I don't have a recent map of the network... yeah, probably not a good number of hops.

1 Like

Boo. Finally failed at 13%. Probably just too much other traffic. =/

dev:14412020-04-19 11:35:30.131 debuglocked by:
dev:14412020-04-19 11:35:30.110 warnThe device was unable to receive the requested firmware data
dev:14412020-04-19 11:35:18.032 errorgroovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.lang.Integer#multiply.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[class java.lang.Character]
[class java.lang.Number] on line 148 (parse)
dev:14412020-04-19 11:35:06.033 errorgroovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.lang.Integer#multiply.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[class java.lang.Character]
[class java.lang.Number] on line 148 (parse)
dev:14412020-04-19 11:34:54.061 errorgroovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.lang.Integer#multiply.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[class java.lang.Character]
[class java.lang.Number] on line 148 (parse)
dev:14412020-04-19 11:34:42.111 errorgroovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.lang.Integer#multiply.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[class java.lang.Character]
[class java.lang.Number] on line 148 (parse)
dev:14412020-04-19 11:34:30.004 errorgroovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.lang.Integer#multiply.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[class java.lang.Character]
[class java.lang.Number] on line 148 (parse)
dev:14412020-04-19 11:34:23.932 errorgroovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.lang.Integer#multiply.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[class java.lang.Character]
[class java.lang.Number] on line 148 (parse)
dev:14412020-04-19 11:34:23.725 errorgroovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.lang.Integer#multiply.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[class java.lang.Character]
[class java.lang.Number] on line 148 (parse)
dev:14412020-04-19 11:34:22.118 errorgroovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.lang.Integer#multiply.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[class java.lang.Character]
[class java.lang.Number] on line 148 (parse)
dev:14412020-04-19 11:34:18.675 errorgroovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.lang.Integer#multiply.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[class java.lang.Character]
[class java.lang.Number] on line 148 (parse)
dev:14412020-04-19 11:34:18.407 errorgroovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.lang.Integer#multiply.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[class java.lang.Character]
[class java.lang.Number] on line 148 (parse)
dev:14412020-04-19 11:34:18.235 errorgroovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.lang.Integer#multiply.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[class java.lang.Character]
[class java.lang.Number] on line 148 (parse)
dev:14412020-04-19 11:34:18.145 errorgroovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.lang.Integer#multiply.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[class java.lang.Character]
[class java.lang.Number] on line 148 (parse)
dev:14412020-04-19 11:34:18.138 errorgroovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.lang.Integer#multiply.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[class java.lang.Character]
[class java.lang.Number] on line 148 (parse)
dev:14412020-04-19 11:34:06.033 errorgroovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.lang.Integer#multiply.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[class java.lang.Character]
[class java.lang.Number] on line 148 (parse)
dev:14412020-04-19 11:33:54.072 errorgroovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.lang.Integer#multiply.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[class java.lang.Character]
[class java.lang.Number] on line 148 (parse)
dev:14412020-04-19 11:33:44.720 errorgroovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.lang.Integer#multiply.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[class java.lang.Character]
[class java.lang.Number] on line 148 (parse)
dev:14412020-04-19 11:33:43.953 errorgroovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.lang.Integer#multiply.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[class java.lang.Character]
[class java.lang.Number] on line 148 (parse)
dev:14412020-04-19 11:33:42.224 errorgroovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.lang.Integer#multiply.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[class java.lang.Character]
[class java.lang.Number] on line 148 (parse)
dev:14412020-04-19 11:33:32.663 debuglocked by:
dev:14412020-04-19 11:33:32.642 warnERROR. Device expected an authentication event to enable firmware update
dev:14412020-04-19 11:21:19.234 infoOK. The device will initiate the firmware update of the target specified in the Firmware Update Meta Data Request Get Command
dev:14412020-04-19 11:21:16.191 infocalculating crc...
dev:14412020-04-19 11:21:10.161 infogot otz compressed image reading compression header
dev:14412020-04-19 11:21:10.158 infofirmware total bytes: 90393
dev:14412020-04-19 11:21:10.155 infoSorted all the bytes. cleaning up some memory...
dev:14412020-04-19 11:20:28.451 infoVersionReport- applicationVersion:2.1
dev:14412020-04-19 11:20:28.448 infoVersionReport- zWaveProtocolVersion:5.3
dev:14412020-04-19 11:20:28.082 infoFirmwareUpdateMd version:4

1 Like

I think I bricked a invelli red switch (gen 2). I started it last night and it got stuck at 26% and now the switch is unresponsive. Here is the log.

dev:1012020-04-19 08:09:46.024 am errorjava.lang.NullPointerException: Cannot invoke method split() on null object on line 427 (childOff)
dev:1012020-04-19 08:08:14.147 am debuglocked by: 
dev:1012020-04-19 08:05:39.027 am infocalculating crc...
dev:1012020-04-19 08:05:38.479 am infogot otz compressed image reading compression header
dev:1012020-04-19 08:05:38.476 am infofirmware total bytes: 97555
dev:1012020-04-19 08:05:38.473 am infoSorted all the bytes. cleaning up some memory...
dev:1012020-04-19 08:05:12.974 am infoVersionReport- applicationVersion:1.9
dev:1012020-04-19 08:05:12.966 am infoVersionReport- zWaveProtocolVersion:6.4
dev:1012020-04-19 08:05:11.923 am infoVersionReport- applicationVersion:1.9
dev:1012020-04-19 08:05:11.921 am infoVersionReport- zWaveProtocolVersion:6.4
dev:1012020-04-19 08:05:11.589 am infoVersionReport- applicationVersion:1.9
dev:1012020-04-19 08:05:11.573 am infoVersionReport- zWaveProtocolVersion:6.4
dev:1012020-04-19 08:05:11.550 am infoVersionReport- applicationVersion:1.9
dev:1012020-04-19 08:05:11.547 am infoVersionReport- zWaveProtocolVersion:6.4
dev:1012020-04-19 08:05:02.841 am infoFirmwareUpdateMd version:4
dev:1012020-04-19 08:04:58.150 am infoFirmwareUpdateMd version:4
dev:1012020-04-19 08:04:58.147 am infoFirmwareUpdateMd version:4
dev:1012020-04-19 08:04:41.517 am debuglocked by: 
dev:1012020-04-19 08:04:37.335 am debuglocked by: 
dev:1012020-04-18 11:20:40.413 pm infoOK. The device will initiate the firmware update of the target specified in the Firmware Update Meta Data Request Get Command
dev:1012020-04-18 11:20:34.499 pm infoOK. The device will initiate the firmware update of the target specified in the Firmware Update Meta Data Request Get Command
dev:1012020-04-18 11:20:33.911 pm infoOK. The device will initiate the firmware update of the target specified in the Firmware Update Meta Data Request Get Command
dev:1012020-04-18 11:20:26.197 pm infocalculating crc...
dev:1012020-04-18 11:20:25.896 pm infogot otz compressed image reading compression header
dev:1012020-04-18 11:20:25.893 pm infofirmware total bytes: 97555
dev:1012020-04-18 11:20:25.890 pm infoSorted all the bytes. cleaning up some memory...
dev:1012020-04-18 11:20:24.415 pm infocalculating crc...
dev:1012020-04-18 11:20:24.034 pm infogot otz compressed image reading compression header
dev:1012020-04-18 11:20:24.031 pm infofirmware total bytes: 97555
dev:1012020-04-18 11:20:24.028 pm infoSorted all the bytes. cleaning up some memory...
dev:1012020-04-18 11:20:21.922 pm errororg.apache.http.client.ClientProtocolException: null on line 374 (firmwareStore)
dev:1012020-04-18 11:20:20.952 pm infocalculating crc...
dev:1012020-04-18 11:20:20.186 pm infogot otz compressed image reading compression header
dev:1012020-04-18 11:20:20.180 pm infofirmware total bytes: 97555
dev:1012020-04-18 11:20:20.175 pm infoSorted all the bytes. cleaning up some memory...
dev:1012020-04-18 11:20:19.013 pm infocalculating crc...
dev:1012020-04-18 11:20:18.690 pm infocalculating crc...
dev:1012020-04-18 11:20:18.263 pm infogot otz compressed image reading compression header
dev:1012020-04-18 11:20:18.251 pm infofirmware total bytes: 97555
dev:1012020-04-18 11:20:18.247 pm infoSorted all the bytes. cleaning up some memory...
dev:1012020-04-18 11:20:17.248 pm infogot otz compressed image reading compression header
dev:1012020-04-18 11:20:17.245 pm infofirmware total bytes: 97555
dev:1012020-04-18 11:20:17.241 pm infoSorted all the bytes. cleaning up some memory...
dev:1012020-04-18 11:20:16.662 pm errororg.apache.http.client.ClientProtocolException: null on line 374 (firmwareStore)
dev:1012020-04-18 11:20:14.586 pm infocalculating crc...
dev:1012020-04-18 11:20:11.882 pm infogot otz compressed image reading compression header
dev:1012020-04-18 11:20:11.875 pm infofirmware total bytes: 97555
dev:1012020-04-18 11:20:11.869 pm infoSorted all the bytes. cleaning up some memory...
1 Like

That's a new one ..

ERROR. Device expected an authentication event to enable firmware update

Also this one is concerning:

groovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.lang.Integer#multiply.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[class java.lang.Character]
[class java.lang.Number] on line 148 (parse)

The device was unable to receive the requested firmware data

Give me a few minutes to digest this ...

1 Like

Wow.. Ok.. No you shouldn't have bricked it..

But it appears as though you had 2 processes running at the same time.. I have no idea how this happened.. did you rapidly double click on the UpdateFirmware button? ..

I have provisions to prevent this but if it happens too fast it may not catch it..

But when your device starts firmware updating it is in a different mode .. Since it didn't finish, rebooting the switch should make it work again.. Pull the air-gap tab and then re-insert it.

1 Like

But it appears as though you had 2 processes running at the same time.. I have no idea how this happened.. did you rapidly double click on the UpdateFirmware button? ..

Good question - I don't think so. But what I did do was press the get version report button - which took forever... so I decided to move ahead with the firmware update and pressed the update button.

I'm not sure what the air-gap tab is... let me google it. Thanks for the tip!

Once we get these kinks worked out, this is going to be such a great tool - thanks for working on it!

2 Likes

Hit abort on the updater, change the driver back to the inovelli driver, and hit the air gap. it'll come back to life.

1 Like

1 Like

Yay! I pulled the air-gap, and it's revived. Thanks!

I'm going to take another crack at the update :slight_smile:

1 Like

Ok @staze Did you click on anything else ? or try to update another device at the same time?..

I’ve run through my code and that value becoming null should only be possible with one of those 2 events

Nope. hit update, and kept a watch on the percent in the driver, and the logs...

1 Like

make sure you follow the specific steps for the Inovellis:

1 Like

Ok.. Researching some more..

So I think it's related to this : ERROR. Device expected an authentication event to enable firmware update..

Give me a few more minutes on this one..

Is this still the ZEN27?

Yup. Only device I currently have that needs a firmware update that I actually have. =) If it helps, I think there's at least one Zooz rep that frequents the forums...

1 Like

Ok.. @staze can you try again.. I just researched the product and it shouldn't need authentication part.. But it sent it.. So I'm thinking maybe a physical button press happened or something to trigger it to abort..

No button press I could see (I'm looking in that general direction). Will give it another shot.

1 Like

Let me know