[
  {
    "id": "temp_pt100",
    "cat": "temperature",
    "name": "PT100 / PT1000",
    "vendor": "Universal",
    "proto": [
      "modbus_tcp",
      "modbus_rtu",
      "analog_420"
    ],
    "unit": "°C",
    "scale": 0.1,
    "minNorm": -50,
    "maxNorm": 200,
    "widget": "kpi",
    "color": "wn2"
  },
  {
    "id": "temp_tc_k",
    "cat": "temperature",
    "name": "Термопара тип K",
    "vendor": "Universal",
    "proto": [
      "modbus_tcp",
      "modbus_rtu"
    ],
    "unit": "°C",
    "scale": 0.1,
    "minNorm": -200,
    "maxNorm": 1260,
    "widget": "kpi",
    "color": "wn2"
  },
  {
    "id": "temp_tc_j",
    "cat": "temperature",
    "name": "Термопара тип J",
    "vendor": "Universal",
    "proto": [
      "modbus_tcp",
      "modbus_rtu"
    ],
    "unit": "°C",
    "scale": 0.1,
    "minNorm": -40,
    "maxNorm": 750,
    "widget": "kpi",
    "color": "wn2"
  },
  {
    "id": "temp_ir",
    "cat": "temperature",
    "name": "Пирометр инфракрасный",
    "vendor": "FLIR/Optris",
    "proto": [
      "modbus_tcp",
      "analog_420"
    ],
    "unit": "°C",
    "scale": 0.1,
    "widget": "kpi",
    "color": "wn2"
  },
  {
    "id": "temp_pasteur",
    "cat": "temperature",
    "name": "T° пастеризации (CIP)",
    "vendor": "Endress+Hauser",
    "proto": [
      "modbus_tcp",
      "profibus"
    ],
    "unit": "°C",
    "scale": 0.1,
    "minNorm": 72,
    "maxNorm": 85,
    "widget": "gauge",
    "color": "wn2"
  },
  {
    "id": "temp_cip",
    "cat": "temperature",
    "name": "T° датчик CIP (3A/EHEDG)",
    "vendor": "Jumo",
    "proto": [
      "modbus_tcp"
    ],
    "unit": "°C",
    "scale": 0.01,
    "widget": "kpi",
    "color": "wn2"
  },
  {
    "id": "temp_jumo_rstab",
    "cat": "temperature",
    "name": "Jumo Logoscreen 600 — T°",
    "model": "Logoscreen 600",
    "vendor": "Jumo",
    "proto": [
      "modbus_tcp"
    ],
    "unit": "°C",
    "widget": "kpi",
    "color": "wn2"
  },
  {
    "id": "temp_ecograph",
    "cat": "temperature",
    "name": "Endress+Hauser Ecograph T RSG35",
    "model": "RSG35",
    "vendor": "Endress+Hauser",
    "proto": [
      "modbus_tcp",
      "ethernet_ip"
    ],
    "unit": "°C",
    "widget": "kpi",
    "color": "wn2"
  },
  {
    "id": "temp_owen",
    "cat": "temperature",
    "name": "ОВЕН ТСП-Pt100",
    "vendor": "ОВЕН",
    "proto": [
      "modbus_rtu"
    ],
    "unit": "°C",
    "scale": 0.1,
    "widget": "kpi",
    "color": "wn2"
  },
  {
    "id": "press_gauge",
    "cat": "pressure",
    "name": "Манометр 4-20 мА",
    "vendor": "Universal",
    "proto": [
      "analog_420",
      "modbus_tcp"
    ],
    "unit": "бар",
    "scale": 0.001,
    "widget": "kpi",
    "color": "a2"
  },
  {
    "id": "press_steam",
    "cat": "pressure",
    "name": "Датчик давления пара",
    "vendor": "Yokogawa",
    "proto": [
      "modbus_tcp",
      "hart"
    ],
    "unit": "бар",
    "scale": 0.01,
    "widget": "gauge",
    "color": "er2"
  },
  {
    "id": "press_diff",
    "cat": "pressure",
    "name": "Перепад давления ΔP",
    "vendor": "Emerson",
    "proto": [
      "modbus_tcp",
      "hart"
    ],
    "unit": "кПа",
    "scale": 0.1,
    "widget": "kpi",
    "color": "a2"
  },
  {
    "id": "press_vacuum",
    "cat": "pressure",
    "name": "Вакуумметр",
    "vendor": "Universal",
    "proto": [
      "analog_420"
    ],
    "unit": "мбар",
    "scale": 0.1,
    "widget": "kpi",
    "color": "a3"
  },
  {
    "id": "press_e+h",
    "cat": "pressure",
    "name": "E+H Cerabar PMC51",
    "model": "PMC51",
    "vendor": "Endress+Hauser",
    "proto": [
      "modbus_tcp",
      "hart"
    ],
    "unit": "бар",
    "widget": "kpi",
    "color": "a2"
  },
  {
    "id": "press_krohne",
    "cat": "pressure",
    "name": "KROHNE OPTIBAR PM 5060",
    "model": "PM 5060",
    "vendor": "KROHNE",
    "proto": [
      "modbus_tcp"
    ],
    "unit": "бар",
    "widget": "kpi",
    "color": "a2"
  },
  {
    "id": "level_ult",
    "cat": "level",
    "name": "Ультразвуковой уровнемер",
    "vendor": "Pepperl+Fuchs",
    "proto": [
      "modbus_tcp",
      "analog_420"
    ],
    "unit": "%",
    "scale": 0.1,
    "minNorm": 10,
    "maxNorm": 95,
    "widget": "level",
    "color": "a2"
  },
  {
    "id": "level_radar",
    "cat": "level",
    "name": "Радарный уровнемер",
    "vendor": "VEGA",
    "proto": [
      "modbus_tcp",
      "hart"
    ],
    "unit": "м",
    "scale": 0.001,
    "widget": "level",
    "color": "a2"
  },
  {
    "id": "level_hydro",
    "cat": "level",
    "name": "Гидростатический уровнемер",
    "vendor": "Keller",
    "proto": [
      "modbus_tcp",
      "analog_420"
    ],
    "unit": "м",
    "scale": 0.001,
    "widget": "level",
    "color": "a2"
  },
  {
    "id": "level_float",
    "cat": "level",
    "name": "Поплавковый уровнемер",
    "vendor": "Universal",
    "proto": [
      "discrete",
      "modbus_tcp"
    ],
    "unit": "%",
    "scale": 1,
    "widget": "level",
    "color": "a2"
  },
  {
    "id": "level_cap",
    "cat": "level",
    "name": "Ёмкостной уровнемер",
    "vendor": "Rechner",
    "proto": [
      "analog_420",
      "modbus_tcp"
    ],
    "unit": "%",
    "scale": 0.1,
    "widget": "level",
    "color": "a2"
  },
  {
    "id": "level_vega",
    "cat": "level",
    "name": "VEGA VEGAPULS 69 (radar)",
    "model": "VEGAPULS 69",
    "vendor": "VEGA",
    "proto": [
      "modbus_tcp",
      "hart"
    ],
    "unit": "м",
    "widget": "level",
    "color": "a2"
  },
  {
    "id": "flow_mag",
    "cat": "flow",
    "name": "Расходомер электромагнитный",
    "vendor": "Endress+Hauser",
    "proto": [
      "modbus_tcp",
      "profibus",
      "hart"
    ],
    "unit": "м³/ч",
    "scale": 0.001,
    "widget": "kpi",
    "color": "ok2"
  },
  {
    "id": "flow_vortex",
    "cat": "flow",
    "name": "Расходомер вихревой",
    "vendor": "Yokogawa",
    "proto": [
      "modbus_tcp",
      "hart"
    ],
    "unit": "м³/ч",
    "scale": 0.001,
    "widget": "kpi",
    "color": "ok2"
  },
  {
    "id": "flow_coriolis",
    "cat": "flow",
    "name": "Расходомер Кориолиса (массовый)",
    "vendor": "Micro Motion",
    "proto": [
      "modbus_tcp",
      "foundation_ff",
      "hart"
    ],
    "unit": "кг/ч",
    "scale": 0.001,
    "widget": "kpi",
    "color": "ok2"
  },
  {
    "id": "flow_clamp",
    "cat": "flow",
    "name": "Ультразвуковой clamp-on",
    "vendor": "KROHNE",
    "proto": [
      "modbus_tcp"
    ],
    "unit": "м³/ч",
    "scale": 0.001,
    "widget": "kpi",
    "color": "ok2"
  },
  {
    "id": "flow_steam",
    "cat": "flow",
    "name": "Расходомер пара",
    "vendor": "Endress+Hauser",
    "proto": [
      "modbus_tcp"
    ],
    "unit": "т/ч",
    "scale": 0.001,
    "widget": "kpi",
    "color": "er2"
  },
  {
    "id": "flow_proline",
    "cat": "flow",
    "name": "E+H Proline Promag 10W",
    "model": "Promag 10W",
    "vendor": "Endress+Hauser",
    "proto": [
      "modbus_tcp",
      "profibus",
      "hart"
    ],
    "unit": "м³/ч",
    "widget": "kpi",
    "color": "ok2"
  },
  {
    "id": "flow_krohne_ifs",
    "cat": "flow",
    "name": "KROHNE IFS 4000 F",
    "model": "IFS 4000 F",
    "vendor": "KROHNE",
    "proto": [
      "modbus_tcp"
    ],
    "unit": "м³/ч",
    "widget": "kpi",
    "color": "ok2"
  },
  {
    "id": "ph_inline",
    "cat": "quality",
    "name": "pH-электрод inline (3A/EHEDG)",
    "vendor": "Mettler-Toledo",
    "proto": [
      "modbus_tcp",
      "analog_420"
    ],
    "unit": "pH",
    "scale": 0.01,
    "minNorm": 3.2,
    "maxNorm": 4.5,
    "widget": "gauge",
    "color": "#16b090"
  },
  {
    "id": "ph_bypass",
    "cat": "quality",
    "name": "pH-электрод байпасный",
    "vendor": "Endress+Hauser",
    "proto": [
      "modbus_tcp"
    ],
    "unit": "pH",
    "scale": 0.01,
    "minNorm": 3.2,
    "maxNorm": 4.5,
    "widget": "gauge",
    "color": "#16b090"
  },
  {
    "id": "brix_inline",
    "cat": "quality",
    "name": "Рефрактометр Brix inline",
    "vendor": "Vaisala/K-Patents",
    "proto": [
      "modbus_tcp",
      "analog_420"
    ],
    "unit": "°Brix",
    "scale": 0.01,
    "minNorm": 9,
    "maxNorm": 13,
    "widget": "gauge",
    "color": "ok2"
  },
  {
    "id": "brix_kpatents",
    "cat": "quality",
    "name": "K-Patents PR-23 Inline",
    "model": "PR-23",
    "vendor": "K-Patents",
    "proto": [
      "modbus_tcp"
    ],
    "unit": "°Brix",
    "widget": "gauge",
    "color": "ok2"
  },
  {
    "id": "cond_cip",
    "cat": "quality",
    "name": "Кондуктометр (CIP-контроль)",
    "vendor": "Endress+Hauser",
    "proto": [
      "modbus_tcp",
      "analog_420"
    ],
    "unit": "мСм/см",
    "scale": 0.01,
    "widget": "kpi",
    "color": "a3"
  },
  {
    "id": "cond_liqlevel",
    "cat": "quality",
    "name": "Кондуктометр уровня жидкости",
    "vendor": "Baumer",
    "proto": [
      "analog_420"
    ],
    "unit": "мСм/см",
    "widget": "kpi",
    "color": "a3"
  },
  {
    "id": "turbidity",
    "cat": "quality",
    "name": "Мутность (NTU/FTU)",
    "vendor": "Hach",
    "proto": [
      "modbus_tcp",
      "analog_420"
    ],
    "unit": "НФЕ",
    "scale": 0.001,
    "widget": "kpi",
    "color": "wn2"
  },
  {
    "id": "orp",
    "cat": "quality",
    "name": "ORP (окислит.-восст. потенциал)",
    "vendor": "Mettler-Toledo",
    "proto": [
      "modbus_tcp",
      "analog_420"
    ],
    "unit": "мВ",
    "scale": 0.1,
    "widget": "kpi",
    "color": "a2"
  },
  {
    "id": "co2_dis",
    "cat": "quality",
    "name": "CO₂ растворённый",
    "vendor": "Haffmans",
    "proto": [
      "modbus_tcp",
      "analog_420"
    ],
    "unit": "мг/л",
    "scale": 0.001,
    "widget": "kpi",
    "color": "a3"
  },
  {
    "id": "o2_dis",
    "cat": "quality",
    "name": "O₂ растворённый",
    "vendor": "Mettler-Toledo",
    "proto": [
      "modbus_tcp",
      "analog_420"
    ],
    "unit": "мкг/л",
    "scale": 0.001,
    "widget": "kpi",
    "color": "a3"
  },
  {
    "id": "acid_titr",
    "cat": "quality",
    "name": "Кислотность (% молочная)",
    "vendor": "S-SENS",
    "proto": [
      "analog_420"
    ],
    "unit": "%",
    "scale": 0.001,
    "minNorm": 0.3,
    "maxNorm": 0.6,
    "widget": "gauge",
    "color": "ok2"
  },
  {
    "id": "viscosity",
    "cat": "quality",
    "name": "Вискозиметр (мПа·с)",
    "vendor": "Brookfield",
    "proto": [
      "modbus_tcp"
    ],
    "unit": "мПа·с",
    "scale": 0.01,
    "widget": "kpi",
    "color": "a3"
  },
  {
    "id": "color_sensor",
    "cat": "quality",
    "name": "Колориметр (ICUMSA)",
    "vendor": "Q-Interline",
    "proto": [
      "modbus_tcp"
    ],
    "unit": "IU",
    "scale": 0.01,
    "widget": "kpi",
    "color": "a3"
  },
  {
    "id": "density",
    "cat": "quality",
    "name": "Плотномер (денситометр)",
    "vendor": "Anton Paar",
    "proto": [
      "modbus_tcp",
      "rs232"
    ],
    "unit": "г/мл",
    "scale": 0.0001,
    "widget": "kpi",
    "color": "a2"
  },
  {
    "id": "temp_product",
    "cat": "quality",
    "name": "T° продукта (inline санитарный)",
    "vendor": "Jumo",
    "proto": [
      "modbus_tcp"
    ],
    "unit": "°C",
    "scale": 0.1,
    "minNorm": 2,
    "maxNorm": 85,
    "widget": "kpi",
    "color": "wn2"
  },
  {
    "id": "motor_vfd",
    "cat": "drive",
    "name": "Частотный преобразователь (ЧПП)",
    "vendor": "Siemens/ABB",
    "proto": [
      "modbus_tcp",
      "profinet",
      "ethernet_ip"
    ],
    "unit": "Гц",
    "scale": 0.01,
    "widget": "kpi",
    "color": "a2"
  },
  {
    "id": "pump_centrifuge",
    "cat": "drive",
    "name": "Центробежный насос (скорость)",
    "vendor": "Grundfos",
    "proto": [
      "modbus_tcp"
    ],
    "unit": "об/мин",
    "scale": 1,
    "widget": "kpi",
    "color": "a2"
  },
  {
    "id": "valve_pos",
    "cat": "drive",
    "name": "Позиционер клапана",
    "vendor": "Fisher/AUMA",
    "proto": [
      "modbus_tcp",
      "hart",
      "profibus"
    ],
    "unit": "%",
    "scale": 0.1,
    "minNorm": 0,
    "maxNorm": 100,
    "widget": "gauge",
    "color": "a3"
  },
  {
    "id": "agitator",
    "cat": "drive",
    "name": "Мешалка/Агитатор",
    "vendor": "Alfa Laval",
    "proto": [
      "modbus_tcp"
    ],
    "unit": "об/мин",
    "scale": 1,
    "widget": "kpi",
    "color": "a2"
  },
  {
    "id": "conveyor_belt",
    "cat": "drive",
    "name": "Конвейерная лента (скорость)",
    "vendor": "Interroll",
    "proto": [
      "modbus_tcp"
    ],
    "unit": "м/мин",
    "scale": 0.01,
    "widget": "kpi",
    "color": "a2"
  },
  {
    "id": "filler",
    "cat": "drive",
    "name": "Фасовочный автомат",
    "vendor": "KHS/Krones",
    "proto": [
      "opcua",
      "profinet"
    ],
    "unit": "шт/ч",
    "scale": 1,
    "widget": "kpi",
    "color": "ok2"
  },
  {
    "id": "labeler",
    "cat": "drive",
    "name": "Этикетировщик",
    "vendor": "Krones",
    "proto": [
      "opcua"
    ],
    "unit": "шт/ч",
    "scale": 1,
    "widget": "kpi",
    "color": "ok2"
  },
  {
    "id": "capper",
    "cat": "drive",
    "name": "Укупорочный автомат",
    "vendor": "KHS",
    "proto": [
      "opcua"
    ],
    "unit": "шт/ч",
    "scale": 1,
    "widget": "kpi",
    "color": "ok2"
  },
  {
    "id": "power_meter",
    "cat": "energy",
    "name": "Счётчик эл. энергии (Modbus)",
    "vendor": "Eastron/Schneider",
    "proto": [
      "modbus_tcp",
      "modbus_rtu"
    ],
    "unit": "кВт·ч",
    "scale": 0.01,
    "widget": "kpi",
    "color": "wn2"
  },
  {
    "id": "power_demand",
    "cat": "energy",
    "name": "Мощность (активная, кВт)",
    "vendor": "Eastron",
    "proto": [
      "modbus_tcp"
    ],
    "unit": "кВт",
    "scale": 0.01,
    "widget": "kpi",
    "color": "wn2"
  },
  {
    "id": "water_meter",
    "cat": "energy",
    "name": "Счётчик воды (импульс/Modbus)",
    "vendor": "Sensus/Kamstrup",
    "proto": [
      "modbus_tcp",
      "pulse"
    ],
    "unit": "м³",
    "scale": 0.001,
    "widget": "kpi",
    "color": "a2"
  },
  {
    "id": "steam_meter",
    "cat": "energy",
    "name": "Счётчик пара",
    "vendor": "Endress+Hauser",
    "proto": [
      "modbus_tcp"
    ],
    "unit": "т/ч",
    "scale": 0.001,
    "widget": "kpi",
    "color": "er2"
  },
  {
    "id": "gas_meter",
    "cat": "energy",
    "name": "Счётчик природного газа",
    "vendor": "Elster/Landis+Gyr",
    "proto": [
      "modbus_tcp",
      "pulse"
    ],
    "unit": "м³",
    "scale": 0.001,
    "widget": "kpi",
    "color": "wn2"
  },
  {
    "id": "cold_meter",
    "cat": "energy",
    "name": "Счётчик холода (рефрижерация)",
    "vendor": "Danfoss",
    "proto": [
      "modbus_tcp"
    ],
    "unit": "кВт",
    "scale": 0.01,
    "widget": "kpi",
    "color": "a3"
  },
  {
    "id": "air_comp",
    "cat": "energy",
    "name": "Счётчик сжатого воздуха",
    "vendor": "Atlas Copco",
    "proto": [
      "modbus_tcp"
    ],
    "unit": "м³/ч",
    "scale": 0.001,
    "widget": "kpi",
    "color": "ok2"
  },
  {
    "id": "temp_ambient",
    "cat": "env",
    "name": "T° окружающей среды",
    "vendor": "Vaisala",
    "proto": [
      "modbus_tcp",
      "analog_420"
    ],
    "unit": "°C",
    "scale": 0.1,
    "widget": "kpi",
    "color": "a3"
  },
  {
    "id": "humidity",
    "cat": "env",
    "name": "Влажность воздуха",
    "vendor": "Vaisala HMT",
    "proto": [
      "modbus_tcp",
      "analog_420"
    ],
    "unit": "%RH",
    "scale": 0.1,
    "minNorm": 30,
    "maxNorm": 80,
    "widget": "gauge",
    "color": "a3"
  },
  {
    "id": "air_quality",
    "cat": "env",
    "name": "CO₂ воздуха (ppm)",
    "vendor": "Sensirion",
    "proto": [
      "modbus_tcp"
    ],
    "unit": "ppm",
    "scale": 1,
    "minNorm": 400,
    "maxNorm": 1000,
    "widget": "kpi",
    "color": "wn2"
  },
  {
    "id": "vibration",
    "cat": "env",
    "name": "Вибрация (подшипники, мм/с)",
    "vendor": "SKF/IFM",
    "proto": [
      "modbus_tcp",
      "analog_420"
    ],
    "unit": "мм/с",
    "scale": 0.01,
    "widget": "kpi",
    "color": "er2"
  },
  {
    "id": "noise",
    "cat": "env",
    "name": "Уровень шума",
    "vendor": "Universal",
    "proto": [
      "analog_420"
    ],
    "unit": "дБ",
    "scale": 0.1,
    "widget": "kpi",
    "color": "wn2"
  },
  {
    "id": "mb210_gateway",
    "cat": "gateway",
    "name": "Owen MB210 — Modbus TCP шлюз",
    "model": "MB210",
    "vendor": "ОВЕН",
    "proto": [
      "modbus_tcp"
    ],
    "unit": "—",
    "widget": "status",
    "color": "ok2"
  },
  {
    "id": "adam4572",
    "cat": "gateway",
    "name": "Advantech ADAM-4572 Modbus шлюз",
    "model": "ADAM-4572",
    "vendor": "Advantech",
    "proto": [
      "modbus_tcp"
    ],
    "unit": "—",
    "widget": "status",
    "color": "ok2"
  },
  {
    "id": "opcua_server",
    "cat": "gateway",
    "name": "OPC-UA Сервер (ПЛК)",
    "vendor": "Universal",
    "proto": [
      "opcua"
    ],
    "unit": "—",
    "widget": "status",
    "color": "a2"
  },
  {
    "id": "plc_s7_1200",
    "cat": "gateway",
    "name": "Siemens S7-1200 (S7comm/PN)",
    "model": "S7-1200",
    "vendor": "Siemens",
    "proto": [
      "s7comm",
      "profinet",
      "modbus_tcp"
    ],
    "unit": "—",
    "widget": "status",
    "color": "a2"
  },
  {
    "id": "plc_s7_1500",
    "cat": "gateway",
    "name": "Siemens S7-1500 (S7comm/PN)",
    "model": "S7-1500",
    "vendor": "Siemens",
    "proto": [
      "s7comm",
      "profinet",
      "opcua"
    ],
    "unit": "—",
    "widget": "status",
    "color": "a2"
  },
  {
    "id": "plc_logo",
    "cat": "gateway",
    "name": "Siemens LOGO! 8 (Modbus)",
    "model": "LOGO! 8",
    "vendor": "Siemens",
    "proto": [
      "modbus_tcp"
    ],
    "unit": "—",
    "widget": "status",
    "color": "a2"
  },
  {
    "id": "plc_abcompact",
    "cat": "gateway",
    "name": "Allen-Bradley CompactLogix",
    "model": "CompactLogix",
    "vendor": "Rockwell",
    "proto": [
      "ethernet_ip"
    ],
    "unit": "—",
    "widget": "status",
    "color": "a2"
  },
  {
    "id": "plc_melsec",
    "cat": "gateway",
    "name": "Mitsubishi MELSEC Q/L",
    "vendor": "Mitsubishi",
    "proto": [
      "mc_protocol"
    ],
    "unit": "—",
    "widget": "status",
    "color": "a2"
  },
  {
    "id": "plc_owen",
    "cat": "gateway",
    "name": "ОВЕН ПЛК110/210",
    "vendor": "ОВЕН",
    "proto": [
      "modbus_tcp",
      "modbus_rtu"
    ],
    "unit": "—",
    "widget": "status",
    "color": "ok2"
  },
  {
    "id": "io_aix",
    "cat": "gateway",
    "name": "Модуль аналоговых входов AI",
    "vendor": "Phoenix Contact",
    "proto": [
      "modbus_tcp",
      "profinet"
    ],
    "unit": "—",
    "widget": "status",
    "color": "a3"
  },
  {
    "id": "mqtt_broker",
    "cat": "gateway",
    "name": "MQTT Брокер / IoT шлюз",
    "vendor": "HiveMQ/Mosquitto",
    "proto": [
      "mqtt"
    ],
    "unit": "—",
    "widget": "status",
    "color": "ok2"
  },
  {
    "id": "opcua_weintek",
    "cat": "gateway",
    "name": "Weintek cMT/EasyAccess OPC-UA",
    "vendor": "Weintek",
    "proto": [
      "opcua",
      "modbus_tcp"
    ],
    "unit": "—",
    "widget": "status",
    "color": "a2"
  },
  {
    "id": "leak_det",
    "cat": "safety",
    "name": "Датчик утечки жидкости",
    "vendor": "Gems Sensors",
    "proto": [
      "discrete",
      "modbus_tcp"
    ],
    "unit": "bool",
    "widget": "status",
    "color": "er2"
  },
  {
    "id": "smoke_gas",
    "cat": "safety",
    "name": "Датчик дыма / горючего газа",
    "vendor": "Honeywell",
    "proto": [
      "discrete"
    ],
    "unit": "bool",
    "widget": "status",
    "color": "er2"
  },
  {
    "id": "door_cold",
    "cat": "safety",
    "name": "Датчик открытия (холодильник/камера)",
    "vendor": "Paradox",
    "proto": [
      "discrete"
    ],
    "unit": "bool",
    "widget": "status",
    "color": "wn2"
  },
  {
    "id": "estop",
    "cat": "safety",
    "name": "Аварийная кнопка E-STOP",
    "vendor": "Pilz/SICK",
    "proto": [
      "discrete",
      "profinet"
    ],
    "unit": "bool",
    "widget": "status",
    "color": "er2"
  },
  {
    "id": "oee_line",
    "cat": "oee",
    "name": "OEE линии (%)",
    "vendor": "Calculated",
    "proto": [
      "internal"
    ],
    "unit": "%",
    "scale": 0.01,
    "minNorm": 85,
    "maxNorm": 100,
    "widget": "gauge",
    "color": "ok2"
  },
  {
    "id": "oee_avail",
    "cat": "oee",
    "name": "OEE Доступность",
    "vendor": "Calculated",
    "proto": [
      "internal"
    ],
    "unit": "%",
    "scale": 0.01,
    "widget": "gauge",
    "color": "ok2"
  },
  {
    "id": "oee_perf",
    "cat": "oee",
    "name": "OEE Производительность",
    "vendor": "Calculated",
    "proto": [
      "internal"
    ],
    "unit": "%",
    "scale": 0.01,
    "widget": "gauge",
    "color": "ok2"
  },
  {
    "id": "oee_quality",
    "cat": "oee",
    "name": "OEE Качество",
    "vendor": "Calculated",
    "proto": [
      "internal"
    ],
    "unit": "%",
    "scale": 0.01,
    "widget": "gauge",
    "color": "ok2"
  },
  {
    "id": "throughput",
    "cat": "oee",
    "name": "Производительность линии",
    "vendor": "Calculated",
    "proto": [
      "opcua",
      "modbus_tcp"
    ],
    "unit": "л/ч",
    "scale": 1,
    "widget": "kpi",
    "color": "ok2"
  },
  {
    "id": "scrap_rate",
    "cat": "oee",
    "name": "Процент брака",
    "vendor": "Calculated",
    "proto": [
      "internal"
    ],
    "unit": "%",
    "scale": 0.01,
    "minNorm": 0,
    "maxNorm": 5,
    "widget": "kpi",
    "color": "er2"
  },
  {
    "id": "downtime_min",
    "cat": "oee",
    "name": "Простои (мин/смена)",
    "vendor": "Calculated",
    "proto": [
      "internal"
    ],
    "unit": "мин",
    "scale": 1,
    "widget": "kpi",
    "color": "wn2"
  },
  {
    "id": "manual_any",
    "cat": "manual",
    "name": "Ручной ввод оператора",
    "vendor": "—",
    "proto": [
      "manual"
    ],
    "unit": "любая",
    "widget": "kpi",
    "color": "t2"
  }
]