forked from dgreif/ring
-
Notifications
You must be signed in to change notification settings - Fork 0
/
config.schema.json
246 lines (246 loc) · 9.63 KB
/
config.schema.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
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
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
{
"pluginAlias": "Ring",
"pluginType": "platform",
"singular": true,
"customUi": true,
"customUiPath": "./lib/homebridge/homebridge-ui",
"customUiDevServer": "http://localhost:3000/api/plugins/settings-ui/homebridge-ring",
"headerDisplay": "See [the wiki](https://github.com/dgreif/ring/wiki/Refresh-Tokens) for details on generating a refresh token",
"accountLinkingHeader": "Please supply your Ring credentials. These will be used to contact the Ring servers and generate a unique access token for your account. Your email and password will be sent directly to Ring and will not be stored anywhere.",
"schema": {
"type": "object",
"properties": {
"refreshToken": {
"title": "Refresh Token",
"type": "string",
"description": "Click \"Generate New Refresh Token\" above to change accounts or if your refresh token has expired",
"placeholder": "Refresh Token"
},
"alarmOnEntryDelay": {
"title": "Alarm on Entry Delay",
"type": "boolean",
"description": "If enabled, HomeKit will register a delayed entry event as a triggered alarm. Useful if you want to know as soon as someone opens a door with the alarm armed"
},
"hideLightGroups": {
"title": "Hide Light Groups",
"type": "boolean",
"description": "Hides Ring lighting groups, allowing you to group lights differently in HomeKit than how you group them in the Ring app"
},
"hideDoorbellSwitch": {
"title": "Hide Doorbell Programmable Switch",
"type": "boolean",
"description": "Hides the Programmable Switch for Ring doorbells. This switch is only useful for triggering an automation when the doorbell is pressed, so most users can safely hide it"
},
"hideCameraMotionSensor": {
"title": "Hide Camera Motion Sensors",
"type": "boolean"
},
"hideCameraSirenSwitch": {
"title": "Hide Camera Siren Switch",
"type": "boolean"
},
"hideInHomeDoorbellSwitch": {
"title": "Hide In-Home Doorbell Switch",
"type": "boolean"
},
"hideAlarmSirenSwitch": {
"title": "Hide Alarm Siren Switch",
"type": "boolean",
"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"
},
"hideUnsupportedServices": {
"title": "Hide Unsupported Services",
"type": "boolean",
"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."
},
"showPanicButtons": {
"title": "Show Panic Buttons",
"type": "boolean",
"description": "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."
},
"nightModeBypassFor": {
"title": "Night Mode as Bypass For Mode",
"type": "string",
"description": "Allows you to use Night mode to \"Bypass and Arm\" a Ring Alarm. If set and Night mode is activated from HomeKit, any open contact sensors will automatically be bypassed and the alarm will be set to the mode selected here.",
"oneOf": [
{
"title": "Home",
"enum": [
"some"
]
},
{
"title": "Away",
"enum": [
"all"
]
}
]
},
"avoidSnapshotBatteryDrain": {
"title": "Avoid Snapshot Battery Drain",
"type": "boolean",
"description": "Causes snapshots for battery cameras to be fetched at a minimum 10 minute interval to avoid draining the battery. This is useful if have the Home app open constantly, causing frequent snapshot requests."
},
"sendCameraMotionNotificationsToTv": {
"title": "Create a 'Doorbell' accessory triggered by non-doorbell camera motion alerts for tvOS 14 notification support",
"type": "boolean"
},
"sendDoorbellMotionNotificationsToTv": {
"title": "Motion events on doorbell cameras will trigger a doorbell press event for tvOS 14 notification support.",
"type": "boolean"
},
"beamDurationSeconds": {
"title": "Ring Smart Lighting Timer",
"type": "integer",
"minimum": 1,
"maximum": 32767,
"description": "Ring Smart Lighting will only stay on for a set amount of time. You can specify that duration here (in seconds). If not specified, the light will stay on for the last duration used within the Ring app for individual lights, and 60 seconds for lighting groups. Max value is 32767 which is ~9.1 hours"
},
"debug": {
"title": "Debug Logging",
"type": "boolean",
"description": "Turns on additional logging. In particular, ffmpeg logging."
},
"cameraStatusPollingSeconds": {
"title": "Camera/Chime Status Polling",
"type": "integer",
"minimum": 1,
"placeholder": "Get camera status every __ seconds",
"description": "Camera/Chime status (such as light/siren/volume/snooze state) does not update live and must be fetched periodically. By default this is done every 20 seconds"
},
"cameraDingsPollingSeconds": {
"title": "Camera Event Polling",
"type": "integer",
"minimum": 1,
"placeholder": "Get camera events every __ seconds",
"description": "Camera motion and ding events does not update live and must be fetched periodically. By default this is done every 2 seconds"
},
"locationModePollingSeconds": {
"title": "Location Mode Polling",
"type": "integer",
"minimum": 0,
"placeholder": "Get current Location Mode every __ seconds",
"description": "Location Modes do not update live and must be fetched periodically. By default this is done every 20 seconds for locations that have Location Modes enabled, and that do not have a Ring Alarm. The Location Mode switch can be hidden by setting this option to 0"
},
"hideDeviceIds": {
"title": "Hide Device ID",
"type": "array",
"items": {
"type": "string"
}
},
"locationIds": {
"title": "Location ID",
"type": "array",
"items": {
"type": "string"
}
},
"onlyDeviceTypes": {
"title": "Device Types",
"type": "array",
"items": {
"type": "string"
}
}
},
"required": ["refreshToken"]
},
"layout": [
{
"type": "flex",
"flex-flow": "row wrap",
"items": ["refreshToken"]
},
{
"type": "fieldset",
"title": "Optional Configuration",
"expandable": true,
"items": [
"alarmOnEntryDelay",
"hideLightGroups",
"hideDoorbellSwitch",
"hideCameraMotionSensor",
"hideCameraSirenSwitch",
"hideInHomeDoorbellSwitch",
"hideAlarmSirenSwitch",
"hideUnsupportedServices",
"showPanicButtons",
"nightModeBypassFor",
"avoidSnapshotBatteryDrain",
"sendCameraMotionNotificationsToTv",
"sendDoorbellMotionNotificationsToTv",
"beamDurationSeconds",
"debug",
"cameraStatusPollingSeconds",
"cameraDingsPollingSeconds",
"locationModePollingSeconds",
{
"key": "hideDeviceIds",
"add": "Add Another Device ID",
"type": "array",
"items": [
{
"type": "div",
"displayFlex": true,
"flex-direction": "row",
"items": [
{
"key": "hideDeviceIds[]",
"placeholder": "Device ID"
}
]
}
]
},
{
"type": "help",
"helpvalue": "<p>If you would like to hide individual devices in HomeKit, enter the desired device IDs above. The ID for each device is logged every time homebridge starts.</p>"
},
{
"key": "locationIds",
"type": "array",
"items": [
{
"type": "div",
"displayFlex": true,
"flex-direction": "row",
"items": [
{
"key": "locationIds[]",
"placeholder": "Location ID"
}
]
}
]
},
{
"type": "help",
"helpvalue": "<p>If you have multiple locations configured in Ring but only want some of them in HomeKit, enter the desired location IDs above. The ID for each location is logged every time homebridge starts.</p>"
},
{
"key": "onlyDeviceTypes",
"type": "array",
"items": [
{
"type": "div",
"displayFlex": true,
"flex-direction": "row",
"items": [
{
"key": "onlyDeviceTypes[]",
"placeholder": "Device Type"
}
]
}
]
},
{
"type": "help",
"helpvalue": "<p>If you only want to display certain device types, you can specify a those device types here. All other device types will be removed from HomeKit. Example: security-panel to show your alarm, hp_cam_v1 to show floodlight cams.</p>"
}
]
}
]
}