Schlage Connect Locks - HA Integration Needs Attention

I had a previous version of the lock, but got rid of them, didn’t try whether it worked since it came up s unknown. when it comes up as unknown I dont believe it knows its a lock

Here is my xml for the lock

	<Node id="104" name="" location="" basic="4" generic="64" specific="3" type="Secure Keypad Door Lock" listening="false" frequentListening="true" beaming="true" routing="true" max_baud_rate="40000" version="4" secured="true" query_stage="Complete">
		<Manufacturer id="3b" name="Schlage">
			<Product type="6341" id="5044" name="BE469 Touchscreen Deadbolt" />
		</Manufacturer>
		<CommandClasses>
			<CommandClass id="32" name="COMMAND_CLASS_BASIC" version="1" request_flags="4" issecured="true" mapping="98">
				<Instance index="1" />
			</CommandClass>
			<CommandClass id="34" name="COMMAND_CLASS_APPLICATION_STATUS" version="1" request_flags="4" innif="true">
				<Instance index="1" />
			</CommandClass>
			<CommandClass id="98" name="COMMAND_CLASS_DOOR_LOCK" version="1" request_flags="4" issecured="true" m_timeoutsupported="1" m_insidehandlemode="0" m_outsidehandlemode="0" m_timeoutmins="254" m_timeoutsecs="254">
				<Instance index="1" />
				<Value type="bool" genre="user" instance="1" index="0" label="Locked" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="True" />
				<Value type="list" genre="user" instance="1" index="1" label="Locked (Advanced)" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
					<Item label="Unsecure" value="0" />
					<Item label="Unsecured with Timeout" value="1" />
					<Item label="Inside Handle Unsecured" value="2" />
					<Item label="Inside Handle Unsecured with Timeout" value="3" />
					<Item label="Outside Handle Unsecured" value="4" />
					<Item label="Outside Handle Unsecured with Timeout" value="5" />
					<Item label="Secured" value="255" />
					<Item label="Invalid" value="255" />
				</Value>
				<Value type="list" genre="system" instance="1" index="2" label="Timeout Mode" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
					<Item label="No Timeout" value="1" />
					<Item label="Secure Lock after Timeout" value="2" />
				</Value>
				<Value type="byte" genre="system" instance="1" index="5" label="Outside Handle Control" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
				<Value type="byte" genre="system" instance="1" index="6" label="Inside Handle Control" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
			</CommandClass>
			<CommandClass id="99" name="COMMAND_CLASS_USER_CODE" version="1" request_flags="4" issecured="true" codes="30">
				<Instance index="1" />
				<Value type="raw" genre="user" instance="1" index="0" label="Enrollment Code" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="1" label="Code 1:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a" length="10" />
				<Value type="raw" genre="user" instance="1" index="2" label="Code 2:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a" length="10" />
				<Value type="raw" genre="user" instance="1" index="3" label="Code 3:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a" length="10" />
				<Value type="raw" genre="user" instance="1" index="4" label="Code 4:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a" length="10" />
				<Value type="raw" genre="user" instance="1" index="5" label="Code 5:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00" length="1" />
				<Value type="raw" genre="user" instance="1" index="6" label="Code 6:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a" length="10" />
				<Value type="raw" genre="user" instance="1" index="7" label="Code 7:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00" length="1" />
				<Value type="raw" genre="user" instance="1" index="8" label="Code 8:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="9" label="Code 9:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="10" label="Code 10:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="11" label="Code 11:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="12" label="Code 12:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="13" label="Code 13:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="14" label="Code 14:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="15" label="Code 15:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="16" label="Code 16:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="17" label="Code 17:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="18" label="Code 18:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="19" label="Code 19:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="20" label="Code 20:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="21" label="Code 21:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="22" label="Code 22:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="23" label="Code 23:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="24" label="Code 24:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="25" label="Code 25:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="26" label="Code 26:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="27" label="Code 27:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="28" label="Code 28:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="29" label="Code 29:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="30" label="Code 30:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="button" genre="system" instance="1" index="254" label="Refresh All UserCodes" 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="255" label="Code Count" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="30" />
			</CommandClass>
			<CommandClass id="112" name="COMMAND_CLASS_CONFIGURATION" version="1" request_flags="4" issecured="true">
				<Instance index="1" />
				<Value type="list" genre="config" instance="1" index="3" label="Beeper" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" vindex="1" size="1">
					<Help>Enable or disable the beeper.</Help>
					<Item label="Disable Beeper" value="0" />
					<Item label="Enable Beeper" value="255" />
				</Value>
				<Value type="list" genre="config" instance="1" index="4" label="Vacation Mode" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" vindex="0" size="1">
					<Help>Prevents all user codes from unlocking the deadbolt. Enable for extra security while you are away for an extended period of time.</Help>
					<Item label="Disable Vacation Mode" value="0" />
					<Item label="Enable Vacation Mode" value="255" />
				</Value>
				<Value type="list" genre="config" instance="1" index="5" label="Lock &amp; Leave" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" vindex="1" size="1">
					<Help>When enabled: Press the Outside Schlage Button to lock the deadbolt. (Default setting). When disabled: Press the Outside Schlage Button and then enter a user code to lock the deadbolt.</Help>
					<Item label="Disable Lock &amp; Leave" value="0" />
					<Item label="Enable Lock &amp; Leave" value="255" />
				</Value>
				<Value type="list" genre="config" instance="1" index="7" label="Lock Alarm Mode" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
					<Help>The alarm is turned off by default. After installation, you will need to turn on your alarm. Activity Alarms when the door opens or closes. Perfect for monitoring doors while you re at home. After the alarm is triggered, there is a built-in 3-second delay for it to reset. Sounds two short beeps. Tamper Alarms when the lock is disturbed, while locked. Senses subtle activity at the lock. Sounds 15 second Alarm (90 dB) Forced Entry Alarms when significant force pushes against the door, while locked. Perfect for nighttime or when you re away from home. Least sensitive mode Sounds three-minute shrill, steady alarm (90 dB)</Help>
					<Item label="Alarm Off" value="0" />
					<Item label="Activity" value="1" />
					<Item label="Tamper" value="2" />
					<Item label="Forced Entry" value="3" />
				</Value>
				<Value type="list" genre="config" instance="1" index="8" label="Activity Alarm Sensitivity" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="2" size="1">
					<Help>Each alarm mode is preset to a sensitivity level of three. If your alarm is sounding too frequently, or not frequently enough, try changing this setting. If you change the alarm mode, the sensitivity will revert back to the default setting.</Help>
					<Item label="Most Sensitive" value="1" />
					<Item label="Medium/high Sensitivity" value="2" />
					<Item label="Medium Sensitivity" value="3" />
					<Item label="Medium/low Sensitivity" value="4" />
					<Item label="Least Sensitivity" value="5" />
				</Value>
				<Value type="list" genre="config" instance="1" index="9" label="Tamper Alarm Sensitivity" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="2" size="1">
					<Help>Each alarm mode is preset to a sensitivity level of three. If your alarm is sounding too frequently, or not frequently enough, try changing this setting. If you change the alarm mode, the sensitivity will revert back to the default setting.</Help>
					<Item label="Most Sensitive" value="1" />
					<Item label="Medium/high Sensitivity" value="2" />
					<Item label="Medium Sensitivity" value="3" />
					<Item label="Medium/low Sensitivity" value="4" />
					<Item label="Least Sensitivity" value="5" />
				</Value>
				<Value type="list" genre="config" instance="1" index="10" label="Forced Entry Alarm Sensitivity" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="2" size="1">
					<Help>Each alarm mode is preset to a sensitivity level of three. If your alarm is sounding too frequently, or not frequently enough, try changing this setting. If you change the alarm mode, the sensitivity will revert back to the default setting.</Help>
					<Item label="Most Sensitive" value="1" />
					<Item label="Medium/high Sensitivity" value="2" />
					<Item label="Medium Sensitivity" value="3" />
					<Item label="Medium/low Sensitivity" value="4" />
					<Item label="Least Sensitivity" value="5" />
				</Value>
				<Value type="list" genre="config" instance="1" index="11" label="Disable Local Alarm Controls" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="1" size="1">
					<Help>Enables/Disables local alarm on/off, mode change, sensitivity changes</Help>
					<Item label="Disable local alarm controls" value="0" />
					<Item label="Enable local alarm controls" value="255" />
				</Value>
				<Value type="int" genre="config" instance="1" index="12" label="Electronic transition count" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
				<Value type="int" genre="config" instance="1" index="13" label="Mechanical transition count" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
				<Value type="int" genre="config" instance="1" index="14" label="Electronic failed count" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0">
					<Help>Each failed electronic attempt increments this count by one.</Help>
				</Value>
				<Value type="list" genre="config" instance="1" index="15" label="Auto lock" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
					<Help>When enabled, the lock will automatically relock 30 seconds after unlocking. (Disabled by default.)</Help>
					<Item label="Disable auto lock" value="0" />
					<Item label="Enable auto lock" value="255" />
				</Value>
				<Value type="byte" genre="config" instance="1" index="16" label="User code pin length" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="4" max="8" value="4">
					<Help>User Code PIN length, a value between 4 and 8. IMPORTANT: All user codes must be the same length.</Help>
				</Value>
				<Value type="int" genre="config" instance="1" index="17" label="Electrical High Preload Transition Count" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0">
					<Help>A subset of Electronic transition count, the number of transitions with high preload.</Help>
				</Value>
				<Value type="byte" genre="config" instance="1" index="18" label="Bootloader Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0">
					<Help>The version of the bootloader</Help>
				</Value>
			</CommandClass>
			<CommandClass id="113" name="COMMAND_CLASS_ALARM" version="3" request_flags="2" issecured="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="22" />
				<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="1" />
				<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="9" label="Access Control" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="2" />
				<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="2" />
				<Value type="byte" genre="user" instance="1" index="11" label="Power Management" 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="12" label="System" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="1" />
				<TriggerRefreshValue Genre="user" Instance="1" Index="0">
					<RefreshClassValue CommandClass="98" RequestFlags="0" Instance="1" Index="1" />
				</TriggerRefreshValue>
			</CommandClass>
			<CommandClass id="114" name="COMMAND_CLASS_MANUFACTURER_SPECIFIC" version="1" request_flags="4" innif="true">
				<Instance index="1" />
			</CommandClass>
			<CommandClass id="128" name="COMMAND_CLASS_BATTERY" version="1" request_flags="4" issecured="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="89" />
			</CommandClass>
			<CommandClass id="133" name="COMMAND_CLASS_ASSOCIATION" version="1" request_flags="4" issecured="true">
				<Instance index="1" />
				<Associations num_groups="1">
					<Group index="1" max_associations="2" label="Group 1" auto="true">
						<Node id="1" />
					</Group>
				</Associations>
			</CommandClass>
			<CommandClass id="134" name="COMMAND_CLASS_VERSION" version="1" request_flags="4" 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="6" />
				<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="3.42" />
				<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="128.22" />
			</CommandClass>
			<CommandClass id="152" name="COMMAND_CLASS_SECURITY" version="1" request_flags="4" innif="true">
				<Instance index="1" />
				<Value type="bool" genre="system" instance="1" index="0" label="Secured" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="True" />
			</CommandClass>
		</CommandClasses>
	</Node>

