Update issue - Device becomes unavailable

After an update, I have a lot of zwave devices become unavailable. After digging through the zwcfg xml file, I’m seeing that the device configurations are completely different.
Upgrading from hassio 4.11 to 4.12
Upgrading from Home assistant 0.113.4 to 0.114.2
Mysql server for recorder was down at restart
My backups were from before all updates and after all updates.
Note on host: I have had this issue in the past with Raspberry Pi 3 B+ and Raspberry Pi 4 (current install)
Note on Zwave hub: I have had this issue in the past with Aeotec z-stick gen 5 and GoControl HUSBZB-1 (Current install).
zwave devices that have had problems:

  • Monoprice 124259 Z-Wave Plus Door and Window Sensor (HKZW-DWS01)
  • Sensative Z-Wave Plus Indoor/Outdoor Temperature and Light Sensor Strips

Old config entry for entity 40

	<Node id="40" name="" location="" basic="4" generic="33" specific="1" roletype="6" devicetype="3329" nodetype="0" type="Routing Multilevel Sensor" listening="false" frequentListening="false" beaming="true" routing="true" max_baud_rate="40000" version="4" query_stage="Complete">
		<Manufacturer id="19a" name="Sensative">
			<Product type="3" id="a" name="Strips Comfort" />
		</Manufacturer>
		<CommandClasses>
			<CommandClass id="32" name="COMMAND_CLASS_BASIC" version="1" request_flags="4" after_mark="true" mapping="49">
				<Instance index="1" />
			</CommandClass>
			<CommandClass id="48" name="COMMAND_CLASS_SENSOR_BINARY" version="1">
				<Instance index="1" />
				<Value type="bool" genre="user" instance="1" index="0" label="Sensor" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
			</CommandClass>
			<CommandClass id="49" name="COMMAND_CLASS_SENSOR_MULTILEVEL" version="5" innif="true">
				<Instance index="1" />
				<Value type="decimal" genre="user" instance="1" index="1" label="Temperature" units="C" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="3.0" />
				<Value type="decimal" genre="user" instance="1" index="3" label="Luminance" units="lux" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="1" />
				<Value type="decimal" genre="user" instance="1" index="31" label="Moisture" units="%" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0.00" />
			</CommandClass>
			<CommandClass id="90" name="COMMAND_CLASS_DEVICE_RESET_LOCALLY" version="1" request_flags="4" innif="true">
				<Instance index="1" />
			</CommandClass>
			<CommandClass id="94" name="COMMAND_CLASS_ZWAVEPLUS_INFO" version="1" request_flags="4" innif="true">
				<Instance index="1" />
				<Value type="byte" genre="system" instance="1" index="0" label="ZWave+ Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="1" />
				<Value type="short" genre="system" instance="1" index="1" label="InstallerIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="3329" />
				<Value type="short" genre="system" instance="1" index="2" label="UserIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="3329" />
			</CommandClass>
			<CommandClass id="112" name="COMMAND_CLASS_CONFIGURATION" version="1" request_flags="4" innif="true">
				<Instance index="1" />
				<Value type="list" genre="config" instance="1" index="2" label="Led alarm reporting" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="1" size="1">
					<Help>Led alarm reporting</Help>
					<Item label="Disable" value="0" />
					<Item label="Enable" value="1" />
				</Value>
				<Value type="list" genre="config" instance="1" index="3" label="Temperature and light reporting" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
					<Help>Temperature and light reporting</Help>
					<Item label="Normal" value="1" />
					<Item label="Frequent" value="2" />
				</Value>
				<Value type="list" genre="config" instance="1" index="4" label="Temperature reporting" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="1" size="1">
					<Help>Does not affect temperature alarms</Help>
					<Item label="Disable" value="0" />
					<Item label="Enable" value="1" />
				</Value>
				<Value type="list" genre="config" instance="1" index="5" label="Temperature reporting unit" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
					<Help>Temperature reporting unit</Help>
					<Item label="Celsius" value="0" />
					<Item label="Fahrenheit" value="1" />
				</Value>
				<Value type="list" genre="config" instance="1" index="6" label="Temperature alarms" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
					<Help>Temperature alarms</Help>
					<Item label="Disable" value="0" />
					<Item label="Enable" value="1" />
				</Value>
				<Value type="byte" genre="config" instance="1" index="7" label="High temperature level" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="148" value="60">
					<Help>-20 to 60C</Help>
				</Value>
				<Value type="byte" genre="config" instance="1" index="8" label="Low temperature level" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="147" value="147">
					<Help>-20 to 60C</Help>
				</Value>
				<Value type="list" genre="config" instance="1" index="9" label="Ambient light reporting " units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="1" size="1">
					<Help>Ambient light reporting</Help>
					<Item label="Off" value="0" />
					<Item label="On" value="1" />
					<Item label="Report only threshold" value="2" />
				</Value>
				<Value type="int" genre="config" instance="1" index="10" label="High Ambient light report level" units="lux" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="3" max="64000" value="40000">
					<Help>3 to 64000</Help>
				</Value>
				<Value type="int" genre="config" instance="1" index="11" label="Low ambient light report level " units="lux" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="1" max="42000" value="5000">
					<Help>1 to 42000</Help>
				</Value>
				<Value type="list" genre="config" instance="1" index="12" label="Leakage alarm" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
					<Help>Leakage alarm</Help>
					<Item label="Disable" value="0" />
					<Item label="Enable" value="1" />
				</Value>
				<Value type="byte" genre="config" instance="1" index="13" label="Leakage alarm level" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="1" max="100" value="10">
					<Help>1 to 100 (1 = almost dry, 100 = wet)</Help>
				</Value>
				<Value type="byte" genre="config" instance="1" index="14" label="Moisture reporting period" units="Hours" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="120" value="0">
					<Help>0-120 (Hours between reports)</Help>
				</Value>
			</CommandClass>
			<CommandClass id="113" name="COMMAND_CLASS_ALARM" version="4" request_flags="2" innif="true">
				<Instance index="1" />
				<Value type="byte" genre="user" instance="1" index="0" label="Alarm Type" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
				<Value type="byte" genre="user" instance="1" index="1" label="Alarm Level" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
				<Value type="byte" genre="user" instance="1" index="2" label="SourceNodeId" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
				<Value type="byte" genre="user" instance="1" index="7" label="Heat" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="254" />
				<Value type="byte" genre="user" instance="1" index="8" label="Flood" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="254" />
				<Value type="byte" genre="user" instance="1" index="10" label="Burglar" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="254" />
			</CommandClass>
			<CommandClass id="114" name="COMMAND_CLASS_MANUFACTURER_SPECIFIC" version="1" request_flags="4" innif="true">
				<Instance index="1" />
			</CommandClass>
			<CommandClass id="115" name="COMMAND_CLASS_POWERLEVEL" version="1" request_flags="4" innif="true">
				<Instance index="1" />
				<Value type="list" genre="system" instance="1" index="0" label="Powerlevel" units="dB" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
					<Item label="Normal" value="0" />
					<Item label="-1dB" value="1" />
					<Item label="-2dB" value="2" />
					<Item label="-3dB" value="3" />
					<Item label="-4dB" value="4" />
					<Item label="-5dB" value="5" />
					<Item label="-6dB" value="6" />
					<Item label="-7dB" value="7" />
					<Item label="-8dB" value="8" />
					<Item label="-9dB" value="9" />
				</Value>
				<Value type="byte" genre="system" instance="1" index="1" label="Timeout" units="seconds" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
				<Value type="button" genre="system" instance="1" index="2" label="Set Powerlevel" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
				<Value type="byte" genre="system" instance="1" index="3" label="Test Node" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
				<Value type="list" genre="system" instance="1" index="4" label="Test Powerlevel" units="dB" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
					<Item label="Normal" value="0" />
					<Item label="-1dB" value="1" />
					<Item label="-2dB" value="2" />
					<Item label="-3dB" value="3" />
					<Item label="-4dB" value="4" />
					<Item label="-5dB" value="5" />
					<Item label="-6dB" value="6" />
					<Item label="-7dB" value="7" />
					<Item label="-8dB" value="8" />
					<Item label="-9dB" value="9" />
				</Value>
				<Value type="short" genre="system" instance="1" index="5" label="Frame Count" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
				<Value type="button" genre="system" instance="1" index="6" label="Test" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
				<Value type="button" genre="system" instance="1" index="7" label="Report" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
				<Value type="list" genre="system" instance="1" index="8" label="Test Status" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
					<Item label="Failed" value="0" />
					<Item label="Success" value="1" />
					<Item label="In Progress" value="2" />
				</Value>
				<Value type="short" genre="system" instance="1" index="9" label="Acked Frames" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
			</CommandClass>
			<CommandClass id="128" name="COMMAND_CLASS_BATTERY" version="1" request_flags="4" innif="true">
				<Instance index="1" />
				<Value type="byte" genre="user" instance="1" index="0" label="Battery Level" units="%" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="100" />
			</CommandClass>
			<CommandClass id="132" name="COMMAND_CLASS_WAKE_UP" version="2" request_flags="2" innif="true">
				<Instance index="1" />
				<Value type="int" genre="system" instance="1" index="0" label="Wake-up Interval" units="Seconds" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="86400" />
				<Value type="int" genre="system" instance="1" index="1" label="Minimum Wake-up Interval" units="Seconds" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="1800" />
				<Value type="int" genre="system" instance="1" index="2" label="Maximum Wake-up Interval" units="Seconds" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="86400" />
				<Value type="int" genre="system" instance="1" index="3" label="Default Wake-up Interval" units="Seconds" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="86400" />
				<Value type="int" genre="system" instance="1" index="4" label="Wake-up Interval Step" units="Seconds" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="60" />
			</CommandClass>
			<CommandClass id="133" name="COMMAND_CLASS_ASSOCIATION" version="1" request_flags="4" innif="true">
				<Instance index="1" />
				<Associations num_groups="1">
					<Group index="1" max_associations="1" label="Lifeline" auto="true">
						<Node id="1" />
					</Group>
				</Associations>
			</CommandClass>
			<CommandClass id="134" name="COMMAND_CLASS_VERSION" version="1" request_flags="6" innif="true">
				<Instance index="1" />
				<Value type="string" genre="system" instance="1" index="0" label="Library Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="Unknown" />
				<Value type="string" genre="system" instance="1" index="1" label="Protocol Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="Unknown" />
				<Value type="string" genre="system" instance="1" index="2" label="Application Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="Unknown" />
			</CommandClass>
		</CommandClasses>
	</Node>

