{"id":46048636,"url":"https://github.com/bitwise-0x/homebridge-blink-security","last_synced_at":"2026-05-16T02:07:28.375Z","repository":{"id":341030939,"uuid":"1168617094","full_name":"BitWise-0x/homebridge-blink-security","owner":"BitWise-0x","description":"Blink camera integration for Homebridge","archived":false,"fork":false,"pushed_at":"2026-03-01T07:25:13.000Z","size":6174,"stargazers_count":0,"open_issues_count":3,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-01T09:20:48.689Z","etag":null,"topics":["amazon-blink","apple","automation","blink","homebridge","homebridge-plugin","homekit","iot","npm-package","smarthome","typescript"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BitWise-0x.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-27T15:47:06.000Z","updated_at":"2026-03-01T07:25:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"71e25f18-4151-4e26-946c-5eb14f0f47aa","html_url":"https://github.com/BitWise-0x/homebridge-blink-security","commit_stats":null,"previous_names":["bitwise-0x/homebridge-blink-security"],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/BitWise-0x/homebridge-blink-security","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BitWise-0x%2Fhomebridge-blink-security","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BitWise-0x%2Fhomebridge-blink-security/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BitWise-0x%2Fhomebridge-blink-security/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BitWise-0x%2Fhomebridge-blink-security/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BitWise-0x","download_url":"https://codeload.github.com/BitWise-0x/homebridge-blink-security/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BitWise-0x%2Fhomebridge-blink-security/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30104218,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T00:38:46.881Z","status":"ssl_error","status_checked_at":"2026-03-05T00:38:45.829Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["amazon-blink","apple","automation","blink","homebridge","homebridge-plugin","homekit","iot","npm-package","smarthome","typescript"],"created_at":"2026-03-01T08:08:23.926Z","updated_at":"2026-05-16T02:07:28.369Z","avatar_url":"https://github.com/BitWise-0x.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cspan align=\"center\"\u003e\n\n\u003ch1\u003e\n  \u003ca href=\"https://github.com/BitWise-0x/homebridge-blink-security\"\u003e\n    \u003cimg align=\"center\" src=\"homebridge-ui/public/banner.svg\" /\u003e\n  \u003c/a\u003e\n  \u003cbr /\u003e\n  Homebridge Blink Security\n\u003c/h1\u003e\n\n[![verified-by-homebridge](https://img.shields.io/badge/homebridge-verified-blueviolet?color=%23491F59\u0026style=for-the-badge\u0026logoColor=%23FFFFFF\u0026logo=homebridge)](https://github.com/homebridge/homebridge/wiki/Verified-Plugins)\n\n[![npm version](https://img.shields.io/npm/v/@jackietreeh0rn/homebridge-blink-security?color=purple\u0026logo=npm\u0026label=\u0026cacheSeconds=300)](https://www.npmjs.com/package/@jackietreeh0rn/homebridge-blink-security)\n[![npm downloads](https://img.shields.io/npm/dw/@jackietreeh0rn/homebridge-blink-security?color=purple\u0026logo=npm\u0026label=\u0026cacheSeconds=300)](https://www.npmjs.com/package/@jackietreeh0rn/homebridge-blink-security)\n[![GitHub Stars](https://img.shields.io/github/stars/BitWise-0x/homebridge-blink-security?color=cyan\u0026logo=github\u0026cacheSeconds=300)](https://github.com/BitWise-0x/homebridge-blink-security)\n[![GitHub Last Commit](https://img.shields.io/github/last-commit/BitWise-0x/homebridge-blink-security?color=cyan\u0026logo=github\u0026cacheSeconds=300)](https://github.com/BitWise-0x/homebridge-blink-security)\n[![GitHub pull requests](https://img.shields.io/github/issues-pr/BitWise-0x/homebridge-blink-security?cacheSeconds=300)](https://github.com/BitWise-0x/homebridge-blink-security/pulls)\n[![GitHub issues](https://img.shields.io/github/issues/BitWise-0x/homebridge-blink-security?cacheSeconds=300)](https://github.com/BitWise-0x/homebridge-blink-security/issues)\n[![FOSSA Status](https://app.fossa.com/api/projects/custom%2B56237%2Fgithub.com%2FBitWise-0x%2Fhomebridge-blink-security.svg?type=shield\u0026issueType=license)](https://app.fossa.com/projects/custom%2B56237%2Fgithub.com%2FBitWise-0x%2Fhomebridge-blink-security?ref=badge_shield\u0026issueType=license)\n\n\u003c!-- [![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FBitWise-0x%2Fhomebridge-blink-security.svg?type=shield\u0026issueType=security)](https://app.fossa.com/projects/git%2Bgithub.com%2FBitWise-0x%2Fhomebridge-blink-security?ref=badge_shield\u0026issueType=security) --\u003e\n\u003cbr\u003e\nThe most comprehensive \u003ca href=\"https://homebridge.io\"\u003eHomebridge\u003c/a\u003e plugin for \u003ca href=\"https://blinkforhome.com\"\u003eAmazon Blink\u003c/a\u003e cameras, doorbells, and sirens — bringing your Blink devices into \u003ca href=\"https://www.apple.com/ios/home/\"\u003eApple Home\u003c/a\u003e with live view, motion detection, snapshots, and arm/disarm.\n\n\u003c/span\u003e\n\u003cbr\u003e\u003cbr\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"homebridge-ui/public/screenshot4.jpeg\" width=\"320\" alt=\"Apple Home — camera feeds and security status\" /\u003e\n  \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003cimg src=\"homebridge-ui/public/screenshot5.jpeg\" width=\"280\" alt=\"Apple Home — security system arm/disarm\" /\u003e\n\u003c/p\u003e\n\n\u003cbr\u003e\n\n## Supported Devices\n\n\u003cdiv align=\"center\"\u003e\n\n| Device                    | Model Type            | Capabilities                                                                                                                                                                                                                    |\n| ------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| 📷 Blink Outdoor / Indoor | `default`, `catalina` | \u003cul\u003e\u003cli\u003eLive view (IMMI) + audio\u003c/li\u003e\u003cli\u003eMotion sensor\u003c/li\u003e\u003cli\u003eSnapshots\u003c/li\u003e\u003cli\u003eTemperature\u003c/li\u003e\u003cli\u003eBattery level\u003c/li\u003e\u003cli\u003eNight vision\u003c/li\u003e\u003cli\u003eClip recording\u003c/li\u003e\u003cli\u003ePrivacy mode\u003c/li\u003e\u003cli\u003eMotion enable/disable\u003c/li\u003e\u003c/ul\u003e     |\n| 📷 Blink XT / XT2         | `white`, `xt`         | \u003cul\u003e\u003cli\u003eLive view (RTSP, video only)\u003c/li\u003e\u003cli\u003eMotion sensor\u003c/li\u003e\u003cli\u003eSnapshots\u003c/li\u003e\u003cli\u003eTemperature\u003c/li\u003e\u003cli\u003eBattery level\u003c/li\u003e\u003cli\u003eNight vision\u003c/li\u003e\u003cli\u003eClip recording\u003c/li\u003e\u003cli\u003ePrivacy mode\u003c/li\u003e\u003cli\u003eMotion enable/disable\u003c/li\u003e\u003c/ul\u003e |\n| 📸 Blink Mini             | `owl`                 | \u003cul\u003e\u003cli\u003eLive view (IMMI) + audio\u003c/li\u003e\u003cli\u003eMotion sensor\u003c/li\u003e\u003cli\u003eSnapshots\u003c/li\u003e\u003cli\u003eClip recording\u003c/li\u003e\u003cli\u003ePrivacy mode\u003c/li\u003e\u003cli\u003eMotion enable/disable\u003c/li\u003e\u003c/ul\u003e                                                                    |\n| 📸 Blink Mini 2           | `hawk`                | \u003cul\u003e\u003cli\u003eLive view (IMMI) + audio\u003c/li\u003e\u003cli\u003eMotion sensor\u003c/li\u003e\u003cli\u003eSnapshots\u003c/li\u003e\u003cli\u003eClip recording\u003c/li\u003e\u003cli\u003ePrivacy mode\u003c/li\u003e\u003cli\u003eMotion enable/disable\u003c/li\u003e\u003c/ul\u003e                                                                    |\n| 🔦 Blink Wired Floodlight | `superior_owl`        | \u003cul\u003e\u003cli\u003eLive view (IMMI) + audio\u003c/li\u003e\u003cli\u003eMotion sensor\u003c/li\u003e\u003cli\u003eSnapshots\u003c/li\u003e\u003cli\u003eClip recording\u003c/li\u003e\u003cli\u003ePrivacy mode\u003c/li\u003e\u003cli\u003eMotion enable/disable\u003c/li\u003e\u003c/ul\u003e                                                                    |\n| 🚪 Blink Video Doorbell   | `lotus`               | \u003cul\u003e\u003cli\u003eLive view (IMMI) + audio\u003c/li\u003e\u003cli\u003eMotion sensor\u003c/li\u003e\u003cli\u003eSnapshots\u003c/li\u003e\u003cli\u003eDoorbell press notification\u003c/li\u003e\u003cli\u003eClip recording\u003c/li\u003e\u003cli\u003ePrivacy mode\u003c/li\u003e\u003cli\u003eMotion enable/disable\u003c/li\u003e\u003c/ul\u003e                                |\n| 🚨 Blink Siren            | siren                 | \u003cul\u003e\u003cli\u003eOn/off switch\u003c/li\u003e\u003c/ul\u003e                                                                                                                                                                                                 |\n\n\u003c/div\u003e\n\n\u003cbr\u003e\n\n## Architecture\n\n```mermaid\ngraph TD\n    Home[\"🏠 Apple Home\"]\n\n    subgraph Homebridge\n        platform[\"\u003cb\u003eBlinkSecurityPlatform\u003c/b\u003e\u003cbr\u003eDynamicPlatformPlugin\"]\n        acc_sec[\"\u003cb\u003eSecuritySystem\u003c/b\u003e\u003cbr\u003earm / disarm per network\"]\n        acc_cam[\"\u003cb\u003eCamera\u003c/b\u003e\u003cbr\u003elive view · snapshots\u003cbr\u003emotion · battery · temp\"]\n        acc_door[\"\u003cb\u003eDoorbell\u003c/b\u003e\u003cbr\u003epress notification\u003cbr\u003e+ camera features\"]\n        acc_siren[\"\u003cb\u003eSiren\u003c/b\u003e\u003cbr\u003eon / off\"]\n\n        subgraph Streaming Pipeline\n            delegate[\"\u003cb\u003eCameraDelegate\u003c/b\u003e\u003cbr\u003estream lifecycle\"]\n            immi_proxy[\"\u003cb\u003eImmiTunnel\u003c/b\u003e\u003cbr\u003eMPEG-TS over TLS\"]\n            rtsp_proxy[\"\u003cb\u003eRtspToH264Proxy\u003c/b\u003e\u003cbr\u003eRTSP de-frame → MPEG-TS\"]\n            ffmpeg[\"\u003cb\u003eFFmpeg\u003c/b\u003e\u003cbr\u003eH.264 + AAC-ELD → SRTP\"]\n        end\n    end\n\n    subgraph Blink Cloud\n        auth[\"\u003cb\u003eOAuth 2.0 + PKCE\u003c/b\u003e\u003cbr\u003e+ 2FA PIN · session persist\"]\n        api[\"\u003cb\u003eBlink REST API\u003c/b\u003e\u003cbr\u003eimmedia-semi.com\"]\n        immi_srv[\"\u003cb\u003eIMMI Server\u003c/b\u003e\u003cbr\u003eTLS :443\"]\n        rtsp_srv[\"\u003cb\u003eRTSP Server\u003c/b\u003e\u003cbr\u003eTLS :443\"]\n    end\n\n    Home \u003c--\u003e|\"HomeKit\"| acc_sec\n    Home \u003c--\u003e|\"HomeKit\"| acc_cam\n    Home \u003c--\u003e|\"HomeKit\"| acc_door\n    Home \u003c--\u003e|\"HomeKit\"| acc_siren\n\n    platform --\u003e acc_sec \u0026 acc_cam \u0026 acc_door \u0026 acc_siren\n    platform --\u003e|\"polling\u003cbr\u003estatus · motion · thumbs\"| api\n    platform --\u003e|\"token refresh\"| auth\n    auth --\u003e api\n\n    acc_cam \u0026 acc_door --\u003e delegate\n    delegate --\u003e|\"Mini / Doorbell /\u003cbr\u003eOutdoor / Indoor\"| immi_proxy\n    delegate --\u003e|\"XT / XT2\"| rtsp_proxy\n    immi_proxy --\u003e|\"TLS\"| immi_srv\n    rtsp_proxy --\u003e|\"TLS\"| rtsp_srv\n    immi_proxy \u0026 rtsp_proxy --\u003e|\"MPEG-TS\"| ffmpeg\n    ffmpeg --\u003e|\"SRTP\"| Home\n```\n\n\u003cbr\u003e\n\n## Features\n\n- **Live view** — IMMI and RTSP streaming via ffmpeg with automatic keepalive (H.264 video, AAC-ELD audio on IMMI cameras)\n- **Security system** — Arm/disarm per network, with optional manual arm switch\n- **Multi-network** — Supports multiple sync modules, each with independent arm/disarm\n- **Motion detection** — Configurable polling interval with debounce\n- **Motion enable/disable** — Per-camera switch to turn motion detection on or off\n- **Snapshots** — Periodic thumbnail refresh with caching and retry\n- **Battery** — Battery level and low-battery alerts (Outdoor/Indoor models)\n- **Temperature** — Ambient temperature sensor (Outdoor/Indoor models)\n- **Doorbell press** — Push notifications on doorbell button press\n- **Privacy mode** — Per-camera switch to suppress snapshots when disarmed\n- **Night vision** — IR illuminator toggle (Outdoor/Indoor models)\n- **Clip recording** — Trigger a clip recording via momentary switch\n- **Live View clip saving** — Configurable per-network `lv_save` toggle to save or suppress Live View clips\n- **One-way audio** — Listen-in on IMMI cameras (Mini, Mini 2, Outdoor/Indoor, Doorbell, Floodlight) transcoded to AAC-ELD for HomeKit\n- **OAuth 2.0 + PKCE** — Token refresh and persistent sessions across restarts\n- **2FA** — One-time PIN verification for Blink's two-factor auth\n- **Snapshot fallback** — Streams the last thumbnail when live view is unavailable\n- **Stale accessory cleanup** — Removes devices no longer on your Blink account\n- **Retry with backoff** — Automatic retry on network errors and rate limiting\n\n\u003cbr\u003e\n\n## Installation\n\n[Install Homebridge](https://github.com/homebridge/homebridge/wiki), add it to [Apple Home](https://github.com/homebridge/homebridge/blob/main/README.md#adding-homebridge-to-ios), then install and configure Homebridge Blink Security.\n\n### Recommended\n\n1. Open the [Homebridge UI](https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-macOS#complete-login-to-the-homebridge-ui).\n\n2. Open the Plugins tab, search for `homebridge-blink-security`, and install the plugin.\n\n3. Configure your Blink credentials through the settings panel.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"homebridge-ui/public/screenshot1.png\" width=\"400\" alt=\"Plugin settings screenshot\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"homebridge-ui/public/screenshot3.png\" alt=\"Homebridge logs\" /\u003e\n\u003c/p\u003e\n\n### Manual\n\n1. Install the plugin using NPM:\n\n   ```sh\n   npm i -g @jackietreeh0rn/homebridge-blink-security\n   ```\n\n2. Configure the BlinkSecurity platform in `~/.homebridge/config.json` as shown in [`config.example.json`](./config.example.json).\n\n3. Start Homebridge:\n\n   ```sh\n   homebridge -D\n   ```\n\n\u003cbr\u003e\n\n## 2FA Setup\n\nBlink requires two-factor authentication on first login:\n\n1. Configure your `username` and `password` and restart Homebridge\n2. Blink will send a verification code to your email/phone\n3. Add the code to the `pin` field in config and restart Homebridge\n4. After successful verification, remove the `pin` field — the session is persisted\n\n\u003cbr\u003e\n\n## Configuration\n\n| Property                           | Type    | Default    | Description                                                                                                                                                                      |\n| ---------------------------------- | ------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `username`                         | string  | _required_ | Blink account email                                                                                                                                                              |\n| `password`                         | string  | _required_ | Blink account password                                                                                                                                                           |\n| `pin`                              | string  |            | 2FA verification code (only needed once)                                                                                                                                         |\n| `hide-alarm`                       | boolean | `false`    | Hide the SecuritySystem accessory                                                                                                                                                |\n| `hide-manual-arm-switch`           | boolean | `false`    | Hide the manual arm/disarm switch                                                                                                                                                |\n| `hide-temperature-sensor`          | boolean | `false`    | Hide temperature sensors on cameras                                                                                                                                              |\n| `hide-enabled-switch`              | boolean | `false`    | Hide motion enabled/disabled switch                                                                                                                                              |\n| `hide-privacy-switch`              | boolean | `false`    | Hide privacy mode switch                                                                                                                                                         |\n| `hide-cameras`                     | boolean | `false`    | Removes cameras from HomeKit. Rooms, automations, scenes, and custom names will not be restored if toggled back off                                                              |\n| `hide-doorbells`                   | boolean | `false`    | Removes doorbells from HomeKit. Rooms, automations, scenes, and custom names will not be restored if toggled back off                                                            |\n| `enable-liveview`                  | boolean | `true`     | Enable IMMI live view streaming                                                                                                                                                  |\n| `enable-audio`                     | boolean | `false`    | Enable one-way audio in Live View. Also requires Audio Streaming in the Blink app under Device Settings → Privacy                                                                |\n| `lv-save`                          | boolean | `false`    | Save Live View clips to Blink cloud                                                                                                                                              |\n| `disable-thumbnail-refresh`        | boolean | `false`    | Disable automatic thumbnail refresh                                                                                                                                              |\n| `blink-status-polling-seconds`     | integer | `10`       | Seconds between Blink system refreshes (range 1–300). Default 10. Lower values may trigger Blink rate-limiting; higher values reduce API load but delay arm/disarm state updates |\n| `camera-thumbnail-refresh-seconds` | integer | `3600`     | Minimum seconds between Blink cloud thumbnail refreshes per camera (HomeKit polls and is served cached thumbnails between refreshes)                                             |\n| `camera-status-polling-seconds`    | integer | `30`       | Camera status polling interval in seconds                                                                                                                                        |\n| `camera-motion-polling-seconds`    | integer | `15`       | Motion detection polling interval in seconds                                                                                                                                     |\n| `logging`                          | string  |            | `\"quiet\"` suppresses routine chatter (thumbnail refresh, reconfigure, clip recording, sleep). `\"verbose\"` or `\"debug\"` for extended logging                                      |\n| `enable-startup-diagnostic`        | boolean | `false`    | Log diagnostic info on startup                                                                                                                                                   |\n\n\u003cbr\u003e\n\n## Development\n\n### Prerequisites\n\n- Node.js 18.20.4+, 20.18.0+, 22.10.0+, or 24.0.0+\n- Homebridge 1.8.0+ or 2.0.0-beta+\n\nFFmpeg is bundled via the [`ffmpeg-for-homebridge`](https://github.com/homebridge/ffmpeg-for-homebridge) dependency — no separate install is needed, and it ships with `libfdk_aac` enabled for AAC-ELD audio.\n\n### Setup\n\n```sh\nnpm install\nnpm run build\nnpm link\n```\n\n### Watch Mode\n\nAutomatically recompiles and restarts Homebridge on source changes:\n\n```sh\nnpm run watch\n```\n\nThis runs a local Homebridge instance in debug mode using the config at `./test/hbConfig/`. Stop any other Homebridge instances first to avoid port conflicts. The watch behavior can be adjusted in [`nodemon.json`](./nodemon.json).\n\n### Linting \u0026 Formatting\n\n```sh\nnpm run lint        # check for lint errors\nnpm run lint:fix    # auto-fix lint errors\nnpm run prettier    # check formatting\nnpm run format      # auto-fix formatting\n```\n\nCommits must follow [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/#summary) — enforced by pre-commit hooks via [commitlint](https://commitlint.js.org/) and [husky](https://typicode.github.io/husky/).\n\n\u003cbr\u003e\n\n## Troubleshooting\n\n### No Audio in Live View\n\nOne-way audio is supported on IMMI cameras (Mini, Mini 2, Outdoor/Indoor, Doorbell, Wired Floodlight). XT / XT2 cameras use RTSP and are video-only.\n\nAudio is opt-in. To enable it:\n\n1. Set `enable-audio: true` in plugin config\n2. Open the Blink app → Device Settings → Privacy → enable Audio Streaming for each camera\n3. Restart the child bridge\n\nIf Audio Streaming is disabled in the Blink app, the camera sends malformed audio metadata that stalls the stream. That is why audio defaults to off.\n\n### Live View shows \"Not responding\"\n\nIf Live View spins and eventually shows \"Not responding\" in the Home app, the most common cause is audio being enabled in plugin config while Audio Streaming is disabled in the Blink app for that camera. Either enable Audio Streaming in the Blink app, or set `enable-audio: false` in plugin config.\n\n### VPN Interference\n\nBlink's authentication servers may reject login requests made through a VPN, returning HTTP 406 with no 2FA code sent. If you're unable to complete initial setup:\n\n1. Disconnect your VPN\n2. Restart the Homebridge child bridge\n3. Complete 2FA verification\n4. You can re-enable your VPN after authentication succeeds — sessions are persisted\n\n### General\n\nIf you run into issues, check the [Homebridge troubleshooting wiki](https://github.com/homebridge/homebridge/wiki/Basic-Troubleshooting) first. If the problem persists, [open an issue](https://github.com/BitWise-0x/homebridge-blink-security/issues/new/choose) with as much detail as possible.\n\n\u003cbr\u003e\n\n## Contributing\n\nSee [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines on bug reports, feature requests, and code contributions.\n\n\u003cbr\u003e\n\n## Useful Resources\n\n\u003e **Read the full write-up:** [Homebridge SmartRent \u0026 Blink](https://blog.bitwise0x.com/blog/homebridge-smartrent-blink) — an architectural deep-dive into how both plugins map their respective APIs into HomeKit (HAP service composition, IMMI streaming, OAuth/2FA, motion polling).\n\n- [MattTW/BlinkMonitorProtocol](https://github.com/MattTW/BlinkMonitorProtocol) — Blink API documentation\n- [fronzbot/blinkpy](https://github.com/fronzbot/blinkpy) — Python Blink library (Home Assistant)\n- [Homebridge Developer Documentation](https://developers.homebridge.io/)\n- [Apple HomeKit Documentation](https://developer.apple.com/documentation/homekit/)\n\n\u003cbr\u003e\n\n## License\n\n[GNU GENERAL PUBLIC LICENSE, Version 3](https://www.gnu.org/licenses/gpl-3.0.en.html)\n\n\u003c!-- [![FOSSA Status](https://app.fossa.com/api/projects/custom%2B56237%2Fgithub.com%2FBitWise-0x%2Fhomebridge-blink-security.svg?type=large\u0026issueType=license)](https://app.fossa.com/projects/custom%2B56237%2Fgithub.com%2FBitWise-0x%2Fhomebridge-blink-security?ref=badge_large\u0026issueType=license) --\u003e\n\n\u003cbr\u003e\n\n## Disclaimer\n\nThis project is not endorsed by, directly affiliated with, maintained, authorized, or sponsored by Amazon.com, Inc., Immedia Semiconductor, or Apple Inc. All product and company names are the registered trademarks of their original owners. The use of any trade name or trademark is for identification and reference purposes only and does not imply any association with the trademark holder of their product brand.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitwise-0x%2Fhomebridge-blink-security","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbitwise-0x%2Fhomebridge-blink-security","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitwise-0x%2Fhomebridge-blink-security/lists"}