@ptdalen do you use Hass.io for your setup? I noticed you run a forked OZW so was curious…

I’m running HA in a venv on Ubuntu

The device gets asked for it’s capabilities during the pairing/discovery process. Try adding the secure node then look for an entity lock.something in the entities list.

So I have added an Aeotek Range Extender 6 to my house, but the Schlage BE469 is still showing as dead, and doesn’t seem to respond, even after removing batteries, etc.

I have contacted Schlage (still no response) as I feel rather confident that it isn’t my ZWave network…

It could be the lock itself, but in my experience, it is usually the network or the configuration of the network.

The usual questions

  1. You have the network key for secure devices?
  2. Have you successfully added any other secure nodes?
  3. Other than your lock and range entender, do you have many other zwave devices.
  4. Have you tried adding the lock close by the zwave controller. Since it’s batery you can just pull it out of the door and bring it over next to the controller for adding. Once it’s added, put it in the door, restart HA, maybe do a heal network.

It’s possible that the pairng process is not passed by the extender.

1.) Yes.
2.) I added the Range Extender as a Secure Node. I was not sure if it required to be securely added in order to communicate with the Schlage.
3.) Not at this time. I will be adding some switches eventually.
4.) I have done this, but prior to adding the Range Extender. Adding the Schlage securely to the network hasn’t been the issue. It’s keeping the Schlage on the network without it being listed as Dead within a couple of hours. :slight_smile: I will remove, and re-add the Schlage one more time this evening, restart HA, and see if it makes a difference. I suspect it won’t, but maybe the Universe will surprise me. :laughing:

