pyschlage
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.
Usage
Basic usage
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()
Managing access codes
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()
Reading activity logs
# 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)
Handling errors
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}")
Installation
Pip
To install pyschlage, run this command in your terminal:
$ pip install pyschlage
Source code
Pyschlage is actively developed on Github, where the code is always available.
You can either clone the public repository:
$ git clone https://github.com/dknowles2/pyschlage
Or download the latest tarball:
$ curl -OL https://github.com/dknowles2/pyschlage/tarball/main
Once 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 .
Documentation
API reference can be found on Read the Docs
Metadata
Release files for pyschlage 2026.9.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pyschlage-2026.9.0.tar.gz | 98.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyschlage-2026.9.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 120.8 kB
Release files / pyschlage-2026.9.0.tar.gz
| Download URL | pyschlage-2026.9.0.tar.gz |
|---|---|
| Size | 98.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
992e3c173013520552eecba8a818574378dc6199aa1e426539e694c1348cdf57
|
|
BLAKE2b-256 checksum How to use checksums |
861134c15673c40d3e3b9dabb036c5b5f01f45650ce8de70c57ee5fd1a2a4189
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.
Transparency logRelease files / pyschlage-2026.9.0-py3-none-any.whl
| Download URL | pyschlage-2026.9.0-py3-none-any.whl |
|---|---|
| Size | 22.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
076eb4c59146c7760fd48172db362ddfc48b7f4eecf2a2fb03c25ae381db8690
|
|
BLAKE2b-256 checksum How to use checksums |
f85ae4d3f60211113d034a8a9028ca5d6bd3949490e16e71637e1b4201f34e15
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.
Transparency log