Python 3 library for interacting with Schlage Encode WiFi locks.
Note that this project has no official relationship with Schlage or Allegion. Use at your own risk.
from pyschlage import Auth, Schlage
# Create a Schlage object and authenticate with your credentials.
s = Schlage(Auth("username", "password"))
# List the locks attached to your account.
locks = s.locks()
# Print the name of the first lock
print(locks[0].name)
"My lock"
# Lock the first lock.
locks[0].lock()from pyschlage.code import AccessCode
lock = locks[0]
# Add a new access code to a lock.
guest_code = AccessCode(name="Guest", code="1234")
lock.add_access_code(guest_code)
# List the access codes currently on the lock.
lock.refresh_access_codes()
for access_code in lock.access_codes.values():
print(access_code.name, access_code.code)
# Remove an access code from the lock.
guest_code.delete()# Fetch the 10 most recent log entries, newest first.
for log_entry in lock.logs(limit=10, sort_desc=True):
print(log_entry.created_at, log_entry.message)All requests to the Schlage cloud service can raise
pyschlage.exceptions:
from pyschlage.exceptions import NotAuthorizedError, UnknownError
try:
locks = s.locks()
except NotAuthorizedError:
print("Invalid username or password.")
except UnknownError as ex:
print(f"Something went wrong: {ex}")To install pyschlage, run this command in your terminal:
$ pip install pyschlagePyschlage is actively developed on Github, where the code is always available.
You can either clone the public repository:
$ git clone https://github.com/dknowles2/pyschlageOr download the latest tarball:
$ curl -OL https://github.com/dknowles2/pyschlage/tarball/mainOnce you have a copy of the source, you can embed it in your own Python package, or install it into your site-packages easily:
$ cd pyschlage
$ python -m pip install .API reference can be found on Read the Docs