If it works when added, and then eventually shows up as dead, it’s most likely a mesh issue. So do you just have the range extender and the lock on your network? I will say that I believe that many range extenders do no pass pairing commands.

It is seen when added. It has only effectively ‘worked’ once. Normally after I add it states are not reflected properly in HA, nor can I lock or unlock. I was able to once, after it was listed as Dead for a week it ‘magically’ came alive and allowed me to see the correct state, and unlock the door through HA. After that, it went back to being Dead. :laughing:

I will re-pair it tonight, and see if the addition of the range extender helps. :crossed_fingers:

Just to add on based on your comments. From my and others experiences and comments in various threads. HA and even OWZ, usually either pair and work, or are unable to pair. If a lock pairs, works, and then stops working, and then starts working, it is almost always an issue with the zwave mesh. Smarthings Zwave controller seems to be much better, maybe longer range than the USB zwave controllers used by the HA community. So, when people say it worked in smartthings, but not working in HA, its usually due to misconfiguration, or just not a strong enough mesh. I hope you are able to get it working, and hopefully the extender does help. I’m not personally knowledgeable on the one you are using.

1 Like

I will update later, and let you know.

I’m currently seeing intermittent issues with the Schlage Locks. I get this error periodically:

ERROR: ZW_SEND_DATA could not be delivered to Z-Wave stack

