{
    "device_type": "metal_analyzer",
    "title": "Анализатор металлов",
    "group": "Анализ стоков",
    "device": {
        "name": "Анализатор металлов",
        "id": "metal_analyzer",
        "poll_interval_ms": 1000,
        "max_read_registers": 16,
        "response_timeout_ms": 200,
        "frame_timeout_ms": 50,
        "guard_interval_us": 10000,
        "enable_wb_continuous_read": false,
        "groups": [
            { "title": "Измерение", "id": "measurement" },
            { "title": "Статус", "id": "Status" },
            { "title": "Команды", "id": "commands" },
        ],
        "channels": [
{
    "name": "Время пробы (Год;Месяц;День;Час;Мин;Сек)",
    "type": "text",
    "readonly": true,
    "group": "measurement",
    "consists_of": [
        {
            "address": 4101,
            "reg_type": "holding_multi",
            "format": "bcd8",
            "offset": 2000,
            "byte_order": "little_endian",
            "word_order": "big_endian",
                "readonly": true,
        },
        {
            "address": 4101,
            "reg_type": "holding_multi",
            "format": "bcd8",
            "offset": 0,
            "byte_order": "big_endian",
            "word_order": "big_endian",
                "readonly": true,
        },
        {
            "address": 4102,
            "reg_type": "holding_multi",
            "format": "bcd8",
            "offset": 0,
            "byte_order": "little_endian",
            "word_order": "big_endian",
                "readonly": true,
        },
        {
            "address": 4102,
            "reg_type": "holding_multi",
            "format": "bcd8",
            "offset": 0,
            "byte_order": "big_endian",
            "word_order": "big_endian",
                "readonly": true,
        },
        {
            "address": 4103,
            "reg_type": "holding_multi",
            "format": "bcd8",
            "offset": 0,
            "byte_order": "little_endian",
            "word_order": "big_endian",
                "readonly": true,
        },
        {
            "address": 4103,
            "reg_type": "holding_multi",
            "format": "bcd8",
            "offset": 0,
            "byte_order": "big_endian",
            "word_order": "big_endian",
                "readonly": true,
        }
    ],
    "description": "Дата и время отбора пробы (Год, Месяц, День, Час, Минута, Секунда)"
},
            {
                "name": "Концентрация",
                "reg_type": "holding_multi",
                "address": 4104,
                "type": "value",
                "format": "float",
                "byte_order": "little_endian",
                "word_order": "little_endian",
                "units": "мг/л",
                "round_to": 0.001,
                "readonly": true,
                "group": "measurement",
                "description": "Регистр: 4104, Тип: float, Длина: 32 бита, Порядок слов: little-endian, Порядок байт: little-endian"
            },
            {
                "name": "Абсорбция",
                "reg_type": "holding_multi",
                "address": 4106,
                "type": "value",
                "format": "float",
                "byte_order": "little_endian",
                "word_order": "little_endian",
                "round_to": 0.001,
                "readonly": true,
                "group": "measurement",
                "description": "Регистр: 4106, Тип: float, Длина: 32 бита, Порядок слов: little-endian, Порядок байт: little-endian"
            },
            {
                "name": "Маркер данных",
                "reg_type": "holding_multi",
                "address": 4108,
                "type": "text",
                "format": "string",
                "byte_order": "little_endian",
                "string_data_size": 12,
                "readonly": true,
                "group": "measurement",
                "description": "Регистр: 4108, Тип: string, Длина: 12 байт, Порядок байт: little-endian"
            },
            {
                "name": "Статус прибора",
                "reg_type": "holding",
                "address": 8192,
                "type": "text",
                "format": "u16",
                "byte_order": "little_endian",
                "readonly": true,
                "group": "Status",
                "enum": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11],
                "enum_titles": [
                    "Работает",
                    "Техобслуживание",
                    "Неисправность",
                    "Калибровка",
                    "Очистка",
                    "Неисправность питания",
                    "Измерение",
                    "Стандартизация",
                    "Ожидание",
                    "Эксплуатация и техобслуживание",
                    "Другое"
                ],
                "description": "Регистр: 8192, Тип: u16, Статус прибора"
            },
            {
                "name": "Аварийный статус",
                "reg_type": "holding",
                "address": 8193,
                "type": "switch",
                "format": "u16",
                "byte_order": "little_endian",
                "readonly": true,
                "group": "Status",
                "description": "Регистр: 8193, Тип: u16, Длина: 16 бит, Порядок: little-endian"
            },
            {
                "name": "Детали аварии",
                "reg_type": "holding",
                "address": 8195,
                "type": "text",
                "format": "u16",
                "byte_order": "little_endian",
                "readonly": true,
                "group": "Status",
                "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 22, 34, 52, 53],
                "enum_titles": [
                    "Тревоги нет",
                    "Неиспр. среднего ур. жидкости",
                    "Неиспр. высокого ур. жидкости",
                    "Неисправность с низким уровнем жидкости",
                    "Неиспр. опорного сигнала",
                    "Неиспр. измерит. сигнала",
                    "Неиспр. PT100",
                    "Расход реагента 1",
                    "Расход реагента 2",
                    "Расход реагента 3",
                    "Расход реагента",
                    "Резерв (11)",
                    "Расход водной пробы",
                    "Расход дистиллированной воды",
                    "Расход стандартного раствора",
                    "Расход моющего раствора",
                    "Аномалия нагрева",
                    "Аномалия охлаждающего вентилятора",
                    "Превышение верхнего предела",
                    "Аномалия связи многопозиционного клапана",
                    "Аномалия позиционирования многопозиционного клапана",
                    "Неизвестно (34)",
                    "Неиспр. опорного измерения",
                    "Неиспр. показания уровня жидкости прибора"
                ],
                "description": "Регистр: 8195, Тип: u16, Детали аварии"
            },
{
    "name": "Установка времени",
    "type": "text",
    "readonly": false,
    "group": "commands",
    "consists_of": [
        {
            "reg_type": "holding_multi",
            "address": 16394,
            "format": "bcd32",
            "byte_order": "big_endian",
            "word_order": "big_endian"
        },
        {
            "reg_type": "holding_multi",
            "address": 16396,
            "format": "bcd16",
            "byte_order": "big_endian",
            "word_order": "big_endian"
        }
    ],
    "description": "Введите 16 цифр: YYMMDDHHMMSS00 (последние две пары цифр = 00, чтобы не остановить прибор).\nПример: 26032614304500"
},
            {
                "name": "Калибровка нуля",
                "reg_type": "holding_multi",
                "address": 16384,
                "type": "pushbutton",
                "format": "u16",
		"off_value" : "0x0000",
                "on_value": "0x0100",
                "group": "commands",
                "description": "Регистр: 16384, Тип: u16, Длина: 16 бит, Команда: запись 1 (Только для онлайн режима)"
            },
            {
                "name": "Калибровка диапазона",
                "reg_type": "holding_multi",
                "address": 16385,
                "type": "pushbutton",
                "format": "u16",
		"off_value" : "0x0000",
                "on_value": "0x0100",
                "group": "commands",
                "description": "Регистр: 16385, Тип: u16, Длина: 16 бит, Команда: запись 1 (Только для онлайн режима)"
            },
            {
                "name": "Старт измерения",
                "reg_type": "holding_multi",
                "address": 16386,
                "type": "pushbutton",
                "format": "u16",
		"off_value" : "0x0000",
                "on_value": "0x0100",
                "group": "commands",
                "description": "Регистр: 16386, Тип: u16, Длина: 16 бит, Команда: запись 1 (Только для онлайн режима)"
            },
            {
                "name": "Очистка",
                "reg_type": "holding_multi",
                "address": 16393,
                "type": "pushbutton",
                "format": "u16",
		"off_value" : "0x0000",
                "on_value": "0x0100",
                "group": "commands",
                "description": "Регистр: 16393, Тип: u16, Длина: 16 бит, Команда: запись 1 (Только для онлайн режима)"
            },
            {
                "name": "Останов прибора",
                "reg_type": "holding_multi",
                "address": 16397,
                "type": "pushbutton",
                "format": "u16",
		"off_value" : "0x0000",
                "on_value": "0x0100",
                "group": "commands",
                "description": "Регистр: 16397, Тип: u16, Длина: 16 бит, Команда: запись 1 (Только для онлайн режима)"
            }
        ],
        "translations": {
            "en": {
                "metal_analyzer": "Metal Analyzer",
                "Измерение": "Measurement",
                "Статус": "Status",
                "Команды": "Commands"
            },
            "ru": {
                "metal_analyzer": "Анализатор металлов",
                "Измерение": "Измерение",
                "Статус": "Статус",
                "Команды": "Команды"
            }
        }
    }
}