UNPKG

homebridge-kasa-python

Version:

Plugin that uses Python-Kasa API to communicate with Kasa Devices.

219 lines 6.99 kB
{ "pluginAlias": "KasaPython", "pluginType": "platform", "singular": true, "headerDisplay": "Kasa Python Plugin.<p>Most users do not require configuration and can just click \"Save\" to get started. See [README](https://github.com/ZeliardM/homebridge-kasa-python/blob/master/README.md) for more information.</p>", "footerDisplay": "", "schema": { "type": "object", "properties": { "name": { "title": "Name", "type": "string", "required": true, "default": "KasaPython", "minLength": 1 }, "enableCredentials": { "title": "Enable Credentials", "type": "boolean", "description": "Enable to use username and password for authentication.", "default": false }, "username": { "title": "Username", "type": "string", "description": "Username for the Kasa account. Required for cloud devices.", "placeholder": "Username", "minLength": 1, "condition": { "functionBody": "return model.enableCredentials;" } }, "password": { "title": "Password", "type": "string", "description": "Password for the Kasa account. Required for cloud devices.", "placeholder": "Password", "minLength": 1, "condition": { "functionBody": "return model.enableCredentials && model.username && model.username !== '';" } }, "hideHomeKitMatter": { "title": "Hide HomeKit or Matter Devices", "type": "boolean", "description": "Hide HomeKit or Matter Devices from Homebridge.", "default": true }, "pollingInterval": { "title": "Polling Interval (seconds)", "type": "integer", "description": "How often to check device status in the background (seconds)", "default": 5 }, "discoveryPollingInterval": { "title": "Discovery Polling Interval (seconds)", "type": "integer", "description": "How often to discover new devices in the background (seconds)", "default": 300 }, "offlineInterval": { "title": "Offline Interval (days)", "type": "integer", "description": "How often to remove offline devices in the background (days)", "default": 7 }, "additionalBroadcasts": { "title": "Additional Broadcast Addresses", "type": "array", "items": { "title": "Broadcast Address", "type": "string" }, "description": "List of additional broadcast addresses to discover devices on. Format: 192.168.1.255" }, "manualDevices": { "title": "Manual List Of Devices", "type": "array", "items": { "title": "Manual Device", "type": "object", "properties": { "host": { "type": "string", "title": "Host" }, "alias": { "type": "string", "title": "Alias", "readonly": true, "condition": { "functionBody": "return model.manualDevices && model.manualDevices[arrayIndices] && model.manualDevices[arrayIndices].host && model.manualDevices[arrayIndices].host !== '';" } } } }, "description": "List of devices to manually add." }, "excludeMacAddresses": { "title": "Exclude MAC Addresses", "type": "array", "items": { "title": "MAC Address", "type": "string" }, "description": "List of MAC addresses to exclude from device discovery. Format: AA:BB:CC:11:22:33" }, "waitTimeUpdate": { "title": "Wait Time Update (milliseconds)", "type": "integer", "description": "The time to wait to combine similar commands for a device before sending a command to a device (milliseconds). Default: 100.", "default": 100 }, "advancedPythonLogging": { "title": "Advanced Python Logging", "type": "boolean", "description": "Enable detailed logging for Python scripts.", "default": false } } }, "layout": [ "name", "enableCredentials", { "type": "conditional", "condition": "model.enableCredentials", "items": [ "username", "password" ] }, { "type": "help", "helpvalue": "Username and Password will be required for specific devices only." }, { "type": "fieldset", "title": "HomeKit (Optional)", "description": "Customize HomeKit options.", "expandable": true, "items": [ "hideHomeKitMatter" ] }, { "type": "fieldset", "title": "Device Discovery (Optional)", "description": "Customize device discovery", "expandable": true, "items": [ "pollingInterval", "discoveryPollingInterval", "offlineInterval", { "type": "fieldset", "title": "Additional Broadcasts", "description": "Specify additional broadcast addresses for device discovery.", "expandable": true, "items": [ { "key": "additionalBroadcasts", "type": "array", "items": { "title": "Broadcast Address", "type": "string" } } ] }, { "type": "fieldset", "title": "Manual Devices", "description": "If automatic discovery is not working, try this.", "expandable": true, "items": [ { "key": "manualDevices", "type": "array", "items": [ "manualDevices[].host", "manualDevices[].alias" ] }, { "type": "help", "helpvalue": "Before resorting to manually specifying devices. Try setting the broadcast address and check your router/switch/firewall configuration. You must assign static IP addresses to your devices to use this configuration." } ] }, { "type": "fieldset", "title": "Exclude MAC Addresses", "description": "Specify MAC addresses to exclude from device discovery.", "expandable": true, "items": [ { "key": "excludeMacAddresses", "type": "array", "items": { "title": "MAC Address", "type": "string" } } ] } ] }, { "type": "fieldset", "title": "Advanced Settings (Optional)", "description": "Don't change these, unless you understand what you're doing.", "expandable": true, "items": [ "waitTimeUpdate", "advancedPythonLogging" ] } ] }