Other than the error in the log, what sort of issues are you having? I get these once in a while, but not too often. Just assumed it was having an issue communicating, usually, soon after is a success message

My Schlage zwave locks usually function correctly. Sometimes they don’t do what they are supposed to do, such as locking/unlocking from an automation. When the locks misbehave, and I actually bother looking at the zwave log file, I will find some errors.

At the same time, I just checked the zwave log yesterday when everything was working fine and I did see some of these errors occurring with no associated bad behavior.

I guess the presence of the error doesn’t always indicate an issue, but when an issue does occur, you will find the error as well. I’ll keep an eye out for the next time it occurs and capture more details in the log.

I take it no one has been able to get the Schlage Z-Wave Plus locks to work with HA yet? I’m looking to purchase one but if it doesn’t pair with HA… might consider going the Yale Assure route which I believe works and is Z-Wave Plus.

yes I made it work work by modifying manufacturer_specific.xml and inserting the following line.

<Product type="0001" id="0469" name="BE469ZP Touchscreen Deadbolt" config="schlage/BE469.xml"/>

It still uses the same config file, but in order for HA to identify the lock properly you need to provide the Type and ID in Hex, which is obtained here: Link: https://products.z-wavealliance.org/products/3130

This needs to be submitted to OZW but I don’t know how to do git pushes… until it makes it into their GitHub, every update wipes this setting away. But once the lock is setup and identified it doesn’t matter since it no longer has to look it up.

I am trying to implement this. I am getting the following error when scanning the config files.

Error loading /config/configuration.yaml: while scanning a simple key in “/config/config/customize.yaml”, line 8, column 3 could not find expected ‘:’ in “/config/config/customize.yaml”, line 9, column 1

Here is the contents of my customize.yaml

group.keypads:
order: 10
group.all_locks:
friendly_name: Locks
hidden: false’’’
group.all_automations:
hidden: false
lock.zw_005_schlage_door_lock
friendly_name: Front Door
‘’’

How is one supposed to know this? I thought I was going to migrate to Z-Wave because it was standardized but it seems there’s plenty of guessing here as well.

Seriously though, I am curious how to know if devices pass pairing commands.

I personally feel like zwave is very stable and works well. I cannot speak 100% to the pairing process, but almost every zwave device I’ve purchased has a line or two that say, bring the device within a few feet of the controller when pairing. With that said, I almost never have to do that. I have a lot of zwave devices. Some of which are quite far and on a different floor from my controller.

I will say that people who have a controller and one or two devices, and maybe an extender over a longer distance are more likely to have issues. There are so many factors that can cause interference that it’s hard to say why. The more you add, the better it works.

Bottom line: zwave works well, the more powered devices you have the better it works. If you only have a couple devices and they are not near the controller, its possible you are going to have issues from time to time, and battery devices like locks for example are even more likely to “fall off the network” or have intermittent issues.