Перейти к содержанию

Общая структура JSON

Конфигурационный JSON-файл описывает конфигурацию панели Skirell-Fluxa, которая состоит из нескольких страниц screens, каждая из которых содержит до шести блоков blocks. Каждый блок представляет собой элемент управления или отображения, соответствующий определенному устройству или функции (сцена, свет, климат, штора, датчик, музыка) block. Ниже представлено объяснение структуры и работы файла конфигурации.

Общая структура конфигурации

Конфигурационный JSON-файл организован как массив страниц screens, каждая из которых содержит номер страницы page и массив блоков blocks. Пример общей структуры:

{
    "screens": [
        {
            "page": 1,
            "blocks": []
        },
        {
            "page": 2,
            "blocks": []
        }
    ]
}
  • screens: Основной массив, содержащий все страницы панели.
  • page: Уникальный номер страницы (целое число).
  • blocks: Массив блоков, отображаемых на странице. Может содержать от 0 до 6 блоков.

Блоки

Блоки представляют собой элементы интерфейса, которые располагаются на странице в следующем порядке:

Расположение страницы до 4х блоков

  • Блок 1: Слева сверху.
  • Блок 2: Справа сверху.
  • Блок 3: Слева снизу.
  • Блок 4: Справа снизу.
"blocks": [
    {
        "block": 1,
        "type": "тип блока",
        "data": {}
    },
    {
        "block": 2,
        "type": "тип блока",
        "data": {}
    },
    {
        "block": 3,
        "type": "тип блока",
        "data": {}
    },
    {
        "block": 4,
        "type": "тип блока",
        "data": {}
    }
]

Расположение страницы до 6 блоков

  • Блок 1: Слева сверху.
  • Блок 2: Справа сверху.
  • Блок 3: Слева посередине.
  • Блок 4: Справа посередине.
  • Блок 5: Слева снизу.
  • Блок 6: Справа снизу.
"blocks": [
    {
        "block": 1,
        "type": "тип блока",
        "data": {}
    },
    {
        "block": 2,
        "type": "тип блока",
        "data": {}
    },
    {
        "block": 3,
        "type": "тип блока",
        "data": {}
    },
    {
        "block": 4,
        "type": "тип блока",
        "data": {}
    },
    {
        "block": 5,
        "type": "тип блока",
        "data": {}
    },
    {
        "block": 6,
        "type": "тип блока",
        "data": {}
    }
]

Особенности блоков

Если требуется меньше четырех блоков, ненужные блоки просто не указываются в массиве blocks. Пример для двух блоков:

"blocks": [
    {
        "block": 1,
        "type": "тип блока",
        "data": {}
    },
    {
        "block": 2,
        "type": "тип блока",
        "data": {}
    }
]

Пустая страница

Для пустой страницы массив blocks остается пустым:

"blocks": []

Содержание блоков

Каждый блок содержит:

  • block: Номер блока (1–6).
  • type: Тип блока (scene, light, climate, cover, sensor, music).
  • data: Объект с параметрами, который содержит все настройки блока(Название, Иконка, MQTT-топик, MQTT-сообщение и т. д.).

Типы блоков и их подтипы

Блоки делятся на типы, некоторые из которых имеют подтипы variant_type. Если тип блока поддерживает подтипы, поле variant_type обязательно, а параметры подтипа указываются в объекте variant. Структура data:

"data": {
    // Общие параметры
    "variant_type": "подтип",
    "variant": {
        // Параметры подтипа
    }
}

Внутри data указываются все параметры блока.

"data": {
    // Общие параметры
}

Обычные блоки:

Некоторые блоки имеют подтипы. В этом случае data делится на две части: общие параметры блока (название, иконка и т. д.) и параметры подтипа — они указываются отдельно в объекте variant. Тип подтипа задаётся через variant_type.

Например, блок освещения имеет 4 подтипа (диммер, RGB и т. д.) — общие параметры одинаковы для всех, а в variant указывается то, что относится к конкретному подтипу.

"data": {
    // Общие параметры
    "variant_type": "название подтипа",
    "variant": {
        // Параметры подтипа
    }
}

