{"_id":"@350d/homebridge-http-lock","_rev":"10-7e06a0a71b75aa50177a015af5cab303","name":"@350d/homebridge-http-lock","dist-tags":{"latest":"3.0.4"},"versions":{"2.0.0":{"name":"@350d/homebridge-http-lock","version":"2.0.0","keywords":["homebridge-plugin","homebridge","homekit","lock","http","relay","automation","smart-home","shelly","esp32","esp8266"],"author":{"name":"350d"},"license":"MIT","_id":"@350d/homebridge-http-lock@2.0.0","maintainers":[{"name":"350d","email":"v.sobolev@gmail.com"}],"homepage":"https://github.com/350d/homebridge-http-lock#readme","bugs":{"url":"https://github.com/350d/homebridge-http-lock/issues"},"dist":{"shasum":"716e6c30d70cb87a8af06be425e25b3a776339cc","tarball":"https://registry.npmjs.org/@350d/homebridge-http-lock/-/homebridge-http-lock-2.0.0.tgz","fileCount":5,"integrity":"sha512-qDy/dVqe+nzhQhQj5cpM0pvb4ZcOoLMGVNi1mNC3pwH7MWMQBx32Y5NDGg5ZfDwFM5k1/NnCdxI+yW2g/K7I1g==","signatures":[{"sig":"MEUCIQDt7MhcBI9Mj0TS8e1hhetYSO70nnvzd0wtJi+1hGLDHQIgbCf6zQGX4tjyFc2WZRAOpBpsUW4TSZrb+mIKn8ZPobs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26805},"main":"index.js","config":{"schema":"config.schema.json"},"engines":{"node":"^18.20.4 || ^20.15.1 || ^22","homebridge":"^1.6.0 || ^2.0.0-beta.0"},"funding":{"url":"https://github.com/sponsors/350d","type":"github"},"gitHead":"e707ce6ac1d9181b5699839671e6e3162fafc474","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"350d","email":"v.sobolev@gmail.com"},"repository":{"url":"git+https://github.com/350d/homebridge-http-lock.git","type":"git"},"_npmVersion":"10.9.0","description":"Modern Homebridge plugin for controlling HTTP-enabled lock mechanisms via Apple HomeKit. Supports various HTTP methods, custom authentication, automatic locking, and flexible device integration for smart home automation.","directories":{},"_nodeVersion":"23.3.0","dependencies":{"axios":"^1.9.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/homebridge-http-lock_2.0.0_1748722636388_0.15664886901778896","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@350d/homebridge-http-lock","version":"2.0.1","keywords":["homebridge-plugin","homebridge","homekit","lock","http","relay","automation","smart-home","shelly","esp32","esp8266"],"author":{"name":"350d"},"license":"MIT","_id":"@350d/homebridge-http-lock@2.0.1","maintainers":[{"name":"350d","email":"v.sobolev@gmail.com"}],"homepage":"https://github.com/350d/homebridge-http-lock#readme","bugs":{"url":"https://github.com/350d/homebridge-http-lock/issues"},"dist":{"shasum":"11fc7456c51324f644aa029d7376a74c28ad2a7b","tarball":"https://registry.npmjs.org/@350d/homebridge-http-lock/-/homebridge-http-lock-2.0.1.tgz","fileCount":5,"integrity":"sha512-WQgPOlIU8aeVyYHgHMqa8+XVZw17xhJevULbOK1+UvbWdo2SsfTso5jSF1wa66CL4E0XknISmqYl7rCDHxGZZQ==","signatures":[{"sig":"MEQCIG5BQtQSiJRtU+i6HTMvz89cJvzr2fx9e92kz5iqQsdBAiAT6uSPMB+Lnv6yv8lnw1Av2gPrlKzT2j2SEcBL2Mfafg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26824},"main":"index.js","config":{"schema":"config.schema.json"},"engines":{"node":"^18.20.4 || ^20.15.1 || ^22","homebridge":"^1.6.0 || ^2.0.0-beta.0"},"funding":{"url":"https://github.com/sponsors/350d","type":"github"},"gitHead":"628e41cafc68d38edcd073a728d489401b0810d4","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"350d","email":"v.sobolev@gmail.com"},"repository":{"url":"git+https://github.com/350d/homebridge-http-lock.git","type":"git"},"_npmVersion":"10.9.0","description":"Modern Homebridge plugin for controlling HTTP-enabled lock mechanisms via Apple HomeKit. Supports various HTTP methods, custom authentication, automatic locking, and flexible device integration for smart home automation.","directories":{},"_nodeVersion":"23.3.0","dependencies":{"axios":"^1.9.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/homebridge-http-lock_2.0.1_1748765480891_0.5090910542433733","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@350d/homebridge-http-lock","version":"2.0.2","keywords":["homebridge-plugin","homebridge","homekit","lock","http","relay","automation","smart-home","shelly","esp32","esp8266"],"author":{"name":"350d"},"license":"MIT","_id":"@350d/homebridge-http-lock@2.0.2","maintainers":[{"name":"350d","email":"v.sobolev@gmail.com"}],"homepage":"https://github.com/350d/homebridge-http-lock#readme","bugs":{"url":"https://github.com/350d/homebridge-http-lock/issues"},"dist":{"shasum":"6cfe418609402036283bd1bc5c65ddc0fd02de6b","tarball":"https://registry.npmjs.org/@350d/homebridge-http-lock/-/homebridge-http-lock-2.0.2.tgz","fileCount":5,"integrity":"sha512-/uHtVTkdJ5bvMtRnv+N/YgZVxGHm1KokBgAj8lqAgv6/yem6nFBIdRZ3MpxLy866DAeeuyKGEj2dCepOf68+TA==","signatures":[{"sig":"MEQCIBZo7u4tsIfi54MnBdeKe8CEkHr90bD6BRXVxpP0rqBaAiAJhL+VDl00N2VHIKF3jY5FQqSezyXKXEBYi8pLvwOW+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26823},"main":"index.js","config":{"schema":"config.schema.json"},"engines":{"node":"^18.20.4 || ^20.15.1 || ^22","homebridge":"^1.6.0 || ^2.0.0-beta.0"},"funding":{"url":"https://github.com/sponsors/350d","type":"github"},"gitHead":"f0c6c1c3b3246d2a93ae0174584310f9f1d2494e","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"350d","email":"v.sobolev@gmail.com"},"repository":{"url":"git+https://github.com/350d/homebridge-http-lock.git","type":"git"},"_npmVersion":"10.9.0","description":"Modern Homebridge plugin for controlling HTTP-enabled lock mechanisms via Apple HomeKit. Supports various HTTP methods, custom authentication, automatic locking, and flexible device integration for smart home automation.","directories":{},"_nodeVersion":"23.3.0","dependencies":{"axios":"^1.9.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/homebridge-http-lock_2.0.2_1748766051603_0.9597719457189029","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@350d/homebridge-http-lock","version":"2.0.3","keywords":["homebridge-plugin","homebridge","homekit","lock","http","relay","automation","smart-home","shelly","esp32","esp8266"],"author":{"name":"350d"},"license":"MIT","_id":"@350d/homebridge-http-lock@2.0.3","maintainers":[{"name":"350d","email":"v.sobolev@gmail.com"}],"homepage":"https://github.com/350d/homebridge-http-lock#readme","bugs":{"url":"https://github.com/350d/homebridge-http-lock/issues"},"dist":{"shasum":"8e48a19c33c51dbc51ed79f490cd87abafdb896c","tarball":"https://registry.npmjs.org/@350d/homebridge-http-lock/-/homebridge-http-lock-2.0.3.tgz","fileCount":5,"integrity":"sha512-iW9oHVzSz0BXSNgYOpUc+xb7BFCkanisSqU4HKHqRHEESH1J4cwZVATfCa/hdtFJQR8BZ5egYKdTxQWvziM1LA==","signatures":[{"sig":"MEUCIGjNz5IxvrKjbzG44HRuJ7DMMh5T3MoBIeFRiJmUSDH5AiEA6ww/SiG1Nrc3u5b7jFyCUzKIpRWVj5ZsxqNdJIoIpTs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26669},"main":"index.js","config":{"schema":"config.schema.json"},"engines":{"node":"^18.20.4 || ^20.15.1 || ^22","homebridge":"^1.6.0 || ^2.0.0-beta.0"},"funding":{"url":"https://github.com/sponsors/350d","type":"github"},"gitHead":"51f93dd0b8d293e4508085d60a73e0d4a3fbf2c8","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"350d","email":"v.sobolev@gmail.com"},"repository":{"url":"git+https://github.com/350d/homebridge-http-lock.git","type":"git"},"_npmVersion":"10.9.0","description":"Modern Homebridge plugin for controlling HTTP-enabled lock mechanisms via Apple HomeKit. Supports various HTTP methods, custom authentication, automatic locking, and flexible device integration for smart home automation.","directories":{},"_nodeVersion":"23.3.0","dependencies":{"axios":"^1.9.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/homebridge-http-lock_2.0.3_1748766416521_0.5109660043016728","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@350d/homebridge-http-lock","version":"3.0.0","keywords":["homebridge-plugin","homebridge","homekit","lock","http","relay","automation","smart-home","shelly","esp32","esp8266"],"author":{"name":"350d"},"license":"MIT","_id":"@350d/homebridge-http-lock@3.0.0","maintainers":[{"name":"350d","email":"v.sobolev@gmail.com"}],"homepage":"https://github.com/350d/homebridge-http-lock#readme","bugs":{"url":"https://github.com/350d/homebridge-http-lock/issues"},"dist":{"shasum":"fcf5a249b6c9c03865ec194c7b5708bb86858c4c","tarball":"https://registry.npmjs.org/@350d/homebridge-http-lock/-/homebridge-http-lock-3.0.0.tgz","fileCount":5,"integrity":"sha512-dV97fS4H6PuLnIiYvvCgc0oCtpWzAUrhZkyu/6/7RkjpHanyeO1dDoNEiVw0lT0ZpCYVstvV8UPKzoepp5+3lA==","signatures":[{"sig":"MEYCIQCdmYzTCv+xGOqZ+rKC85QQHRCNlObgoMrd8Drha2OuyQIhAJqdpLWkZlqc3cQergvuC9TNtEyE0+czi6MT3V3O47tQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29813},"main":"index.js","config":{"schema":"config.schema.json"},"engines":{"node":"^18.20.4 || ^20.15.1 || ^22","homebridge":"^1.6.0 || ^2.0.0-beta.0"},"funding":{"url":"https://github.com/sponsors/350d","type":"github"},"gitHead":"3cc467fb77ad158b1f4f812bf75c0f6309cff2ae","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"350d","email":"v.sobolev@gmail.com"},"repository":{"url":"git+https://github.com/350d/homebridge-http-lock.git","type":"git"},"_npmVersion":"10.9.0","description":"Modern Homebridge plugin for controlling HTTP-enabled lock mechanisms via Apple HomeKit. Supports various HTTP methods, custom authentication, automatic locking, and flexible device integration for smart home automation.","directories":{},"_nodeVersion":"23.3.0","dependencies":{"axios":"^1.9.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/homebridge-http-lock_3.0.0_1748767241592_0.8359695614093055","host":"s3://npm-registry-packages-npm-production"}},"3.0.2":{"name":"@350d/homebridge-http-lock","version":"3.0.2","keywords":["homebridge-plugin","homebridge","homekit","lock","http","relay","automation","smart-home","shelly","esp32","esp8266"],"author":{"name":"350d"},"license":"MIT","_id":"@350d/homebridge-http-lock@3.0.2","maintainers":[{"name":"350d","email":"v.sobolev@gmail.com"}],"homepage":"https://github.com/350d/homebridge-http-lock#readme","bugs":{"url":"https://github.com/350d/homebridge-http-lock/issues"},"dist":{"shasum":"274f3d013ddce0d2254538098903104dc96b9675","tarball":"https://registry.npmjs.org/@350d/homebridge-http-lock/-/homebridge-http-lock-3.0.2.tgz","fileCount":5,"integrity":"sha512-2F4L5Je3ilvxYD5tE67ZhNZmTwaMooJZGYupIcWZHT9VMjfl6k7waIO2KgTgrLDjyx9ucya77WIQrdsYUbxXzg==","signatures":[{"sig":"MEYCIQDmsbwi/Jn5wz4+hvN+VLkC03Ds5bNhOqSyU1y8PVI/TAIhAIW2CSUrjpKPq2dozsSjRkyQp/OoBk5Jt/XSUD7/Ucwy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32761},"main":"index.js","config":{"schema":"config.schema.json"},"engines":{"node":"^18.20.4 || ^20.15.1 || ^22","homebridge":"^1.6.0 || ^2.0.0-beta.0","homebridge-child":"^1.6.0 || ^2.0.0-beta.0"},"funding":{"url":"https://github.com/sponsors/350d","type":"github"},"gitHead":"337a357fb6c5b6d737060f5f982d19814bb793be","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"350d","email":"v.sobolev@gmail.com"},"homebridge":{"pluginType":"platform","pluginAlias":"HTTPLock"},"repository":{"url":"git+https://github.com/350d/homebridge-http-lock.git","type":"git"},"_npmVersion":"10.9.0","description":"Modern Homebridge plugin for controlling HTTP-enabled lock mechanisms via Apple HomeKit. Supports various HTTP methods, custom authentication, automatic locking, and flexible device integration for smart home automation.","directories":{},"_nodeVersion":"23.3.0","dependencies":{"axios":"^1.9.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/homebridge-http-lock_3.0.2_1748768809284_0.20422450476879228","host":"s3://npm-registry-packages-npm-production"}},"3.0.3":{"name":"@350d/homebridge-http-lock","version":"3.0.3","keywords":["homebridge-plugin","homebridge","homekit","lock","http","relay","automation","smart-home","shelly","esp32","esp8266"],"author":{"name":"350d"},"license":"MIT","_id":"@350d/homebridge-http-lock@3.0.3","maintainers":[{"name":"350d","email":"v.sobolev@gmail.com"}],"homepage":"https://github.com/350d/homebridge-http-lock#readme","bugs":{"url":"https://github.com/350d/homebridge-http-lock/issues"},"dist":{"shasum":"e5c6a637741e39758dc7d8102f4db523182d564f","tarball":"https://registry.npmjs.org/@350d/homebridge-http-lock/-/homebridge-http-lock-3.0.3.tgz","fileCount":5,"integrity":"sha512-yvdDTWyBIcXUOJwB8rDUeeMhNUahexac9K2JKlhWKpm8f8kYRv4bggzSfcMQtBKQDhQaIAdLJNTy+Dg6/p7Umw==","signatures":[{"sig":"MEUCIEOB+CMipmZ7vHA5yTz57/r7gNG0uP63ylmYhDHOlFDxAiEA7AEeJq4XW8bP1QUsLhoexdC7ueev1Th9js/XLtLYZYA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30257},"main":"index.js","config":{"schema":"config.schema.json"},"engines":{"node":"^18.20.4 || ^20.15.1 || ^22","homebridge":"^1.6.0 || ^2.0.0-beta.0","homebridge-child":"^1.6.0 || ^2.0.0-beta.0"},"funding":{"url":"https://github.com/sponsors/350d","type":"github"},"gitHead":"7511ae46fd7c3708c75b3050b2b88102607cd809","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"350d","email":"v.sobolev@gmail.com"},"homebridge":{"pluginType":"platform","pluginAlias":"HTTPLock"},"repository":{"url":"git+https://github.com/350d/homebridge-http-lock.git","type":"git"},"_npmVersion":"10.9.0","description":"Modern Homebridge plugin for controlling HTTP-enabled lock mechanisms via Apple HomeKit. Supports various HTTP methods, custom authentication, automatic locking, and flexible device integration for smart home automation.","directories":{},"_nodeVersion":"23.3.0","dependencies":{"axios":"^1.9.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/homebridge-http-lock_3.0.3_1748776056473_0.5081304243598543","host":"s3://npm-registry-packages-npm-production"}},"3.0.4":{"name":"@350d/homebridge-http-lock","version":"3.0.4","description":"Modern Homebridge plugin for controlling HTTP-enabled lock mechanisms via Apple HomeKit. Supports various HTTP methods, custom authentication, automatic locking, and flexible device integration for smart home automation.","main":"index.js","engines":{"homebridge":"^1.6.0 || ^2.0.0-beta.0","homebridge-child":"^1.6.0 || ^2.0.0-beta.0","node":"^18.20.4 || ^20.15.1 || ^22"},"dependencies":{"axios":"^1.9.0"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/350d/homebridge-http-lock.git"},"keywords":["homebridge-plugin","homebridge","homekit","lock","http","relay","automation","smart-home","shelly","esp32","esp8266"],"author":{"name":"350d"},"license":"MIT","bugs":{"url":"https://github.com/350d/homebridge-http-lock/issues"},"homepage":"https://github.com/350d/homebridge-http-lock#readme","funding":{"type":"github","url":"https://github.com/sponsors/350d"},"config":{"schema":"config.schema.json"},"homebridge":{"pluginType":"platform","pluginAlias":"HTTPLock"},"_id":"@350d/homebridge-http-lock@3.0.4","gitHead":"17e1a7624d1c5e2bdee9743f700500d0cd5bedee","_nodeVersion":"23.3.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-VsXt5Gy2PEZxwKsfIS9ITwWtRO3nwD51gVi0UGjebm0fSOQ5O673xn5RPA7au5q9rAX7tyeLJhznjceGCBcWoA==","shasum":"aabebd88aa50ad940bb556a9ef7f97875e2378b0","tarball":"https://registry.npmjs.org/@350d/homebridge-http-lock/-/homebridge-http-lock-3.0.4.tgz","fileCount":5,"unpackedSize":30422,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCotDMCSZqLEOZaMjBqsw4MWk/DebZtr4F97lLpiDUnaAIhANWkcndyq42fyxfW+PwB6mxppmpu/lEBaCaYO5ttdhEF"}]},"_npmUser":{"name":"350d","email":"v.sobolev@gmail.com"},"directories":{},"maintainers":[{"name":"350d","email":"v.sobolev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/homebridge-http-lock_3.0.4_1748777977662_0.6185270098661717"},"_hasShrinkwrap":false}},"time":{"created":"2025-05-31T20:17:16.308Z","modified":"2025-06-01T11:39:38.056Z","2.0.0":"2025-05-31T20:17:16.633Z","2.0.1":"2025-06-01T08:11:21.098Z","2.0.2":"2025-06-01T08:20:51.780Z","2.0.3":"2025-06-01T08:26:56.697Z","3.0.0":"2025-06-01T08:40:41.801Z","3.0.1":"2025-06-01T08:52:20.605Z","3.0.2":"2025-06-01T09:06:49.488Z","3.0.3":"2025-06-01T11:07:36.676Z","3.0.4":"2025-06-01T11:39:37.867Z"},"bugs":{"url":"https://github.com/350d/homebridge-http-lock/issues"},"author":{"name":"350d"},"license":"MIT","homepage":"https://github.com/350d/homebridge-http-lock#readme","keywords":["homebridge-plugin","homebridge","homekit","lock","http","relay","automation","smart-home","shelly","esp32","esp8266"],"repository":{"type":"git","url":"git+https://github.com/350d/homebridge-http-lock.git"},"description":"Modern Homebridge plugin for controlling HTTP-enabled lock mechanisms via Apple HomeKit. Supports various HTTP methods, custom authentication, automatic locking, and flexible device integration for smart home automation.","maintainers":[{"name":"350d","email":"v.sobolev@gmail.com"}],"readme":"# Homebridge HTTP Lock\n\n[![verified-by-homebridge](https://badgen.net/badge/homebridge/verified/purple)](https://github.com/homebridge/homebridge/wiki/Verified-Plugins)\n\nModern Homebridge plugin that transforms any HTTP-enabled device into a smart lock for Apple HomeKit. Perfect for IoT devices, web-controlled relays, and custom automation systems.\n\n## Key Features\n\n- **HTTP Protocol Support**: Works with any device accepting HTTP requests\n- **Multiple HTTP Methods**: GET, POST, PUT, PATCH support for maximum compatibility  \n- **Secure Authentication**: Built-in HTTP Basic Authentication\n- **Flexible Headers & Payloads**: Complete control over request formatting\n- **Smart Auto-Lock**: Configurable automatic re-locking functionality\n- **State Synchronization**: Reset lock status without triggering actions\n- **Robust Error Handling**: Comprehensive logging and error management\n- **Future-Proof**: Full compatibility with Homebridge 1.9+ and 2.0+\n\n## System Requirements\n\n- **Homebridge**: Version 1.6.0 or newer (including 2.0.0-beta)\n- **Node.js**: 18.20.4+, 20.15.1+, or 22+\n- **iOS/macOS**: HomeKit-enabled device with iOS 13.0+\n\n## Installation Guide\n\nInstall through Homebridge UI or command line:\n\n```bash\nnpm install -g @350d/homebridge-http-lock\n```\n\n## Configuration Examples\n\nAdd the accessory configuration to your Homebridge `config.json`:\n\n### Simple Setup (GET Requests)\n\n```json\n{\n  \"accessories\": [\n    {\n      \"accessory\": \"HTTPLock\",\n      \"name\": \"Front Door Lock\",\n      \"openURL\": \"http://192.168.1.100/relay/0?turn=on\",\n      \"closeURL\": \"http://192.168.1.100/relay/0?turn=off\"\n    }\n  ]\n}\n```\n\n### Advanced Setup (POST with Authentication)\n\n```json\n{\n  \"accessories\": [\n    {\n      \"accessory\": \"HTTPLock\",\n      \"name\": \"Smart Lock\",\n      \"http_method\": \"POST\",\n      \"timeout\": 10,\n      \"username\": \"admin\",\n      \"password\": \"password\",\n      \"openURL\": \"https://your-device.local/api/unlock\",\n      \"openHeader\": {\n        \"Content-Type\": \"application/json\",\n        \"X-API-Key\": \"your-api-key\"\n      },\n      \"openBody\": {\n        \"action\": \"unlock\",\n        \"device_id\": \"lock_01\"\n      },\n      \"closeURL\": \"https://your-device.local/api/lock\",\n      \"closeHeader\": {\n        \"Content-Type\": \"application/json\",\n        \"X-API-Key\": \"your-api-key\"\n      },\n      \"closeBody\": {\n        \"action\": \"lock\",\n        \"device_id\": \"lock_01\"\n      },\n      \"autoLock\": true,\n      \"autoLockDelay\": 30\n    }\n  ]\n}\n```\n\n### State Reset Configuration\n\nIdeal for devices that automatically return to locked state:\n\n```json\n{\n  \"accessories\": [\n    {\n      \"accessory\": \"HTTPLock\",\n      \"name\": \"Gate Lock\",\n      \"openURL\": \"http://192.168.1.100/trigger\",\n      \"resetLock\": true,\n      \"resetLockTime\": 5\n    }\n  ]\n}\n```\n\n## Configuration Reference\n\n### Essential Parameters\n\n| Parameter | Type | Description |\n|-----------|------|-------------|\n| `accessory` | string | Must be `HTTPLock` |\n| `name` | string | Device name displayed in HomeKit |\n\n**Note**: Either `openURL` or `closeURL` (or both) must be configured.\n\n### HTTP Endpoints & Actions\n\n| Parameter | Type | Default | Description |\n|-----------|------|---------|-------------|\n| `openURL` | string | - | HTTP endpoint for unlock operation |\n| `closeURL` | string | - | HTTP endpoint for lock operation |\n| `openHeader` | object | `{}` | Custom headers for unlock requests |\n| `closeHeader` | object | `{}` | Custom headers for lock requests |\n| `openBody` | string/object | `\"\"` | Request payload for unlock operation |\n| `closeBody` | string/object | `\"\"` | Request payload for lock operation |\n\n### Network & Authentication\n\n| Parameter | Type | Default | Description |\n|-----------|------|---------|-------------|\n| `http_method` | string | `GET` | HTTP method (`GET`, `POST`, `PUT`, `PATCH`) |\n| `timeout` | number | `5` | Request timeout in seconds |\n| `username` | string | - | HTTP Basic Auth username |\n| `password` | string | - | HTTP Basic Auth password |\n\n### Automation Features\n\n| Parameter | Type | Default | Description |\n|-----------|------|---------|-------------|\n| `autoLock` | boolean | `false` | Enable automatic re-locking after unlock |\n| `autoLockDelay` | number | `5` | Delay before auto-lock in seconds |\n| `resetLock` | boolean | `false` | Reset state to locked without HTTP call |\n| `resetLockTime` | number | `5` | Delay before state reset in seconds |\n\n**Important**: `autoLock` and `resetLock` are mutually exclusive. `autoLock` triggers the `closeURL`, while `resetLock` only updates HomeKit state.\n\n### Device Identification\n\n| Parameter | Type | Default | Description |\n|-----------|------|---------|-------------|\n| `manufacturer` | string | `350d` | Device manufacturer name |\n| `model` | string | Plugin name | Device model identifier |\n| `serial` | string | Plugin version | Device serial number |\n| `firmware` | string | Plugin version | Firmware version string |\n\n## Real-World Examples\n\n### Shelly 1 Relay Control\n\n```json\n{\n  \"accessory\": \"HTTPLock\",\n  \"name\": \"Garage Door\",\n  \"openURL\": \"http://192.168.1.50/relay/0?turn=on\",\n  \"closeURL\": \"http://192.168.1.50/relay/0?turn=off\",\n  \"resetLock\": true,\n  \"resetLockTime\": 3\n}\n```\n\n### ESP8266/ESP32 Integration\n\n```json\n{\n  \"accessory\": \"HTTPLock\",\n  \"name\": \"Garden Gate\",\n  \"http_method\": \"POST\",\n  \"openURL\": \"http://esp-gate.local/api/control\",\n  \"openHeader\": {\n    \"Content-Type\": \"application/json\"\n  },\n  \"openBody\": {\n    \"command\": \"open\",\n    \"duration\": 1000\n  },\n  \"resetLock\": true,\n  \"resetLockTime\": 5\n}\n```\n\n### Cloud API Integration\n\n```json\n{\n  \"accessory\": \"HTTPLock\",\n  \"name\": \"Office Door\",\n  \"http_method\": \"POST\",\n  \"timeout\": 15,\n  \"openURL\": \"https://api.smartlock.com/v1/locks/12345/unlock\",\n  \"closeURL\": \"https://api.smartlock.com/v1/locks/12345/lock\",\n  \"openHeader\": {\n    \"Authorization\": \"Bearer your-token-here\",\n    \"Content-Type\": \"application/json\"\n  },\n  \"closeHeader\": {\n    \"Authorization\": \"Bearer your-token-here\",\n    \"Content-Type\": \"application/json\"\n  },\n  \"autoLock\": true,\n  \"autoLockDelay\": 60\n}\n```\n\n## Troubleshooting Guide\n\n### Common Issues & Solutions\n\n**Device shows \"No Response\" in HomeKit**\n- Verify device URL is accessible from Homebridge server\n- Check network connectivity and firewall configuration\n- Increase timeout value for slower responding devices\n\n**HTTP Authentication Failures (401/403)**\n- Confirm username/password credentials are correct\n- Verify API key or token requirements in headers\n- Ensure device supports HTTP Basic Authentication\n\n**Lock state not updating properly**\n- Review Homebridge logs for detailed error messages\n- Confirm URL endpoints return HTTP success codes (200-299)\n- Test URLs manually using curl or web browser\n\n**Auto-lock feature not functioning**\n- Verify `closeURL` is configured when using `autoLock`\n- Check `autoLockDelay` timing configuration\n- Monitor logs for auto-lock execution messages\n\n### Debug Configuration\n\nEnable detailed logging in Homebridge:\n\n```json\n{\n  \"platforms\": [],\n  \"accessories\": [...],\n  \"log\": {\n    \"method\": \"systemd\",\n    \"level\": \"debug\"\n  }\n}\n```\n\n### Manual Testing\n\nTest device endpoints manually:\n\n```bash\n# Simple GET request\ncurl -v \"http://your-device/unlock\"\n\n# POST request with authentication\ncurl -v -X POST \\\n  -H \"Content-Type: application/json\" \\\n  -u \"username:password\" \\\n  -d '{\"action\":\"unlock\"}' \\\n  \"https://your-device/api/control\"\n```\n\n## Migration from Previous Versions\n\n1. **Update Dependencies**: Remove old plugin versions and install v2.0+\n2. **Node.js Upgrade**: Update to Node.js 18+ if running older versions\n3. **Configuration Compatibility**: All existing configurations remain compatible\n4. **Homebridge Version**: Update to 1.6.0+ for optimal compatibility\n\n## Contributing to Development\n\n1. Fork the project repository\n2. Create a feature development branch\n3. Implement your changes with proper testing\n4. Add documentation for new features\n5. Submit a pull request for review\n\n## Legal Information\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for complete details.\n\n## Support Resources\n\n- **Issue Reporting**: [GitHub Issues](https://github.com/350d/homebridge-http-lock/issues)\n- **Community Support**: [Homebridge Discord](https://discord.gg/homebridge)\n- **Discussion Forum**: [r/homebridge](https://reddit.com/r/homebridge)\n\n## Version History\n\n### v2.0.0\n- **Breaking Change**: Requires Node.js 18+\n- **Breaking Change**: Requires Homebridge 1.6.0+\n- Full Homebridge 2.0 compatibility implementation\n- Migrated from deprecated `request` library to `axios`\n- Enhanced error handling and detailed logging system\n- Improved security and performance optimizations\n- Advanced debug logging capabilities\n- Comprehensive configuration validation\n\n### v1.0.0\n- Initial plugin release\n- Core HTTP lock functionality\n- Basic auto-lock and state reset features\n","readmeFilename":"README.md"}