forked from apexad/homebridge-airport-express-playing
-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconfig.schema.json
173 lines (173 loc) · 9.04 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
{
"pluginAlias": "AirportExpressConnected",
"pluginType": "platform",
"singular": true,
"headerDisplay": "# AirPort Express Connected \n\n Plugin that creates an occupancy sensor that shows wether or not there is an active AirPlay 2 connection to AirPort Express (2nd Gen.) devices. \n\n This plugin is supposed to be a painless experience. There is **no configuration required**. Just install and start the plugin. Devices will be automatically discovered and sensors created. Tweaking the configuration is completely optional. \n\n Made with ❤ by [maxileith](https://github.com/maxileith).",
"schema": {
"type": "object",
"properties": {
"name": {
"title": "Platform Name",
"type": "string",
"default": "Airport Express Connected",
"placeholder": "Airport Express Connected",
"required": true,
"description": "The name of the plugin, e.g. shown in the logs."
},
"update": {
"title": "Update",
"description": "All settings that affect the detection of state changes of AirPort Express devices:",
"type": "object",
"properties": {
"refreshRate": {
"title": "Refresh Rate (seconds)",
"type": "integer",
"placeholder": 3,
"default": 3,
"required": true,
"minimum": 1,
"maximum": 60,
"description": "Interval in which the current AirPlay 2 status is queried."
},
"ignoreGroupWithLeadingDevice": {
"title": "Ignore Group with leading device.",
"type": "boolean",
"default": true,
"required": true,
"description": "When disconnecting from an AirPlay group, the group will predestine a leading device, thus the AirPort Express is still connected to a device and will be report as connected. This configuration option ensures that the AirPort Express is reported as disconnected if it is part of a group with a leading device. It is recommended for most users to enable this option. However, in edge cases like playing music from a HomePod to the AirPort Express, this will prohibit the AirPort Express from being reported as connected."
},
"unreachable": {
"title": "Unreachable",
"description": "Settings regarding the behavior of the exposed accessories in case the AirPort Express is unreachable.",
"type": "object",
"properties": {
"ignore": {
"title": "Ignore",
"type": "boolean",
"placeholder": false,
"default": false,
"required": true,
"description": "Do not report that the AirPort Express is unreachable."
},
"threshold": {
"title": "Threshold (seconds)",
"type": "integer",
"placeholder": 30,
"default": 30,
"required": true,
"minimum": 10,
"maximum": 600,
"description": "Time an AirPort Express device must be unreachable to be reported as unreachable."
},
"reportDisconnected": {
"title": "Report as disconnected",
"type": "boolean",
"placeholder": false,
"default": false,
"required": true,
"description": "If selected, the plugin will report the AirPort Express as disconnected, thus automations that are triggered on disconnect are being triggered before the device is reported as unreachable."
}
}
}
}
},
"discovery": {
"title": "Discover",
"description": "All settings that affect the discovery of AirPort Express devices:",
"type": "object",
"properties": {
"enabled": {
"title": "Enabled",
"type": "boolean",
"placeholder": true,
"default": true,
"required": true,
"description": "Should new device be discovered? When disabled, only already cached devices will be exposed."
},
"always": {
"title": "Always",
"type": "boolean",
"placeholder": true,
"default": true,
"required": true,
"description": "When enabled, new device will be discovered always. When disabled, new device will only be discovered at startup."
},
"intervals": {
"title": "Intervals (seconds)",
"type": "integer",
"placeholder": 30,
"default": 30,
"required": true,
"minimum": 10,
"maximum": 600,
"description": "Intervals in which to search for new devices."
},
"whitelist": {
"title": "Whitelist",
"type": "object",
"properties": {
"enabled": {
"title": "Enabled",
"type": "boolean",
"placeholder": false,
"default": false,
"required": true,
"description": "Only discover devices on the whitelist. This won't affect cached devices. (Can't be enabled when the blacklist is already enabled)"
},
"list": {
"title": "Serial Numbers",
"type": "array",
"default": [],
"required": true,
"items": {
"title": "Serial Number",
"type": "string",
"minLength": 12,
"maxLength": 12
},
"uniqueItems": true
}
}
},
"blacklist": {
"title": "Blacklist",
"type": "object",
"properties": {
"enabled": {
"title": "Enabled",
"type": "boolean",
"placeholder": false,
"default": false,
"required": true,
"description": "Only discover devices not on the blacklist. This won't affect cached devices. (Can't be enabled when the whitelist is already enabled)"
},
"list": {
"title": "Serial Numbers",
"type": "array",
"default": [],
"required": true,
"items": {
"title": "Serial Number",
"type": "string",
"minLength": 12,
"maxLength": 12
},
"uniqueItems": true
}
}
},
"discardKnownDevices": {
"title": "Discard Known Devices",
"type": "boolean",
"placeholder": false,
"default": false,
"required": true,
"description": "Delete known devices from cache if they do not match the white- or blacklist any longer."
}
}
}
}
},
"form": null,
"display": null
}