homebridge-ring 11.1.0 → 11.2.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 +15 -0
- package/README.md +153 -144
- package/config.schema.json +6 -6
- package/lib/api/ring-types.d.ts +11 -1
- package/lib/api/ring-types.js +3 -0
- package/lib/api/util.d.ts +2 -2
- package/lib/api/util.js +2 -2
- package/lib/homebridge/base-accessory.d.ts +1 -2
- package/lib/homebridge/base-accessory.js +3 -2
- package/lib/homebridge/base-data-accessory.d.ts +1 -2
- package/lib/homebridge/base-data-accessory.js +5 -6
- package/lib/homebridge/base-device-accessory.d.ts +1 -2
- package/lib/homebridge/beam.d.ts +2 -3
- package/lib/homebridge/beam.js +6 -5
- package/lib/homebridge/{base-station.d.ts → brightness-only.d.ts} +4 -4
- package/lib/homebridge/brightness-only.js +52 -0
- package/lib/homebridge/camera.d.ts +2 -3
- package/lib/homebridge/camera.js +6 -6
- package/lib/homebridge/chime.d.ts +2 -3
- package/lib/homebridge/chime.js +1 -2
- package/lib/homebridge/co-alarm.d.ts +2 -3
- package/lib/homebridge/co-alarm.js +1 -2
- package/lib/homebridge/config.d.ts +1 -1
- package/lib/homebridge/contact-sensor.d.ts +2 -3
- package/lib/homebridge/contact-sensor.js +1 -2
- package/lib/homebridge/fan.d.ts +2 -3
- package/lib/homebridge/fan.js +4 -4
- package/lib/homebridge/flood-freeze-sensor.d.ts +2 -3
- package/lib/homebridge/flood-freeze-sensor.js +4 -4
- package/lib/homebridge/freeze-sensor.d.ts +2 -3
- package/lib/homebridge/freeze-sensor.js +3 -3
- package/lib/homebridge/location-mode-switch.d.ts +2 -3
- package/lib/homebridge/location-mode-switch.js +4 -5
- package/lib/homebridge/lock.d.ts +2 -3
- package/lib/homebridge/lock.js +1 -2
- package/lib/homebridge/motion-sensor.d.ts +2 -3
- package/lib/homebridge/motion-sensor.js +1 -2
- package/lib/homebridge/multi-level-switch.d.ts +2 -3
- package/lib/homebridge/multi-level-switch.js +4 -4
- package/lib/homebridge/outlet.d.ts +2 -3
- package/lib/homebridge/outlet.js +3 -3
- package/lib/homebridge/panic-buttons.d.ts +2 -3
- package/lib/homebridge/panic-buttons.js +6 -6
- package/lib/homebridge/ring-platform.js +24 -25
- package/lib/homebridge/security-panel.d.ts +4 -4
- package/lib/homebridge/security-panel.js +14 -11
- package/lib/homebridge/smoke-alarm.d.ts +2 -3
- package/lib/homebridge/smoke-alarm.js +1 -2
- package/lib/homebridge/smoke-co-listener.d.ts +2 -3
- package/lib/homebridge/smoke-co-listener.js +1 -2
- package/lib/homebridge/switch.d.ts +2 -3
- package/lib/homebridge/switch.js +3 -3
- package/lib/homebridge/temperature-sensor.d.ts +2 -3
- package/lib/homebridge/temperature-sensor.js +1 -2
- package/lib/homebridge/thermostat.d.ts +2 -3
- package/lib/homebridge/thermostat.js +11 -11
- package/lib/homebridge/unknown-zwave-switch.d.ts +2 -3
- package/lib/homebridge/unknown-zwave-switch.js +3 -3
- package/lib/homebridge/water-sensor.d.ts +2 -3
- package/lib/homebridge/water-sensor.js +3 -3
- package/package.json +1 -1
- package/lib/homebridge/base-station.js +0 -14
- package/lib/homebridge/keypad.d.ts +0 -11
- package/lib/homebridge/keypad.js +0 -14
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [11.2.0](https://github.com/dgreif/ring/compare/v11.1.0...v11.2.0) (2022-08-27)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* add `lpd_v4` camera model ([efa5491](https://github.com/dgreif/ring/commit/efa5491ff46535d7c04062bc3273609e5a1184d7)), closes [#951](https://github.com/dgreif/ring/issues/951)
|
|
11
|
+
* **homebridge:** allow logs to be disabled with `disableLogs` ([67e02a0](https://github.com/dgreif/ring/commit/67e02a0effdf88f0bcf3e91d231737b52d3727c4)), closes [#906](https://github.com/dgreif/ring/issues/906)
|
|
12
|
+
* **homebridge:** support brightness for alarm base station and keypads ([bbccf1e](https://github.com/dgreif/ring/commit/bbccf1e453041fd88665930fea98a0ca117a6eb4)), closes [#872](https://github.com/dgreif/ring/issues/872)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
* **homebridge:** hide motion sensor for unequipped bulbs ([3f72cb9](https://github.com/dgreif/ring/commit/3f72cb9ffb3bc4b3a3f61ad9a0d05ca59054df0c)), closes [#1001](https://github.com/dgreif/ring/issues/1001)
|
|
18
|
+
* **homebridge:** maintain night mode across bridge reboots ([6610445](https://github.com/dgreif/ring/commit/6610445e4b46cc682ca4c584793157d8d182ea8d)), closes [#908](https://github.com/dgreif/ring/issues/908)
|
|
19
|
+
|
|
5
20
|
## [11.1.0](https://github.com/dgreif/ring/compare/v11.0.7...v11.1.0) (2022-08-21)
|
|
6
21
|
|
|
7
22
|
|
package/README.md
CHANGED
|
@@ -30,13 +30,13 @@ Add the `Ring` platform in your homebridge `config.json` file.
|
|
|
30
30
|
|
|
31
31
|
### Easiest Configuration
|
|
32
32
|
|
|
33
|
-
For the best experience setting up this plugin, please use [homebridge-config-ui-x](https://www.npmjs.com/package/homebridge-config-ui-x) or [HOOBS](https://hoobs.org/).
|
|
33
|
+
For the best experience setting up this plugin, please use [homebridge-config-ui-x](https://www.npmjs.com/package/homebridge-config-ui-x) or [HOOBS](https://hoobs.org/). Both have a UI that will walk you through linking your account without any cli tools or storing your email/password.
|
|
34
34
|
|
|
35
35
|
### Basic Configuration
|
|
36
36
|
|
|
37
37
|
First, generate a `refreshToken` using the instructions in the [Refresh Tokens Wiki](https://github.com/dgreif/ring/wiki/Refresh-Tokens)
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
```json
|
|
40
40
|
{
|
|
41
41
|
"platforms": [
|
|
42
42
|
{
|
|
@@ -48,13 +48,17 @@ First, generate a `refreshToken` using the instructions in the [Refresh Tokens W
|
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
### Optional Parameters
|
|
51
|
-
Only include an optional parameter if you actually need it. Default behavior without any of the optional parameters should be sufficient for most users.
|
|
52
51
|
|
|
53
|
-
|
|
52
|
+
Only include an optional parameter if you actually need it. Default behavior without any of the optional parameters should be sufficient for most users.
|
|
53
|
+
|
|
54
|
+
```json
|
|
54
55
|
{
|
|
55
56
|
"alarmOnEntryDelay": true,
|
|
56
57
|
"beamDurationSeconds": 60,
|
|
57
|
-
"hideDeviceIds": [
|
|
58
|
+
"hideDeviceIds": [
|
|
59
|
+
"477e4800-fcde-4493-969b-d1a06f683102",
|
|
60
|
+
"5aaed7a7-06df-4f18-b3af-291c89854d60"
|
|
61
|
+
],
|
|
58
62
|
"hideLightGroups": true,
|
|
59
63
|
"hideDoorbellSwitch": true,
|
|
60
64
|
"hideCameraLight": true,
|
|
@@ -62,153 +66,157 @@ Only include an optional parameter if you actually need it. Default behavior wi
|
|
|
62
66
|
"hideCameraSirenSwitch": true,
|
|
63
67
|
"hideInHomeDoorbellSwitch": true,
|
|
64
68
|
"hideAlarmSirenSwitch": true,
|
|
65
|
-
"hideUnsupportedServices": true,
|
|
66
69
|
"avoidSnapshotBatteryDrain": true,
|
|
67
70
|
"cameraStatusPollingSeconds": 20,
|
|
68
71
|
"locationModePollingSeconds": 20,
|
|
69
|
-
"locationIds": [
|
|
72
|
+
"locationIds": [
|
|
73
|
+
"488e4800-fcde-4493-969b-d1a06f683102",
|
|
74
|
+
"4bbed7a7-06df-4f18-b3af-291c89854d60"
|
|
75
|
+
]
|
|
70
76
|
}
|
|
71
77
|
```
|
|
72
78
|
|
|
73
|
-
| Option | Default | Explanation
|
|
74
|
-
| ---------------------------- | ------------------------------------------------------------------- |
|
|
75
|
-
| `unbridgeCameras` | `false` | if `true`, all Ring Cameras we be treated as external accessories, which generally leads to better performance. This means they each need to be individually added to HomeKit. WARNING: If your cameras are already bridged, they will be deleted from HomeKit when you enable this option, and you will need to reconfigure any associated automations or HomeKit settings
|
|
76
|
-
| `alarmOnEntryDelay` | `false` | if `true`, HomeKit will register a delayed entry event as a triggered alarm.
|
|
77
|
-
| `beamDurationSeconds` | `60` for light groups, previous from Ring app for individual lights | Ring smart lighting has a default behavior of only staying on for 60 seconds when you turn on a light via the Ring app.
|
|
78
|
-
| `hideDeviceIds` | `[]` | Allows you to hide specific devices by an array of ids.
|
|
79
|
-
| `hideLightGroups` | `false` | Ring smart lighting allows you to create lighting groups within the Ring app. These groups are convenient for detecting motion in an area of your yard and turning on/off all lights in the group.
|
|
80
|
-
| `hideDoorbellSwitch` | `false` | If you have a Ring video doorbell, you will see a Programmable Switch associated with it.
|
|
81
|
-
| `hideCameraLight` | `false` | If `true`, hides the light for Ring cameras in HomeKit.
|
|
82
|
-
| `hideCameraMotionSensor` | `false` | If `true`, hides the motion sensor for Ring cameras in HomeKit.
|
|
83
|
-
| `hideCameraSirenSwitch` | `false` | If `true`, hides the siren switch for Ring cameras in HomeKit.
|
|
84
|
-
| `hideInHomeDoorbellSwitch` | `false` | If `true`, hides the switch for in-home doorbells in HomeKit.
|
|
85
|
-
| `hideAlarmSirenSwitch` | `false` | If you have a Ring Alarm, you will see both the alarm and a "Siren" switch in HomeKit.
|
|
86
|
-
| `
|
|
87
|
-
| `
|
|
88
|
-
| `
|
|
89
|
-
| `
|
|
90
|
-
| `
|
|
91
|
-
| `
|
|
92
|
-
| `
|
|
93
|
-
| `
|
|
94
|
-
| `
|
|
95
|
-
| `
|
|
79
|
+
| Option | Default | Explanation |
|
|
80
|
+
| ---------------------------- | ------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
81
|
+
| `unbridgeCameras` | `false` | if `true`, all Ring Cameras we be treated as external accessories, which generally leads to better performance. This means they each need to be individually added to HomeKit. WARNING: If your cameras are already bridged, they will be deleted from HomeKit when you enable this option, and you will need to reconfigure any associated automations or HomeKit settings |
|
|
82
|
+
| `alarmOnEntryDelay` | `false` | if `true`, HomeKit will register a delayed entry event as a triggered alarm. There are some households where this is a nice feature as a heads up if you have other people who enter your house and you want an alert so that you can disable the alarm for them before it actually goes off. This works well if you automatically arm/disarm on leave/arrive (see setup instructions below) |
|
|
83
|
+
| `beamDurationSeconds` | `60` for light groups, previous from Ring app for individual lights | Ring smart lighting has a default behavior of only staying on for 60 seconds when you turn on a light via the Ring app. To force a duration when the light is turned on from HomeKit, set this option to a specific number of seconds. If this option is not set, the lights will use the duration from the previous time the light was turned on in the Ring app. For light groups, this will default to 60 seconds. The maximum value is `32767`, which is ~9.1 hours. |
|
|
84
|
+
| `hideDeviceIds` | `[]` | Allows you to hide specific devices by an array of ids. The id for each device is logged when homebridge starts. |
|
|
85
|
+
| `hideLightGroups` | `false` | Ring smart lighting allows you to create lighting groups within the Ring app. These groups are convenient for detecting motion in an area of your yard and turning on/off all lights in the group. However, you may wish to group the lights differently in HomeKit and ignore the groups you have configured in Ring. If this option is `true`, your Ring groups (and their associated motion sensor) will be ignored and will not show up in HomeKit. |
|
|
86
|
+
| `hideDoorbellSwitch` | `false` | If you have a Ring video doorbell, you will see a Programmable Switch associated with it. This switch can be used to perform actions on when the doorbell is pressed using "Single Press" actions. If you do not care to perform actions when the doorbell is pressed, you can hide the Programmable Switch by setting this option to `true`. You will still be able to receive _notifications_ from the doorbell even if the Programmable Switch is hidden (notifications can be configured in the settings for the doorbell camera in the Home app) |
|
|
87
|
+
| `hideCameraLight` | `false` | If `true`, hides the light for Ring cameras in HomeKit. |
|
|
88
|
+
| `hideCameraMotionSensor` | `false` | If `true`, hides the motion sensor for Ring cameras in HomeKit. |
|
|
89
|
+
| `hideCameraSirenSwitch` | `false` | If `true`, hides the siren switch for Ring cameras in HomeKit. |
|
|
90
|
+
| `hideInHomeDoorbellSwitch` | `false` | If `true`, hides the switch for in-home doorbells in HomeKit. |
|
|
91
|
+
| `hideAlarmSirenSwitch` | `false` | If you have a Ring Alarm, you will see both the alarm and a "Siren" switch in HomeKit. The siren switch can sometimes get triggered by Siri commands by accident, which is loud and annoying. Set this option to `true` to hide the siren switch. |
|
|
92
|
+
| `showPanicButtons` | `false` | Creates a new `Panic Buttons` device in HomeKit with `Burglar Alarm` and `Fire Alarm` switches. **Use these at your own risk. I do not guarantee functionality in case of emergency, nor do I take responsibility for any false alarms**. These function just like the SOS sliders in the Ring app. |
|
|
93
|
+
| `nightModeBypassFor` | no Night Mode | Allows you to use Night mode to "Bypass and Arm" a Ring Alarm. Can be set to `all` for Away or `some` for Home. If set and Night mode is activated from HomeKit, any open contact sensors will automatically be bypassed. |
|
|
94
|
+
| `avoidSnapshotBatteryDrain` | false | Causes snapshots for battery cameras to be fetched at a minimum 10 minute interval to avoid draining the battery. |
|
|
95
|
+
| `cameraStatusPollingSeconds` | `20` | How frequently to poll for updates to your cameras and chimes (in seconds). Information like light/siren/volume/snooze status do not update in real time and need to be requested periodically. |
|
|
96
|
+
| `locationModePollingSeconds` | `20` | How frequently to poll for location mode updates (in seconds). This is only useful if you are using location modes to control camera settings and want to keep an up-to-date reference of the current mode for each location. Polling is automatically disabled for locations equipped with a Ring Alarm. Will hide Location Mode switch if set to `0` |
|
|
97
|
+
| `locationIds` | All Locations | Use this option if you only want a subset of your locations to appear in HomeKit. If this option is not included, all of your locations will be added to HomeKit (which is what most users will want to do). |
|
|
98
|
+
| `onlyDeviceTypes` | All Device Types | A subset of device types to be shown. If set, all other device types will be hidden in HomeKit. |
|
|
99
|
+
| `ffmpegPath` | Uses `ffmpeg-for-homebridge` | A custom path to the `ffmpeg` executable. By default, the static binaries built in [ffmpeg-for-homebridge](https://github.com/oznu/ffmpeg-for-homebridge) will be used. If you prefer to use your own version of ffmpeg, you can pass a complete path, or simply `"ffmpeg"` to use ffmpeg from your `PATH`. |
|
|
100
|
+
| `debug` | false | Turns on additional logging. In particular, ffmpeg logging. |
|
|
101
|
+
| `disableLogs` | false | Turns off all logging |
|
|
96
102
|
|
|
97
103
|
### Cameras
|
|
98
104
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
105
|
+
- Camera Feed
|
|
106
|
+
- Shows a snapshot from the camera while viewing the room in Home. There are limitations on when battery cameras can take snapshots. See [the Snapshot Limitations Wiki](https://github.com/dgreif/ring/wiki/Snapshot-Limitations) for details.
|
|
107
|
+
- Shows a live feed from the camera if you click on it. The feed supports video and 2-way audio, but requires that you have `ffmpeg` with `libfdk_aac` installed. A pre-built `ffmpeg` will be automatically installed on most platforms using `ffmpeg-for-homebridge`. See the [FFmpeg wiki](https://github.com/dgreif/ring/wiki/FFmpeg) for details.
|
|
108
|
+
- Motion Sensor
|
|
109
|
+
- Can be hidden with `hideCameraMotionSensor`
|
|
110
|
+
- Light (if camera is equipped)
|
|
111
|
+
- Siren Switch (if camera is equipped)
|
|
112
|
+
- Can be hidden with `hideCameraSirenSwitch`
|
|
113
|
+
- In-Home Doorbell Switch (if doorbell is equipped)
|
|
114
|
+
- This will turn your physical in-home doorbell (mechanical/digital) on and off. Useful for automating situations where you don't want your in-home doorbell to ring during certain situations, such as when a child's night light is on, or during certain hours of the night.
|
|
115
|
+
- Can be hidden with `hideInHomeDoorbellSwitch`
|
|
116
|
+
- Programmable switch for doorbells (triggers `Single Press` actions)
|
|
117
|
+
- Note: doorbell event notifications should be configured via settings on the camera feed
|
|
118
|
+
- Can be hidden with `hideDoorbellSwitch`
|
|
113
119
|
|
|
114
120
|
If you turn on notifications for the motion sensors, or for any doorbell camera, you will get rich notifications from
|
|
115
121
|
HomeKit with a snapshot from the camera
|
|
116
122
|
|
|
117
123
|
If you are having issues with your cameras in the Home app, please see the [Camera Troubleshooting Wiki](https://github.com/dgreif/ring/wiki/Camera-Troubleshooting)
|
|
118
124
|
|
|
119
|
-
Note: Although homebridge has support for HomeKit Secure Video (HKSV), I will not be adding it to this plugin.
|
|
125
|
+
Note: Although homebridge has support for HomeKit Secure Video (HKSV), I will not be adding it to this plugin. Please see [this issue](https://github.com/dgreif/ring/issues/860#issuecomment-1021584211) for more details.
|
|
120
126
|
|
|
121
127
|
### Supported Devices via Ring Alarm and Ring Smart Lighting Hubs
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
128
|
+
|
|
129
|
+
- Security Panel
|
|
130
|
+
- This is a software device that represents the alarm for a Ring location
|
|
131
|
+
- Arm Home / Arm Away / Disarm alarm for Ring location.
|
|
132
|
+
- Detect active burglar alarm
|
|
133
|
+
- Sound/silence siren (shows as a "Ring Alarm Siren" switch, can be hidden with `hideAlarmSirenSwitch`)
|
|
134
|
+
- Base Station
|
|
135
|
+
- Set Volume (Not currently supported in Home, but works in other apps like Eve)
|
|
136
|
+
- Battery status
|
|
137
|
+
- Brightness
|
|
138
|
+
- Keypad
|
|
139
|
+
- Set Volume (Not currently supported in Home, but works in other apps like Eve)
|
|
140
|
+
- Battery status
|
|
141
|
+
- Brightness
|
|
142
|
+
- Contact Sensor/Retrofit Alarm Zones/Tilt Sensor
|
|
143
|
+
- Detect if sensor is open or closed
|
|
144
|
+
- Tamper status
|
|
145
|
+
- Battery status
|
|
146
|
+
- Motion Sensor
|
|
147
|
+
- Detect motion
|
|
148
|
+
- Tamper status
|
|
149
|
+
- Battery status
|
|
150
|
+
- Flood/Freeze Sensor
|
|
151
|
+
- Detect water leak
|
|
152
|
+
- Detect freezing temperature
|
|
153
|
+
- Shows as an occupancy sensor in HomeKit because there is no "Freeze" sensor service. "Occupied" indicates that freezing temperatures have been detected
|
|
154
|
+
- Tamper status
|
|
155
|
+
- Battery status
|
|
156
|
+
- Freeze Sensor (**untested**)
|
|
157
|
+
- Detect freezing temperature
|
|
158
|
+
- Shows as an occupancy sensor in HomeKit because there is no "Freeze" sensor service. "Occupied" indicates that freezing temperatures have been detected
|
|
159
|
+
- Has not been confirmed to work yet. Please open an issue on GitHub if you have a Freeze Sensor (not the flood/freeze sensor) and can test it out for me
|
|
160
|
+
- Tamper status
|
|
161
|
+
- Battery status
|
|
162
|
+
- Temperature Sensor
|
|
163
|
+
- Temperature
|
|
164
|
+
- Battery status
|
|
165
|
+
- Water Sensor
|
|
166
|
+
- Detect water leak
|
|
167
|
+
- Tamper status
|
|
168
|
+
- Battery status
|
|
169
|
+
- Glassbreak Sensor (**untested**)
|
|
170
|
+
- Detect glass breaking
|
|
171
|
+
- Tamper status
|
|
172
|
+
- Battery status
|
|
173
|
+
- Ring Smart Lights (Motion Detector, Flood/Path/Step/Spot Lights, Bulbs, Transformer, Outdoor Smart Plug, Mailbox Sensor)
|
|
174
|
+
- On/Off
|
|
175
|
+
- Brightness Level
|
|
176
|
+
- Detect motion
|
|
177
|
+
- Battery Status
|
|
178
|
+
- Smoke Alarm
|
|
179
|
+
- Carbon Monoxide Alarm
|
|
180
|
+
- Smoke/Carbon Monoxide Listener
|
|
181
|
+
- Smart Locks
|
|
182
|
+
- Fans
|
|
183
|
+
- On/Off
|
|
184
|
+
- Speed
|
|
185
|
+
- Lights/Switches/Outlets/Unknown (some brands of blinds, etc.)
|
|
186
|
+
- On/Off
|
|
187
|
+
- Brightness Level (if applicable)
|
|
188
|
+
- Hue/Sat/Color Temp are _possible_, but currently not supported.
|
|
189
|
+
Please open an issue if you have a device that you would be able to
|
|
190
|
+
test these on.
|
|
191
|
+
- Panic Buttons
|
|
192
|
+
- These can be added by setting `showPanicButtons: true` in your config
|
|
193
|
+
- Creates `Burglar Alarm` and `Fire Alarm` switches in a new `Panic Buttons` device in HomeKit
|
|
194
|
+
- Use these at your own risk. **I do not guarantee functionality in case of emergency, nor do I take responsibility for any false alarms**
|
|
195
|
+
- If either switch is turned on, you will receive a call from Ring monitoring to verify the emergency, and then authorities will be dispatched
|
|
196
|
+
- Location Modes
|
|
197
|
+
- For homes not equipped with a Ring Alarm, Locations Modes can be used as an alternative way to change settings for Ring cameras.
|
|
198
|
+
- Shows as a security system in HomeKit, just like the Ring Alarm.
|
|
199
|
+
- Can be hidden with `"locationModePollingSeconds": 0`
|
|
200
|
+
- Thermostats
|
|
201
|
+
- Set Thermostat mode to heat/cool/off
|
|
202
|
+
- Set target temperature
|
|
203
|
+
- View current temperature and heating/cooling status
|
|
197
204
|
|
|
198
205
|
### Chimes
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
206
|
+
|
|
207
|
+
- Snooze for 24 hours or clear snooze
|
|
208
|
+
- Play "Ding" sound
|
|
209
|
+
- Play "Motion" sound
|
|
210
|
+
- Adjust speaker volume (Not supported in Home app)
|
|
203
211
|
|
|
204
212
|
### Alarm/Location Modes
|
|
205
213
|
|
|
206
|
-
| HomeKit Mode | Ring Mode
|
|
207
|
-
| ------------ |
|
|
208
|
-
| Off | Disarmed
|
|
209
|
-
| Home | Home
|
|
210
|
-
| Away | Away
|
|
211
|
-
| Night | Hidden by default.
|
|
214
|
+
| HomeKit Mode | Ring Mode |
|
|
215
|
+
| ------------ | --------------------------------------------------------- |
|
|
216
|
+
| Off | Disarmed |
|
|
217
|
+
| Home | Home |
|
|
218
|
+
| Away | Away |
|
|
219
|
+
| Night | Hidden by default. Configurable with `nightModeBypassFor` |
|
|
212
220
|
|
|
213
221
|
Entry delays and bypassed sensors (ex. for Home mode) are all controlled in the Ring app.
|
|
214
222
|
These settings will automatically be used by HomeKit.
|
|
@@ -228,26 +236,27 @@ These settings will automatically be used by HomeKit.
|
|
|
228
236
|
|
|
229
237
|
### Changes Modes on Arrive/Leave Home
|
|
230
238
|
|
|
231
|
-
The Home app allows you to create an automation that runs when you arrive/leave home.
|
|
239
|
+
The Home app allows you to create an automation that runs when you arrive/leave home. If you include an accessory or
|
|
232
240
|
scene that "allows access" to your home (e.g. Security System or Lock), the Home app will require you to manually verify
|
|
233
|
-
that you actually want to run the automation every time it gets triggered.
|
|
234
|
-
Ring Alarm automatically, this manual verification can be quite annoying.
|
|
235
|
-
"dummy" switches to you homebridge setup using [homebridge-dummy](https://www.npmjs.com/package/homebridge-dummy).
|
|
241
|
+
that you actually want to run the automation every time it gets triggered. For anyone who wants to arm/disarm their
|
|
242
|
+
Ring Alarm automatically, this manual verification can be quite annoying. To work around this issue, you can add two
|
|
243
|
+
"dummy" switches to you homebridge setup using [homebridge-dummy](https://www.npmjs.com/package/homebridge-dummy). You
|
|
236
244
|
can then use these dummy switches to trigger your other automation (e.g. Arm/Disarm Ring Alarm).
|
|
237
245
|
|
|
238
246
|
#### Example Dummy Config
|
|
247
|
+
|
|
239
248
|
```json
|
|
240
249
|
{
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
250
|
+
"accessories": [
|
|
251
|
+
{
|
|
252
|
+
"accessory": "DummySwitch",
|
|
253
|
+
"name": "Arrived Home"
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
"accessory": "DummySwitch",
|
|
257
|
+
"name": "Left Home"
|
|
258
|
+
}
|
|
259
|
+
]
|
|
251
260
|
}
|
|
252
261
|
```
|
|
253
262
|
|
package/config.schema.json
CHANGED
|
@@ -57,11 +57,6 @@
|
|
|
57
57
|
"type": "boolean",
|
|
58
58
|
"description": "Hides switch that allows you to turn on the siren of the Ring Alarm. Enable this is your Siri commands keep setting off the siren and you don't care about having the switch"
|
|
59
59
|
},
|
|
60
|
-
"hideUnsupportedServices": {
|
|
61
|
-
"title": "Hide Unsupported Services",
|
|
62
|
-
"type": "boolean",
|
|
63
|
-
"description": "Hides the alarm Base Station and Keypad devices in HomeKit. These are only supported by third-party HomeKit apps, not the native Home app."
|
|
64
|
-
},
|
|
65
60
|
"showPanicButtons": {
|
|
66
61
|
"title": "Show Panic Buttons",
|
|
67
62
|
"type": "boolean",
|
|
@@ -104,6 +99,11 @@
|
|
|
104
99
|
"type": "boolean",
|
|
105
100
|
"description": "Turns on additional logging. In particular, ffmpeg logging."
|
|
106
101
|
},
|
|
102
|
+
"disableLogs": {
|
|
103
|
+
"title": "Disable All Logging",
|
|
104
|
+
"type": "boolean",
|
|
105
|
+
"description": "Disables all logs generated by the Ring plugin"
|
|
106
|
+
},
|
|
107
107
|
"cameraStatusPollingSeconds": {
|
|
108
108
|
"title": "Camera/Chime Status Polling",
|
|
109
109
|
"type": "integer",
|
|
@@ -166,12 +166,12 @@
|
|
|
166
166
|
"hideCameraSirenSwitch",
|
|
167
167
|
"hideInHomeDoorbellSwitch",
|
|
168
168
|
"hideAlarmSirenSwitch",
|
|
169
|
-
"hideUnsupportedServices",
|
|
170
169
|
"showPanicButtons",
|
|
171
170
|
"nightModeBypassFor",
|
|
172
171
|
"avoidSnapshotBatteryDrain",
|
|
173
172
|
"beamDurationSeconds",
|
|
174
173
|
"debug",
|
|
174
|
+
"disableLogs",
|
|
175
175
|
"cameraStatusPollingSeconds",
|
|
176
176
|
"locationModePollingSeconds",
|
|
177
177
|
{
|
package/lib/api/ring-types.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
declare type Firmware = string | 'Up To Date';
|
|
2
2
|
export declare enum RingDeviceType {
|
|
3
3
|
BaseStation = "hub.redsky",
|
|
4
|
+
BaseStationPro = "hub.kili",
|
|
4
5
|
Keypad = "security-keypad",
|
|
5
6
|
SecurityPanel = "security-panel",
|
|
6
7
|
ContactSensor = "sensor.contact",
|
|
@@ -71,6 +72,7 @@ export declare enum RingCameraKind {
|
|
|
71
72
|
doorbell_graham_cracker = "doorbell_graham_cracker",
|
|
72
73
|
lpd_v1 = "lpd_v1",
|
|
73
74
|
lpd_v2 = "lpd_v2",
|
|
75
|
+
lpd_v4 = "lpd_v4",
|
|
74
76
|
jbox_v1 = "jbox_v1",
|
|
75
77
|
stickup_cam = "stickup_cam",
|
|
76
78
|
stickup_cam_v3 = "stickup_cam_v3",
|
|
@@ -176,6 +178,8 @@ export interface RingDeviceData {
|
|
|
176
178
|
rel: string;
|
|
177
179
|
zid: string;
|
|
178
180
|
}[];
|
|
181
|
+
motionSensorEnabled?: boolean;
|
|
182
|
+
brightness?: number;
|
|
179
183
|
}
|
|
180
184
|
export declare const deviceTypesWithVolume: RingDeviceType[];
|
|
181
185
|
export interface BaseStation {
|
|
@@ -373,7 +377,13 @@ export interface CameraData {
|
|
|
373
377
|
people_detection_eligible: false;
|
|
374
378
|
pir_settings?: any;
|
|
375
379
|
pir_motion_zones?: number[];
|
|
376
|
-
floodlight_settings?:
|
|
380
|
+
floodlight_settings?: {
|
|
381
|
+
priority: number;
|
|
382
|
+
duration: number;
|
|
383
|
+
brightness?: number;
|
|
384
|
+
always_on: boolean;
|
|
385
|
+
always_on_duration: null | number;
|
|
386
|
+
};
|
|
377
387
|
light_schedule_settings?: any;
|
|
378
388
|
luma_light_threshold?: number;
|
|
379
389
|
live_view_disabled?: boolean;
|
package/lib/api/ring-types.js
CHANGED
|
@@ -5,6 +5,7 @@ exports.isWebSocketSupportedAsset = exports.disabledLocationModes = exports.Disp
|
|
|
5
5
|
var RingDeviceType;
|
|
6
6
|
(function (RingDeviceType) {
|
|
7
7
|
RingDeviceType["BaseStation"] = "hub.redsky";
|
|
8
|
+
RingDeviceType["BaseStationPro"] = "hub.kili";
|
|
8
9
|
RingDeviceType["Keypad"] = "security-keypad";
|
|
9
10
|
RingDeviceType["SecurityPanel"] = "security-panel";
|
|
10
11
|
RingDeviceType["ContactSensor"] = "sensor.contact";
|
|
@@ -79,6 +80,7 @@ var RingCameraKind;
|
|
|
79
80
|
RingCameraKind["doorbell_graham_cracker"] = "doorbell_graham_cracker";
|
|
80
81
|
RingCameraKind["lpd_v1"] = "lpd_v1";
|
|
81
82
|
RingCameraKind["lpd_v2"] = "lpd_v2";
|
|
83
|
+
RingCameraKind["lpd_v4"] = "lpd_v4";
|
|
82
84
|
RingCameraKind["jbox_v1"] = "jbox_v1";
|
|
83
85
|
RingCameraKind["stickup_cam"] = "stickup_cam";
|
|
84
86
|
RingCameraKind["stickup_cam_v3"] = "stickup_cam_v3";
|
|
@@ -108,6 +110,7 @@ exports.RingCameraModel = {
|
|
|
108
110
|
doorbell_graham_cracker: 'Doorbell Wired',
|
|
109
111
|
lpd_v1: 'Doorbell Pro',
|
|
110
112
|
lpd_v2: 'Doorbell Pro',
|
|
113
|
+
lpd_v4: 'Doorbell',
|
|
111
114
|
jbox_v1: 'Doorbell Elite',
|
|
112
115
|
stickup_cam: 'Stick Up Cam',
|
|
113
116
|
stickup_cam_v3: 'Stick Up Cam',
|
package/lib/api/util.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
interface Logger {
|
|
2
|
-
logInfo: (message: string) => void;
|
|
2
|
+
logInfo: (...message: string[]) => void;
|
|
3
3
|
logError: (message: string) => void;
|
|
4
4
|
}
|
|
5
5
|
export declare function delay(milliseconds: number): Promise<unknown>;
|
|
6
6
|
export declare function logDebug(message: any): void;
|
|
7
|
-
export declare function logInfo(message: any): void;
|
|
7
|
+
export declare function logInfo(...message: any[]): void;
|
|
8
8
|
export declare function logError(message: any): void;
|
|
9
9
|
export declare function useLogger(newLogger: Logger): void;
|
|
10
10
|
export declare function enableDebug(): void;
|
package/lib/api/util.js
CHANGED
|
@@ -31,8 +31,8 @@ function logDebug(message) {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
exports.logDebug = logDebug;
|
|
34
|
-
function logInfo(message) {
|
|
35
|
-
logger.logInfo(message);
|
|
34
|
+
function logInfo(...message) {
|
|
35
|
+
logger.logInfo(...message);
|
|
36
36
|
}
|
|
37
37
|
exports.logInfo = logInfo;
|
|
38
38
|
function logError(message) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
2
|
import { RingPlatformConfig } from './config';
|
|
3
|
-
import { Characteristic,
|
|
3
|
+
import { Characteristic, PlatformAccessory, Service, CharacteristicValue, WithUUID } from 'homebridge';
|
|
4
4
|
export declare type CharacteristicType = WithUUID<{
|
|
5
5
|
new (): Characteristic;
|
|
6
6
|
}>;
|
|
@@ -10,7 +10,6 @@ export declare abstract class BaseAccessory<T extends {
|
|
|
10
10
|
}> {
|
|
11
11
|
abstract readonly device: T;
|
|
12
12
|
abstract readonly accessory: PlatformAccessory;
|
|
13
|
-
abstract readonly logger: Logging;
|
|
14
13
|
abstract readonly config: RingPlatformConfig;
|
|
15
14
|
private servicesInUse;
|
|
16
15
|
initBase(): void;
|