homebridge-ring 11.1.0-beta.1 → 11.2.1

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.
Files changed (77) hide show
  1. package/CHANGELOG.md +21 -3
  2. package/README.md +153 -144
  3. package/config.schema.json +6 -6
  4. package/lib/api/ring-types.d.ts +11 -1
  5. package/lib/api/ring-types.js +3 -0
  6. package/lib/api/util.d.ts +2 -2
  7. package/lib/api/util.js +2 -2
  8. package/lib/homebridge/base-accessory.d.ts +1 -2
  9. package/lib/homebridge/base-accessory.js +3 -2
  10. package/lib/homebridge/base-data-accessory.d.ts +1 -2
  11. package/lib/homebridge/base-data-accessory.js +5 -6
  12. package/lib/homebridge/base-device-accessory.d.ts +1 -2
  13. package/lib/homebridge/beam.d.ts +2 -3
  14. package/lib/homebridge/beam.js +6 -5
  15. package/lib/homebridge/{base-station.d.ts → brightness-only.d.ts} +4 -4
  16. package/lib/homebridge/brightness-only.js +52 -0
  17. package/lib/homebridge/camera.d.ts +2 -3
  18. package/lib/homebridge/camera.js +7 -7
  19. package/lib/homebridge/chime.d.ts +2 -3
  20. package/lib/homebridge/chime.js +1 -2
  21. package/lib/homebridge/co-alarm.d.ts +2 -3
  22. package/lib/homebridge/co-alarm.js +1 -2
  23. package/lib/homebridge/config.d.ts +1 -1
  24. package/lib/homebridge/contact-sensor.d.ts +2 -3
  25. package/lib/homebridge/contact-sensor.js +1 -2
  26. package/lib/homebridge/fan.d.ts +2 -3
  27. package/lib/homebridge/fan.js +4 -4
  28. package/lib/homebridge/flood-freeze-sensor.d.ts +2 -3
  29. package/lib/homebridge/flood-freeze-sensor.js +4 -4
  30. package/lib/homebridge/freeze-sensor.d.ts +2 -3
  31. package/lib/homebridge/freeze-sensor.js +3 -3
  32. package/lib/homebridge/homebridge-ui/public/asset-manifest.json +10 -10
  33. package/lib/homebridge/homebridge-ui/public/index.html +1 -1
  34. package/lib/homebridge/homebridge-ui/public/static/js/2.2785c6d1.chunk.js +3 -0
  35. package/lib/homebridge/homebridge-ui/public/static/js/{2.fe3feb44.chunk.js.LICENSE.txt → 2.2785c6d1.chunk.js.LICENSE.txt} +0 -0
  36. package/lib/homebridge/homebridge-ui/public/static/js/2.2785c6d1.chunk.js.map +1 -0
  37. package/lib/homebridge/homebridge-ui/public/static/js/{main.adeecae1.chunk.js → main.3d6c9caf.chunk.js} +1 -1
  38. package/lib/homebridge/homebridge-ui/public/static/js/main.3d6c9caf.chunk.js.map +1 -0
  39. package/lib/homebridge/homebridge-ui/public/static/js/{runtime-main.401a8c6e.js → runtime-main.6cce355a.js} +1 -1
  40. package/lib/homebridge/homebridge-ui/public/static/js/runtime-main.6cce355a.js.map +1 -0
  41. package/lib/homebridge/location-mode-switch.d.ts +2 -3
  42. package/lib/homebridge/location-mode-switch.js +4 -5
  43. package/lib/homebridge/lock.d.ts +2 -3
  44. package/lib/homebridge/lock.js +1 -2
  45. package/lib/homebridge/motion-sensor.d.ts +2 -3
  46. package/lib/homebridge/motion-sensor.js +1 -2
  47. package/lib/homebridge/multi-level-switch.d.ts +2 -3
  48. package/lib/homebridge/multi-level-switch.js +4 -4
  49. package/lib/homebridge/outlet.d.ts +2 -3
  50. package/lib/homebridge/outlet.js +3 -3
  51. package/lib/homebridge/panic-buttons.d.ts +2 -3
  52. package/lib/homebridge/panic-buttons.js +6 -6
  53. package/lib/homebridge/ring-platform.js +24 -25
  54. package/lib/homebridge/security-panel.d.ts +4 -4
  55. package/lib/homebridge/security-panel.js +14 -11
  56. package/lib/homebridge/smoke-alarm.d.ts +2 -3
  57. package/lib/homebridge/smoke-alarm.js +1 -2
  58. package/lib/homebridge/smoke-co-listener.d.ts +2 -3
  59. package/lib/homebridge/smoke-co-listener.js +1 -2
  60. package/lib/homebridge/switch.d.ts +2 -3
  61. package/lib/homebridge/switch.js +3 -3
  62. package/lib/homebridge/temperature-sensor.d.ts +2 -3
  63. package/lib/homebridge/temperature-sensor.js +1 -2
  64. package/lib/homebridge/thermostat.d.ts +2 -3
  65. package/lib/homebridge/thermostat.js +11 -11
  66. package/lib/homebridge/unknown-zwave-switch.d.ts +2 -3
  67. package/lib/homebridge/unknown-zwave-switch.js +3 -3
  68. package/lib/homebridge/water-sensor.d.ts +2 -3
  69. package/lib/homebridge/water-sensor.js +3 -3
  70. package/package.json +11 -11
  71. package/lib/homebridge/base-station.js +0 -14
  72. package/lib/homebridge/homebridge-ui/public/static/js/2.fe3feb44.chunk.js +0 -3
  73. package/lib/homebridge/homebridge-ui/public/static/js/2.fe3feb44.chunk.js.map +0 -1
  74. package/lib/homebridge/homebridge-ui/public/static/js/main.adeecae1.chunk.js.map +0 -1
  75. package/lib/homebridge/homebridge-ui/public/static/js/runtime-main.401a8c6e.js.map +0 -1
  76. package/lib/homebridge/keypad.d.ts +0 -11
  77. package/lib/homebridge/keypad.js +0 -14