Обычные блоки:

Пример со всеми устройствами
{
    "screens": [
        {
            "page": 1,
            "blocks": [
                {
                    "block": 1,
                    "type": "scene",
                    "data": {
                        "param_1": "Сцена",
                        "param_2": "Двор",
                        "param_3": "Вечер",
                        "icon": "\uDB81\uDD94",
                        "command_topic": "panel/scenes/1",
                        "payload": "1"
                    }
                },
                {
                    "block": 2,
                    "type": "scene",
                    "data": {
                        "param_1": "Сцена",
                        "param_2": "Гостиная",
                        "param_3": "Кино",
                        "icon": "\uDB81\uDC2E",
                        "command_topic": "panel/scenes/2",
                        "payload": "1"
                    }
                },
                {
                    "block": 3,
                    "type": "scene",
                    "data": {
                        "param_1": "Сцена",
                        "param_2": "Кухня",
                        "param_3": "Ужин",
                        "icon": "\uDB81\uDCA3",
                        "command_topic": "panel/scenes/3",
                        "payload": "1"
                    }
                },
                {
                    "block": 4,
                    "type": "scene",
                    "data": {
                        "param_1": "Сцена",
                        "param_2": "Дом",
                        "param_3": "Выкл все",
                        "icon": "\uDB82\uDD06",
                        "command_topic": "panel/scenes/4",
                        "payload": "1"
                    }
                }
            ]
        },
        {
            "page": 2,
            "blocks": [
                {
                    "block": 1,
                    "type": "switch",
                    "data": {
                        "param_1": "Климат",
                        "param_2": "Вентиляция",
                        "icon": "\uDB80\uDE10",
                        "color": "color_green",
                        "OnOff_command_topic": "panel/switch/1/OnOff_command",
                        "OnOff_state_topic": "panel/switch/1/OnOff_state",
                        "payload_on": "1",
                        "payload_off": "0"
                    }
                },
                {
                    "block": 2,
                    "type": "switch",
                    "data": {
                        "param_1": "Свет",
                        "param_2": "Автоматизация",
                        "icon": "\uDB86\uDC01",
                        "color": "color_white",
                        "OnOff_command_topic": "panel/switch/2/OnOff_command",
                        "OnOff_state_topic": "panel/switch/2/OnOff_state",
                        "payload_on": "1",
                        "payload_off": "0"
                    }
                },
                {
                    "block": 3,
                    "type": "switch",
                    "data": {
                        "param_1": "Кровать",
                        "param_2": "Розетка",
                        "icon": "\uDB84\uDD07",
                        "color": "color_white",
                        "OnOff_command_topic": "panel/switch/3/OnOff_command",
                        "OnOff_state_topic": "panel/switch/3/OnOff_state",
                        "payload_on": "1",
                        "payload_off": "0"
                    }
                },
                {
                    "block": 4,
                    "type": "switch",
                    "data": {
                        "param_1": "Раб. зона",
                        "param_2": "Розетка",
                        "icon": "\uDB84\uDD07",
                        "color": "color_white",
                        "OnOff_command_topic": "panel/switch/4/OnOff_command",
                        "OnOff_state_topic": "panel/switch/4/OnOff_state",
                        "payload_on": "1",
                        "payload_off": "0"
                    }
                }
            ]
        },
        {
            "page": 3,
            "blocks": [
                {
                    "block": 1,
                    "type": "sensor",
                    "data": {
                        "param_1": "Температура",
                        "measure": "°C",
                        "min": 10,
                        "stage_1": 20,
                        "stage_2": 30,
                        "max": 40,
                        "color_1": "color_blue",
                        "color_2": "color_green",
                        "color_3": "color_red",
                        "state_topic": "panel/sensor/1/state"
                    }
                },
                {
                    "block": 2,
                    "type": "sensor",
                    "data": {
                        "param_1": "Влажность",
                        "measure": "%",
                        "min": 20,
                        "stage_1": 40,
                        "stage_2": 60,
                        "max": 80,
                        "color_1": "color_green",
                        "color_2": "color_yellow",
                        "color_3": "color_red",
                        "state_topic": "panel/sensor/2/state"
                    }
                },
                {
                    "block": 3,
                    "type": "sensor",
                    "data": {
                        "param_1": "Углекислый газ",
                        "measure": "ppm",
                        "min": 400,
                        "stage_1": 800,
                        "stage_2": 1200,
                        "max": 2000,
                        "color_1": "color_green",
                        "color_2": "color_yellow",
                        "color_3": "color_red",
                        "state_topic": "panel/sensor/3/state"
                    }
                },
                {
                    "block": 4,
                    "type": "sensor",
                    "data": {
                        "param_1": "Качество воздуха",
                        "measure": "ppb",
                        "min": 0,
                        "stage_1": 200,
                        "stage_2": 500,
                        "max": 1000,
                        "color_1": "color_green",
                        "color_2": "color_yellow",
                        "color_3": "color_red",
                        "state_topic": "panel/sensor/4/state"
                    }
                }
            ]
        },
        {
            "page": 4,
            "blocks": [
                {
                    "block": 1,
                    "type": "light",
                    "data": {
                        "param_1": "Фонари",
                        "param_2": "Двор",
                        "setting_name": "Фонари",
                        "icon": "\uDB84\uDC20",
                        "variant_type": "light_variant_OnOff",
                        "variant": {
                            "OnOff_command_topic": "panel/light/1/OnOff_command",
                            "OnOff_state_topic": "panel/light/1/OnOff_state",
                            "payload_on": "1",
                            "payload_off": "0"
                        }
                    }
                },
                {
                    "block": 2,
                    "type": "light",
                    "data": {
                        "param_1": "Торшеры",
                        "param_2": "Спальня",
                        "setting_name": "Торшеры",
                        "icon": "\uDB85\uDFD1",
                        "variant_type": "light_variant_dimmer",
                        "variant": {
                            "OnOff_command_topic": "panel/light/2/OnOff_command",
                            "OnOff_state_topic": "panel/light/2/OnOff_state",
                            "payload_on": "1",
                            "payload_off": "0",
                            "brightness_command_topic": "panel/light/2/brightness_command",
                            "brightness_state_topic": "panel/light/2/brightness_state",
                            "brightness_scale": 255
                        }
                    }
                },
                {
                    "block": 3,
                    "type": "light",
                    "data": {
                        "param_1": "Подсветка",
                        "param_2": "Раб. место",
                        "setting_name": "Подсветка",
                        "icon": "\uDB84\uDC51",
                        "variant_type": "light_variant_color",
                        "variant": {
                            "OnOff_command_topic": "panel/light/3/OnOff_command",
                            "OnOff_state_topic": "panel/light/3/OnOff_state",
                            "payload_on": "1",
                            "payload_off": "0",
                            "brightness_command_topic": "panel/light/3/brightness_command",
                            "brightness_state_topic": "panel/light/3/brightness_state",
                            "brightness_scale": 100,
                            "color_command_topic": "panel/light/3/color_command",
                            "color_type": "rgb"
                        }
                    }
                },
                {
                    "block": 4,
                    "type": "light",
                    "data": {
                        "param_1": "",
                        "param_2": "Свесы",
                        "setting_name": "Свесы",
                        "icon": "\uDB86\uDCDE",
                        "variant_type": "light_variant_temperature",
                        "variant": {
                            "OnOff_command_topic": "panel/light/4/OnOff_command",
                            "OnOff_state_topic": "panel/light/4/OnOff_state",
                            "payload_on": "1",
                            "payload_off": "0",
                            "brightness_command_topic": "panel/light/4/brightness_command",
                            "brightness_state_topic": "panel/light/4/brightness_state",
                            "brightness_scale": 100,
                            "temp_command_topic": "panel/light/4/temp_command",
                            "temp_state_topic": "panel/light/4/temp_state",
                            "max_temp": 100,
                            "min_temp": 0,
                            "temp_measure": "%"
                        }
                    }
                }
            ]
        },
        {
            "page": 5,
            "blocks": [
                {
                    "block": 1,
                    "type": "cover",
                    "data": {
                        "param_1": "Шторы",
                        "param_2": "Спальня",
                        "setting_name": "Шторы",
                        "icon_open": "\udb86\ude2d",
                        "icon_close": "\udb86\ude2e",
                        "variant_type": "cover_variant_slider",
                        "variant": {
                            "orientation": "Horizontal",
                            "open_command_topic": "panel/cover/1/open_command",
                            "close_command_topic": "panel/cover/1/close_command",
                            "stop_command_topic": "panel/cover/1/stop_command",
                            "payload_open": "1",
                            "payload_close": "0",
                            "payload_stop": "2",
                            "position_command_topic": "panel/cover/1/position_command",
                            "position_state_topic": "panel/cover/1/position_state",
                            "position_open": 100,
                            "position_close": 0,
                            "help_position_open": 95,
                            "help_position_close": 5,
                            "lameli": null
                        }
                    }
                },
                {
                    "block": 2,
                    "type": "cover",
                    "data": {
                        "param_1": "Жалюзи",
                        "param_2": "Гостиная",
                        "setting_name": "Жалюзи",
                        "icon_open": "\udb86\ude2b",
                        "icon_close": "\udb86\ude2c",
                        "variant_type": "cover_variant_slider",
                        "variant": {
                            "orientation": "Vertical",
                            "open_command_topic": "panel/cover/2/open_command",
                            "close_command_topic": "panel/cover/2/close_command",
                            "stop_command_topic": "panel/cover/2/stop_command",
                            "payload_open": "1",
                            "payload_close": "0",
                            "payload_stop": "2",
                            "position_command_topic": "panel/cover/2/position_command",
                            "position_state_topic": "panel/cover/2/position_state",
                            "position_open": 0,
                            "position_close": 100,
                            "help_position_open": 5,
                            "help_position_close": 95,
                            "lameli": null
                        }
                    }
                },
                {
                    "block": 3,
                    "type": "cover",
                    "data": {
                        "param_1": "Жалюзи",
                        "param_2": "Детская",
                        "setting_name": "Жалюзи",
                        "icon_open": "\udb86\ude6b",
                        "icon_close": "\udb86\ude6c",
                        "variant_type": "cover_variant_slider",
                        "variant": {
                            "orientation": "Vertical",
                            "open_command_topic": "panel/cover/3/open_command",
                            "close_command_topic": "panel/cover/3/close_command",
                            "stop_command_topic": "panel/cover/3/stop_command",
                            "payload_open": "1",
                            "payload_close": "0",
                            "payload_stop": "2",
                            "position_command_topic": "panel/cover/3/position_command",
                            "position_state_topic": "panel/cover/3/position_state",
                            "position_open": 100,
                            "position_close": 0,
                            "help_position_open": 95,
                            "help_position_close": 5,
                            "lameli": {
                                "open_command_topic": "panel/cover/3/lameli/open_command",
                                "close_command_topic": "panel/cover/3/lameli/close_command",
                                "stop_command_topic": "panel/cover/3/lameli/stop_command",
                                "payload_open": "1",
                                "payload_close": "0",
                                "payload_stop": "2"
                            }
                        }
                    }
                },
                {
                    "block": 4,
                    "type": "cover",
                    "data": {
                        "param_1": "Шторы",
                        "param_2": "Столовая",
                        "setting_name": "Шторы",
                        "icon_open": "\uDB86\uDC46",
                        "icon_close": "\uDB86\uDC47",
                        "variant_type": "cover_variant_slider",
                        "variant": {
                            "orientation": "Horizontal",
                            "open_command_topic": "panel/cover/4/open_command",
                            "close_command_topic": "panel/cover/4/close_command",
                            "stop_command_topic": "panel/cover/4/stop_command",
                            "payload_open": "1",
                            "payload_close": "0",
                            "payload_stop": "2",
                            "position_command_topic": "panel/cover/4/position_command",
                            "position_state_topic": "panel/cover/4/position_state",
                            "position_open": 0,
                            "position_close": 100,
                            "help_position_open": 5,
                            "help_position_close": 95,
                            "lameli": {
                                "open_command_topic": "panel/cover/4/lameli/open_command",
                                "close_command_topic": "panel/cover/4/lameli/close_command",
                                "stop_command_topic": "panel/cover/4/lameli/stop_command",
                                "payload_open": "1",
                                "payload_close": "0",
                                "payload_stop": "2"
                            }
                        }
                    }
                }
            ]
        },
        {
            "page": 6,
            "blocks": [
                {
                    "block": 1,
                    "type": "cover",
                    "data": {
                        "param_1": "Шторы",
                        "param_2": "Спальня",
                        "setting_name": "Шторы",
                        "icon_open": "\udb86\ude2d",
                        "icon_close": "\udb86\ude2e",
                        "variant_type": "cover_variant_buttons",
                        "variant": {
                            "orientation": "Horizontal",
                            "open_command_topic": "panel/cover/5/open_command",
                            "close_command_topic": "panel/cover/5/close_command",
                            "stop_command_topic": "panel/cover/5/stop_command",
                            "payload_open": "1",
                            "payload_close": "0",
                            "payload_stop": "2",
                            "lameli": null
                        }
                    }
                },
                {
                    "block": 2,
                    "type": "cover",
                    "data": {
                        "param_1": "Жалюзи",
                        "param_2": "Гостиная",
                        "setting_name": "Жалюзи",
                        "icon_open": "\udb86\ude2b",
                        "icon_close": "\udb86\ude2c",
                        "variant_type": "cover_variant_buttons",
                        "variant": {
                            "orientation": "Vertical",
                            "open_command_topic": "panel/cover/6/open_command",
                            "close_command_topic": "panel/cover/6/close_command",
                            "stop_command_topic": "panel/cover/6/stop_command",
                            "payload_open": "1",
                            "payload_close": "0",
                            "payload_stop": "2",
                            "lameli": null
                        }
                    }
                },
                {
                    "block": 3,
                    "type": "cover",
                    "data": {
                        "param_1": "Жалюзи",
                        "param_2": "Детская",
                        "setting_name": "Жалюзи",
                        "icon_open": "\udb86\ude6b",
                        "icon_close": "\udb86\ude6c",
                        "variant_type": "cover_variant_buttons",
                        "variant": {
                            "orientation": "Vertical",
                            "open_command_topic": "panel/cover/7/open_command",
                            "close_command_topic": "panel/cover/7/close_command",
                            "stop_command_topic": "panel/cover/7/stop_command",
                            "payload_open": "1",
                            "payload_close": "0",
                            "payload_stop": "2",
                            "lameli": {
                                "open_command_topic": "panel/cover/7/lameli/open_command",
                                "close_command_topic": "panel/cover/7/lameli/close_command",
                                "stop_command_topic": "panel/cover/7/lameli/stop_command",
                                "payload_open": "1",
                                "payload_close": "0",
                                "payload_stop": "2"
                            }
                        }
                    }
                },
                {
                    "block": 4,
                    "type": "cover",
                    "data": {
                        "param_1": "Шторы",
                        "param_2": "Столовая",
                        "setting_name": "Шторы",
                        "icon_open": "\uDB86\uDC46",
                        "icon_close": "\uDB86\uDC47",
                        "variant_type": "cover_variant_buttons",
                        "variant": {
                            "orientation": "Horizontal",
                            "open_command_topic": "panel/cover/8/open_command",
                            "close_command_topic": "panel/cover/8/close_command",
                            "stop_command_topic": "panel/cover/8/stop_command",
                            "payload_open": "1",
                            "payload_close": "0",
                            "payload_stop": "2",
                            "lameli": {
                                "open_command_topic": "panel/cover/8/lameli/open_command",
                                "close_command_topic": "panel/cover/8/lameli/close_command",
                                "stop_command_topic": "panel/cover/8/lameli/stop_command",
                                "payload_open": "1",
                                "payload_close": "0",
                                "payload_stop": "2"
                            }
                        }
                    }
                }
            ]
        },
        {
            "page": 7,
            "blocks": [
                {
                    "block": 1,
                    "type": "climate",
                    "data": {
                        "param_1": "Конд-ер",
                        "param_2": "Зал",
                        "setting_name": "Кондиционер",
                        "icon": "\uDB84\uDF52",
                        "measure": "°С",
                        "color": "color_red",
                        "variant_type": "climate_variant_cond",
                        "variant": {
                            "OnOff_command_topic": "panel/climate/1/OnOff_command",
                            "OnOff_state_topic": "panel/climate/1/OnOff_state",
                            "payload_on": "1",
                            "payload_off": "0",
                            "mode_command_topic": "panel/climate/1/mode_command",
                            "mode_state_topic": "panel/climate/1/mode_state",
                            "modes": {
                                "mode_1": {
                                    "icon": "\uDB86\uDCF2",
                                    "title": "Авто",
                                    "color": "color_green",
                                    "payload": "auto"
                                },
                                "mode_2": {
                                    "icon": "\uDB80\uDE38",
                                    "title": "Обогрев",
                                    "color": "color_red",
                                    "payload": "heat"
                                },
                                "mode_3": {
                                    "icon": "\uDB81\uDF17",
                                    "title": "Охлаждение",
                                    "color": "color_blue",
                                    "payload": "cool"
                                },
                                "mode_4": {
                                    "icon": "\uDB81\uDD8E",
                                    "title": "Осушение",
                                    "color": "color_yellow",
                                    "payload": "dry"
                                },
                                "mode_5": {
                                    "icon": "\uDB80\uDE10",
                                    "title": "Вентиляция",
                                    "color": "color_cyan",
                                    "payload": "fan"
                                }
                            },
                            "currentTemp_state_topic": "panel/climate/1/currentTemp_state",
                            "targetTemp_command_topic": "panel/climate/1/targetTemp_command",
                            "targetTemp_state_topic": "panel/climate/1/targetTemp_state",
                            "min_target": 15,
                            "max_target": 30,
                            "fan_command_topic": "panel/climate/1/fan_command",
                            "fan_state_topic": "panel/climate/1/fan_state",
                            "fan_modes": {
                                "mode_1": {
                                    "icon": "\uDB85\uDF1D",
                                    "payload": "0"
                                },
                                "mode_2": {
                                    "icon": "\uDB85\uDC72",
                                    "payload": "1"
                                },
                                "mode_3": {
                                    "icon": "\uDB85\uDC73",
                                    "payload": "2"
                                },
                                "mode_4": {
                                    "icon": "\uDB85\uDC74",
                                    "payload": "3"
                                }
                            }
                        }
                    }
                },
                {
                    "block": 2,
                    "type": "climate",
                    "data": {
                        "param_1": "Тепл. пол",
                        "param_2": "Детская",
                        "setting_name": "Тёплый пол",
                        "icon": "\uDB86\uDEAF",
                        "measure": "°С",
                        "color": "color_red",
                        "variant_type": "climate_variant_thermostat",
                        "variant": {
                            "OnOff_command_topic": "panel/climate/2/OnOff_command",
                            "OnOff_state_topic": "panel/climate/2/OnOff_state",
                            "payload_on": "1",
                            "payload_off": "0",
                            "targetTemp_command_topic": "panel/climate/2/targetTemp_command",
                            "targetTemp_state_topic": "panel/climate/2/targetTemp_state",
                            "min_target": 18,
                            "max_target": 30,
                            "sensors": {
                                "sensor_1": {
                                    "icon": "\uDB83\uDF55",
                                    "measure": "°С",
                                    "state_topic": "panel/climate/2/sensor_1_state"
                                }
                            }
                        }
                    }
                },
                {
                    "block": 3,
                    "type": "climate",
                    "data": {
                        "param_1": "Вент-ия",
                        "param_2": "Ванная",
                        "setting_name": "Вентиляция",
                        "icon": "\uDB80\uDE10",
                        "measure": "%",
                        "color": "color_green",
                        "variant_type": "climate_variant_thermostat",
                        "variant": {
                            "OnOff_command_topic": "panel/climate/3/OnOff_command",
                            "OnOff_state_topic": "panel/climate/3/OnOff_state",
                            "payload_on": "1",
                            "payload_off": "0",
                            "targetTemp_command_topic": "panel/climate/3/targetTemp_command",
                            "targetTemp_state_topic": "panel/climate/3/targetTemp_state",
                            "min_target": 0,
                            "max_target": 100,
                            "sensors": {
                                "sensor_1": {
                                    "icon": "\uDB81\uDFE4",
                                    "measure": "ppm",
                                    "state_topic": "panel/climate/3/sensor_1_state"
                                },
                                "sensor_2": {
                                    "icon": "\uDB81\uDD8E",
                                    "measure": "%",
                                    "state_topic": "panel/climate/3/sensor_2_state"
                                },
                                "sensor_3": {
                                    "icon": "\uDB80\uDF2A",
                                    "measure": "ppb",
                                    "state_topic": "panel/climate/3/sensor_3_state"
                                }
                            }
                        }
                    }
                },
                {
                    "block": 4,
                    "type": "climate",
                    "data": {
                        "param_1": "Увлаж-ль",
                        "param_2": "Прихожая",
                        "setting_name": "Увлажнитель",
                        "icon": "\uDB84\uDC99",
                        "measure": "%",
                        "color": "color_blue",
                        "variant_type": "climate_variant_thermostat",
                        "variant": {
                            "OnOff_command_topic": "panel/climate/4/OnOff_command",
                            "OnOff_state_topic": "panel/climate/4/OnOff_state",
                            "payload_on": "1",
                            "payload_off": "0",
                            "targetTemp_command_topic": "panel/climate/4/targetTemp_command",
                            "targetTemp_state_topic": "panel/climate/4/targetTemp_state",
                            "min_target": 15,
                            "max_target": 30,
                            "sensors": {
                                "sensor_1": {
                                    "icon": "\uDB81\uDD8E",
                                    "measure": "%",
                                    "state_topic": "panel/climate/4/sensor_1_state"
                                }
                            }
                        }
                    }
                }
            ]
        },
        {
            "page": 1,
            "blocks": [
                {
                    "block": 1,
                    "type": "music",
                    "data": {
                        "param_1": "Спальня",
                        "param_2": "Аудио",
                        "param_3": "Колонка",
                        "setting_name": "Колонка Спальня",
                        "icon": "󰝚",
                        "mute_command_topic": "panel/music/2/mute_command",
                        "mute_state_topic": "panel/music/2/mute_state",
                        "payload_mute_on": "1",
                        "payload_mute_off": "0",
                        "artist_state_topic": "panel/music/2/artist",
                        "name_state_topic": "panel/music/2/track_name",
                        "prev_command_topic": "panel/music/2/prev_command",
                        "play_command_topic": "panel/music/2/play_command",
                        "pause_command_topic": "panel/music/2/pause_command",
                        "PlayPause_state_topic": "panel/music/2/PlayPause_state",
                        "next_command_topic": "panel/music/2/next_command",
                        "payload_prev": "previous",
                        "payload_play": "play",
                        "payload_pause": "pause",
                        "payload_next": "next",
                        "volume_command_topic": "panel/music/2/volume_command",
                        "volume_state_topic": "panel/music/2/volume_state",
                        "volume_step": 1,
                        "volume_min": 0,
                        "volume_max": 100,
                        "channels": {
                            "1": {
                                "icon": "\uDB82\uDD88",
                                "title": "Радио",
                                "command_topic": "panel/music/2/channel_command",
                                "state_topic": "panel/music/2/channel_state",
                                "payload": "radio"
                            },
                            "2": {
                                "icon": "\uDB86\uDE17",
                                "title": "Плейлист",
                                "command_topic": "panel/music/2/channel_command",
                                "state_topic": "panel/music/2/channel_state",
                                "payload": "playlist"
                            },
                            "3": {
                                "icon": "\uDB80\uDE10",
                                "title": "Подкасты",
                                "command_topic": "panel/music/2/channel_command",
                                "state_topic": "panel/music/2/channel_state",
                                "payload": "podcasts"
                            }
                        }
                    }
                }
            ]
        }
    ]
}