UNPKG

homebridge-tsvesync

Version:

Homebridge plugin for VeSync devices including Levoit air purifiers, humidifiers, and Etekcity smart outlets

180 lines (179 loc) 5.4 kB
{ "pluginAlias": "TSVESyncPlatform", "pluginType": "platform", "singular": true, "headerDisplay": "Homebridge plugin for VeSync devices including Levoit air purifiers humidifiers and Etekcity smart outlets.", "footerDisplay": "For help please visit the [GitHub repository](https://github.com/mickgiles/homebridge-tsvesync).", "schema": { "type": "object", "properties": { "name": { "title": "Name", "type": "string", "default": "TSVESync", "required": true }, "username": { "title": "VeSync Username", "type": "string", "required": true, "description": "Your VeSync account email address" }, "password": { "title": "VeSync Password", "type": "string", "required": true, "description": "Your VeSync account password" }, "updateInterval": { "title": "Update Interval", "type": "integer", "default": 30, "minimum": 10, "maximum": 600, "description": "How often to update device status (in seconds)" }, "debug": { "title": "Debug Mode", "type": "boolean", "default": false, "description": "Enable debug logging" }, "apiUrl": { "title": "API URL", "type": "string", "description": "Custom VeSync API URL (advanced users only)" }, "exclude": { "title": "Exclude Devices", "type": "object", "properties": { "type": { "title": "Exclude by Type", "type": "array", "items": { "type": "string", "enum": [ "fan", "outlet", "switch", "bulb", "humidifier", "purifier" ] }, "uniqueItems": true, "description": "Exclude devices by type" }, "model": { "title": "Exclude by Model", "type": "array", "items": { "type": "string" }, "uniqueItems": true, "description": "Exclude devices by model (e.g., 'Core300S', 'LV600S')" }, "name": { "title": "Exclude by Name", "type": "array", "items": { "type": "string" }, "uniqueItems": true, "description": "Exclude devices by exact name match" }, "namePattern": { "title": "Exclude by Name Pattern", "type": "array", "items": { "type": "string" }, "uniqueItems": true, "description": "Exclude devices by name pattern (regex)" }, "id": { "title": "Exclude by ID", "type": "array", "items": { "type": "string" }, "uniqueItems": true, "description": "Exclude devices by ID (cid/uuid)" } } }, "retry": { "title": "Retry Configuration", "type": "object", "properties": { "maxRetries": { "title": "Maximum Retries", "type": "integer", "default": 3, "minimum": 1, "maximum": 10, "description": "Maximum number of retry attempts for failed operations" }, "initialDelay": { "title": "Initial Delay", "type": "integer", "default": 2000, "minimum": 500, "maximum": 10000, "description": "Initial delay before first retry (in milliseconds)" }, "maxDelay": { "title": "Maximum Delay", "type": "integer", "default": 10000, "minimum": 1000, "maximum": 60000, "description": "Maximum delay between retries (in milliseconds)" } } }, "quotaManagement": { "title": "API Quota Management", "type": "object", "properties": { "enabled": { "title": "Enable Quota Management", "type": "boolean", "default": true, "description": "Enable API quota management to prevent exceeding VeSync's daily limits" }, "bufferPercentage": { "title": "Buffer Percentage", "type": "integer", "default": 95, "minimum": 50, "maximum": 100, "description": "Percentage of the calculated quota to use (lower values provide more safety margin)" }, "priorityMethods": { "title": "Priority Methods", "type": "array", "items": { "type": "string" }, "default": [ "turnOn", "turnOff", "setMode", "setTargetHumidity", "setBrightness", "setColorTemperature", "setColor", "changeFanSpeed", "setOscillation", "setChildLock" ], "uniqueItems": true, "description": "API methods that will be allowed even when quota is exceeded" } } } } } }