generated from homebridge/homebridge-plugin-template
-
Notifications
You must be signed in to change notification settings - Fork 2
/
config.schema.json
162 lines (162 loc) · 9.32 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
{
"pluginAlias": "smartthings-tv",
"pluginType": "platform",
"singular": true,
"schema": {
"type": "object",
"properties": {
"token": {
"title": "SmartThings API token",
"type": "string",
"required": true,
"description": "The SmartThings API token is needed to authenticate the requests sent to the SmartThings API. To generate a token open https://account.smartthings.com/tokens and generate a new one (make sure at least devices is selected)."
},
"capabilityLogging": {
"title": "Capability Logging",
"type": "boolean",
"required": false,
"description": "The SmartThings API returns the list of supported actions of a device as capabilities. For implementing new features it is neccessary to know the scheme the capability uses. Enable this property to log all capabilities of supported SmartThings devices."
},
"cyclicCallsLogging": {
"title": "Cyclic calls Logging",
"type": "boolean",
"required": false,
"description": "Enable debug logging for cyclic calls (e.g. polling)."
},
"registerApplications": {
"title": "Register applications",
"type": "boolean",
"required": false,
"description": "To use installed application as input sources, a predefined list of applications will be used. This list will be checked for availability at the TV(s) and eventually be registered as input sources. Make sure to have the TV(s) turned on when starting your instance as this functionality requires your TV(s) be turned on to determine whether an application is installed or not. On startup the applications will be opened to determine if they are available. Do not use your TV until the input source is being changed back to the first one (usually Live TV)."
},
"registerPictureModes": {
"title": "Register picture modes",
"type": "boolean",
"required": false,
"description": "Registers all available picture modes as separate switches that can be toggled to enable/disable a picture mode. Uses the names as exposed from the SmartThings API."
},
"registerSoundModes": {
"title": "Register sound modes",
"type": "boolean",
"required": false,
"description": "Registers all available sound modes as separate switches that can be toggled to enable/disable a sound mode. Uses the names as exposed from the SmartThings API."
},
"registerVolumeSlider": {
"title": "Register volume slider",
"type": "boolean",
"required": false,
"description": "Registers a separate volume slider accessorry that will be exposed as a light bulb accessory (because there is currently no option to change a speaker volume directly using Home)."
},
"pollInterval": {
"title": "State polling interval [ms]",
"type": "number",
"required": false,
"description": "Some characteristics are not updated automatically (e.g. power state). To enable polling these characteristics automatically set this value to the desired polling interval in milliseconds. Leave empty to disable this functionality."
},
"deviceBlocklist": {
"description": "Devices not to be registered.",
"type": "array",
"items": {
"title": "Device Id",
"type": "string",
"description": "The SmartThings device id. Check the log or go to https://account.smartthings.com/ and get the device id."
}
},
"deviceMappings": {
"description": "Use the device mappings when e.g. turning on the accessory does not work as expected. When a device mapping is available the wake-on-lan functionality is used to turn on the device instead of the SmartThings API. To make use of the functionality you must enter the mapping using the SmartThings device ID and the mac address of the device. If status does not show up properly you can use the ping functionality to determine the device status. To make use of it you must enter the SmartThings device ID and the ip address of the device.",
"type": "array",
"items": {
"type": "object",
"properties": {
"deviceId": {
"title": "Device Id",
"type": "string",
"description": "The SmartThings device id. Check the log or go to https://account.smartthings.com/ and get the device id."
},
"nameOverride": {
"title": "Name override",
"type": "string",
"description": "Use this to override the default display name of the device. Must be configured here because name configured in HomeKit will get lost after restart."
},
"wol": {
"title": "Wake-on-lan functionality",
"type": "boolean",
"description": "Enables usage of wake-on-lan functionality to turn the device on. Use only if using the SmartThings API does not work for your device."
},
"macAddress": {
"title": "Mac address",
"type": "string",
"description": "The mac address of the device to turn device on using wake-on-lan functionality.",
"pattern": "^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})|([0-9a-fA-F]{4}\\.[0-9a-fA-F]{4}\\.[0-9a-fA-F]{4})$",
"condition": {
"functionBody": "return model.deviceMappings[arrayIndices].wol === true;"
}
},
"ping": {
"title": "Ping functionality",
"type": "boolean",
"description": "Enables usage of ping functionality to determine if device is turned on. Use only if using the SmartThings API does not work for your device."
},
"ipAddress": {
"title": "IP address",
"type": "string",
"description": "The IP address of the device (assign a static IP address to make sure it does not change) to determine the status using ping.",
"pattern": "((^\\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\\s*$)|(^\\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(%.+)?\\s*$))",
"condition": {
"functionBody": "return model.deviceMappings[arrayIndices].ping === true;"
}
},
"infoKey": {
"title": "Info key",
"type": "string",
"description": "The key to be emulated when pressing info button in HomeKit remote. The list of valid values must be read from the log as it differs per device. To do so enable capabilityLogging and look for log entry containing the possible values."
},
"inputSources": {
"title": "Custom input sources list",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"title": "Input source name",
"type": "string"
},
"id": {
"title": "Input source id",
"type": "string"
}
},
"required": false,
"description": "Overrides the device's default input sources map to add custom input sources. Check the log for information about the default input sources."
}
},
"applications": {
"title": "Custom application list",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"title": "Application name",
"type": "string"
},
"ids": {
"title": "Application IDs",
"type": "array",
"items": {
"title": "Application ID",
"type": "string",
"pattern": "^\\d+$"
}
}
}
},
"required": false,
"description": "Overrides the default application mapping list to add custom applications."
}
}
}
}
}
}
}