{
    "pluginAlias": "petkit_feeder_fresh_element",
    "pluginType": "accessory",
    "headerDisplay": "",
    "footerDisplay": "",
    "schema": {
        "name": {
            "title": "Device name shows in HomeKit",
            "description": "If autoDeviceInfo is set to true, it will overwrited with the name in your Petkit app.<br/>We don't need it, but homebridge need it.",
            "required": true,
            "type": "string",
            "default": "PetkitFeederFreshElement",
            "placeholder": "PetkitFeederFreshElement"
        },
        "DropMeal_name": {
            "title": "DropMeal Service name shows in HomeKit",
            "required": false,
            "type": "string",
            "default": "DropMeal",
            "placeholder": "DropMeal"
        },
        "MealAmount_name": {
            "title": "MealAmount Service name shows in HomeKit",
            "required": false,
            "type": "string",
            "default": "MealAmount",
            "placeholder": "MealAmount"
        },
        "FoodStorage_name": {
            "title": "FoodStorage Service name shows in HomeKit",
            "required": false,
            "type": "string",
            "default": "FoodStorage",
            "placeholder": "FoodStorage"
        },
        "DesiccantLevel_name": {
            "title": "DesiccantLevel Service name shows in HomeKit",
            "required": false,
            "type": "string",
            "default": "DesiccantLevel",
            "placeholder": "DesiccantLevel"
        },
        "ManualLock_name": {
            "title": "ManualLock Service name shows in HomeKit",
            "required": false,
            "type": "string",
            "default": "ManualLock",
            "placeholder": "ManualLock"
        },
        "LightMode_name": {
            "title": "LightMode Service name shows in HomeKit",
            "required": false,
            "type": "string",
            "default": "LightMode",
            "placeholder": "LightMode"
        },
        "Battery_name": {
            "title": "Battery Service name shows in HomeKit",
            "required": false,
            "type": "string",
            "default": "Battery",
            "placeholder": "Battery"
        },
        "location": {
            "title": "Server location, set this value corrent is very important becaus user data are not shared between servers.!",
            "description": "",
            "required": true,
            "type": "string",
            "default": "north_america",
            "placeholder": "North America",
            "oneOf": [
                { "title": "China mainland", "enum": ["cn"] },
                { "title": "Asia", "enum": ["asia"] },
                { "title": "North America", "enum": ["north_america"] }
            ]
        },
        "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.24.0 (iPhone; iOS 14.5; Scale/3.00)",
                                "America/Los_Angeles",
                                "en_US"
                            ]
                        }
                    }
                }
            }
        },
        "deviceId": {
            "title": "Petkit feeder Device ID",
            "description": "Buildin your device, will never change.If you just have one Petkit feeder mini, you can ignore this value.",
            "required": false,
            "type": "string"
        },
        "autoDeviceInfo": {
            "title": "Automatically retrieve device info from Petkit server",
            "description": "Only retrieve infomation: timezone, name, SN and firmware version",
            "required": false,
            "type": "boolean",
            "default": false,
            "placeholder": "false"
        },
        "sn": {
            "title": "Serial number shows in homekit app",
            "description": "If autoDeviceInfo is set to true, it will overwrited with the SN of your device.",
            "required": false,
            "type": "string",
            "default": "PetkitFeederFreshElement",
            "placeholder": "PetkitFeederFreshElement"
        },
        "firmware": {
            "title": "Firmware version shows in homekit app",
            "description": "If autoDeviceInfo is set to true, it will overwrited with the firmware version of your device.",
            "required": false,
            "type": "string",
            "default": "1.0.0",
            "placeholder": "1.0.0"
        },
        "manufacturer": {
            "title": "Manufacturer shows in homekit app",
            "description": "The manufacturer of your device.",
            "required": false,
            "type": "string",
            "default": "Petkit",
            "placeholder": "1.0.0"
        },
        "model": {
            "title": "Model shows in homekit app",
            "description": "The model of your device.",
            "required": false,
            "type": "string",
            "default": "Petkit Feeder Fresh Element",
            "placeholder": "1.0.0"
        },
        "enable_polling": {
            "title": "Automatically update device status from Petkit server",
            "required": false,
            "type": "boolean",
            "default": true,
            "placeholder": "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"
        },
        "fast_response": {
            "title": "When received a Homekit set request, return immediately, ignore the result.<br/>this is useful when your Petkit device has a bad internet connection.",
            "required": false,
            "type": "boolean",
            "default": false,
            "placeholder": "false"
        }
    },
    "form": null,
    "display": null,
    "layout": [
        {
            "ref": "basic",
            "type": "fieldset",
            "expandable": true,
            "expanded": true,
            "title": "Basic settings",
            "items": [
                {
                    "type": "flex",
                    "flex-flow": "column",
                    "items": [
                        "name",
                        "location",
                        "deviceId"
                    ]
                }
            ]
        },
        {
            "ref": "service_name",
            "type": "fieldset",
            "expandable": true,
            "expanded": true,
            "title": "Service name settings",
            "items": [
                {
                    "type": "flex",
                    "flex-flow": "column",
                    "items": [
                        "DropMeal_name",
                        "MealAmount_name",
                        "FoodStorage_name",
                        "DesiccantLevel_name",
                        "ManualLock_name",
                        "LightMode_name",
                        "Battery_name"
                    ]
                }
            ]
        },
        {
            "ref": "requests",
            "type": "fieldset",
            "expandable": true,
            "expanded": false,
            "title": "HTTP request header",
            "items": [
                {
                    "type": "help",
                    "helpvalue": "<h5>Description</h5><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 that you not provide, here is the default headers:</p><code>X-Client: (iPhone; iOS 14.5; Scale/3.00)<br>Accept: */*<br>X-Timezone: -8.0<br>F-Session: -----SAME AS X-Session-----<br>Accept-Language: en-US;q=1-<br>Accept-Encoding: gzip, deflate<br>X-Api-Version: 7.24.0<br>Content-Type: application/x-www-form-urlencoded<br>User-Agent:PETKIT/7.24.0 (iPhone; iOS 14.5; Scale/3.00)<br>X-TimezoneId: America/Los_Angeles<br>X-Locale: en_US</code>"
                },
                {
                    "key": "headers",
                    "type": "array",
                    "orderable": false,
                    "buttonText": "Add Header Set",
                    "items": [
                        {
                            "type": "flex",
                            "flex-flow": "row wrap",
                            "items": [
                              "headers[].key",
                              "headers[].value"
                            ]
                        }
                    ]
                }
            ]
        },
        {
            "ref": "infomation",
            "type": "fieldset",
            "expandable": true,
            "expanded": false,
            "title": "Device infomation settings",
            "items": [
                "autoDeviceInfo",
                "sn",
                "firmware",
                "manufacturer",
                "model"
            ]
        },
        {
            "ref": "desiccant",
            "type": "fieldset",
            "expandable": true,
            "expanded": false,
            "title": "Device desiccant settings",
            "items": [
                "enable_desiccant",
                "alert_desiccant_threshold",
                "enable_autoreset_desiccant",
                "reset_desiccant_threshold"
            ]
        },
        {
            "ref": "polling",
            "type": "fieldset",
            "expandable": true,
            "expanded": false,
            "title": "Polling settings",
            "items": [
                "enable_polling",
                "polling_interval"
            ]
        },
        {
            "ref": "others",
            "type": "fieldset",
            "expandable": true,
            "expanded": false,
            "title": "Other settings",
            "items": [
                "enable_manualLock",
                "enable_lightMode",
                "reverse_foodStorage_indicator",
                "fast_response"
            ]
        }
    ]
}