homebridge-petkit-feeder-mini-battery
Version:
control your petkit feeder mini to feed your lovely pet. battery mode, it can be used but ten minutes later
366 lines (365 loc) • 13.1 kB
JSON
{
"pluginAlias": "petkit_feeder_mini",
"pluginType": "platform",
"headerDisplay": "For documentation please see https://github.com/elfive/homebridge-petkit-feeder-mini",
"footerDisplay": "",
"schema": {
"log_level": {
"title": "log_level",
"description": "Only logs level higher than the level selected",
"required": true,
"type": "integer",
"default": 2,
"oneOf": [
{ "title": "Debug", "enum": [1] },
{ "title": "Info", "enum": [2] },
{ "title": "Warn", "enum": [3] },
{ "title": "Error", "enum": [4] },
{ "title": "None", "enum": [9] }
]
},
"devices": {
"type": "array",
"items": {
"title": "Petkit Feeder Device",
"type": "object",
"properties": {
"location": {
"title": "Server location, set this value corrent is very important becaus user data are not shared between servers.!",
"description": "• for China mainland users, select 'China mainland'.<br/>• for Asia users select 'Asia'.<br/>• for North America users select 'North America'",
"required": true,
"type": "string",
"default": "cn",
"placeholder": "China mainland",
"oneOf": [
{ "title": "China mainland", "enum": ["cn"] },
{ "title": "Asia", "enum": ["asia"] },
{ "title": "North America", "enum": ["north_america"] }
]
},
"model": {
"title": "Petkit feeder model",
"description": "• for Petkit Feeder Element users, select 'Petkit Feeder Element'.<br/>• for Petkit Feeder Mini users select 'Petkit Feeder Mini'",
"required": true,
"type": "string",
"default": "FeederMini",
"placeholder": "Petkit Feeder Mini",
"oneOf": [
{ "title": "Petkit Feeder Element", "enum": ["Feeder"] },
{ "title": "Petkit Feeder Mini", "enum": ["FeederMini"] }
]
},
"deviceId": {
"title": "Petkit feeder Device ID",
"description": "Buildin your device, will never change.If you just have one Petkit Feeder device, you can ignore this value.",
"required": false,
"type": "string"
},
"enable_http_retry": {
"title": "Enable HTTP retry.",
"description": "Enable or disable HTTP retry function, useful when your device or homebridge has a bad internet connection.",
"required": false,
"type": "boolean",
"default": false
},
"http_retry_count": {
"title": "HTTP retry count",
"description": "max retry times when a http request failed.",
"required": false,
"type": "integer",
"default": 3,
"minimum": 1,
"maximum": 5
},
"headers": {
"title": "Headers",
"type": "array",
"required": true,
"items": {
"type": "object",
"properties": {
"key": {
"title": "Key Name",
"type": "string",
"placeholder": "X-Session",
"required": true,
"typeahead": {
"source": [
"X-Session",
"X-Api-Version",
"X-Timezone",
"X-Client",
"X-TimezoneId",
"X-Locale",
"Accept",
"Accept-Language",
"Accept-Encoding",
"Content-Type",
"User-Agent"
]
}
},
"value": {
"title": "Value",
"type": "string",
"required": false,
"typeahead": {
"source": [
"gzip, deflate",
"application/x-www-form-urlencoded",
"PETKIT/7.18.1 (iPhone; iOS 14.0; Scale/3.00)",
"Asia/Shanghai",
"en_US"
]
}
}
}
}
},
"DropMeal_name": {
"title": "Name of DropMeal Switch shows in HomeKit",
"required": false,
"type": "string",
"default": "DropMeal",
"placeholder": "DropMeal"
},
"MealAmount_name": {
"title": "Name of MealAmount Service shows in HomeKit",
"required": false,
"type": "string",
"default": "MealAmount",
"placeholder": "MealAmount"
},
"FoodStorage_name": {
"title": "Name of FoodStorage Service shows in HomeKit",
"required": false,
"type": "string",
"default": "FoodStorage",
"placeholder": "FoodStorage"
},
"DesiccantLevel_name": {
"title": "Name of DesiccantLevel Service shows in HomeKit",
"required": false,
"type": "string",
"default": "DesiccantLevel",
"placeholder": "DesiccantLevel"
},
"ManualLock_name": {
"title": "Name of ManualLock Service shows in HomeKit",
"required": false,
"type": "string",
"default": "ManualLock",
"placeholder": "ManualLock"
},
"LightMode_name": {
"title": "Name of LightMode Service shows in HomeKit",
"required": false,
"type": "string",
"default": "LightMode",
"placeholder": "LightMode"
},
"Battery_name": {
"title": "Name of Battery Service shows in HomeKit",
"required": false,
"type": "string",
"default": "Battery",
"placeholder": "Battery"
},
"enable_polling": {
"title": "Automatically update device status from Petkit server",
"required": false,
"type": "boolean",
"default": true
},
"polling_interval": {
"title": "Update device status interval from Petkit server.",
"required": false,
"type": "integer",
"default": 60,
"minimum": 60,
"maximum": 3600
},
"enable_desiccant": {
"title": "enable desiccant monitor function in homekit",
"required": false,
"type": "boolean",
"default": false
},
"alert_desiccant_threshold": {
"title": "shows an alert in homekit when desiccant left days less than this value(days).",
"required": false,
"type": "integer",
"default": 7,
"minimum": 1,
"maximum": 29
},
"enable_autoreset_desiccant": {
"title": "enable auto reset desiccant left days.",
"required": false,
"type": "boolean",
"default": false
},
"reset_desiccant_threshold": {
"title": "auto reset desiccant if desiccant left days reaches this value(days).",
"required": false,
"type": "integer",
"default": 5,
"minimum": 1,
"maximum": 29
},
"enable_manualLock": {
"title": "enable manual lock service in Homekit.",
"required": false,
"type": "boolean",
"default": false,
"placeholder": "false"
},
"enable_lightMode": {
"title": "enable light mode service in Homekit.",
"required": false,
"type": "boolean",
"default": false,
"placeholder": "false"
},
"reverse_foodStorage_indicator": {
"title": "Reverse food storage indicator status in Homekit.",
"required": false,
"type": "boolean",
"default": false,
"placeholder": "false"
},
"ignore_battery_when_charging": {
"title": "Ignore battery status when charging.",
"required": false,
"type": "boolean",
"default": false
},
"fast_response": {
"title": "When received a Homekit set request, return immediately, ignore the result.<br/>this is useful when your device or homebridge has a bad internet connection.",
"required": false,
"type": "boolean",
"default": false,
"placeholder": "false"
}
}
}
}
},
"form": null,
"display": null,
"layout": [
{
"ref": "basic",
"type": "section",
"expandable": true,
"expanded": true,
"title": "Platform settings",
"items": ["log_level"]
},
{
"key": "devices",
"type": "array",
"orderable": false,
"expandable": true,
"expanded": false,
"buttonText": "Add Device",
"items": [
{
"key": "devices[]",
"type": "section",
"expandable": true,
"expanded": false,
"items": [
"devices[].location",
"devices[].deviceId",
"devices[].model",
{
"type": "section",
"expandable": true,
"expanded": false,
"title": "HTTP request settings",
"items": [
{
"key": "devices[].headers",
"type": "array",
"orderable": false,
"buttonText": "Add Header Set",
"items": [
{
"type": "flex",
"flex-flow": "row wrap",
"items": [
"devices[].headers[].key",
"devices[].headers[].value"
]
}
]
},
{
"type": "help",
"helpvalue": "<p>• The HTTP request headers is the key to make this plugin work.<br/>• At least, you must fufill the \"X-Session\" header set.<br/>• This plugin will fulfill the headers with default header value that you not provide:</p><code>X-Client: ios(14.0;iPhone12,3)<br>Accept: */*<br>X-Timezone: 8.0<br>F-Session: -----SAME AS X-Session-----<br>Accept-Language: en-US;q=1, zh-Hans-US;q=0.9<br>Accept-Encoding: gzip, deflate<br>X-Api-Version: 7.18.1<br>Content-Type: application/x-www-form-urlencoded<br>User-Agent: PETKIT/7.18.1 (iPhone; iOS 14.0; Scale/3.00)<br>X-TimezoneId: Asia/Shanghai<br>X-Locale: en_US</code>"
},
"devices[].enable_http_retry",
"devices[].http_retry_count"
]
},
{
"type": "section",
"expandable": true,
"expanded": false,
"title": "Service name settings",
"items": [
{
"type": "help",
"helpvalue": "Some of these name setting may not showing in Home app, you'd better leave these names blank."
},
"devices[].DropMeal_name",
"devices[].MealAmount_name",
"devices[].FoodStorage_name",
"devices[].DesiccantLevel_name",
"devices[].ManualLock_name",
"devices[].LightMode_name",
"devices[].Battery_name"
]
},
{
"type": "section",
"expandable": true,
"expanded": false,
"title": "Device desiccant settings",
"items": [
"devices[].enable_desiccant",
"devices[].alert_desiccant_threshold",
"devices[].enable_autoreset_desiccant",
"devices[].reset_desiccant_threshold"
]
},
{
"type": "section",
"expandable": true,
"expanded": false,
"title": "Polling settings",
"items": [
"devices[].enable_polling",
"devices[].polling_interval"
]
},
{
"type": "section",
"expandable": true,
"expanded": false,
"title": "Other settings",
"items": [
"devices[].enable_manualLock",
"devices[].enable_lightMode",
"devices[].reverse_foodStorage_indicator",
"devices[].ignore_battery_when_charging",
"devices[].fast_response"
]
}
]
}
]
}
]
}