homebridge-http-lock-ultimate
v1.0.1
Published
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.
Downloads
13
Maintainers
Readme
homebridge-http-lock-ultimate
Description
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.
Installation
- Install homebridge
- Install this plugin:
npm install -g homebridge-http-lock-ultimate
- Update your
config.json
file
Configuration examples
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"
}
]
Core
| 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 |
Optional fields
| 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
|
Additional options
| 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 |