{
    "i18n": true,
    "type": "tabs",
    "tabsStyle": {
        "width": "calc(100% - 100px)"
    },
    "items": {
        "generalTab": {
            "type": "panel",
            "label": "General",
            "items": {
                "authenticationHeader": {
                    "text": "Authentication",
                    "type": "header",
                    "size": 1
                },
                "Identifier": {
                    "label": "Identifier",
                    "help": "Get it from https://dev.myuplink.com/apps",
                    "type": "text",
                    "trim": true,
                    "xs": 12,
                    "sm": 12,
                    "md": 6,
                    "lg": 6,
                    "xl": 6
                },
                "Secret": {
                    "label": "Secret",
                    "help": "Get it from https://dev.myuplink.com/apps",
                    "type": "password",
                    "visible": true,
                    "xs": 12,
                    "sm": 12,
                    "md": 6,
                    "lg": 6,
                    "xl": 6
                },
                "settingsHeader": {
                    "text": "Settings",
                    "type": "header",
                    "size": 1
                },
                "Interval": {
                    "label": "Refresh interval",
                    "help": "Time in minutes of fetching data from myUplink.",
                    "type": "number",
                    "min": 1,
                    "default": 1,
                    "xs": 12,
                    "sm": 12,
                    "md": 6,
                    "lg": 4,
                    "xl": 4
                },
                "Language": {
                    "label": "Language",
                    "help": "The language for naming the data objects.",
                    "type": "select",
                    "options": [
                        {
                            "label": "English",
                            "value": "en"
                        },
                        {
                            "label": "German",
                            "value": "de"
                        },
                        {
                            "label": "Swedish",
                            "value": "sv"
                        }
                    ],
                    "xs": 12,
                    "sm": 12,
                    "md": 6,
                    "lg": 4,
                    "xl": 4
                },
                "parameterDataHeader": {
                    "text": "Parameter data",
                    "type": "header",
                    "size": 2
                },
                "AddData": {
                    "label": "Retrieve parameter data",
                    "help": "Parameter data will be retrieved and added to the object tree.",
                    "type": "checkbox",
                    "xs": 12,
                    "sm": 12,
                    "md": 12,
                    "lg": 6,
                    "xl": 6
                },
                "AddRawData": {
                    "label": "Add object with the raw JSON data",
                    "help": "An object containing the received data as a JSON string is added to the object tree.",
                    "type": "checkbox",
                    "disabled": "data.AddData == false",
                    "xs": 12,
                    "sm": 12,
                    "md": 12,
                    "lg": 6,
                    "xl": 6
                },
                "GroupData": {
                    "label": "Group parameter data by received category",
                    "help": "The parameter data is grouped by the categories received.",
                    "type": "checkbox",
                    "disabled": "data.AddData == false",
                    "xs": 12,
                    "sm": 12,
                    "md": 12,
                    "lg": 6,
                    "xl": 6
                },
                "notificationsHeader": {
                    "text": "Notifications",
                    "type": "header",
                    "size": 2
                },
                "AddActiveNotifications": {
                    "label": "Retrieve active notifications",
                    "help": "Active notifications will be retrieved and added to the object tree.",
                    "type": "checkbox",
                    "xs": 12,
                    "sm": 12,
                    "md": 12,
                    "lg": 6,
                    "xl": 6
                },
                "AddRawActiveNotifications": {
                    "label": "Add object with active notifications as raw JSON",
                    "help": "An object containing the received active notifications as a JSON string is added to the object tree.",
                    "type": "checkbox",
                    "disabled": "data.AddActiveNotifications == false",
                    "xs": 12,
                    "sm": 12,
                    "md": 12,
                    "lg": 6,
                    "xl": 6
                }
            }
        },
        "renameIdsTab": {
            "type": "panel",
            "label": "Rename IDs",
            "items": {
                "renameIdsHeader": {
                    "text": "Rename IDs",
                    "type": "header",
                    "size": 1
                },
                "_helpText1": {
                    "text": "Object IDs in the object tree are specified by the myuplink API. However, these can be renamed with these options by specifying the ID of the API (original ID) and a new ID. If objects with the original ID already exist in the object tree, they must be deleted manually - these objects will not be updated!",
                    "type": "staticText",
                    "xs": 12,
                    "sm": 12,
                    "md": 12,
                    "lg": 12,
                    "xl": 12
                },
                "systemsHeader": {
                    "text": "Systems",
                    "type": "header",
                    "size": 2
                },
                "RenameSystemIds": {
                    "type": "table",
                    "import": true,
                    "export": true,
                    "uniqueColumns": ["OriginalId", "NewId"],
                    "xs": 12,
                    "sm": 12,
                    "md": 12,
                    "lg": 12,
                    "xl": 12,
                    "items": [
                        {
                            "title": "Original ID",
                            "attr": "OriginalId",
                            "type": "text",
                            "width": "70%"
                        },
                        {
                            "title": "New ID",
                            "attr": "NewId",
                            "type": "text",
                            "width": "30%"
                        }
                    ]
                },
                "devicesHeader": {
                    "text": "Devices",
                    "type": "header",
                    "size": 2
                },
                "RenameDeviceIds": {
                    "type": "table",
                    "import": true,
                    "export": true,
                    "uniqueColumns": ["OriginalId", "NewId"],
                    "xs": 12,
                    "sm": 12,
                    "md": 12,
                    "lg": 12,
                    "xl": 12,
                    "items": [
                        {
                            "title": "Original ID",
                            "attr": "OriginalId",
                            "type": "text",
                            "width": "70%"
                        },
                        {
                            "title": "New ID",
                            "attr": "NewId",
                            "type": "text",
                            "width": "30%"
                        }
                    ]
                },
                "categoriesHeader": {
                    "text": "Categories",
                    "type": "header",
                    "size": 2
                },
                "RenameCategories": {
                    "type": "table",
                    "import": true,
                    "export": true,
                    "uniqueColumns": ["OriginalId", "NewId"],
                    "xs": 12,
                    "sm": 12,
                    "md": 12,
                    "lg": 12,
                    "xl": 12,
                    "items": [
                        {
                            "title": "Original ID",
                            "attr": "OriginalId",
                            "type": "text",
                            "width": "60%"
                        },
                        {
                            "title": "New ID",
                            "attr": "NewId",
                            "type": "text",
                            "width": "40%"
                        }
                    ]
                },
                "dataHeader": {
                    "text": "Parameter Data IDs",
                    "type": "header",
                    "size": 2
                },
                "_helpText2": {
                    "text": "A Parameter data ID can also be assigned to a category here. A folder is created for this category. The category sent by the API is then ignored.",
                    "type": "staticText",
                    "xs": 12,
                    "sm": 12,
                    "md": 12,
                    "lg": 12,
                    "xl": 12
                },
                "_downloadLink": {
                    "label": "Identifiers and categories for a few heat pumps can be downloaded here and imported into the table.",
                    "type": "staticLink",
                    "href": "https://github.com/sebilm/ioBroker.myuplink/tree/main/parameters",
                    "xs": 12,
                    "sm": 12,
                    "md": 12,
                    "lg": 12,
                    "xl": 12
                },
                "RenameDataIds": {
                    "type": "table",
                    "import": true,
                    "export": true,
                    "uniqueColumns": ["OriginalId", "NewId"],
                    "xs": 12,
                    "sm": 12,
                    "md": 12,
                    "lg": 12,
                    "xl": 12,
                    "items": [
                        {
                            "title": "Original ID",
                            "attr": "OriginalId",
                            "type": "text",
                            "width": "30%"
                        },
                        {
                            "title": "New ID",
                            "attr": "NewId",
                            "type": "text",
                            "width": "30%"
                        },
                        {
                            "title": "Category",
                            "attr": "Category",
                            "type": "text",
                            "width": "40%"
                        }
                    ]
                }
            }
        },
        "extendedTab": {
            "type": "panel",
            "label": "Extended",
            "items": {
                "acgHeader": {
                    "text": "Authorization Code Grant Flow",
                    "type": "header",
                    "size": 1
                },
                "_helpText": {
                    "text": "These and the following options are not required in most cases.",
                    "type": "staticText",
                    "xs": 12,
                    "sm": 12,
                    "md": 12,
                    "lg": 12,
                    "xl": 12
                },
                "UseAuthorizationCodeGrant": {
                    "label": "Use Authorization Code Grant Flow",
                    "type": "checkbox",
                    "xs": 12,
                    "sm": 12,
                    "md": 12,
                    "lg": 12,
                    "xl": 12
                },
                "CallbackURL": {
                    "label": "Callback URL",
                    "help": "Does not need to be changed. You can use https://sebilm.github.io/ioBroker.myuplink/myuplink.html",
                    "type": "text",
                    "disabled": "data.UseAuthorizationCodeGrant == false",
                    "xs": 12,
                    "sm": 12,
                    "md": 12,
                    "lg": 12,
                    "xl": 12
                },
                "_link": {
                    "type": "staticLink",
                    "button": true,
                    "variant": "contained",
                    "label": "Click here to generate the Auth Code on myUplink.",
                    "href": "https://api.myuplink.com/oauth/authorize?response_type=code&client_id=${data.Identifier}&scope=READSYSTEM%20WRITESYSTEM&redirect_uri=${data.CallbackURL}&state=init",
                    "disabled": "data.UseAuthorizationCodeGrant == false",
                    "xs": 12,
                    "sm": 12,
                    "md": 12,
                    "lg": 12,
                    "xl": 12
                },
                "AuthCode": {
                    "label": "Auth Code",
                    "help": "Paste your Auth Code here.",
                    "type": "password",
                    "visible": true,
                    "disabled": "data.UseAuthorizationCodeGrant == false",
                    "xs": 12,
                    "sm": 12,
                    "md": 12,
                    "lg": 12,
                    "xl": 12
                }
            }
        }
    }
}
