Supported devices
Schlage’s cloud service speaks the same API for every lock on an account,
so Schlage.locks() returns a
Lock for any model the service knows about. What
differs between models is which attributes the lock reports and which
settings it accepts.
Lock models
Lock.device_type carries the service’s devicetypeId. Its prefix
identifies the product:
Product |
Model |
Prefix |
|
|---|---|---|---|
Schlage Encode |
BE489 |
|
|
Schlage Encode Plus |
BE499 |
|
|
Schlage Encode Lever |
FE789 |
|
|
Schlage Arrive |
BE459 |
|
|
Schlage Sense Pro |
BE889 |
|
|
Schlage Sense |
BE479 |
|
|
Gainsborough Selene Entrance |
GSELENT |
|
|
Gainsborough Selene Secure |
GSELSEC |
|
|
Schlage Selene Entrance |
SSELENT |
|
|
Schlage Selene Secure |
SSELSEC |
|
|
Wi-Fi Adapter |
BR400 |
|
|
The Wi-Fi Adapter is a separate device that gives a Sense cloud
connectivity. Schlage.locks() asks the
service for locks only, so an adapter is never returned as a
Lock even though DeviceType.BRIDGE exists.
After the prefix comes a transport suffix and, on later hardware, a generation number:
be489The family, with no transport in the identifier.
be489ble,be489wifiFirst generation, currently reachable over Bluetooth or over Wi-Fi.
be489wb2,be489ble2,be489wifi2Second generation, same three forms.
be489wb3,be489ble3,be489wifi3Third generation.
Encode has three generations, Encode Plus and Encode Lever two, and the
rest one. Sense has no suffixes at all: it is always be479.
A lock whose suffix is ble has been switched to Bluetooth and is not
talking to the cloud. Its device document still exists, so reads return
whatever it last reported, which may be very stale.
Feature support
pyschlage does not filter by model. Where the table says a setting is
unsupported, the call will still be sent and the lock will reject or
ignore it.
Encode family [1] |
Arrive |
Sense Pro |
Selene |
Sense |
|
|---|---|---|---|---|---|
Lock state and battery |
yes |
yes |
yes |
yes |
yes |
yes |
yes |
yes |
yes |
command [2] |
|
Access codes |
yes |
yes |
yes |
yes |
yes |
yes |
yes |
yes |
limited [3] |
limited [3] |
|
yes [4] |
yes [4] |
yes [4] |
yes [4] |
yes [4] |
|
yes |
yes |
yes |
yes |
yes |
|
yes |
yes |
no |
no |
yes |
|
|
yes |
no |
yes |
no [5] |
yes |
Attributes a lock does not report are simply None; nothing raises.
door_state is the clearest example — it is only meaningful on a lock
fitted with a door position sensor, and reads DoorState.UNKNOWN
otherwise.
Capabilities negotiated per lock
Three capabilities are not fixed by model: the lock advertises them in a
supportedFeatures attribute. pyschlage has no field for it, but it
does appear in get_diagnostics().
vlacVariable-length access codes. Without it, every code on the lock must be exactly
access_code_lengthdigits, fixed when the lock was set up. With it, each code may be 4 to 8 digits. Sense Pro always has it.scheduledLockingLocking on a schedule. Encode Plus also needs firmware 4 or later.
pyschlagedoes not implement scheduled locking.activityAlarmThe activity alarm. A lock connected over Bluetooth instead needs firmware 11 or later on a first-generation Encode, or 3 or later on a second-generation Encode or Encode Lever.
Auto-lock delays
AUTO_LOCK_TIMES is the union of every model’s
list, so set_auto_lock_time() accepts values a
given lock will reject:
Model |
Delays (seconds) |
|---|---|
Encode, Arrive, Selene |
0, 15, 30, 60, 120, 240, 360, 600 |
Encode Plus |
0, 15, 30, 60, 120, 240, 300 |
Encode Lever |
0, 5, 15, 30, 60, 120, 240, 360, 600 |
Sense |
0, 15, 30, 60, 120, 240 |
Sense Pro |
0, 30, 60, 120, 300, 600, 900, 1800 |
0 disables auto-locking. Only Encode Lever accepts 5 seconds, and only
Sense Pro accepts 900 or 1800.
Not implemented
The service supports several things pyschlage has no API for:
Credentials (key fobs and NFC), exposed at
devices/{id}/storage/fob/.Scheduled locking, carried in the
scheduleParamsattribute.Linked locks, the Selene feature that pairs two locks on one door.
Firmware updates.
Commissioning a new lock, which needs Bluetooth.
Bluetooth is not implemented at all. pyschlage only talks to the cloud
service, so a lock that has been switched to Bluetooth is effectively
read-only and out of date.