New Node 40 entry (after reboot from upgrades):

	<Node id="40" name="" location="" basic="4" generic="33" specific="1" type="Routing Multilevel Sensor" listening="false" frequentListening="false" beaming="true" routing="true" max_baud_rate="40000" version="4" query_stage="Probe">
		<Manufacturer id="0" name="">
			<Product type="0" id="0" name="" />
		</Manufacturer>
		<CommandClasses>
			<CommandClass id="32" name="COMMAND_CLASS_BASIC" version="1" after_mark="true" mapping="49">
				<Instance index="1" />
			</CommandClass>
			<CommandClass id="49" name="COMMAND_CLASS_SENSOR_MULTILEVEL" version="1">
				<Instance index="1" />
			</CommandClass>
			<CommandClass id="132" name="COMMAND_CLASS_WAKE_UP" version="1" request_flags="2">
				<Instance index="1" />
				<Value type="int" genre="system" instance="1" index="0" label="Wake-up Interval" units="Seconds" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="3600" />
			</CommandClass>
		</CommandClasses>
	</Node>

Either try refreshing the node or removing the zwcfg_xxx file and let it repopulate (takes quite some time to get the Z-Wave network ready when it’s lost/removed)

Note: I had to put the device list in code quotes as I’m only allowed to have two links per post as a new user to the forums :frowning:

