This homebridge plugin exposes a web-based locking device to Apple's HomeKit. Using simple HTTP requests with post, body and header support, the plugin allows you to lock/unlock the device, i.e. Shelly 1 devices.
- Install homebridge
- Install this plugin:
npm install -g homebridge-http-lock-ultimate
- Update your
config.json
file
Configuration example for a Shelly 1 device controlled via Get Requests in local network. Resets it's state to locked automatically after 5 Seconds
"accessories": [
{
"accessory": "HTTPLockUltimate",
"name": "Front Door",
"resetLock": "true",
"resetLockTime": "5",
"http_method": "GET",
"openURL": "http://192.168.X.XX/relay/0?turn=on",
"closeURL": "http://192.168.X.XX/relay/0?turn=off"
}
]
This is a configuration example for a Shelly 1 device controlled via Post Requests to Shelly Cloud. Get's locked automatically after 5 Seconds.
"accessories": [
{
"accessory": "HTTPLockUltimate",
"name": "Front Door",
"autoLock": "true",
"autoLockDelay": "5",
"http_method": "POST",
"openURL": "https:/your.server.address/device/relay/control/",
"openHeader": {
"Content-Type": "application/x-www-form-urlencoded"
},
"openBody": "turn=on&channel=0&id=XXXXXXX&auth_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"closeURL": "https://your.server.address/device/relay/control/",
"closeHeader": {
"Content-Type": "application/x-www-form-urlencoded"
},
"closeBody": "turn=off&channel=0&id=XXXXXXX&auth_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
]
Key | Description | Default |
---|---|---|
accessory |
Must be HTTPLockUltimate |
N/A |
name |
Name to appear in the Home app | N/A |
openURL |
URL to trigger unlock | N/A |
closeURL |
URL to trigger lock | N/A |
Key | Description | Default |
---|---|---|
autoLock (optional) |
Whether your lock should re-lock after being opened (closeURL Request gets triggered) | false |
autoLockDelay (optional) |
Time (in seconds) until your lock will auto lock if enabled | 5 |
resetLock (optional) |
If your lock is locking itself after opened, use this option to reset the state automatically (Will not call closeURL and is ignored when using autoLock) | false |
resetLockTime (optional) |
Time (in seconds) until your lock will be set to locked | 5 |
Key | Description | Default |
---|---|---|
timeout (optional) |
Time (in seconds) until the accessory will be marked as Not Responding if it is unreachable | 5 |
http_method (optional) |
HTTP method used to communicate with the device | GET |
openHeader |
Request Header to send in unlock request | N/A |
openBody |
JSON Body to send on open | N/A |
closeHeader |
Request Header to send in lock request | N/A |
closeBody |
JSON Body to send on close | N/A |
username (optional) |
Username if HTTP authentication is enabled | N/A |
password (optional) |
Password if HTTP authentication is enabled | N/A |
model (optional) |
Appears under the Model field for the accessory | plugin |
serial (optional) |
Appears under the Serial field for the accessory | version |
manufacturer (optional) |
Appears under the Manufacturer field for the accessory | author |
firmware (optional) |
Appears under the Firmware field for the accessory | version |