Skip to content

phenotypic/homebridge-web-lock

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 

Repository files navigation

homebridge-web-lock

npm npm

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

  1. Install homebridge
  2. Install this plugin: npm install -g homebridge-web-lock
  3. 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:

  1. Return JSON information when it receives /status:
{
    "lockCurrentState": INT_VALUE,
    "lockTargetState": INT_VALUE
}
  1. Lock or unlock the lock when it receives:
/setLockTargetState?value=INT_VALUE
  1. Update lockCurrentState when it locks or unlocks by messaging the listen server:
/lockCurrentState?value=INT_VALUE
  1. Update lockTargetState following a manual override by messaging the listen server:
/lockTargetState?value=INT_VALUE

LockState Key

Number Name
0 Unlocked
1 Locked

About

Homebridge plugin for a web-based lock

Resources

License

Stars

Watchers

Forks