package/CHANGELOG.md CHANGED
@@ -2,14 +2,30 @@
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.1.0-beta.1](https://github.com/dgreif/ring/compare/v11.1.0-beta.0...v11.1.0-beta.1) (2022-08-01)
5
+ ### [11.2.1](https://github.com/dgreif/ring/compare/v11.2.0...v11.2.1) (2022-08-28)
6
6
 
7
7
 
8
8
  ### Bug Fixes
9
9
 
10
- * **homebridge:** add unbridgeCameras option to ui schema ([638a0b3](https://github.com/dgreif/ring/commit/638a0b373fac72b0058851836ff6d2bdd237e47c))
10
+ * **homebridge:** prevent double ding notifications ([9b63104](https://github.com/dgreif/ring/commit/9b631046ac69f256cf129eaa92e388cce1228636)), closes [#944](https://github.com/dgreif/ring/issues/944)
11
+ * use correct name for lpd_v4 camera ([2425a14](https://github.com/dgreif/ring/commit/2425a1496faa66f3a6080d174b2628d97bf96da1)), closes [#951](https://github.com/dgreif/ring/issues/951)
11
12
 
12
- ## [11.1.0-beta.0](https://github.com/dgreif/ring/compare/v11.0.7...v11.1.0-beta.0) (2022-08-01)
13
+ ## [11.2.0](https://github.com/dgreif/ring/compare/v11.1.0...v11.2.0) (2022-08-27)
14
+
15
+
16
+ ### Features
17
+
18
+ * add `lpd_v4` camera model ([efa5491](https://github.com/dgreif/ring/commit/efa5491ff46535d7c04062bc3273609e5a1184d7)), closes [#951](https://github.com/dgreif/ring/issues/951)
19
+ * **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)
20
+ * **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)
21
+
22
+
23
+ ### Bug Fixes
24
+
25
+ * **homebridge:** hide motion sensor for unequipped bulbs ([3f72cb9](https://github.com/dgreif/ring/commit/3f72cb9ffb3bc4b3a3f61ad9a0d05ca59054df0c)), closes [#1001](https://github.com/dgreif/ring/issues/1001)
26
+ * **homebridge:** maintain night mode across bridge reboots ([6610445](https://github.com/dgreif/ring/commit/6610445e4b46cc682ca4c584793157d8d182ea8d)), closes [#908](https://github.com/dgreif/ring/issues/908)
27
+
28
+ ## [11.1.0](https://github.com/dgreif/ring/compare/v11.0.7...v11.1.0) (2022-08-21)
13
29
 
14
30
 
15
31
  ### Features
@@ -20,6 +36,8 @@ All notable changes to this project will be documented in this file. See [standa
20
36
 
21
37
  ### Bug Fixes
22
38
 
39
+ * **homebridge:** add unbridgeCameras option to ui schema ([e97047d](https://github.com/dgreif/ring/commit/e97047df7d959caee95f958a3a6aed5537f93f58))
40
+ * update dependencies ([20584cd](https://github.com/dgreif/ring/commit/20584cdb6fe3d9fa9fd598a1bec612cfe37e3e82))
23
41
  * update dependencies ([6f98cdf](https://github.com/dgreif/ring/commit/6f98cdf48895daf3217890b6631a6dbb2ccd340f))
24
42
 
25
43
  ### [11.0.7](https://github.com/dgreif/ring/compare/v11.0.6...v11.0.7) (2022-07-10)
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/). Both have a UI that will walk you through linking your account without any cli tools or storing your email/password.
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
- ```json
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
- ```json
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": ["477e4800-fcde-4493-969b-d1a06f683102", "5aaed7a7-06df-4f18-b3af-291c89854d60"],
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": ["488e4800-fcde-4493-969b-d1a06f683102", "4bbed7a7-06df-4f18-b3af-291c89854d60"]
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. 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) |
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. 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. |
78
- | `hideDeviceIds` | `[]` | Allows you to hide specific devices by an array of ids. The id for each device is logged when homebridge starts. |
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. 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. |
80
- | `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) |
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. 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. |
86
- | `hideUnsupportedServices` | `false` | If `true`, hides the alarm Base Station and Keypad devices in HomeKit. These are only supported by third-party HomeKit apps, not the native Home app. |
87
- | `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. |
88
- | `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. |
89
- | `avoidSnapshotBatteryDrain` | false | Causes snapshots for battery cameras to be fetched at a minimum 10 minute interval to avoid draining the battery. |
90
- | `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. |
91
- | `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` |
92
- | `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). |
93
- | `onlyDeviceTypes` | All Device Types | A subset of device types to be shown. If set, all other device types will be hidden in HomeKit. |
94
- | `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`. |
95
- | `debug` | false | Turns on additional logging. In particular, ffmpeg logging. |
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
- * Camera Feed
100
- * 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.
101
- * 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.
102
- * Motion Sensor
103
- * Can be hidden with `hideCameraMotionSensor`
104
- * Light (if camera is equipped)
105
- * Siren Switch (if camera is equipped)
106
- * Can be hidden with `hideCameraSirenSwitch`
107
- * In-Home Doorbell Switch (if doorbell is equipped)
108
- * 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.
109
- * Can be hidden with `hideInHomeDoorbellSwitch`
110
- * Programmable switch for doorbells (triggers `Single Press` actions)
111
- * Note: doorbell event notifications should be configured via settings on the camera feed
112
- * Can be hidden with `hideDoorbellSwitch`
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. Please see [this issue](https://github.com/dgreif/ring/issues/860#issuecomment-1021584211) for more details.
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
- * Security Panel
123
- * This is a software device that represents the alarm for a Ring location
124
- * Arm Home / Arm Away / Disarm alarm for Ring location.
125
- * Detect active burglar alarm
126
- * Sound/silence siren (shows as a "Ring Alarm Siren" switch, can be hidden with `hideAlarmSirenSwitch`)
127
- * Base Station
128
- * Set Volume (Not currently supported in Home, but works in other apps like Eve)
129
- * Battery status
130
- * Can be hidden with `hideUnsupportedServices`
131
- * Keypad
132
- * Set Volume (Not currently supported in Home, but works in other apps like Eve)
133
- * Battery status
134
- * Can be hidden with `hideUnsupportedServices`
135
- * Contact Sensor/Retrofit Alarm Zones/Tilt Sensor
136
- * Detect if sensor is open or closed
137
- * Tamper status
138
- * Battery status
139
- * Motion Sensor
140
- * Detect motion
141
- * Tamper status
142
- * Battery status
143
- * Flood/Freeze Sensor
144
- * Detect water leak
145
- * Detect freezing temperature
146
- * Shows as an occupancy sensor in HomeKit because there is no "Freeze" sensor service. "Occupied" indicates that freezing temperatures have been detected
147
- * Tamper status
148
- * Battery status
149
- * Freeze Sensor (**untested**)
150
- * Detect freezing temperature
151
- * Shows as an occupancy sensor in HomeKit because there is no "Freeze" sensor service. "Occupied" indicates that freezing temperatures have been detected
152
- * 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
153
- * Tamper status
154
- * Battery status
155
- * Temperature Sensor
156
- * Temperature
157
- * Battery status
158
- * Water Sensor
159
- * Detect water leak
160
- * Tamper status
161
- * Battery status
162
- * Glassbreak Sensor (**untested**)
163
- * Detect glass breaking
164
- * Tamper status
165
- * Battery status
166
- * Ring Smart Lights (Motion Detector, Flood/Path/Step/Spot Lights, Bulbs, Transformer, Outdoor Smart Plug, Mailbox Sensor)
167
- * On/Off
168
- * Brightness Level
169
- * Detect motion
170
- * Battery Status
171
- * Smoke Alarm
172
- * Carbon Monoxide Alarm
173
- * Smoke/Carbon Monoxide Listener
174
- * Smart Locks
175
- * Fans
176
- * On/Off
177
- * Speed
178
- * Lights/Switches/Outlets/Unknown (some brands of blinds, etc.)
179
- * On/Off
180
- * Brightness Level (if applicable)
181
- * Hue/Sat/Color Temp are _possible_, but currently not supported.
182
- Please open an issue if you have a device that you would be able to
183
- test these on.
184
- * Panic Buttons
185
- * These can be added by setting `showPanicButtons: true` in your config
186
- * Creates `Burglar Alarm` and `Fire Alarm` switches in a new `Panic Buttons` device in HomeKit
187
- * Use these at your own risk. **I do not guarantee functionality in case of emergency, nor do I take responsibility for any false alarms**
188
- * If either switch is turned on, you will receive a call from Ring monitoring to verify the emergency, and then authorities will be dispatched
189
- * Location Modes
190
- * For homes not equipped with a Ring Alarm, Locations Modes can be used as an alternative way to change settings for Ring cameras.
191
- * Shows as a security system in HomeKit, just like the Ring Alarm.
192
- * Can be hidden with `"locationModePollingSeconds": 0`
193
- * Thermostats
194
- * Set Thermostat mode to heat/cool/off
195
- * Set target temperature
196
- * View current temperature and heating/cooling status
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
- * Snooze for 24 hours or clear snooze
200
- * Play "Ding" sound
201
- * Play "Motion" sound
202
- * Adjust speaker volume (Not supported in Home app)
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. Configurable with `nightModeBypassFor` |
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. If you include an accessory or
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. For anyone who wants to arm/disarm their
234
- Ring Alarm automatically, this manual verification can be quite annoying. To work around this issue, you can add two
235
- "dummy" switches to you homebridge setup using [homebridge-dummy](https://www.npmjs.com/package/homebridge-dummy). You
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
- "accessories": [
242
- {
243
- "accessory": "DummySwitch",
244
- "name": "Arrived Home"
245
- },
246
- {
247
- "accessory": "DummySwitch",
248
- "name": "Left Home"
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
 
@@ -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
  {
@@ -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?: any;
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;
@@ -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 Pro 2',
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, Logging, PlatformAccessory, Service, CharacteristicValue, WithUUID } from 'homebridge';
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;