homebridge-airport-express-connected
Version:
Homebridge plugin that uses mDNS request data to show a occupancy sensor that is activated when connecting to an airport express devices via AirPlay 2.
174 lines (173 loc) • 9.26 kB
JSON
{
"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
}