homebridge-ring-secure-video 1.0.0-beta.6 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +99 -0
- package/README.md +83 -46
- package/config.schema.json +77 -219
- package/lib/base-data-accessory.js +27 -10
- package/lib/camera-source.js +48 -11
- package/lib/camera.js +0 -4
- package/lib/ffmpeg-capabilities.js +83 -10
- package/lib/hksv-options.js +6 -4
- package/lib/hksv-work-queue.js +0 -12
- package/lib/intercom.js +58 -37
- package/lib/location-mode-switch.js +46 -20
- package/lib/media-config.js +38 -64
- package/lib/ring-media-ingress.js +3 -4
- package/lib/ring-platform.js +75 -16
- package/package.json +1 -2
- package/branding/Homebridge_x_Ring.svg +0 -1
- package/branding/icon.png +0 -0
- package/branding/lighting.png +0 -0
- package/branding/product.png +0 -0
- package/branding/security-system.png +0 -0
- package/lib/util.js +0 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,104 @@
|
|
|
1
1
|
# homebridge-ring-secure-video
|
|
2
2
|
|
|
3
|
+
## 1.0.0 (2026-11-14)
|
|
4
|
+
|
|
5
|
+
First stable release. Compared with homebridge-ring 14.3.0, it adds HomeKit Secure Video
|
|
6
|
+
recording with media profiles (`media`), a separate motion sensor per camera for instant
|
|
7
|
+
notifications, motion from Ring's event history when push notifications fail, automatic Ring
|
|
8
|
+
session refresh with an optional sensor, an optional recording on doorbell press, Ring Intercom
|
|
9
|
+
Video as a camera, and the fixes listed in the betas below. Every homebridge-ring setting is
|
|
10
|
+
available with the same name. Tested on a Raspberry Pi 4 (Node 22, Homebridge 2.5) with a Ring
|
|
11
|
+
Video Doorbell 3 Plus, Ring Alarm and 21 sensors.
|
|
12
|
+
|
|
13
|
+
Changes since 1.0.0-beta.7:
|
|
14
|
+
|
|
15
|
+
**Fixes:**
|
|
16
|
+
|
|
17
|
+
- A packet on a live view's audio port that isn't valid RTP no longer stops Homebridge (any
|
|
18
|
+
device on the network could send one). Any other error that would have reached rxjs's
|
|
19
|
+
unhandled-error handler (which stops Homebridge) is logged instead; if it ended a stream, such
|
|
20
|
+
as a live view's audio, only that stream stops.
|
|
21
|
+
- Ring Intercom Video: a pre-warmed live call that fails no longer stops Homebridge, and the
|
|
22
|
+
recording starts its own call; an unclaimed pre-warmed call is stopped after 20 s without
|
|
23
|
+
stopping a call a recording took meanwhile. Pre-warming happens only with HKSV recording on.
|
|
24
|
+
The check for an active ding runs only for Intercom Video (audio intercoms get dings by push),
|
|
25
|
+
every 5 s instead of 3 s, and a slow check no longer has its answer dropped when the next is
|
|
26
|
+
due.
|
|
27
|
+
- A renewed Ring token is saved only into this plugin's platform block. Before, if no block of
|
|
28
|
+
this plugin had the old token (it was changed in the settings meanwhile, or only another
|
|
29
|
+
plugin's block had it, such as homebridge-ring set up with the same token), it was written by
|
|
30
|
+
text replace, possibly into the other plugin's block; now config.json is left as it is, and
|
|
31
|
+
"Could not save a new Ring token" is logged once.
|
|
32
|
+
- When Homebridge shuts down, live views, talk-back, recordings and Ring calls are ended and the
|
|
33
|
+
plugin disconnects from Ring, instead of leaving them running until the process exits.
|
|
34
|
+
- With `codec` set to `auto` (the default outside `lowPower`), recordings on a PC, Docker, a NAS
|
|
35
|
+
or a Raspberry Pi 5 no longer fail by picking the Raspberry Pi 4 hardware encoder
|
|
36
|
+
(`h264_v4l2m2m`) just because FFmpeg lists it: it is picked only on Linux with a video encoder
|
|
37
|
+
device Homebridge can open, and `h264_videotoolbox` only on a Mac; otherwise `auto` picks
|
|
38
|
+
`libx264`. The check now asks the FFmpeg that records (the one bundled with the plugin, or the
|
|
39
|
+
one set with `ffmpegPath`) instead of a system `ffmpeg`, and gives up after 10 s instead of
|
|
40
|
+
holding recordings if FFmpeg hangs; a check that fails is logged and tried again 5 minutes
|
|
41
|
+
later. FFmpeg is only asked when `auto` has to choose (not with `lowPower` or a set codec).
|
|
42
|
+
|
|
43
|
+
**Settings form and docs:**
|
|
44
|
+
|
|
45
|
+
- "Custom FFmpeg Path" is in the settings form again (it was only in the JSON editor), and CI
|
|
46
|
+
now fails if a setting is left out of the form. Settings are grouped by topic, the hide-camera
|
|
47
|
+
settings have descriptions (hiding the camera motion sensor also stops HKSV recordings), and
|
|
48
|
+
the prebuffer setting no longer suggests it adds video from before the motion.
|
|
49
|
+
- The README shows the plugin's own icon instead of the "Homebridge x Ring" logo; Ring's logo
|
|
50
|
+
and unused upstream images are removed and no longer in the npm package. The README says which
|
|
51
|
+
setups are tested and which aren't.
|
|
52
|
+
|
|
53
|
+
**Other:** unused code removed; the encoder check runs FFmpeg once instead of twice.
|
|
54
|
+
|
|
55
|
+
**Known:** `npm audit --omit=dev` reports one high-severity advisory for `ip`
|
|
56
|
+
(GHSA-2p57-rm9w-gvfp), listed against `ip`, `werift` and ring-client-api 14.3.0. It concerns
|
|
57
|
+
`ip.isPublic`, which werift doesn't call, so the plugin isn't affected; it goes away with
|
|
58
|
+
ring-client-api 15 and the werift 0.26 it uses.
|
|
59
|
+
|
|
60
|
+
## 1.0.0-beta.7 (2026-11-14)
|
|
61
|
+
|
|
62
|
+
**Changes in behaviour to check after updating:**
|
|
63
|
+
|
|
64
|
+
- The flat recording settings are removed: `hksvPerformanceMode`, `cameraVideoCodec`,
|
|
65
|
+
`hksvVideoBitrateKbps`, `hksvVideoMaxBitrateKbps`, `hksvVideoBufferSizeKbps`, `hksvVideoCrf`,
|
|
66
|
+
`hksvVideoPreset`, `hksvVideoKeyframeInterval`, `hksvPrebufferLengthMs`,
|
|
67
|
+
`hksvFragmentLengthMs`, `hksvMaxRecordingSeconds`, `hksvMaxQueuedBytes` and
|
|
68
|
+
`hksvMaxConcurrentRecordings`. Recording is set up only in `media` ("Recording Settings" in
|
|
69
|
+
the plugin settings), which has each of them with the same allowed values
|
|
70
|
+
(`hksvPerformanceMode`'s `balanced`/`rpi`/`quality` become `media.profile`'s
|
|
71
|
+
`adaptive`/`lowPower`/`quality`); the README has a table of what replaces what. A removed
|
|
72
|
+
setting left in a config is ignored, with a warning at start naming it and its replacement:
|
|
73
|
+
move its value if needed, then delete it in the JSON editor. Configs last saved from the
|
|
74
|
+
settings form in beta.6 or earlier usually contain `hksvPerformanceMode` and
|
|
75
|
+
`hksvVideoKeyframeInterval` (the form filled them in), so expect those two warnings. Without `media.profile` the profile is `adaptive`, so a config that only had
|
|
76
|
+
`"hksvPerformanceMode": "rpi"` needs `"media": { "profile": "lowPower" }`.
|
|
77
|
+
- The recording log line says `profile=lowPower`, `adaptive` or `quality` instead of
|
|
78
|
+
`mode=rpi`, `balanced` or `quality`.
|
|
79
|
+
|
|
80
|
+
**Fixes** (from homebridge-ring 15.0.0-beta.0):
|
|
81
|
+
|
|
82
|
+
- A volume, brightness, dimmer or fan-speed change that Ring rejects no longer crashes
|
|
83
|
+
Homebridge (and with it the plugin's bridge); it is logged, and the value goes back to the last
|
|
84
|
+
level Ring reported, unless a newer change was sent meanwhile (dgreif/ring#1892).
|
|
85
|
+
- A Ring mode change (Home, Away, Disarmed) from HomeKit that Ring rejects no longer crashes
|
|
86
|
+
Homebridge; it is logged, and the target goes back to the mode Ring reports. A pending Home (Stay) target is no
|
|
87
|
+
longer overwritten by another mode report before Ring confirms it, and an older request
|
|
88
|
+
failing late no longer undoes a newer one (dgreif/ring#1871).
|
|
89
|
+
- A Ring token without its refresh token (from a sign-in response that couldn't be read, seen
|
|
90
|
+
with unsupported Node.js versions) is no longer saved over a working one (which made every
|
|
91
|
+
later start fail until signing in again) or used for reconnecting; the working token is kept,
|
|
92
|
+
and the error is logged once per run (the plugin's side of dgreif/ring#1886).
|
|
93
|
+
|
|
94
|
+
**Docs:**
|
|
95
|
+
|
|
96
|
+
- The settings form calls `media` "Recording Settings", "Enable HKSV" is no longer marked
|
|
97
|
+
experimental, and the settings' descriptions carry the Raspberry Pi advice, bitrate ranges,
|
|
98
|
+
verified codecs and each profile's defaults.
|
|
99
|
+
- README: a fuller disclaimer, and in "Origin and Attribution" the versions this started from
|
|
100
|
+
and where to report problems.
|
|
101
|
+
|
|
3
102
|
## 1.0.0-beta.6 (2026-11-13)
|
|
4
103
|
|
|
5
104
|
**Changes in behaviour to check after updating:**
|
package/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<img alt="
|
|
2
|
+
<img alt="Ring Secure Video" src="https://raw.githubusercontent.com/zmanuel1234/homebridge-ring-secure-video/main/branding/homebridge-ring-secure-video.svg" width="150">
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
# homebridge-ring-secure-video
|
|
@@ -13,11 +13,10 @@ It is meant to replace `homebridge-ring` on its own: one plugin, one Ring sign-i
|
|
|
13
13
|
|
|
14
14
|
## What it adds to homebridge-ring
|
|
15
15
|
|
|
16
|
-
Everything `homebridge-ring` exposes is here too
|
|
17
|
-
platform names differ, so its accessories are new to HomeKit and are set up again), plus:
|
|
16
|
+
Everything `homebridge-ring` exposes is here too, with the same settings, plus:
|
|
18
17
|
|
|
19
18
|
- **HomeKit Secure Video recording** for Ring cameras and doorbells, with media profiles for small
|
|
20
|
-
machines such as a Raspberry Pi (`media
|
|
19
|
+
machines such as a Raspberry Pi (`media`).
|
|
21
20
|
- **Instant motion notifications** with HKSV on: an optional separate motion sensor per camera
|
|
22
21
|
(`cameraMotionNotificationSensor`), so the Home app notifies without waiting for clip analysis.
|
|
23
22
|
- **Motion when Ring's push notifications fail**: motion from Ring's event history
|
|
@@ -37,34 +36,33 @@ platform names differ, so its accessories are new to HomeKit and are set up agai
|
|
|
37
36
|
|
|
38
37
|
## Origin and Attribution
|
|
39
38
|
|
|
40
|
-
This project
|
|
39
|
+
This is an independent project, not a GitHub fork and not maintained by the authors it builds on:
|
|
41
40
|
|
|
42
|
-
-
|
|
43
|
-
|
|
41
|
+
- [`homebridge-ring`](https://github.com/dgreif/ring) by Dusty Greif: this plugin's accessory code
|
|
42
|
+
started from homebridge-ring 14.3.0, and it uses
|
|
43
|
+
[`ring-client-api`](https://www.npmjs.com/package/ring-client-api) 14.3.0 from npm as a
|
|
44
|
+
dependency.
|
|
45
|
+
- [`homebridge-ring-hksv`](https://github.com/trinityhades/homebridge-ring-hksv) by trinityhades:
|
|
46
|
+
this plugin continues from its version 15.0.2 (HKSV recording pipeline, Ring Intercom Video).
|
|
44
47
|
|
|
45
|
-
|
|
48
|
+
Changes since then are listed in [CHANGELOG.md](CHANGELOG.md). Thanks to Dusty Greif, trinityhades
|
|
49
|
+
and all upstream contributors.
|
|
46
50
|
|
|
47
|
-
|
|
51
|
+
**Please report problems with this plugin
|
|
52
|
+
[here](https://github.com/zmanuel1234/homebridge-ring-secure-video/issues), not to dgreif/ring or
|
|
53
|
+
trinityhades.**
|
|
48
54
|
|
|
49
55
|
## Important Plugin Options
|
|
50
56
|
|
|
51
57
|
| Option | Purpose |
|
|
52
58
|
| --- | --- |
|
|
53
|
-
| `enableHksv` | Enables
|
|
59
|
+
| `enableHksv` | Enables HKSV recording for eligible cameras; on by default, set `false` to turn it off |
|
|
60
|
+
| `media` | Recording profile (`media.profile`: `adaptive`, `lowPower` or `quality`) and optional recording settings (`media.recording`); see [Media configuration](#media-configuration) and [Recording codecs](#recording-codecs) |
|
|
54
61
|
| `enableCameraMotionHistory` | Allows camera motion to fall back to recent Ring event history if push notifications don't arrive. The history is checked every `cameraStatusPollingSeconds` until motion events turn out to come by push too, then every 5 minutes as a safety net (and frequently again once a push is missed, so motion can go unreported for up to 5 minutes after push stops working); disable to only trust push-triggered motion |
|
|
55
62
|
| `automaticSessionRefresh` | When Ring's event history shows motion that Ring sent no push notification for (3 events over at least 30 minutes, none pushed), refreshes the Ring API session by itself, as **Force Ring API Session Refresh** does (see Troubleshooting): a child bridge restarts for it, the main bridge does it at the next Homebridge restart. Events while motion is snoozed are not counted, nor, when the camera alerts for people only, events without a person. At most once a day, and no more after 2 refreshes that brought no motion push notification. Needs `enableCameraMotionHistory`. On by default; set `false` to turn it off, for example if Ring is set to send no motion alerts in some Modes or on a schedule |
|
|
56
63
|
| `sessionRefreshSensor` | Adds a "Ring Session Refreshed" contact sensor that opens after an automatic session refresh (10 s after the Home app is connected to it, within 3 minutes) and stays open for a day, also across restarts (which don't notify again). Turn on its notifications in the Home app (needs a home hub) to be told when to remove the older `homebridge-ring-secure-video` entry from Authorized Client Devices. Needs `automaticSessionRefresh`. Off by default |
|
|
57
64
|
| `disableHksvOnBattery` | Disables HKSV on cameras running on battery to reduce battery/network usage; wired battery models keep it. On by default |
|
|
58
|
-
| `hksvPrebufferLengthMs` | HKSV prebuffer duration (minimum 4000ms) |
|
|
59
|
-
| `hksvFragmentLengthMs` | HKSV fragment duration target |
|
|
60
|
-
| `hksvMaxRecordingSeconds` | Optional safety cap for a recording session (default 180 s; 0 disables) |
|
|
61
|
-
| `hksvPerformanceMode` | HKSV tuning profile (`balanced`, `rpi`, or `quality`) |
|
|
62
|
-
| `hksvMaxConcurrentRecordings` / `hksvMaxQueuedBytes` | HKSV safeguards for small systems under load |
|
|
63
|
-
| `hksvVideoBitrateKbps` / `hksvVideoMaxBitrateKbps` / `hksvVideoBufferSizeKbps` | HKSV recording bitrate controls for improving fast-motion quality |
|
|
64
|
-
| `hksvVideoCrf` / `hksvVideoPreset` | Optional libx264 quality and CPU tuning controls |
|
|
65
|
-
| `hksvVideoKeyframeInterval` | HKSV recording keyframe interval |
|
|
66
65
|
| `homeKitAccessoryTag` | Appends a tag to accessory names and HomeKit IDs so the same Ring device can be exposed as a distinct HomeKit accessory for debugging/testing |
|
|
67
|
-
| `cameraVideoCodec` | Preferred H.264 handling (`auto`, `copy`, `h264_v4l2m2m`, `h264_videotoolbox`, or `libx264`) |
|
|
68
66
|
| `hideDoorbellSwitch` / `hideCameraMotionSensor` / `hideCameraSirenSwitch` | Hides specific HomeKit-exposed services |
|
|
69
67
|
| `cameraMotionNotificationSensor` | Adds a separate "<camera> Motion" sensor per camera for instant motion notifications (see below) |
|
|
70
68
|
| `doorbellPressMotion` | For Ring doorbells with HKSV recording on: a press also turns on the camera's motion for 30 seconds, so HKSV records the visitor even when Ring reported no motion (during a live view, or a quick press-and-leave). One recording per visit, not two. Notifications and automations on the camera's motion sensor also see it; the separate notification sensor does not. No effect with `hideCameraMotionSensor`. Off by default |
|
|
@@ -73,20 +71,41 @@ Big thanks to Dusty, trinityhades and all upstream contributors. This plugin reu
|
|
|
73
71
|
| `debug` | Enables additional logging |
|
|
74
72
|
| `disableLogs` | Disables plugin logging |
|
|
75
73
|
|
|
76
|
-
##
|
|
74
|
+
## Media configuration
|
|
77
75
|
|
|
78
|
-
|
|
79
|
-
each live-view and recording FFmpeg process.
|
|
80
|
-
`adaptive` (default), `lowPower
|
|
81
|
-
`media.recording`;
|
|
82
|
-
`hksv*` fields, which remain compatibility aliases during migration. Set
|
|
76
|
+
Recording is set up in `media` ("Recording Settings" in the plugin settings). The media engine
|
|
77
|
+
keeps the Ring call separate from each live-view and recording FFmpeg process. Set
|
|
78
|
+
`media.profile` to `adaptive` (default), `lowPower` or `quality`. Advanced settings live in
|
|
79
|
+
`media.recording`; each is validated, and an unusable value is ignored with a warning. Set
|
|
83
80
|
`media.recording.maxDurationSeconds` to change its safety cap (default 180 seconds; HomeKit
|
|
84
81
|
normally ends a recording itself when motion stops), or to `0` to disable it.
|
|
85
82
|
|
|
83
|
+
### Settings removed in 1.0.0
|
|
84
|
+
|
|
85
|
+
The flat recording settings from earlier versions were removed in 1.0.0; `media` replaces each
|
|
86
|
+
of them, with the same allowed values (except `hksvPerformanceMode`, whose values are renamed as
|
|
87
|
+
shown). A removed setting left in a config is ignored, and the log says which one and what
|
|
88
|
+
replaces it: move its value there if it isn't set there yet, then delete it in the JSON editor.
|
|
89
|
+
Without `media.profile`, the profile is `adaptive`, so a config that only had
|
|
90
|
+
`"hksvPerformanceMode": "rpi"` needs `"media": { "profile": "lowPower" }`.
|
|
91
|
+
|
|
92
|
+
| Removed setting | Use instead |
|
|
93
|
+
| --- | --- |
|
|
94
|
+
| `hksvPerformanceMode` (`balanced`, `rpi`, `quality`) | `media.profile` (`adaptive`, `lowPower`, `quality`) |
|
|
95
|
+
| `cameraVideoCodec` | `media.recording.codec` |
|
|
96
|
+
| `hksvVideoBitrateKbps` / `hksvVideoMaxBitrateKbps` / `hksvVideoBufferSizeKbps` | `media.recording.bitrateKbps` / `maxBitrateKbps` / `bufferSizeKbps` |
|
|
97
|
+
| `hksvVideoCrf` / `hksvVideoPreset` | `media.recording.crf` / `preset` |
|
|
98
|
+
| `hksvVideoKeyframeInterval` | `media.recording.keyframeInterval` |
|
|
99
|
+
| `hksvPrebufferLengthMs` / `hksvFragmentLengthMs` | `media.recording.prebufferLengthMs` / `fragmentLengthMs` |
|
|
100
|
+
| `hksvMaxRecordingSeconds` | `media.recording.maxDurationSeconds` |
|
|
101
|
+
| `hksvMaxQueuedBytes` / `hksvMaxConcurrentRecordings` | `media.recording.maxQueuedBytes` / `maxConcurrentRecordings` |
|
|
102
|
+
|
|
103
|
+
`media.recording.rateControl` (`vbr` or `cbr`) had no flat setting.
|
|
104
|
+
|
|
86
105
|
## Installation
|
|
87
106
|
|
|
88
|
-
Requires Node.js 22 or 24 and Homebridge 1.8 or later (2.
|
|
89
|
-
globally:
|
|
107
|
+
Requires Node.js 22 or 24 and Homebridge 1.8 or later (tested with 2.5; 1.8 is supported but not
|
|
108
|
+
tested). If Homebridge is installed globally:
|
|
90
109
|
|
|
91
110
|
```bash
|
|
92
111
|
npm i -g homebridge-ring-secure-video
|
|
@@ -141,11 +160,15 @@ Changing `homeKitAccessoryTag` updates both the exposed accessory name and the g
|
|
|
141
160
|
|
|
142
161
|
## HKSV Status
|
|
143
162
|
|
|
144
|
-
|
|
163
|
+
Behavior may vary by camera model, wired vs battery power, Ring API changes, and FFmpeg
|
|
164
|
+
environment.
|
|
145
165
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
166
|
+
Tested: complete HomeKit clips from a Ring Video Doorbell 3 Plus on a Raspberry Pi 4 (Node 22,
|
|
167
|
+
Homebridge 2.5) with each of `copy`, `h264_v4l2m2m` and `libx264` (see below). The HKSV fork this
|
|
168
|
+
continues reported 3 cameras on an M4 Mac mini. Not tested here: other Ring cameras, battery
|
|
169
|
+
cameras, Ring Intercom Video, `h264_videotoolbox` and Homebridge 1.8. Please
|
|
170
|
+
[report](https://github.com/zmanuel1234/homebridge-ring-secure-video/issues) how it works with
|
|
171
|
+
your setup.
|
|
149
172
|
|
|
150
173
|
Recordings follow the frame rate and audio format HomeKit asks for, and include audio only when
|
|
151
174
|
**Record Audio** is on in the camera's settings in the Home app.
|
|
@@ -174,7 +197,7 @@ fork).
|
|
|
174
197
|
### Recording codecs
|
|
175
198
|
|
|
176
199
|
Only HKSV recordings are encoded; live view passes Ring's video through. `media.recording.codec`
|
|
177
|
-
|
|
200
|
+
chooses how:
|
|
178
201
|
|
|
179
202
|
| Codec | What it does | CPU |
|
|
180
203
|
| --- | --- | --- |
|
|
@@ -197,14 +220,16 @@ ignores all of them. The Pi's hardware encoder uses `bitrateKbps` and `keyframeI
|
|
|
197
220
|
|
|
198
221
|
| Profile (`media.profile`) | `auto` picks |
|
|
199
222
|
| --- | --- |
|
|
200
|
-
| `lowPower`
|
|
201
|
-
| `adaptive` (default) or `quality` | `h264_v4l2m2m`
|
|
223
|
+
| `lowPower` | `copy` |
|
|
224
|
+
| `adaptive` (default) or `quality` | `h264_v4l2m2m` on Linux with a usable video encoder device (Raspberry Pi 4), else `h264_videotoolbox` on a Mac, else `libx264` |
|
|
202
225
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
`
|
|
206
|
-
|
|
207
|
-
video=<codec>`.
|
|
226
|
+
A hardware encoder is picked only if the FFmpeg that records has it and the computer has the
|
|
227
|
+
hardware: `h264_v4l2m2m` needs a Linux video encoder device that Homebridge can open (the Pi 4's
|
|
228
|
+
`bcm2835-codec-encode`), so a Raspberry Pi 5, a PC or a NAS gets `libx264`, as does Docker unless
|
|
229
|
+
the device is passed through. The log shows the choice for each recording:
|
|
230
|
+
`Starting HKSV recording pipeline ... video=<codec>`. If FFmpeg doesn't answer when asked which
|
|
231
|
+
encoders it has, an error is logged (the first time) and `auto` records with `libx264` until FFmpeg
|
|
232
|
+
is asked again, at the first recording after 5 minutes.
|
|
208
233
|
|
|
209
234
|
#### Settings verified on a Raspberry Pi 4
|
|
210
235
|
|
|
@@ -229,9 +254,6 @@ For a Raspberry Pi, start with:
|
|
|
229
254
|
}
|
|
230
255
|
```
|
|
231
256
|
|
|
232
|
-
### Minimum specifications for HKSV:
|
|
233
|
-
[TBD - will be added as more users test and report their setups]
|
|
234
|
-
|
|
235
257
|
## Troubleshooting
|
|
236
258
|
|
|
237
259
|
For support and debugging:
|
|
@@ -284,10 +306,25 @@ use the next time they sign in from scratch, since they share `.ring.json`.
|
|
|
284
306
|
|
|
285
307
|
## Disclaimer
|
|
286
308
|
|
|
287
|
-
This plugin is not affiliated with
|
|
288
|
-
|
|
289
|
-
|
|
309
|
+
- **Unofficial.** This plugin is not affiliated with, endorsed by or supported by Ring LLC, Amazon,
|
|
310
|
+
Apple or the Homebridge project. Ring, HomeKit and other names and logos are trademarks of their
|
|
311
|
+
owners and are used only to describe what the plugin works with.
|
|
312
|
+
- **Unsupported Ring API.** It talks to Ring through the same private, undocumented API the Ring app
|
|
313
|
+
uses. Ring can change or block it at any time, and features can stop working without warning.
|
|
314
|
+
- **Not a safety device.** Don't rely on it for security, alarm monitoring or emergencies. Motion,
|
|
315
|
+
doorbell presses and recordings can be late or missed (for example while a live view is open, when
|
|
316
|
+
Ring stops sending push notifications, or when the Homebridge host is offline). Use the Ring app
|
|
317
|
+
for anything that matters, and use panic or emergency automations at your own risk.
|
|
318
|
+
- **Your Ring sign-in.** The Ring refresh token is stored in Homebridge's `config.json` in plain
|
|
319
|
+
text and gives access to your Ring account. Protect that file and its backups, and remove the
|
|
320
|
+
token from logs or config before sharing them. Each Ring API session refresh (automatic or
|
|
321
|
+
forced) adds an entry under Control Center > Authorized Client Devices in the Ring app; remove
|
|
322
|
+
the older one there. Removing the plugin's current entry signs it out of Ring.
|
|
323
|
+
- **Recordings and privacy.** HKSV recordings are processed on your Homebridge host and stored in
|
|
324
|
+
iCloud under Apple's terms. You are responsible for following local laws on recording video and
|
|
325
|
+
audio.
|
|
326
|
+
- Provided as is, without warranty. See [LICENSE](LICENSE).
|
|
290
327
|
|
|
291
328
|
## License
|
|
292
329
|
|
|
293
|
-
MIT
|
|
330
|
+
MIT. Copyright Dusty Greif, trinityhades and contributors, and zmanuel1234; see [LICENSE](LICENSE).
|