homebridge-tsvesync
Version:
Homebridge plugin for VeSync devices including Levoit air purifiers, humidifiers, and Etekcity smart outlets
180 lines (179 loc) • 5.4 kB
JSON
{
"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"
}
}
}
}
}
}