homebridge-unifi-occupancy-.../config.schema.json
2021-02-07 21:47:06 +11:00

208 lines
4.9 KiB
JSON

{
"pluginAlias": "UniFi Occupancy Sensor",
"pluginType": "accessory",
"schema": {
"type": "object",
"properties": {
"name": {
"title": "Sensor Name",
"type": "string",
"default": "Occupancy Sensor",
"minLength": 1,
"required": true
},
"unifi": {
"title": "UniFi Controller Settings",
"type": "object",
"properties": {
"controller": {
"title": "Controller URL",
"type": "string",
"required": true
},
"username": {
"title": "Username",
"type": "string",
"required": true
},
"password": {
"title": "Password",
"type": "string",
"required": true
},
"site": {
"title": "Site",
"type": "string",
"default": "default",
"required": true
},
"secure": {
"title": "Validate the Controller SSL Certificate?",
"type": "boolean"
},
"unifios": {
"title": "Does your controller run on UnifiOS?",
"type": "boolean"
}
}
},
"watch": {
"title": "Watched Devices",
"type": "array",
"items": {
"title": "Device MAC Address",
"type": "string",
"pattern": "^([a-f0-9]{2}:){5}[a-f0-9]{2}$"
}
},
"monitor": {
"title": "Watched Devices",
"type": "array",
"items": {
"title": "Device / AP",
"type": "object",
"properties": {
"device": {
"title": "Device MAC Address",
"type": "string",
"pattern": "^([a-f0-9]{2}:){5}[a-f0-9]{2}$",
"required": true
},
"ap": {
"title": "AP MAC Address",
"type": "string",
"pattern": "^([a-f0-9]{2}:){5}[a-f0-9]{2}$"
}
}
}
},
"mode": {
"title": "Watch Mode",
"type": "string",
"default": "any",
"oneOf": [
{
"title": "Any - only trigger occupancy when at least one watched device is connected",
"enum": [
"any"
]
},
{
"title": "All - only trigger occupancy when all watched devices are connected",
"enum": [
"all"
]
},
{
"title": "None - only trigger occupancy when none of the watched devices are connected",
"enum": [
"none"
]
}
],
"required": true
},
"watchGuests": {
"title": "Watch Guest Networks?",
"type": "boolean"
},
"interval": {
"title": "Interval in seconds to query Unifi Controller (fallback if events are not working)",
"type": "integer",
"required": false,
"default": 1800
}
}
},
"layout": [
{
"type": "flex",
"flex-flow": "row wrap",
"items": [
{
"type": "flex",
"flex-flow": "column",
"items": [
"name",
"unifi.username"
]
},
{
"type": "flex",
"flex-flow": "column",
"items": [
"unifi.controller",
"unifi.password"
]
}
]
},
"unifi.unifios",
"unifi.secure",
"watchGuests",
"unifi.site",
"mode",
"interval",
{
"type": "help",
"helpvalue": "<h4>Monitored Devices</h4><em class='primary-text'>Leave the AP field blank to watch for the device on all APs.</em>"
},
{
"nodescription": true,
"notitle": true,
"key": "monitor",
"type": "array",
"items": [
{
"type": "flex",
"flex-flow": "row wrap",
"items": [
{
"type": "flex",
"flex-flow": "column",
"items": [
"monitor[].device"
]
},
{
"type": "flex",
"flex-flow": "column",
"items": [
"monitor[].ap"
]
}
]
}
]
},
{
"type": "help",
"helpvalue": "<h4>Watched Devices</h4>",
"condition": {
"functionBody": "return (model.watch && model.watch.length)"
}
},
{
"nodescription": true,
"notitle": true,
"key": "watch",
"type": "array",
"items": [
{
"type": "div",
"displayFlex": true,
"flex-direction": "row",
"items": [
{
"key": "watch[]"
}
]
}
],
"condition": {
"functionBody": "return (model.watch && model.watch.length)"
}
}
]
}