homebridge-web-lock
v1.1.9
Published
Homebridge plugin for a web-based lock
Readme
homebridge-web-lock
Description
This homebridge plugin exposes a web-based lock to Apple's HomeKit. Using HTTP requests, you can open/close the lock and update the plugin with the lock's current state. The plugin achieves this by setting up a listen server which listens for changes in state from your device and then feeds them real-time into HomeKit.
Installation
- Install homebridge
- Install this plugin:
npm install -g homebridge-web-lock - Update your
config.json
Configuration
"accessories": [
{
"accessory": "HTTPLock",
"name": "Lock",
"apiroute": "http://myurl.com"
}
]Core
| Key | Description | Default |
| --- | --- | --- |
| accessory | Must be HTTPLock | N/A |
| name | Name to appear in the Home app | N/A |
| apiroute | Root URL of your device | N/A |
Optional fields
| Key | Description | Default |
| --- | --- | --- |
| autoLock | Whether your lock should re-lock after being unlocked | false |
| autoLockDelay | Whether your lock should re-lock after being unlocked (if enabled) | 10 |
Additional options
| Key | Description | Default |
| --- | --- | --- |
| pollInterval | Time (in seconds) between device polls | 300 |
| port | Port for your HTTP listener (only one listener per port) | 2000 |
| timeout | Time (in milliseconds) until the accessory will be marked as Not Responding if it is unreachable | 3000 |
| http_method | HTTP method used to communicate with the device | GET |
| username | Username if HTTP authentication is enabled | N/A |
| password | Password if HTTP authentication is enabled | N/A |
| model | Appears under the Model field for the accessory | plugin |
| serial | Appears under the Serial field for the accessory | apiroute |
| manufacturer | Appears under the Manufacturer field for the accessory | author |
| firmware | Appears under the Firmware field for the accessory | version |
API Interfacing
Your API should be able to:
- Return JSON information when it receives
/status:
{
"lockCurrentState": INT_VALUE,
"lockTargetState": INT_VALUE
}- Lock or unlock the lock when it receives:
/setLockTargetState?value=INT_VALUE- Update
lockCurrentStatewhen it locks or unlocks by messaging the listen server:
/lockCurrentState?value=INT_VALUE- Update
lockTargetStatefollowing a manual override by messaging the listen server:
/lockTargetState?value=INT_VALUELockState Key
| Number | Name |
| --- | --- |
| 0 | Unlocked |
| 1 | Locked |