Sorry, I should have listed what I’ve done in my troubleshooting:

  1. I’ve refreshed the node (cold reboot afterwards)
  2. I’ve healed the node (cold reboot afterwards)
  3. I’ve healed the network (cold reboot afterwards)
  4. I’ve removed the zwcfg xml file and let it rebuild (cold reboot after removal and cold reboot after rebuild)
  5. I’ve manually factory reset one of the devices and readded it. It eventually would go unavailable. This also leaves me with devices I can’t get rid of.
  6. When I moved between the two different PIs (3 B+ and 4), they were fresh installs
  7. When I moved between the two different zwave hubs, they were fresh installs
  8. I can get the device working by manually editing the zwcfg.xml and reverting just the changed item back manually
  9. In the past, I have copied the full original pre upgrade zwcfg.xml back over the new one with bad information. After a reboot, the bad information is back in the file

Just a bit more information:

I have about 55 zwave devices overall that are comprised of the below devices. These devices are all z-wave and are added in as plus devices and as secure nodes where possible

* GoControl WA00Z-1 Z-Wave Scene-Controller Wall Switch https://smile.amazon.com/gp/product/B01BKWG9XS
* ZOOZ Z-Wave Plus 4-in-1 Sensor ZSE40 VER. 2.0 (motion / light / temperature / humidity) https://smile.amazon.com/gp/product/B01AKSO80O
* NEO Z-Wave Plus Smart Mini Power Plug Z Wave Outlet with Smart Energy Monitor https://smile.amazon.com/gp/product/B07DD7KL3M
* Aeon Labs ZW095 ZW095-A Home Energy Meter Gen5 https://smile.amazon.com/gp/product/B00XD8WZX6
* Sensative Z-Wave Plus Indoor/Outdoor Temperature and Light Sensor Strips https://smile.amazon.com/gp/product/B07DQSTS5Q
* Aeotec Water Sensor 6 Z-Wave Water Sensor Z-Wave Plus (with dock) https://smile.amazon.com/gp/product/B0799KLKVC
* GE 14291 Enbrighten Z-Wave Plus Smart Light Switch https://smile.amazon.com/gp/product/B01M1AHC3R
* GE 26931 Enbrighten Z-Wave Plus Smart Motion Light Switch https://smile.amazon.com/gp/product/B07226MG2T
* Monoprice 124259 Z-Wave Plus Door and Window Sensor ( HKZW-DWS01 rebranded) https://smile.amazon.com/gp/product/B073WFL9SC
* Monoprice Z-Wave Plus Smart Plug and Repeater https://smile.amazon.com/gp/product/B076HZG5HR
* First Alert ZCOMBO 2-in-1 Smoke Detector & Carbon Monoxide Alarm https://smile.amazon.com/gp/product/B00KMHXFAI
* Zooz Z-Wave Plus Power Switch ZEN15 for 110V AC Units https://smile.amazon.com/gp/product/B07578W7KY
* GoControl Z-Wave Dimmable LED Light Bulb, LB60Z-1 https://smile.amazon.com/gp/product/B00PJH16UC
* GE 14292 Enbrighten Z-Wave Plus Smart Light Switch https://smile.amazon.com/gp/product/B06VYCFXT4
* Inovelli Z-Wave Plug w/Built-in Z-Wave Repeater https://smile.amazon.com/gp/product/B06XG2T2S6 
* Enbrighten 35931 Z-Wave Plus Wireless Smart LED Bulb https://smile.amazon.com/gp/product/B01KQDIU84
* Monoprice 115902 Z-Wave 4 in 1 sensor (motion, temp, humidity, and light) https://smile.amazon.com/gp/product/B01MRYFE90
* Linear Z-Wave Garage Door remote controller (GD00Z-4) https://smile.amazon.com/gp/product/B00N75ZPZ0

