/homebridge-http-lock-ultimate

Homebridge plugin for a simple web-based lock with post request, body and header support.

Primary LanguageJavaScriptMIT LicenseMIT

homebridge-http-lock-ultimate

npm npm

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

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