technicalpickles / picklehome

Configuration & Planning for my Home Automation systems
14 stars 0 forks source link

Fix Schlage Connect lock that won't turn on #13

Open technicalpickles opened 6 years ago

technicalpickles commented 6 years ago

Both of these haven't been working for awhile. I thought it might be the batteries, so replaced both with Duracell Quantums. That fixed one of the doors.

The other doesn't turn on at all, pressing the Schlage on the keypad doesn't do anything.

This FAQ talks about doing a factory reset:

First, verify that the batteries are fresh and are installed in the battery holder in the correct orientation.

If this does not correct the issue, please perform the following steps to reset the lock to its factory defaults:

  • Remove black battery cover (slide cover up).
  • Remove battery connector.
  • Press and hold the Schlage button on the keypad.
  • While holding the Schlage button, reattach the battery connector. -If successful, the green check on the keypad will flash (three times).

If the green check mark does not flash three times, please try the process again.

I tried this a few times, but no luck.

Next is calling their customer support:

If you have immediate questions or need additional information, please contact Schlage Customer Service at:

  • 888-805-9837 (US)
  • 800-900-4734 (Canada)
  • 800-506-7866 (Mexico)

Two details about this lock. It is a refurb, I had some problems with it when I first got it, and it's in direct sunlight in the afternoon.

technicalpickles commented 6 years ago

The Front door is having problems now too. Unlike this one, the red x lights up.

technicalpickles commented 6 years ago

Another door started having the problem, with red x.

I was able to reset those two with the red x to factory defaults, but that means having to re-pair them and all that fun šŸ˜­ They seem to respond otherwise.

The original one is about the same. I pulled the batteries out, and checked their level but they are full. The Schlage logo on the inside of the door does blink red, like the other ones did, but nothing on the front panel lights up or is

technicalpickles commented 5 years ago

These are still a problem. Now we have 4 non-functional locks, but some may be simple battery swaps.

technicalpickles commented 5 years ago

homeassistant doesn't show a ton of status on these devices, aside from battery level. I started playing with pyvera to see if there's anything else coming back from the API:

import sys
import time
import os
import IPython
from IPython import embed

# Import pyvera
import pyvera

# Parse Arguments
import argparse
parser = argparse.ArgumentParser(description='list-devices')
parser.add_argument('-u', '--url', help="Vera URL, e.g. http://192.168.1.161:3480", required=True)
args = parser.parse_args()

# Start the controller
controller, _ = pyvera.init_controller(args.url)

try:
    # Get a list of all the devices on the vera controller
    all_devices = controller.get_devices()

    # Print the devices out
    for device in all_devices:
        if type(device).__name__ == "VeraLock":
            #  embed()

            print('{} ({})'.format(device.name, device.device_id))
            poll_ok = device.get_complex_value('PollOk')
            if poll_ok is not None:
                print('PollOk: {}'.format(poll_ok))
                last_poll_success = device.get_complex_value('LastPollSuccess')
                if last_poll_success is not None:
                    print('LastPollSuccess: {}'.format(time.ctime(int(last_poll_success))))
            print('BatteryLevel: {}%'.format(device.battery_level))
            print('BatteryDate: {}'.format(time.ctime(int(device.get_complex_value('BatteryDate')))))
            comm_failure = device.get_strict_value('commFailure')
            print('CommFailure: {}'.format(comm_failure))
            if comm_failure != '0':
                print('CommFailureDate: {}'.format(time.ctime(int(device.get_complex_value('CommFailureTime')))))
            print('Status: {}'.format(device.get_value('status')))
            print()

finally:
    # Stop the subscription listening thread so we can quit
    controller.stop()

Here's the output:

Kitchen Front Door (11)
PollOk: 8
LastPollSuccess: Thu Jul  5 22:08:16 2018
BatteryLevel: 96%
BatteryDate: Tue Dec 25 00:51:23 2018
CommFailure: 0
Status: None

Front Door (12)
PollOk: 2
LastPollSuccess: Wed Dec 27 19:23:43 2017
BatteryLevel: 100%
BatteryDate: Mon Sep 24 05:30:31 2018
CommFailure: 1
CommFailureDate: Sun Aug  5 18:39:35 2018
Status: None

Kitchen Side Door (13)
PollOk: 11
LastPollSuccess: Tue Feb 27 14:08:05 2018
BatteryLevel: 0%
BatteryDate: Tue May  8 19:56:20 2018
CommFailure: 1
CommFailureDate: Sat Mar 10 16:36:02 2018
Status: None

Sun Room Door (14)
PollOk: 2
LastPollSuccess: Fri Nov 24 13:11:43 2017
BatteryLevel: 96%
BatteryDate: Tue Dec 18 08:35:30 2018
CommFailure: 0
Status: 1

Cottage Back Door (15)
BatteryLevel: 84%
BatteryDate: Tue Dec 25 06:32:34 2018
CommFailure: 0
Status: None

Cottage Front Door (16)
BatteryLevel: 0%
BatteryDate: Sat Nov 17 13:59:32 2018
CommFailure: 1
CommFailureDate: Mon Dec 26 17:29:59 2016
Status: 0

Also filed https://github.com/pavoni/pyvera/issues/106 to try to expose this directly from pyvera, so it can eventually be accessible from homeassistant.

technicalpickles commented 5 years ago

I checked on the batteries of all the failed ones.

For the corrodoed ones, I'm in the process of cleaning them with vinegar based on https://www.wikihow.com/Clean-Battery-Corrosion-and-Build-Up

wikiHow
How to Clean Battery Corrosion and Build Up
Corrosion and build up on battery terminals can keep your car from starting, or cause your digital camera to fail when you want to take a shot of a special moment. No matter what kind of battery you have, your terminals can become corroded...