Integrations in use:

  • z-wave :wink:
  • ecobee
  • blink
  • MQTT
  • zigbee (no devices)

Thanks,
-Ren

The entry in your zwcfg lists the query stage as “Probe” (end of the line) which means there is no (good) communication. Do you maybe have range issues?

Have you tried using the OZW Beta? I’m unsure if all of your devices are added to the device database but it might be worth a try. At least the fact it has a GUI helps a lot :slight_smile:

Rick,
Good thought on factoring range into the equation. There are other items much further away than the door sensors that don’t have an issue, but those devices are all devices with AC power. I do have a pretty large mesh of AC powered devices that are also repeaters, but that doesn’t guarantee coverage.

I haven’t tried the OZW beta. I’ll take a look into it! Any interface that will allow me to interact more closely with the zwave network is very welcomed! Now, if we could just get over the air (OTA) updates to devices to be a integrated thing… LOL

Thanks,
-Ren

1 Like

Hi @renshai,

I think i’ve ran into the same problem. Some devices work like normal and other refuse to update or are unavailable. Range can’t possibly be the issue because one of the devices is right by the Z-wave stick.

I want to ask you, did you resolve this issue? I’m thinking of reinstalling the Z-wave integration, but I’d rather not.

Thanks in advance!

If there is anyone else with this issue. I managed to fix the problem.

My issue was related to the fact that after a restart of my server (update os), the usb path of the z-wave stick changed. Because some z-wave device still reported their state, it took me some time to realize to look at the usb path. I may take multiple restarts of home-assistent to fully restore the whole z-wave network.