Сеансы определения

Сводка · Управление · Обновления · Удалённая консоль · Профили · Неизвестные · Сеансы

[
  {
    "session_id": "mb-d91eb760f4725bda",
    "request_id": "scan-f4725bdad91eb760",
    "base": "1c8a54",
    "slave_id": 111,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "medium",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "identity": {},
            "attempts": [
              {
                "test_id": "device-identification-basic",
                "function": 43,
                "mei_type": 14,
                "error": "scan_standard_identification_unavailable"
              },
              {
                "test_id": "report-server-id",
                "function": 17,
                "error": "scan_standard_identification_unavailable"
              }
            ]
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-f4725bdad91eb760",
            "session_id": "mb-d91eb760f4725bda",
            "action": "accepted",
            "tm": "2026-10-12T08:30:48.821190Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "1c8a54"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "controller_id": "1c8a54",
            "request_id": "scan-f4725bdad91eb760",
            "session_id": "mb-d91eb760f4725bda",
            "action": "test_result",
            "event": "test_result",
            "results": [
              {
                "test_id": "temperature-humidity-int16-div10",
                "function": 4,
                "address": 0,
                "quantity": 2,
                "success": true,
                "byte_count": 4,
                "raw_hex": "00e801c2",
                "registers": [
                  232,
                  450
                ]
              },
              {
                "test_id": "waveshare-device-address",
                "function": 3,
                "address": 16384,
                "quantity": 1,
                "success": true,
                "byte_count": 2,
                "raw_hex": "0000",
                "registers": [
                  0
                ]
              },
              {
                "test_id": "waveshare-di-8",
                "function": 2,
                "address": 0,
                "quantity": 8,
                "success": true,
                "byte_count": 1,
                "raw_hex": "ff",
                "bits": [
                  true,
                  true,
                  true,
                  true,
                  true,
                  true,
                  true,
                  true
                ]
              },
              {
                "test_id": "waveshare-firmware-version",
                "function": 3,
                "address": 32768,
                "quantity": 1,
                "success": true,
                "byte_count": 2,
                "raw_hex": "0000",
                "registers": [
                  0
                ]
              },
              {
                "test_id": "waveshare-output-modes",
                "function": 3,
                "address": 4096,
                "quantity": 8,
                "success": true,
                "byte_count": 16,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ]
              },
              {
                "test_id": "wirenboard-model",
                "function": 4,
                "address": 200,
                "quantity": 20,
                "success": true,
                "byte_count": 40,
                "raw_hex": "00000000000000000000000000000000000000000000000000000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ]
              }
            ],
            "tm": "1791793849"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "controller_id": "1c8a54",
            "request_id": "scan-f4725bdad91eb760",
            "session_id": "mb-d91eb760f4725bda",
            "action": "step_complete",
            "event": "step_complete",
            "tm": "1791793849"
          }
        }
      ],
      "profile_id": "temperature_humidity_int16_div10",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "temperature_humidity_int16_div10",
        "profile_version": "1.0.0",
        "description": {
          "device_type": "temperature_humidity_sensor",
          "compatible_with": "SHT20",
          "identification_status": "requires_device_identification",
          "note": "Без подтверждённого FC 0x2B/0x0E или FC 0x11 это совместимый преобразователь, а не подтверждённая модель SHT20."
        },
        "line_parameters": {
          "mode": "rtu",
          "baudrate": 9600,
          "parity": "N",
          "timeout_ms": 200
        },
        "sensor_templates": [
          {
            "id": "temperature_c",
            "name": "Температура",
            "mode": "read",
            "function": 4,
            "address": 0,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "°C"
          },
          {
            "id": "humidity_percent",
            "name": "Влажность",
            "mode": "read",
            "function": 4,
            "address": 1,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "%"
          }
        ],
        "polling_intervals": {
          "default_seconds": 10
        }
      }
    },
    "created_at": "1791793848",
    "updated_at": "1791793849"
  },
  {
    "session_id": "mb-9d05096e2056fc53",
    "request_id": "scan-2056fc539d05096e",
    "base": "1c8a54",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "high",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "identity": {},
            "attempts": [
              {
                "test_id": "device-identification-basic",
                "function": 43,
                "mei_type": 14,
                "error": "scan_standard_identification_unavailable"
              },
              {
                "test_id": "report-server-id",
                "function": 17,
                "error": "scan_standard_identification_unavailable"
              }
            ]
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-2056fc539d05096e",
            "session_id": "mb-9d05096e2056fc53",
            "action": "accepted",
            "tm": "2026-10-12T08:30:25.435820Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "1c8a54"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "controller_id": "1c8a54",
            "request_id": "scan-2056fc539d05096e",
            "session_id": "mb-9d05096e2056fc53",
            "action": "test_result",
            "event": "test_result",
            "results": [
              {
                "test_id": "temperature-humidity-int16-div10",
                "function": 4,
                "address": 0,
                "quantity": 2,
                "success": false,
                "exception_code": 1
              },
              {
                "test_id": "waveshare-device-address",
                "function": 3,
                "address": 16384,
                "quantity": 1,
                "success": true,
                "byte_count": 2,
                "raw_hex": "000b",
                "registers": [
                  11
                ]
              },
              {
                "test_id": "waveshare-di-8",
                "function": 2,
                "address": 0,
                "quantity": 8,
                "success": true,
                "byte_count": 1,
                "raw_hex": "00",
                "bits": [
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false
                ]
              },
              {
                "test_id": "waveshare-firmware-version",
                "function": 3,
                "address": 32768,
                "quantity": 1,
                "success": true,
                "byte_count": 2,
                "raw_hex": "00c8",
                "registers": [
                  200
                ]
              },
              {
                "test_id": "waveshare-output-modes",
                "function": 3,
                "address": 4096,
                "quantity": 8,
                "success": true,
                "byte_count": 16,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ]
              },
              {
                "test_id": "wirenboard-model",
                "function": 4,
                "address": 200,
                "quantity": 20,
                "success": false,
                "exception_code": 1
              }
            ],
            "tm": "1791793826"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "controller_id": "1c8a54",
            "request_id": "scan-2056fc539d05096e",
            "session_id": "mb-9d05096e2056fc53",
            "action": "step_complete",
            "event": "step_complete",
            "tm": "1791793826"
          }
        }
      ],
      "profile_id": "waveshare_modbus_rtu_io_8ch",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "waveshare_modbus_rtu_io_8ch",
        "profile_version": "1.0.0",
        "description": {
          "manufacturer": "Waveshare",
          "model": "Modbus RTU IO 8CH",
          "documentation_url": "https://www.waveshare.com/wiki/Modbus_RTU_IO_8CH",
          "device_type": "industrial_isolated_io",
          "inputs": 8,
          "outputs": 8
        },
        "line_parameters": {
          "mode": "rtu"
        },
        "sensor_templates": [
          {
            "id": "di1",
            "name": "DI1",
            "mode": "read",
            "function": 2,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di2",
            "name": "DI2",
            "mode": "read",
            "function": 2,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di3",
            "name": "DI3",
            "mode": "read",
            "function": 2,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di4",
            "name": "DI4",
            "mode": "read",
            "function": 2,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di5",
            "name": "DI5",
            "mode": "read",
            "function": 2,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di6",
            "name": "DI6",
            "mode": "read",
            "function": 2,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di7",
            "name": "DI7",
            "mode": "read",
            "function": 2,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di8",
            "name": "DI8",
            "mode": "read",
            "function": 2,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do1_state",
            "name": "DO1",
            "mode": "read",
            "function": 1,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do2_state",
            "name": "DO2",
            "mode": "read",
            "function": 1,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do3_state",
            "name": "DO3",
            "mode": "read",
            "function": 1,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do4_state",
            "name": "DO4",
            "mode": "read",
            "function": 1,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do5_state",
            "name": "DO5",
            "mode": "read",
            "function": 1,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do6_state",
            "name": "DO6",
            "mode": "read",
            "function": 1,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do7_state",
            "name": "DO7",
            "mode": "read",
            "function": 1,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do8_state",
            "name": "DO8",
            "mode": "read",
            "function": 1,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          }
        ],
        "polling_intervals": {
          "default_seconds": 5
        }
      }
    },
    "created_at": "1791793825",
    "updated_at": "1791793826"
  },
  {
    "session_id": "mb-480f98775a431289",
    "request_id": "scan-5a431289480f9877",
    "base": "cf0a2c",
    "slave_id": 1,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "medium",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "identity": {},
            "attempts": [
              {
                "test_id": "device-identification-basic",
                "function": 43,
                "mei_type": 14,
                "error": "scan_standard_identification_unavailable"
              },
              {
                "test_id": "report-server-id",
                "function": 17,
                "error": "scan_standard_identification_unavailable"
              }
            ]
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-5a431289480f9877",
            "session_id": "mb-480f98775a431289",
            "action": "accepted",
            "tm": "2026-10-08T10:39:45.793494Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "cf0a2c"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "controller_id": "cf0a2c",
            "request_id": "scan-5a431289480f9877",
            "session_id": "mb-480f98775a431289",
            "action": "test_result",
            "event": "test_result",
            "results": [
              {
                "test_id": "temperature-humidity-int16-div10",
                "function": 4,
                "address": 0,
                "quantity": 2,
                "success": true,
                "byte_count": 4,
                "raw_hex": "00e4017c",
                "registers": [
                  228,
                  380
                ]
              },
              {
                "test_id": "waveshare-device-address",
                "function": 3,
                "address": 16384,
                "quantity": 1,
                "success": true,
                "byte_count": 2,
                "raw_hex": "0000",
                "registers": [
                  0
                ]
              },
              {
                "test_id": "waveshare-di-8",
                "function": 2,
                "address": 0,
                "quantity": 8,
                "success": true,
                "byte_count": 1,
                "raw_hex": "ff",
                "bits": [
                  true,
                  true,
                  true,
                  true,
                  true,
                  true,
                  true,
                  true
                ]
              },
              {
                "test_id": "waveshare-firmware-version",
                "function": 3,
                "address": 32768,
                "quantity": 1,
                "success": true,
                "byte_count": 2,
                "raw_hex": "0000",
                "registers": [
                  0
                ]
              },
              {
                "test_id": "waveshare-output-modes",
                "function": 3,
                "address": 4096,
                "quantity": 8,
                "success": true,
                "byte_count": 16,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ]
              },
              {
                "test_id": "wirenboard-model",
                "function": 4,
                "address": 200,
                "quantity": 20,
                "success": true,
                "byte_count": 40,
                "raw_hex": "00000000000000000000000000000000000000000000000000000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ]
              }
            ],
            "tm": "1791455985"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "controller_id": "cf0a2c",
            "request_id": "scan-5a431289480f9877",
            "session_id": "mb-480f98775a431289",
            "action": "step_complete",
            "event": "step_complete",
            "tm": "1791455985"
          }
        }
      ],
      "profile_id": "temperature_humidity_int16_div10",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "temperature_humidity_int16_div10",
        "profile_version": "1.0.0",
        "description": {
          "device_type": "temperature_humidity_sensor",
          "compatible_with": "SHT20",
          "identification_status": "requires_device_identification",
          "note": "Без подтверждённого FC 0x2B/0x0E или FC 0x11 это совместимый преобразователь, а не подтверждённая модель SHT20."
        },
        "line_parameters": {
          "mode": "rtu",
          "baudrate": 9600,
          "parity": "N",
          "timeout_ms": 200
        },
        "sensor_templates": [
          {
            "id": "temperature_c",
            "name": "Температура",
            "mode": "read",
            "function": 4,
            "address": 0,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "°C"
          },
          {
            "id": "humidity_percent",
            "name": "Влажность",
            "mode": "read",
            "function": 4,
            "address": 1,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "%"
          }
        ],
        "polling_intervals": {
          "default_seconds": 10
        }
      }
    },
    "created_at": "1791455985",
    "updated_at": "1791455985"
  },
  {
    "session_id": "mb-f9ebdacc7dddfb17",
    "request_id": "scan-7dddfb17f9ebdacc",
    "base": "cf0968",
    "slave_id": 11,
    "state": "timed_out",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "reason": "service_timeout"
    },
    "created_at": "946684939",
    "updated_at": "2026-10-06T10:57:54.285785Z"
  },
  {
    "session_id": "mb-4f1c53d53fcb305c",
    "request_id": "scan-3fcb305c4f1c53d5",
    "base": "426db4",
    "slave_id": 12,
    "state": "failed",
    "reads_used": 14,
    "steps_used": 2,
    "result": {
      "schema": "misx5.device_discovery.v1",
      "controller_id": "426db4",
      "request_id": "scan-3fcb305c4f1c53d5",
      "session_id": "mb-4f1c53d53fcb305c",
      "action": "error",
      "event": "error",
      "code": "profile_payload_too_large",
      "tm": "1790686323"
    },
    "created_at": "1790686318",
    "updated_at": "1790686323"
  },
  {
    "session_id": "mb-11ed523bd8a0936a",
    "request_id": "scan-d8a0936a11ed523b",
    "base": "426db4",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "high",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "identity": {},
            "attempts": [
              {
                "test_id": "device-identification-basic",
                "function": 43,
                "mei_type": 14,
                "error": "scan_standard_identification_unavailable"
              },
              {
                "test_id": "report-server-id",
                "function": 17,
                "error": "scan_standard_identification_unavailable"
              }
            ]
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-d8a0936a11ed523b",
            "session_id": "mb-11ed523bd8a0936a",
            "action": "accepted",
            "tm": "2026-09-02T11:13:13.567682Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "426db4"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "controller_id": "426db4",
            "request_id": "scan-d8a0936a11ed523b",
            "session_id": "mb-11ed523bd8a0936a",
            "action": "test_result",
            "event": "test_result",
            "results": [
              {
                "test_id": "temperature-humidity-int16-div10",
                "function": 4,
                "address": 0,
                "quantity": 2,
                "success": false,
                "exception_code": 1
              },
              {
                "test_id": "waveshare-device-address",
                "function": 3,
                "address": 16384,
                "quantity": 1,
                "success": true,
                "byte_count": 2,
                "raw_hex": "000b",
                "registers": [
                  11
                ]
              },
              {
                "test_id": "waveshare-di-8",
                "function": 2,
                "address": 0,
                "quantity": 8,
                "success": true,
                "byte_count": 1,
                "raw_hex": "3f",
                "bits": [
                  true,
                  true,
                  true,
                  true,
                  true,
                  true,
                  false,
                  false
                ]
              },
              {
                "test_id": "waveshare-firmware-version",
                "function": 3,
                "address": 32768,
                "quantity": 1,
                "success": true,
                "byte_count": 2,
                "raw_hex": "00c8",
                "registers": [
                  200
                ]
              },
              {
                "test_id": "waveshare-output-modes",
                "function": 3,
                "address": 4096,
                "quantity": 8,
                "success": true,
                "byte_count": 16,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ]
              },
              {
                "test_id": "wirenboard-model",
                "function": 4,
                "address": 200,
                "quantity": 20,
                "success": false,
                "exception_code": 1
              }
            ],
            "tm": "1788347595"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "controller_id": "426db4",
            "request_id": "scan-d8a0936a11ed523b",
            "session_id": "mb-11ed523bd8a0936a",
            "action": "step_complete",
            "event": "step_complete",
            "tm": "1788347595"
          }
        }
      ],
      "profile_id": "waveshare_modbus_rtu_io_8ch",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "waveshare_modbus_rtu_io_8ch",
        "profile_version": "1.0.0",
        "description": {
          "manufacturer": "Waveshare",
          "model": "Modbus RTU IO 8CH",
          "documentation_url": "https://www.waveshare.com/wiki/Modbus_RTU_IO_8CH",
          "device_type": "industrial_isolated_io",
          "inputs": 8,
          "outputs": 8
        },
        "line_parameters": {
          "mode": "rtu"
        },
        "sensor_templates": [
          {
            "id": "di1",
            "name": "DI1",
            "mode": "read",
            "function": 2,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di2",
            "name": "DI2",
            "mode": "read",
            "function": 2,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di3",
            "name": "DI3",
            "mode": "read",
            "function": 2,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di4",
            "name": "DI4",
            "mode": "read",
            "function": 2,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di5",
            "name": "DI5",
            "mode": "read",
            "function": 2,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di6",
            "name": "DI6",
            "mode": "read",
            "function": 2,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di7",
            "name": "DI7",
            "mode": "read",
            "function": 2,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di8",
            "name": "DI8",
            "mode": "read",
            "function": 2,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do1_state",
            "name": "DO1",
            "mode": "read",
            "function": 1,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do2_state",
            "name": "DO2",
            "mode": "read",
            "function": 1,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do3_state",
            "name": "DO3",
            "mode": "read",
            "function": 1,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do4_state",
            "name": "DO4",
            "mode": "read",
            "function": 1,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do5_state",
            "name": "DO5",
            "mode": "read",
            "function": 1,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do6_state",
            "name": "DO6",
            "mode": "read",
            "function": 1,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do7_state",
            "name": "DO7",
            "mode": "read",
            "function": 1,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do8_state",
            "name": "DO8",
            "mode": "read",
            "function": 1,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          }
        ],
        "polling_intervals": {
          "default_seconds": 5
        }
      }
    },
    "created_at": "1788347593",
    "updated_at": "1788347596"
  },
  {
    "session_id": "mb-f74a4b8cbbb8564f",
    "request_id": "scan-bbb8564ff74a4b8c",
    "base": "426db4",
    "slave_id": 2,
    "state": "failed",
    "reads_used": 14,
    "steps_used": 2,
    "result": {
      "schema": "misx5.device_discovery.v1",
      "controller_id": "426db4",
      "request_id": "scan-bbb8564ff74a4b8c",
      "session_id": "mb-f74a4b8cbbb8564f",
      "action": "error",
      "event": "error",
      "code": "profile_payload_too_large",
      "tm": "1788347593"
    },
    "created_at": "1788347577",
    "updated_at": "1788347593"
  },
  {
    "session_id": "mb-b23994bf0576d3ad",
    "request_id": "scan-0576d3adb23994bf",
    "base": "426db4",
    "slave_id": 12,
    "state": "finished",
    "reads_used": 14,
    "steps_used": 2,
    "result": {
      "outcome": "unknown",
      "reason": "ни один профиль не совместим с ответами",
      "confidence": "none",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "identity": {},
            "attempts": [
              {
                "test_id": "device-identification-basic",
                "function": 43,
                "mei_type": 14,
                "error": "scan_standard_identification_unavailable"
              },
              {
                "test_id": "report-server-id",
                "function": 17,
                "error": "scan_standard_identification_unavailable"
              }
            ]
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-0576d3adb23994bf",
            "session_id": "mb-b23994bf0576d3ad",
            "action": "accepted",
            "tm": "2026-09-02T11:12:21.054518Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "426db4"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "controller_id": "426db4",
            "request_id": "scan-0576d3adb23994bf",
            "session_id": "mb-b23994bf0576d3ad",
            "action": "test_result",
            "event": "test_result",
            "results": [
              {
                "test_id": "temperature-humidity-int16-div10",
                "function": 4,
                "address": 0,
                "quantity": 2,
                "success": false,
                "exception_code": 1
              },
              {
                "test_id": "waveshare-device-address",
                "function": 3,
                "address": 16384,
                "quantity": 1,
                "success": false,
                "error": "timeout"
              },
              {
                "test_id": "waveshare-di-8",
                "function": 2,
                "address": 0,
                "quantity": 8,
                "success": false,
                "error": "timeout"
              },
              {
                "test_id": "waveshare-firmware-version",
                "function": 3,
                "address": 32768,
                "quantity": 1,
                "success": false,
                "error": "timeout"
              },
              {
                "test_id": "waveshare-output-modes",
                "function": 3,
                "address": 4096,
                "quantity": 8,
                "success": false,
                "error": "timeout"
              },
              {
                "test_id": "wirenboard-model",
                "function": 4,
                "address": 200,
                "quantity": 20,
                "success": false,
                "error": "timeout"
              }
            ],
            "tm": "1788347547"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "controller_id": "426db4",
            "request_id": "scan-0576d3adb23994bf",
            "session_id": "mb-b23994bf0576d3ad",
            "action": "step_complete",
            "event": "step_complete",
            "tm": "1788347547"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "explore-holding-0",
              "function": 3,
              "address": 0,
              "quantity": 4
            },
            {
              "test_id": "explore-input-0",
              "function": 4,
              "address": 0,
              "quantity": 4
            },
            {
              "test_id": "explore-holding-10",
              "function": 3,
              "address": 10,
              "quantity": 2
            },
            {
              "test_id": "explore-input-10",
              "function": 4,
              "address": 10,
              "quantity": 2
            },
            {
              "test_id": "explore-holding-100",
              "function": 3,
              "address": 100,
              "quantity": 2
            },
            {
              "test_id": "explore-input-100",
              "function": 4,
              "address": 100,
              "quantity": 2
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "controller_id": "426db4",
            "request_id": "scan-0576d3adb23994bf",
            "session_id": "mb-b23994bf0576d3ad",
            "action": "test_result",
            "event": "test_result",
            "results": [
              {
                "test_id": "explore-holding-0",
                "function": 3,
                "address": 0,
                "quantity": 4,
                "success": false,
                "error": "timeout"
              },
              {
                "test_id": "explore-input-0",
                "function": 4,
                "address": 0,
                "quantity": 4,
                "success": false,
                "error": "timeout"
              },
              {
                "test_id": "explore-holding-10",
                "function": 3,
                "address": 10,
                "quantity": 2,
                "success": false,
                "error": "timeout"
              },
              {
                "test_id": "explore-input-10",
                "function": 4,
                "address": 10,
                "quantity": 2,
                "success": false,
                "error": "timeout"
              },
              {
                "test_id": "explore-holding-100",
                "function": 3,
                "address": 100,
                "quantity": 2,
                "success": false,
                "error": "timeout"
              },
              {
                "test_id": "explore-input-100",
                "function": 4,
                "address": 100,
                "quantity": 2,
                "success": false,
                "error": "timeout"
              }
            ],
            "tm": "1788347556"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "controller_id": "426db4",
            "request_id": "scan-0576d3adb23994bf",
            "session_id": "mb-b23994bf0576d3ad",
            "action": "step_complete",
            "event": "step_complete",
            "tm": "1788347556"
          }
        }
      ],
      "unknown_group": {
        "signature": "26a8825a10ecbc309ff572ade3cc033cbc5178129a160239adfc3ccd7f049783",
        "sample_count": 1
      },
      "draft_profile": {
        "profile_id": "draft-26a8825a10ec",
        "version": "0.1.0",
        "confidence": "medium",
        "description": {
          "name": "Неизвестное Modbus-устройство",
          "signature": "26a8825a10ecbc309ff572ade3cc033cbc5178129a160239adfc3ccd7f049783"
        },
        "line_parameters": {
          "baudrate": 9600,
          "data_bits": 8,
          "parity": "none",
          "stop_bits": 1
        },
        "sensor_templates": [],
        "polling_intervals": {
          "default_seconds": 60
        },
        "recognition": {
          "identity": {},
          "fingerprints": [
            {
              "test": {
                "test_id": "temperature-humidity-int16-div10",
                "function": 4,
                "address": 0,
                "quantity": 2
              },
              "expect": {
                "test_id": "temperature-humidity-int16-div10",
                "exception_code": 1
              }
            }
          ]
        },
        "observation_policy": "Признаки содержат только форму ответа; сырые значения сохранены отдельно и требуют проверки.",
        "generated": true,
        "review_required": true
      }
    },
    "created_at": "1788347539",
    "updated_at": "1788347577"
  },
  {
    "session_id": "mb-ee41a40b31c2b3c0",
    "request_id": "scan-31c2b3c0ee41a40b",
    "base": "426db4",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 14,
    "steps_used": 2,
    "result": {
      "outcome": "unknown",
      "reason": "ни один профиль не совместим с ответами",
      "confidence": "none",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "identity": {},
            "attempts": [
              {
                "test_id": "device-identification-basic",
                "function": 43,
                "mei_type": 14,
                "error": "scan_standard_identification_unavailable"
              },
              {
                "test_id": "report-server-id",
                "function": 17,
                "error": "scan_standard_identification_unavailable"
              }
            ]
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-31c2b3c0ee41a40b",
            "session_id": "mb-ee41a40b31c2b3c0",
            "action": "accepted",
            "tm": "2026-09-02T11:12:05.411426Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "426db4"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "controller_id": "426db4",
            "request_id": "scan-31c2b3c0ee41a40b",
            "session_id": "mb-ee41a40b31c2b3c0",
            "action": "test_result",
            "event": "test_result",
            "results": [
              {
                "test_id": "temperature-humidity-int16-div10",
                "function": 4,
                "address": 0,
                "quantity": 2,
                "success": false,
                "exception_code": 1
              },
              {
                "test_id": "waveshare-device-address",
                "function": 3,
                "address": 16384,
                "quantity": 1,
                "success": false,
                "error": "timeout"
              },
              {
                "test_id": "waveshare-di-8",
                "function": 2,
                "address": 0,
                "quantity": 8,
                "success": false,
                "error": "timeout"
              },
              {
                "test_id": "waveshare-firmware-version",
                "function": 3,
                "address": 32768,
                "quantity": 1,
                "success": false,
                "error": "timeout"
              },
              {
                "test_id": "waveshare-output-modes",
                "function": 3,
                "address": 4096,
                "quantity": 8,
                "success": false,
                "error": "timeout"
              },
              {
                "test_id": "wirenboard-model",
                "function": 4,
                "address": 200,
                "quantity": 20,
                "success": false,
                "error": "timeout"
              }
            ],
            "tm": "1788347531"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "controller_id": "426db4",
            "request_id": "scan-31c2b3c0ee41a40b",
            "session_id": "mb-ee41a40b31c2b3c0",
            "action": "step_complete",
            "event": "step_complete",
            "tm": "1788347531"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "explore-holding-0",
              "function": 3,
              "address": 0,
              "quantity": 4
            },
            {
              "test_id": "explore-input-0",
              "function": 4,
              "address": 0,
              "quantity": 4
            },
            {
              "test_id": "explore-holding-10",
              "function": 3,
              "address": 10,
              "quantity": 2
            },
            {
              "test_id": "explore-input-10",
              "function": 4,
              "address": 10,
              "quantity": 2
            },
            {
              "test_id": "explore-holding-100",
              "function": 3,
              "address": 100,
              "quantity": 2
            },
            {
              "test_id": "explore-input-100",
              "function": 4,
              "address": 100,
              "quantity": 2
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "controller_id": "426db4",
            "request_id": "scan-31c2b3c0ee41a40b",
            "session_id": "mb-ee41a40b31c2b3c0",
            "action": "test_result",
            "event": "test_result",
            "results": [
              {
                "test_id": "explore-holding-0",
                "function": 3,
                "address": 0,
                "quantity": 4,
                "success": false,
                "exception_code": 2
              },
              {
                "test_id": "explore-input-0",
                "function": 4,
                "address": 0,
                "quantity": 4,
                "success": false,
                "error": "timeout"
              },
              {
                "test_id": "explore-holding-10",
                "function": 3,
                "address": 10,
                "quantity": 2,
                "success": false,
                "error": "timeout"
              },
              {
                "test_id": "explore-input-10",
                "function": 4,
                "address": 10,
                "quantity": 2,
                "success": false,
                "error": "timeout"
              },
              {
                "test_id": "explore-holding-100",
                "function": 3,
                "address": 100,
                "quantity": 2,
                "success": false,
                "error": "timeout"
              },
              {
                "test_id": "explore-input-100",
                "function": 4,
                "address": 100,
                "quantity": 2,
                "success": false,
                "error": "timeout"
              }
            ],
            "tm": "1788347539"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "controller_id": "426db4",
            "request_id": "scan-31c2b3c0ee41a40b",
            "session_id": "mb-ee41a40b31c2b3c0",
            "action": "step_complete",
            "event": "step_complete",
            "tm": "1788347539"
          }
        }
      ],
      "unknown_group": {
        "signature": "ccf6ef46470ecf5fdcc01aabe06053a8a7bea242ac0414dd9a82d9f55784d867",
        "sample_count": 1
      },
      "draft_profile": {
        "profile_id": "draft-ccf6ef46470e",
        "version": "0.1.0",
        "confidence": "medium",
        "description": {
          "name": "Неизвестное Modbus-устройство",
          "signature": "ccf6ef46470ecf5fdcc01aabe06053a8a7bea242ac0414dd9a82d9f55784d867"
        },
        "line_parameters": {
          "baudrate": 9600,
          "data_bits": 8,
          "parity": "none",
          "stop_bits": 1
        },
        "sensor_templates": [],
        "polling_intervals": {
          "default_seconds": 60
        },
        "recognition": {
          "identity": {},
          "fingerprints": [
            {
              "test": {
                "test_id": "explore-holding-0",
                "function": 3,
                "address": 0,
                "quantity": 4
              },
              "expect": {
                "test_id": "explore-holding-0",
                "exception_code": 2
              }
            },
            {
              "test": {
                "test_id": "temperature-humidity-int16-div10",
                "function": 4,
                "address": 0,
                "quantity": 2
              },
              "expect": {
                "test_id": "temperature-humidity-int16-div10",
                "exception_code": 1
              }
            }
          ]
        },
        "observation_policy": "Признаки содержат только форму ответа; сырые значения сохранены отдельно и требуют проверки.",
        "generated": true,
        "review_required": true
      }
    },
    "created_at": "1788347495",
    "updated_at": "1788347539"
  },
  {
    "session_id": "mb-7885fea120a6b612",
    "request_id": "scan-20a6b6127885fea1",
    "base": "426db4",
    "slave_id": 2,
    "state": "timed_out",
    "reads_used": 14,
    "steps_used": 2,
    "result": {
      "schema": "misx5.device_discovery.v1",
      "controller_id": "426db4",
      "request_id": "scan-20a6b6127885fea1",
      "session_id": "mb-7885fea120a6b612",
      "action": "timeout",
      "event": "timeout",
      "code": "local_timeout",
      "tm": "1788347495"
    },
    "created_at": "1788347446",
    "updated_at": "1788347495"
  },
  {
    "session_id": "mb-920c10e91fd7ad75",
    "request_id": "scan-1fd7ad75920c10e9",
    "base": "426db4",
    "slave_id": 12,
    "state": "failed",
    "reads_used": 14,
    "steps_used": 2,
    "result": {
      "schema": "misx5.device_discovery.v1",
      "controller_id": "426db4",
      "request_id": "scan-1fd7ad75920c10e9",
      "session_id": "mb-920c10e91fd7ad75",
      "action": "error",
      "event": "error",
      "code": "profile_payload_too_large",
      "tm": "1788346123"
    },
    "created_at": "1788346095",
    "updated_at": "1788346123"
  },
  {
    "session_id": "mb-b580f147ed4a1830",
    "request_id": "scan-ed4a1830b580f147",
    "base": "426db4",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "high",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "identity": {},
            "attempts": [
              {
                "test_id": "device-identification-basic",
                "function": 43,
                "mei_type": 14,
                "error": "scan_standard_identification_unavailable"
              },
              {
                "test_id": "report-server-id",
                "function": 17,
                "error": "scan_standard_identification_unavailable"
              }
            ]
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-ed4a1830b580f147",
            "session_id": "mb-b580f147ed4a1830",
            "action": "accepted",
            "tm": "2026-09-02T10:48:11.625996Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "426db4"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "controller_id": "426db4",
            "request_id": "scan-ed4a1830b580f147",
            "session_id": "mb-b580f147ed4a1830",
            "action": "test_result",
            "event": "test_result",
            "results": [
              {
                "test_id": "temperature-humidity-int16-div10",
                "function": 4,
                "address": 0,
                "quantity": 2,
                "success": false,
                "exception_code": 1
              },
              {
                "test_id": "waveshare-device-address",
                "function": 3,
                "address": 16384,
                "quantity": 1,
                "success": true,
                "byte_count": 2,
                "raw_hex": "000b",
                "registers": [
                  11
                ]
              },
              {
                "test_id": "waveshare-di-8",
                "function": 2,
                "address": 0,
                "quantity": 8,
                "success": true,
                "byte_count": 1,
                "raw_hex": "3f",
                "bits": [
                  true,
                  true,
                  true,
                  true,
                  true,
                  true,
                  false,
                  false
                ]
              },
              {
                "test_id": "waveshare-firmware-version",
                "function": 3,
                "address": 32768,
                "quantity": 1,
                "success": true,
                "byte_count": 2,
                "raw_hex": "00c8",
                "registers": [
                  200
                ]
              },
              {
                "test_id": "waveshare-output-modes",
                "function": 3,
                "address": 4096,
                "quantity": 8,
                "success": true,
                "byte_count": 16,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ]
              },
              {
                "test_id": "wirenboard-model",
                "function": 4,
                "address": 200,
                "quantity": 20,
                "success": false,
                "exception_code": 1
              }
            ],
            "tm": "1788346095"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "controller_id": "426db4",
            "request_id": "scan-ed4a1830b580f147",
            "session_id": "mb-b580f147ed4a1830",
            "action": "step_complete",
            "event": "step_complete",
            "tm": "1788346095"
          }
        }
      ],
      "profile_id": "waveshare_modbus_rtu_io_8ch",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "waveshare_modbus_rtu_io_8ch",
        "profile_version": "1.0.0",
        "description": {
          "manufacturer": "Waveshare",
          "model": "Modbus RTU IO 8CH",
          "documentation_url": "https://www.waveshare.com/wiki/Modbus_RTU_IO_8CH",
          "device_type": "industrial_isolated_io",
          "inputs": 8,
          "outputs": 8
        },
        "line_parameters": {
          "mode": "rtu"
        },
        "sensor_templates": [
          {
            "id": "di1",
            "name": "DI1",
            "mode": "read",
            "function": 2,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di2",
            "name": "DI2",
            "mode": "read",
            "function": 2,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di3",
            "name": "DI3",
            "mode": "read",
            "function": 2,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di4",
            "name": "DI4",
            "mode": "read",
            "function": 2,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di5",
            "name": "DI5",
            "mode": "read",
            "function": 2,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di6",
            "name": "DI6",
            "mode": "read",
            "function": 2,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di7",
            "name": "DI7",
            "mode": "read",
            "function": 2,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di8",
            "name": "DI8",
            "mode": "read",
            "function": 2,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do1_state",
            "name": "DO1",
            "mode": "read",
            "function": 1,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do2_state",
            "name": "DO2",
            "mode": "read",
            "function": 1,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do3_state",
            "name": "DO3",
            "mode": "read",
            "function": 1,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do4_state",
            "name": "DO4",
            "mode": "read",
            "function": 1,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do5_state",
            "name": "DO5",
            "mode": "read",
            "function": 1,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do6_state",
            "name": "DO6",
            "mode": "read",
            "function": 1,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do7_state",
            "name": "DO7",
            "mode": "read",
            "function": 1,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do8_state",
            "name": "DO8",
            "mode": "read",
            "function": 1,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          }
        ],
        "polling_intervals": {
          "default_seconds": 5
        }
      }
    },
    "created_at": "1788346090",
    "updated_at": "1788346095"
  },
  {
    "session_id": "mb-9f493a410b2f6ebf",
    "request_id": "scan-0b2f6ebf9f493a41",
    "base": "426db4",
    "slave_id": 2,
    "state": "failed",
    "reads_used": 14,
    "steps_used": 2,
    "result": {
      "schema": "misx5.device_discovery.v1",
      "controller_id": "426db4",
      "request_id": "scan-0b2f6ebf9f493a41",
      "session_id": "mb-9f493a410b2f6ebf",
      "action": "error",
      "event": "error",
      "code": "profile_payload_too_large",
      "tm": "1788346090"
    },
    "created_at": "1788346073",
    "updated_at": "1788346090"
  },
  {
    "session_id": "mb-cfb872e38de54af5",
    "request_id": "scan-8de54af5cfb872e3",
    "base": "88a4d4",
    "slave_id": 1,
    "state": "failed",
    "reads_used": 14,
    "steps_used": 2,
    "result": {
      "schema": "misx5.device_discovery.v1",
      "controller_id": "88a4d4",
      "request_id": "scan-8de54af5cfb872e3",
      "session_id": "mb-cfb872e38de54af5",
      "action": "error",
      "event": "error",
      "code": "profile_payload_too_large",
      "tm": "1788342280"
    },
    "created_at": "1788342262",
    "updated_at": "1788342280"
  },
  {
    "session_id": "mb-749e8fc8a29323a2",
    "request_id": "scan-a29323a2749e8fc8",
    "base": "88a4d4",
    "slave_id": 1,
    "state": "finished",
    "reads_used": 14,
    "steps_used": 2,
    "result": {
      "outcome": "unknown",
      "reason": "ни один профиль не совместим с ответами",
      "confidence": "none",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "identity": {},
            "attempts": [
              {
                "test_id": "device-identification-basic",
                "function": 43,
                "mei_type": 14,
                "error": "scan_standard_identification_unavailable"
              },
              {
                "test_id": "report-server-id",
                "function": 17,
                "error": "scan_standard_identification_unavailable"
              }
            ]
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-a29323a2749e8fc8",
            "session_id": "mb-749e8fc8a29323a2",
            "action": "accepted",
            "tm": "2026-09-02T09:43:31.552589Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "88a4d4"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "controller_id": "88a4d4",
            "request_id": "scan-a29323a2749e8fc8",
            "session_id": "mb-749e8fc8a29323a2",
            "action": "test_result",
            "event": "test_result",
            "results": [
              {
                "test_id": "temperature-humidity-int16-div10",
                "function": 4,
                "address": 0,
                "quantity": 2,
                "success": false,
                "error": "timeout"
              },
              {
                "test_id": "waveshare-device-address",
                "function": 3,
                "address": 16384,
                "quantity": 1,
                "success": false,
                "exception_code": 2
              },
              {
                "test_id": "waveshare-di-8",
                "function": 2,
                "address": 0,
                "quantity": 8,
                "success": false,
                "error": "timeout"
              },
              {
                "test_id": "waveshare-firmware-version",
                "function": 3,
                "address": 32768,
                "quantity": 1,
                "success": false,
                "exception_code": 2
              },
              {
                "test_id": "waveshare-output-modes",
                "function": 3,
                "address": 4096,
                "quantity": 8,
                "success": false,
                "exception_code": 3
              },
              {
                "test_id": "wirenboard-model",
                "function": 4,
                "address": 200,
                "quantity": 20,
                "success": false,
                "exception_code": 2
              }
            ],
            "tm": "1788342217"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "controller_id": "88a4d4",
            "request_id": "scan-a29323a2749e8fc8",
            "session_id": "mb-749e8fc8a29323a2",
            "action": "step_complete",
            "event": "step_complete",
            "tm": "1788342217"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "explore-holding-0",
              "function": 3,
              "address": 0,
              "quantity": 4
            },
            {
              "test_id": "explore-input-0",
              "function": 4,
              "address": 0,
              "quantity": 4
            },
            {
              "test_id": "explore-holding-10",
              "function": 3,
              "address": 10,
              "quantity": 2
            },
            {
              "test_id": "explore-input-10",
              "function": 4,
              "address": 10,
              "quantity": 2
            },
            {
              "test_id": "explore-holding-100",
              "function": 3,
              "address": 100,
              "quantity": 2
            },
            {
              "test_id": "explore-input-100",
              "function": 4,
              "address": 100,
              "quantity": 2
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "controller_id": "88a4d4",
            "request_id": "scan-a29323a2749e8fc8",
            "session_id": "mb-749e8fc8a29323a2",
            "action": "test_result",
            "event": "test_result",
            "results": [
              {
                "test_id": "explore-holding-0",
                "function": 3,
                "address": 0,
                "quantity": 4,
                "success": false,
                "exception_code": 2
              },
              {
                "test_id": "explore-input-0",
                "function": 4,
                "address": 0,
                "quantity": 4,
                "success": false,
                "error": "timeout"
              },
              {
                "test_id": "explore-holding-10",
                "function": 3,
                "address": 10,
                "quantity": 2,
                "success": false,
                "error": "timeout"
              },
              {
                "test_id": "explore-input-10",
                "function": 4,
                "address": 10,
                "quantity": 2,
                "success": false,
                "error": "timeout"
              },
              {
                "test_id": "explore-holding-100",
                "function": 3,
                "address": 100,
                "quantity": 2,
                "success": false,
                "error": "timeout"
              },
              {
                "test_id": "explore-input-100",
                "function": 4,
                "address": 100,
                "quantity": 2,
                "success": false,
                "error": "timeout"
              }
            ],
            "tm": "1788342225"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "controller_id": "88a4d4",
            "request_id": "scan-a29323a2749e8fc8",
            "session_id": "mb-749e8fc8a29323a2",
            "action": "step_complete",
            "event": "step_complete",
            "tm": "1788342225"
          }
        }
      ],
      "unknown_group": {
        "signature": "55046357897827b9b45d51631712d51eec4a9fc9a978a44ee07eecb17248428a",
        "sample_count": 1
      },
      "draft_profile": {
        "profile_id": "draft-550463578978",
        "version": "0.1.0",
        "confidence": "medium",
        "description": {
          "name": "Неизвестное Modbus-устройство",
          "signature": "55046357897827b9b45d51631712d51eec4a9fc9a978a44ee07eecb17248428a"
        },
        "line_parameters": {
          "baudrate": 9600,
          "data_bits": 8,
          "parity": "none",
          "stop_bits": 1
        },
        "sensor_templates": [],
        "polling_intervals": {
          "default_seconds": 60
        },
        "recognition": {
          "identity": {},
          "fingerprints": [
            {
              "test": {
                "test_id": "explore-holding-0",
                "function": 3,
                "address": 0,
                "quantity": 4
              },
              "expect": {
                "test_id": "explore-holding-0",
                "exception_code": 2
              }
            },
            {
              "test": {
                "test_id": "waveshare-device-address",
                "function": 3,
                "address": 16384,
                "quantity": 1
              },
              "expect": {
                "test_id": "waveshare-device-address",
                "exception_code": 2
              }
            },
            {
              "test": {
                "test_id": "waveshare-firmware-version",
                "function": 3,
                "address": 32768,
                "quantity": 1
              },
              "expect": {
                "test_id": "waveshare-firmware-version",
                "exception_code": 2
              }
            },
            {
              "test": {
                "test_id": "waveshare-output-modes",
                "function": 3,
                "address": 4096,
                "quantity": 8
              },
              "expect": {
                "test_id": "waveshare-output-modes",
                "exception_code": 3
              }
            },
            {
              "test": {
                "test_id": "wirenboard-model",
                "function": 4,
                "address": 200,
                "quantity": 20
              },
              "expect": {
                "test_id": "wirenboard-model",
                "exception_code": 2
              }
            }
          ]
        },
        "observation_policy": "Признаки содержат только форму ответа; сырые значения сохранены отдельно и требуют проверки.",
        "generated": true,
        "review_required": true
      }
    },
    "created_at": "1788342211",
    "updated_at": "1788342225"
  },
  {
    "session_id": "mb-d85457066b69de34",
    "request_id": "scan-6b69de34d8545706",
    "base": "88a4d4",
    "slave_id": 1,
    "state": "failed",
    "reads_used": 14,
    "steps_used": 2,
    "result": {
      "schema": "misx5.device_discovery.v1",
      "controller_id": "88a4d4",
      "request_id": "scan-6b69de34d8545706",
      "session_id": "mb-d85457066b69de34",
      "action": "error",
      "event": "error",
      "code": "profile_payload_too_large",
      "tm": "1788342088"
    },
    "created_at": "1788342055",
    "updated_at": "1788342088"
  },
  {
    "session_id": "mb-7fc13e1fb50fdb9f",
    "request_id": "scan-b50fdb9f7fc13e1f",
    "base": "88a4d4",
    "slave_id": 1,
    "state": "failed",
    "reads_used": 14,
    "steps_used": 2,
    "result": {
      "schema": "misx5.device_discovery.v1",
      "controller_id": "88a4d4",
      "request_id": "scan-b50fdb9f7fc13e1f",
      "session_id": "mb-7fc13e1fb50fdb9f",
      "action": "error",
      "event": "error",
      "code": "profile_payload_too_large",
      "tm": "1788341728"
    },
    "created_at": "1788341703",
    "updated_at": "1788341728"
  },
  {
    "session_id": "mb-bbc2b37938b9e703",
    "request_id": "scan-38b9e703bbc2b379",
    "base": "88a4d4",
    "slave_id": 1,
    "state": "failed",
    "reads_used": 14,
    "steps_used": 2,
    "result": {
      "schema": "misx5.device_discovery.v1",
      "controller_id": "88a4d4",
      "request_id": "scan-38b9e703bbc2b379",
      "session_id": "mb-bbc2b37938b9e703",
      "action": "error",
      "event": "error",
      "code": "profile_payload_too_large",
      "tm": "1788341487"
    },
    "created_at": "1788341458",
    "updated_at": "1788341487"
  },
  {
    "session_id": "mb-c1e9345985eae3b5",
    "request_id": "scan-85eae3b5c1e93459",
    "base": "88a4d4",
    "slave_id": 1,
    "state": "timed_out",
    "reads_used": 14,
    "steps_used": 2,
    "result": {
      "reason": "service_timeout"
    },
    "created_at": "1788341271",
    "updated_at": "2026-09-02T09:28:42.509077Z"
  },
  {
    "session_id": "mb-81bd424b631698ff",
    "request_id": "scan-631698ff81bd424b",
    "base": "88a4d4",
    "slave_id": 1,
    "state": "failed",
    "reads_used": 14,
    "steps_used": 2,
    "result": {
      "schema": "misx5.device_discovery.v1",
      "controller_id": "88a4d4",
      "request_id": "scan-631698ff81bd424b",
      "session_id": "mb-81bd424b631698ff",
      "action": "error",
      "event": "error",
      "code": "profile_payload_too_large",
      "tm": "1788341135"
    },
    "created_at": "1788341120",
    "updated_at": "1788341135"
  },
  {
    "session_id": "mb-b34e48ba186fd6e6",
    "request_id": "scan-186fd6e6b34e48ba",
    "base": "88a4d4",
    "slave_id": 1,
    "state": "failed",
    "reads_used": 14,
    "steps_used": 2,
    "result": {
      "schema": "misx5.device_discovery.v1",
      "controller_id": "88a4d4",
      "request_id": "scan-186fd6e6b34e48ba",
      "session_id": "mb-b34e48ba186fd6e6",
      "action": "error",
      "event": "error",
      "code": "profile_payload_too_large",
      "tm": "1788340848"
    },
    "created_at": "1788340834",
    "updated_at": "1788340848"
  },
  {
    "session_id": "mb-a8b534568b09eabc",
    "request_id": "scan-8b09eabca8b53456",
    "base": "88a4d4",
    "slave_id": 1,
    "state": "failed",
    "reads_used": 14,
    "steps_used": 2,
    "result": {
      "schema": "misx5.device_discovery.v1",
      "controller_id": "88a4d4",
      "request_id": "scan-8b09eabca8b53456",
      "session_id": "mb-a8b534568b09eabc",
      "action": "error",
      "event": "error",
      "code": "profile_payload_too_large",
      "tm": "1788340692"
    },
    "created_at": "1788340672",
    "updated_at": "1788340692"
  },
  {
    "session_id": "mb-b5dafa3ce1390a5e",
    "request_id": "scan-e1390a5eb5dafa3c",
    "base": "88a4d4",
    "slave_id": 1,
    "state": "failed",
    "reads_used": 14,
    "steps_used": 2,
    "result": {
      "schema": "misx5.device_discovery.v1",
      "controller_id": "88a4d4",
      "request_id": "scan-e1390a5eb5dafa3c",
      "session_id": "mb-b5dafa3ce1390a5e",
      "action": "error",
      "event": "error",
      "code": "profile_payload_too_large",
      "tm": "1788340595"
    },
    "created_at": "1788340581",
    "updated_at": "1788340595"
  },
  {
    "session_id": "mb-0eb272311af48ca8",
    "request_id": "scan-1af48ca80eb27231",
    "base": "88a4d4",
    "slave_id": 1,
    "state": "failed",
    "reads_used": 14,
    "steps_used": 2,
    "result": {
      "schema": "misx5.device_discovery.v1",
      "controller_id": "88a4d4",
      "request_id": "scan-1af48ca80eb27231",
      "session_id": "mb-0eb272311af48ca8",
      "action": "error",
      "event": "error",
      "code": "profile_payload_too_large",
      "tm": "1788340462"
    },
    "created_at": "1788340444",
    "updated_at": "1788340462"
  },
  {
    "session_id": "mb-47cccd1ba239b67e",
    "request_id": "scan-a239b67e47cccd1b",
    "base": "88a4d4",
    "slave_id": 1,
    "state": "failed",
    "reads_used": 14,
    "steps_used": 2,
    "result": {
      "schema": "misx5.device_discovery.v1",
      "controller_id": "88a4d4",
      "request_id": "scan-a239b67e47cccd1b",
      "session_id": "mb-47cccd1ba239b67e",
      "action": "error",
      "event": "error",
      "code": "profile_payload_too_large",
      "tm": "1788340369"
    },
    "created_at": "1788340355",
    "updated_at": "1788340369"
  },
  {
    "session_id": "mb-ae861468ea85574a",
    "request_id": "scan-ea85574aae861468",
    "base": "88a4d4",
    "slave_id": 1,
    "state": "failed",
    "reads_used": 14,
    "steps_used": 2,
    "result": {
      "schema": "misx5.device_discovery.v1",
      "controller_id": "88a4d4",
      "request_id": "scan-ea85574aae861468",
      "session_id": "mb-ae861468ea85574a",
      "action": "error",
      "event": "error",
      "code": "profile_payload_too_large",
      "tm": "1788340326"
    },
    "created_at": "1788340301",
    "updated_at": "1788340326"
  },
  {
    "session_id": "mb-2ec8f4fe03be8c1c",
    "request_id": "scan-03be8c1c2ec8f4fe",
    "base": "426db4",
    "slave_id": 118,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "medium",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-03be8c1c2ec8f4fe",
            "session_id": "mb-2ec8f4fe03be8c1c",
            "action": "accepted",
            "tm": "2026-08-25T11:42:27.272258Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "426db4"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "426db4",
            "event": "test_result",
            "request_id": "scan-03be8c1c2ec8f4fe",
            "results": [
              {
                "address": 0,
                "byte_count": 4,
                "function": 4,
                "quantity": 2,
                "raw_hex": "00740321",
                "registers": [
                  116,
                  801
                ],
                "success": true,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "exception_code": 2,
                "function": 3,
                "quantity": 1,
                "success": false,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "exception_code": 2,
                "function": 2,
                "quantity": 8,
                "success": false,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "exception_code": 2,
                "function": 3,
                "quantity": 1,
                "success": false,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "exception_code": 2,
                "function": 3,
                "quantity": 8,
                "success": false,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "byte_count": 40,
                "function": 4,
                "quantity": 20,
                "raw_hex": "00570042004d00530076003200000000000000000000000000000000000000000000000000000000",
                "registers": [
                  87,
                  66,
                  77,
                  83,
                  118,
                  50,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-2ec8f4fe03be8c1c",
            "tm": "1787658147"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "426db4",
            "event": "step_complete",
            "request_id": "scan-03be8c1c2ec8f4fe",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-2ec8f4fe03be8c1c",
            "tm": "1787658147"
          }
        }
      ],
      "profile_id": "temperature_humidity_int16_div10",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "temperature_humidity_int16_div10",
        "profile_version": "1.0.0",
        "description": {
          "device_type": "temperature_humidity_sensor",
          "compatible_with": "SHT20",
          "identification_status": "requires_device_identification",
          "note": "Без подтверждённого FC 0x2B/0x0E или FC 0x11 это совместимый преобразователь, а не подтверждённая модель SHT20."
        },
        "line_parameters": {
          "mode": "rtu",
          "baudrate": 9600,
          "parity": "N",
          "timeout_ms": 200
        },
        "sensor_templates": [
          {
            "id": "temperature_c",
            "name": "Температура",
            "mode": "read",
            "function": 4,
            "address": 0,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "°C"
          },
          {
            "id": "humidity_percent",
            "name": "Влажность",
            "mode": "read",
            "function": 4,
            "address": 1,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "%"
          }
        ],
        "polling_intervals": {
          "default_seconds": 10
        }
      }
    },
    "created_at": "1787658142",
    "updated_at": "1787658147"
  },
  {
    "session_id": "mb-989bcf1ac06bfc42",
    "request_id": "scan-c06bfc42989bcf1a",
    "base": "426db4",
    "slave_id": 117,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "medium",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-c06bfc42989bcf1a",
            "session_id": "mb-989bcf1ac06bfc42",
            "action": "accepted",
            "tm": "2026-08-25T11:42:21.611747Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "426db4"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "426db4",
            "event": "test_result",
            "request_id": "scan-c06bfc42989bcf1a",
            "results": [
              {
                "address": 0,
                "byte_count": 4,
                "function": 4,
                "quantity": 2,
                "raw_hex": "ff5102ca",
                "registers": [
                  65361,
                  714
                ],
                "success": true,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "exception_code": 2,
                "function": 3,
                "quantity": 1,
                "success": false,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "exception_code": 2,
                "function": 2,
                "quantity": 8,
                "success": false,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "exception_code": 2,
                "function": 3,
                "quantity": 1,
                "success": false,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "exception_code": 2,
                "function": 3,
                "quantity": 8,
                "success": false,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "byte_count": 40,
                "function": 4,
                "quantity": 20,
                "raw_hex": "00570042004d00530076003200000000000000000000000000000000000000000000000000000000",
                "registers": [
                  87,
                  66,
                  77,
                  83,
                  118,
                  50,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-989bcf1ac06bfc42",
            "tm": "1787658141"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "426db4",
            "event": "step_complete",
            "request_id": "scan-c06bfc42989bcf1a",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-989bcf1ac06bfc42",
            "tm": "1787658141"
          }
        }
      ],
      "profile_id": "temperature_humidity_int16_div10",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "temperature_humidity_int16_div10",
        "profile_version": "1.0.0",
        "description": {
          "device_type": "temperature_humidity_sensor",
          "compatible_with": "SHT20",
          "identification_status": "requires_device_identification",
          "note": "Без подтверждённого FC 0x2B/0x0E или FC 0x11 это совместимый преобразователь, а не подтверждённая модель SHT20."
        },
        "line_parameters": {
          "mode": "rtu",
          "baudrate": 9600,
          "parity": "N",
          "timeout_ms": 200
        },
        "sensor_templates": [
          {
            "id": "temperature_c",
            "name": "Температура",
            "mode": "read",
            "function": 4,
            "address": 0,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "°C"
          },
          {
            "id": "humidity_percent",
            "name": "Влажность",
            "mode": "read",
            "function": 4,
            "address": 1,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "%"
          }
        ],
        "polling_intervals": {
          "default_seconds": 10
        }
      }
    },
    "created_at": "1787658135",
    "updated_at": "1787658142"
  },
  {
    "session_id": "mb-9c2b8fe6101a4b90",
    "request_id": "scan-101a4b909c2b8fe6",
    "base": "426db4",
    "slave_id": 116,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "medium",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-101a4b909c2b8fe6",
            "session_id": "mb-9c2b8fe6101a4b90",
            "action": "accepted",
            "tm": "2026-08-25T11:42:15.271888Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "426db4"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "426db4",
            "event": "test_result",
            "request_id": "scan-101a4b909c2b8fe6",
            "results": [
              {
                "address": 0,
                "byte_count": 4,
                "function": 4,
                "quantity": 2,
                "raw_hex": "00260375",
                "registers": [
                  38,
                  885
                ],
                "success": true,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "exception_code": 2,
                "function": 3,
                "quantity": 1,
                "success": false,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "exception_code": 2,
                "function": 2,
                "quantity": 8,
                "success": false,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "exception_code": 2,
                "function": 3,
                "quantity": 1,
                "success": false,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "exception_code": 2,
                "function": 3,
                "quantity": 8,
                "success": false,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "byte_count": 40,
                "function": 4,
                "quantity": 20,
                "raw_hex": "00570042004d00530076003200000000000000000000000000000000000000000000000000000000",
                "registers": [
                  87,
                  66,
                  77,
                  83,
                  118,
                  50,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-9c2b8fe6101a4b90",
            "tm": "1787658134"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "426db4",
            "event": "step_complete",
            "request_id": "scan-101a4b909c2b8fe6",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-9c2b8fe6101a4b90",
            "tm": "1787658134"
          }
        }
      ],
      "profile_id": "temperature_humidity_int16_div10",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "temperature_humidity_int16_div10",
        "profile_version": "1.0.0",
        "description": {
          "device_type": "temperature_humidity_sensor",
          "compatible_with": "SHT20",
          "identification_status": "requires_device_identification",
          "note": "Без подтверждённого FC 0x2B/0x0E или FC 0x11 это совместимый преобразователь, а не подтверждённая модель SHT20."
        },
        "line_parameters": {
          "mode": "rtu",
          "baudrate": 9600,
          "parity": "N",
          "timeout_ms": 200
        },
        "sensor_templates": [
          {
            "id": "temperature_c",
            "name": "Температура",
            "mode": "read",
            "function": 4,
            "address": 0,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "°C"
          },
          {
            "id": "humidity_percent",
            "name": "Влажность",
            "mode": "read",
            "function": 4,
            "address": 1,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "%"
          }
        ],
        "polling_intervals": {
          "default_seconds": 10
        }
      }
    },
    "created_at": "1787658129",
    "updated_at": "1787658135"
  },
  {
    "session_id": "mb-3e4c9f63e08b15e7",
    "request_id": "scan-e08b15e73e4c9f63",
    "base": "426db4",
    "slave_id": 115,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "medium",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-e08b15e73e4c9f63",
            "session_id": "mb-3e4c9f63e08b15e7",
            "action": "accepted",
            "tm": "2026-08-25T11:42:08.848899Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "426db4"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "426db4",
            "event": "test_result",
            "request_id": "scan-e08b15e73e4c9f63",
            "results": [
              {
                "address": 0,
                "byte_count": 4,
                "function": 4,
                "quantity": 2,
                "raw_hex": "ff4d024e",
                "registers": [
                  65357,
                  590
                ],
                "success": true,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "exception_code": 2,
                "function": 3,
                "quantity": 1,
                "success": false,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "exception_code": 2,
                "function": 2,
                "quantity": 8,
                "success": false,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "exception_code": 2,
                "function": 3,
                "quantity": 1,
                "success": false,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "exception_code": 2,
                "function": 3,
                "quantity": 8,
                "success": false,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "byte_count": 40,
                "function": 4,
                "quantity": 20,
                "raw_hex": "00570042004d00530076003200000000000000000000000000000000000000000000000000000000",
                "registers": [
                  87,
                  66,
                  77,
                  83,
                  118,
                  50,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-3e4c9f63e08b15e7",
            "tm": "1787658128"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "426db4",
            "event": "step_complete",
            "request_id": "scan-e08b15e73e4c9f63",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-3e4c9f63e08b15e7",
            "tm": "1787658128"
          }
        }
      ],
      "profile_id": "temperature_humidity_int16_div10",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "temperature_humidity_int16_div10",
        "profile_version": "1.0.0",
        "description": {
          "device_type": "temperature_humidity_sensor",
          "compatible_with": "SHT20",
          "identification_status": "requires_device_identification",
          "note": "Без подтверждённого FC 0x2B/0x0E или FC 0x11 это совместимый преобразователь, а не подтверждённая модель SHT20."
        },
        "line_parameters": {
          "mode": "rtu",
          "baudrate": 9600,
          "parity": "N",
          "timeout_ms": 200
        },
        "sensor_templates": [
          {
            "id": "temperature_c",
            "name": "Температура",
            "mode": "read",
            "function": 4,
            "address": 0,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "°C"
          },
          {
            "id": "humidity_percent",
            "name": "Влажность",
            "mode": "read",
            "function": 4,
            "address": 1,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "%"
          }
        ],
        "polling_intervals": {
          "default_seconds": 10
        }
      }
    },
    "created_at": "1787658123",
    "updated_at": "1787658129"
  },
  {
    "session_id": "mb-a01576f0cbfad4d3",
    "request_id": "scan-cbfad4d3a01576f0",
    "base": "426db4",
    "slave_id": 114,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "medium",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-cbfad4d3a01576f0",
            "session_id": "mb-a01576f0cbfad4d3",
            "action": "accepted",
            "tm": "2026-08-25T11:42:05.480975Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "426db4"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "426db4",
            "event": "test_result",
            "request_id": "scan-cbfad4d3a01576f0",
            "results": [
              {
                "address": 0,
                "byte_count": 4,
                "function": 4,
                "quantity": 2,
                "raw_hex": "00af0240",
                "registers": [
                  175,
                  576
                ],
                "success": true,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "0000",
                "registers": [
                  0
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  1,
                  1,
                  1,
                  1,
                  1,
                  1,
                  1
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "ff",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "0000",
                "registers": [
                  0
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "byte_count": 40,
                "function": 4,
                "quantity": 20,
                "raw_hex": "00000000000000000000000000000000000000000000000000000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-a01576f0cbfad4d3",
            "tm": "1787658122"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "426db4",
            "event": "step_complete",
            "request_id": "scan-cbfad4d3a01576f0",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-a01576f0cbfad4d3",
            "tm": "1787658122"
          }
        }
      ],
      "profile_id": "temperature_humidity_int16_div10",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "temperature_humidity_int16_div10",
        "profile_version": "1.0.0",
        "description": {
          "device_type": "temperature_humidity_sensor",
          "compatible_with": "SHT20",
          "identification_status": "requires_device_identification",
          "note": "Без подтверждённого FC 0x2B/0x0E или FC 0x11 это совместимый преобразователь, а не подтверждённая модель SHT20."
        },
        "line_parameters": {
          "mode": "rtu",
          "baudrate": 9600,
          "parity": "N",
          "timeout_ms": 200
        },
        "sensor_templates": [
          {
            "id": "temperature_c",
            "name": "Температура",
            "mode": "read",
            "function": 4,
            "address": 0,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "°C"
          },
          {
            "id": "humidity_percent",
            "name": "Влажность",
            "mode": "read",
            "function": 4,
            "address": 1,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "%"
          }
        ],
        "polling_intervals": {
          "default_seconds": 10
        }
      }
    },
    "created_at": "1787658119",
    "updated_at": "1787658123"
  },
  {
    "session_id": "mb-d23d6434a58467b7",
    "request_id": "scan-a58467b7d23d6434",
    "base": "426db4",
    "slave_id": 113,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "medium",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-a58467b7d23d6434",
            "session_id": "mb-d23d6434a58467b7",
            "action": "accepted",
            "tm": "2026-08-25T11:42:02.030630Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "426db4"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "426db4",
            "event": "test_result",
            "request_id": "scan-a58467b7d23d6434",
            "results": [
              {
                "address": 0,
                "byte_count": 4,
                "function": 4,
                "quantity": 2,
                "raw_hex": "00140319",
                "registers": [
                  20,
                  793
                ],
                "success": true,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "0000",
                "registers": [
                  0
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  1,
                  1,
                  1,
                  1,
                  1,
                  1,
                  1
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "ff",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "0000",
                "registers": [
                  0
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "byte_count": 40,
                "function": 4,
                "quantity": 20,
                "raw_hex": "00000000000000000000000000000000000000000000000000000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-d23d6434a58467b7",
            "tm": "1787658118"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "426db4",
            "event": "step_complete",
            "request_id": "scan-a58467b7d23d6434",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-d23d6434a58467b7",
            "tm": "1787658118"
          }
        }
      ],
      "profile_id": "temperature_humidity_int16_div10",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "temperature_humidity_int16_div10",
        "profile_version": "1.0.0",
        "description": {
          "device_type": "temperature_humidity_sensor",
          "compatible_with": "SHT20",
          "identification_status": "requires_device_identification",
          "note": "Без подтверждённого FC 0x2B/0x0E или FC 0x11 это совместимый преобразователь, а не подтверждённая модель SHT20."
        },
        "line_parameters": {
          "mode": "rtu",
          "baudrate": 9600,
          "parity": "N",
          "timeout_ms": 200
        },
        "sensor_templates": [
          {
            "id": "temperature_c",
            "name": "Температура",
            "mode": "read",
            "function": 4,
            "address": 0,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "°C"
          },
          {
            "id": "humidity_percent",
            "name": "Влажность",
            "mode": "read",
            "function": 4,
            "address": 1,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "%"
          }
        ],
        "polling_intervals": {
          "default_seconds": 10
        }
      }
    },
    "created_at": "1787658116",
    "updated_at": "1787658119"
  },
  {
    "session_id": "mb-c38c37c8f903a317",
    "request_id": "scan-f903a317c38c37c8",
    "base": "426db4",
    "slave_id": 111,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "medium",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-f903a317c38c37c8",
            "session_id": "mb-c38c37c8f903a317",
            "action": "accepted",
            "tm": "2026-08-25T11:41:59.603563Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "426db4"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "426db4",
            "event": "test_result",
            "request_id": "scan-f903a317c38c37c8",
            "results": [
              {
                "address": 0,
                "byte_count": 4,
                "function": 4,
                "quantity": 2,
                "raw_hex": "fffc03b0",
                "registers": [
                  65532,
                  944
                ],
                "success": true,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "0000",
                "registers": [
                  0
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  1,
                  1,
                  1,
                  1,
                  1,
                  1,
                  1
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "ff",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "0000",
                "registers": [
                  0
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "byte_count": 40,
                "function": 4,
                "quantity": 20,
                "raw_hex": "00000000000000000000000000000000000000000000000000000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-c38c37c8f903a317",
            "tm": "1787658115"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "426db4",
            "event": "step_complete",
            "request_id": "scan-f903a317c38c37c8",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-c38c37c8f903a317",
            "tm": "1787658115"
          }
        }
      ],
      "profile_id": "temperature_humidity_int16_div10",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "temperature_humidity_int16_div10",
        "profile_version": "1.0.0",
        "description": {
          "device_type": "temperature_humidity_sensor",
          "compatible_with": "SHT20",
          "identification_status": "requires_device_identification",
          "note": "Без подтверждённого FC 0x2B/0x0E или FC 0x11 это совместимый преобразователь, а не подтверждённая модель SHT20."
        },
        "line_parameters": {
          "mode": "rtu",
          "baudrate": 9600,
          "parity": "N",
          "timeout_ms": 200
        },
        "sensor_templates": [
          {
            "id": "temperature_c",
            "name": "Температура",
            "mode": "read",
            "function": 4,
            "address": 0,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "°C"
          },
          {
            "id": "humidity_percent",
            "name": "Влажность",
            "mode": "read",
            "function": 4,
            "address": 1,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "%"
          }
        ],
        "polling_intervals": {
          "default_seconds": 10
        }
      }
    },
    "created_at": "1787658113",
    "updated_at": "1787658116"
  },
  {
    "session_id": "mb-ab683c0df4799994",
    "request_id": "scan-f4799994ab683c0d",
    "base": "426db4",
    "slave_id": 110,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "medium",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-f4799994ab683c0d",
            "session_id": "mb-ab683c0df4799994",
            "action": "accepted",
            "tm": "2026-08-25T11:41:57.172805Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "426db4"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "426db4",
            "event": "test_result",
            "request_id": "scan-f4799994ab683c0d",
            "results": [
              {
                "address": 0,
                "byte_count": 4,
                "function": 4,
                "quantity": 2,
                "raw_hex": "ff4f0337",
                "registers": [
                  65359,
                  823
                ],
                "success": true,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "0000",
                "registers": [
                  0
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  1,
                  1,
                  1,
                  1,
                  1,
                  1,
                  1
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "ff",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "0000",
                "registers": [
                  0
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "byte_count": 40,
                "function": 4,
                "quantity": 20,
                "raw_hex": "00000000000000000000000000000000000000000000000000000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-ab683c0df4799994",
            "tm": "1787658112"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "426db4",
            "event": "step_complete",
            "request_id": "scan-f4799994ab683c0d",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-ab683c0df4799994",
            "tm": "1787658112"
          }
        }
      ],
      "profile_id": "temperature_humidity_int16_div10",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "temperature_humidity_int16_div10",
        "profile_version": "1.0.0",
        "description": {
          "device_type": "temperature_humidity_sensor",
          "compatible_with": "SHT20",
          "identification_status": "requires_device_identification",
          "note": "Без подтверждённого FC 0x2B/0x0E или FC 0x11 это совместимый преобразователь, а не подтверждённая модель SHT20."
        },
        "line_parameters": {
          "mode": "rtu",
          "baudrate": 9600,
          "parity": "N",
          "timeout_ms": 200
        },
        "sensor_templates": [
          {
            "id": "temperature_c",
            "name": "Температура",
            "mode": "read",
            "function": 4,
            "address": 0,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "°C"
          },
          {
            "id": "humidity_percent",
            "name": "Влажность",
            "mode": "read",
            "function": 4,
            "address": 1,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "%"
          }
        ],
        "polling_intervals": {
          "default_seconds": 10
        }
      }
    },
    "created_at": "1787658111",
    "updated_at": "1787658113"
  },
  {
    "session_id": "mb-2d8998cdc8014a21",
    "request_id": "scan-c8014a212d8998cd",
    "base": "426db4",
    "slave_id": 109,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "medium",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-c8014a212d8998cd",
            "session_id": "mb-2d8998cdc8014a21",
            "action": "accepted",
            "tm": "2026-08-25T11:41:53.782002Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "426db4"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "426db4",
            "event": "test_result",
            "request_id": "scan-c8014a212d8998cd",
            "results": [
              {
                "address": 0,
                "byte_count": 4,
                "function": 4,
                "quantity": 2,
                "raw_hex": "ff430356",
                "registers": [
                  65347,
                  854
                ],
                "success": true,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "0000",
                "registers": [
                  0
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  1,
                  1,
                  1,
                  1,
                  1,
                  1,
                  1
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "ff",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "0000",
                "registers": [
                  0
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "byte_count": 40,
                "function": 4,
                "quantity": 20,
                "raw_hex": "00000000000000000000000000000000000000000000000000000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-2d8998cdc8014a21",
            "tm": "1787658110"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "426db4",
            "event": "step_complete",
            "request_id": "scan-c8014a212d8998cd",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-2d8998cdc8014a21",
            "tm": "1787658110"
          }
        }
      ],
      "profile_id": "temperature_humidity_int16_div10",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "temperature_humidity_int16_div10",
        "profile_version": "1.0.0",
        "description": {
          "device_type": "temperature_humidity_sensor",
          "compatible_with": "SHT20",
          "identification_status": "requires_device_identification",
          "note": "Без подтверждённого FC 0x2B/0x0E или FC 0x11 это совместимый преобразователь, а не подтверждённая модель SHT20."
        },
        "line_parameters": {
          "mode": "rtu",
          "baudrate": 9600,
          "parity": "N",
          "timeout_ms": 200
        },
        "sensor_templates": [
          {
            "id": "temperature_c",
            "name": "Температура",
            "mode": "read",
            "function": 4,
            "address": 0,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "°C"
          },
          {
            "id": "humidity_percent",
            "name": "Влажность",
            "mode": "read",
            "function": 4,
            "address": 1,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "%"
          }
        ],
        "polling_intervals": {
          "default_seconds": 10
        }
      }
    },
    "created_at": "1787658108",
    "updated_at": "1787658111"
  },
  {
    "session_id": "mb-e4b1c4b66ce4bf7c",
    "request_id": "scan-6ce4bf7ce4b1c4b6",
    "base": "426db4",
    "slave_id": 108,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "medium",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-6ce4bf7ce4b1c4b6",
            "session_id": "mb-e4b1c4b66ce4bf7c",
            "action": "accepted",
            "tm": "2026-08-25T11:41:50.416256Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "426db4"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "426db4",
            "event": "test_result",
            "request_id": "scan-6ce4bf7ce4b1c4b6",
            "results": [
              {
                "address": 0,
                "byte_count": 4,
                "function": 4,
                "quantity": 2,
                "raw_hex": "000302fa",
                "registers": [
                  3,
                  762
                ],
                "success": true,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "0000",
                "registers": [
                  0
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  1,
                  1,
                  1,
                  1,
                  1,
                  1,
                  1
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "ff",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "0000",
                "registers": [
                  0
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "byte_count": 40,
                "function": 4,
                "quantity": 20,
                "raw_hex": "00000000000000000000000000000000000000000000000000000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-e4b1c4b66ce4bf7c",
            "tm": "1787658106"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "426db4",
            "event": "step_complete",
            "request_id": "scan-6ce4bf7ce4b1c4b6",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-e4b1c4b66ce4bf7c",
            "tm": "1787658107"
          }
        }
      ],
      "profile_id": "temperature_humidity_int16_div10",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "temperature_humidity_int16_div10",
        "profile_version": "1.0.0",
        "description": {
          "device_type": "temperature_humidity_sensor",
          "compatible_with": "SHT20",
          "identification_status": "requires_device_identification",
          "note": "Без подтверждённого FC 0x2B/0x0E или FC 0x11 это совместимый преобразователь, а не подтверждённая модель SHT20."
        },
        "line_parameters": {
          "mode": "rtu",
          "baudrate": 9600,
          "parity": "N",
          "timeout_ms": 200
        },
        "sensor_templates": [
          {
            "id": "temperature_c",
            "name": "Температура",
            "mode": "read",
            "function": 4,
            "address": 0,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "°C"
          },
          {
            "id": "humidity_percent",
            "name": "Влажность",
            "mode": "read",
            "function": 4,
            "address": 1,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "%"
          }
        ],
        "polling_intervals": {
          "default_seconds": 10
        }
      }
    },
    "created_at": "1787658104",
    "updated_at": "1787658108"
  },
  {
    "session_id": "mb-721a1b79dca4f073",
    "request_id": "scan-dca4f073721a1b79",
    "base": "426db4",
    "slave_id": 107,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "medium",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-dca4f073721a1b79",
            "session_id": "mb-721a1b79dca4f073",
            "action": "accepted",
            "tm": "2026-08-25T11:41:47.972680Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "426db4"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "426db4",
            "event": "test_result",
            "request_id": "scan-dca4f073721a1b79",
            "results": [
              {
                "address": 0,
                "byte_count": 4,
                "function": 4,
                "quantity": 2,
                "raw_hex": "009e0367",
                "registers": [
                  158,
                  871
                ],
                "success": true,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "0000",
                "registers": [
                  0
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  1,
                  1,
                  1,
                  1,
                  1,
                  1,
                  1
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "ff",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "0000",
                "registers": [
                  0
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "byte_count": 40,
                "function": 4,
                "quantity": 20,
                "raw_hex": "00000000000000000000000000000000000000000000000000000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-721a1b79dca4f073",
            "tm": "1787658103"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "426db4",
            "event": "step_complete",
            "request_id": "scan-dca4f073721a1b79",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-721a1b79dca4f073",
            "tm": "1787658103"
          }
        }
      ],
      "profile_id": "temperature_humidity_int16_div10",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "temperature_humidity_int16_div10",
        "profile_version": "1.0.0",
        "description": {
          "device_type": "temperature_humidity_sensor",
          "compatible_with": "SHT20",
          "identification_status": "requires_device_identification",
          "note": "Без подтверждённого FC 0x2B/0x0E или FC 0x11 это совместимый преобразователь, а не подтверждённая модель SHT20."
        },
        "line_parameters": {
          "mode": "rtu",
          "baudrate": 9600,
          "parity": "N",
          "timeout_ms": 200
        },
        "sensor_templates": [
          {
            "id": "temperature_c",
            "name": "Температура",
            "mode": "read",
            "function": 4,
            "address": 0,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "°C"
          },
          {
            "id": "humidity_percent",
            "name": "Влажность",
            "mode": "read",
            "function": 4,
            "address": 1,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "%"
          }
        ],
        "polling_intervals": {
          "default_seconds": 10
        }
      }
    },
    "created_at": "1787658102",
    "updated_at": "1787658104"
  },
  {
    "session_id": "mb-420674e7aefd88a3",
    "request_id": "scan-aefd88a3420674e7",
    "base": "426db4",
    "slave_id": 106,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "medium",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-aefd88a3420674e7",
            "session_id": "mb-420674e7aefd88a3",
            "action": "accepted",
            "tm": "2026-08-25T11:41:45.622011Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "426db4"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "426db4",
            "event": "test_result",
            "request_id": "scan-aefd88a3420674e7",
            "results": [
              {
                "address": 0,
                "byte_count": 4,
                "function": 4,
                "quantity": 2,
                "raw_hex": "00110395",
                "registers": [
                  17,
                  917
                ],
                "success": true,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "0000",
                "registers": [
                  0
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  1,
                  1,
                  1,
                  1,
                  1,
                  1,
                  1
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "ff",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "0000",
                "registers": [
                  0
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "byte_count": 40,
                "function": 4,
                "quantity": 20,
                "raw_hex": "00000000000000000000000000000000000000000000000000000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-420674e7aefd88a3",
            "tm": "1787658101"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "426db4",
            "event": "step_complete",
            "request_id": "scan-aefd88a3420674e7",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-420674e7aefd88a3",
            "tm": "1787658101"
          }
        }
      ],
      "profile_id": "temperature_humidity_int16_div10",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "temperature_humidity_int16_div10",
        "profile_version": "1.0.0",
        "description": {
          "device_type": "temperature_humidity_sensor",
          "compatible_with": "SHT20",
          "identification_status": "requires_device_identification",
          "note": "Без подтверждённого FC 0x2B/0x0E или FC 0x11 это совместимый преобразователь, а не подтверждённая модель SHT20."
        },
        "line_parameters": {
          "mode": "rtu",
          "baudrate": 9600,
          "parity": "N",
          "timeout_ms": 200
        },
        "sensor_templates": [
          {
            "id": "temperature_c",
            "name": "Температура",
            "mode": "read",
            "function": 4,
            "address": 0,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "°C"
          },
          {
            "id": "humidity_percent",
            "name": "Влажность",
            "mode": "read",
            "function": 4,
            "address": 1,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "%"
          }
        ],
        "polling_intervals": {
          "default_seconds": 10
        }
      }
    },
    "created_at": "1787658099",
    "updated_at": "1787658102"
  },
  {
    "session_id": "mb-138b15fd03c523ec",
    "request_id": "scan-03c523ec138b15fd",
    "base": "426db4",
    "slave_id": 105,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "medium",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-03c523ec138b15fd",
            "session_id": "mb-138b15fd03c523ec",
            "action": "accepted",
            "tm": "2026-08-25T11:41:43.333549Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "426db4"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "426db4",
            "event": "test_result",
            "request_id": "scan-03c523ec138b15fd",
            "results": [
              {
                "address": 0,
                "byte_count": 4,
                "function": 4,
                "quantity": 2,
                "raw_hex": "ff5b03cb",
                "registers": [
                  65371,
                  971
                ],
                "success": true,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "0000",
                "registers": [
                  0
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  1,
                  1,
                  1,
                  1,
                  1,
                  1,
                  1
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "ff",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "0000",
                "registers": [
                  0
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "byte_count": 40,
                "function": 4,
                "quantity": 20,
                "raw_hex": "00000000000000000000000000000000000000000000000000000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-138b15fd03c523ec",
            "tm": "1787658099"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "426db4",
            "event": "step_complete",
            "request_id": "scan-03c523ec138b15fd",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-138b15fd03c523ec",
            "tm": "1787658099"
          }
        }
      ],
      "profile_id": "temperature_humidity_int16_div10",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "temperature_humidity_int16_div10",
        "profile_version": "1.0.0",
        "description": {
          "device_type": "temperature_humidity_sensor",
          "compatible_with": "SHT20",
          "identification_status": "requires_device_identification",
          "note": "Без подтверждённого FC 0x2B/0x0E или FC 0x11 это совместимый преобразователь, а не подтверждённая модель SHT20."
        },
        "line_parameters": {
          "mode": "rtu",
          "baudrate": 9600,
          "parity": "N",
          "timeout_ms": 200
        },
        "sensor_templates": [
          {
            "id": "temperature_c",
            "name": "Температура",
            "mode": "read",
            "function": 4,
            "address": 0,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "°C"
          },
          {
            "id": "humidity_percent",
            "name": "Влажность",
            "mode": "read",
            "function": 4,
            "address": 1,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "%"
          }
        ],
        "polling_intervals": {
          "default_seconds": 10
        }
      }
    },
    "created_at": "1787658098",
    "updated_at": "1787658099"
  },
  {
    "session_id": "mb-ee32a8b0a5d24929",
    "request_id": "scan-a5d24929ee32a8b0",
    "base": "426db4",
    "slave_id": 35,
    "state": "finished",
    "reads_used": 14,
    "steps_used": 2,
    "result": {
      "outcome": "unknown",
      "reason": "ни один профиль не совместим с ответами",
      "confidence": "none",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-a5d24929ee32a8b0",
            "session_id": "mb-ee32a8b0a5d24929",
            "action": "accepted",
            "tm": "2026-08-25T11:41:32.518862Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "426db4"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "426db4",
            "event": "test_result",
            "request_id": "scan-a5d24929ee32a8b0",
            "results": [
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "0023",
                "registers": [
                  35
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "00",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "00c8",
                "registers": [
                  200
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 1,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-ee32a8b0a5d24929",
            "tm": "1787658090"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "426db4",
            "event": "step_complete",
            "request_id": "scan-a5d24929ee32a8b0",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-ee32a8b0a5d24929",
            "tm": "1787658090"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "explore-holding-0",
              "function": 3,
              "address": 0,
              "quantity": 4
            },
            {
              "test_id": "explore-input-0",
              "function": 4,
              "address": 0,
              "quantity": 4
            },
            {
              "test_id": "explore-holding-10",
              "function": 3,
              "address": 10,
              "quantity": 2
            },
            {
              "test_id": "explore-input-10",
              "function": 4,
              "address": 10,
              "quantity": 2
            },
            {
              "test_id": "explore-holding-100",
              "function": 3,
              "address": 100,
              "quantity": 2
            },
            {
              "test_id": "explore-input-100",
              "function": 4,
              "address": 100,
              "quantity": 2
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "426db4",
            "event": "test_result",
            "request_id": "scan-a5d24929ee32a8b0",
            "results": [
              {
                "address": 0,
                "exception_code": 2,
                "function": 3,
                "quantity": 4,
                "success": false,
                "test_id": "explore-holding-0"
              },
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 4,
                "success": false,
                "test_id": "explore-input-0"
              },
              {
                "address": 10,
                "exception_code": 2,
                "function": 3,
                "quantity": 2,
                "success": false,
                "test_id": "explore-holding-10"
              },
              {
                "address": 10,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "explore-input-10"
              },
              {
                "address": 100,
                "exception_code": 2,
                "function": 3,
                "quantity": 2,
                "success": false,
                "test_id": "explore-holding-100"
              },
              {
                "address": 100,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "explore-input-100"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-ee32a8b0a5d24929",
            "tm": "1787658097"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "426db4",
            "event": "step_complete",
            "request_id": "scan-a5d24929ee32a8b0",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-ee32a8b0a5d24929",
            "tm": "1787658097"
          }
        }
      ],
      "unknown_group": {
        "signature": "679470731cd110dbf7df00ceaf738a1035fecc396283b1d5574b91d16a13c636",
        "sample_count": 3
      },
      "draft_profile": {
        "profile_id": "draft-679470731cd1",
        "version": "0.1.0",
        "confidence": "medium",
        "description": {
          "name": "Неизвестное Modbus-устройство",
          "signature": "679470731cd110dbf7df00ceaf738a1035fecc396283b1d5574b91d16a13c636"
        },
        "line_parameters": {
          "baudrate": 9600,
          "data_bits": 8,
          "parity": "none",
          "stop_bits": 1
        },
        "sensor_templates": [],
        "polling_intervals": {
          "default_seconds": 60
        },
        "recognition": {
          "identity": {},
          "fingerprints": [
            {
              "test": {
                "test_id": "explore-holding-0",
                "function": 3,
                "address": 0,
                "quantity": 4
              },
              "expect": {
                "test_id": "explore-holding-0",
                "exception_code": 2
              }
            },
            {
              "test": {
                "test_id": "explore-holding-10",
                "function": 3,
                "address": 10,
                "quantity": 2
              },
              "expect": {
                "test_id": "explore-holding-10",
                "exception_code": 2
              }
            },
            {
              "test": {
                "test_id": "explore-holding-100",
                "function": 3,
                "address": 100,
                "quantity": 2
              },
              "expect": {
                "test_id": "explore-holding-100",
                "exception_code": 2
              }
            },
            {
              "test": {
                "test_id": "explore-input-0",
                "function": 4,
                "address": 0,
                "quantity": 4
              },
              "expect": {
                "test_id": "explore-input-0",
                "exception_code": 1
              }
            },
            {
              "test": {
                "test_id": "explore-input-10",
                "function": 4,
                "address": 10,
                "quantity": 2
              },
              "expect": {
                "test_id": "explore-input-10",
                "exception_code": 1
              }
            },
            {
              "test": {
                "test_id": "explore-input-100",
                "function": 4,
                "address": 100,
                "quantity": 2
              },
              "expect": {
                "test_id": "explore-input-100",
                "exception_code": 1
              }
            },
            {
              "test": {
                "test_id": "temperature-humidity-int16-div10",
                "function": 4,
                "address": 0,
                "quantity": 2
              },
              "expect": {
                "test_id": "temperature-humidity-int16-div10",
                "exception_code": 1
              }
            },
            {
              "test": {
                "test_id": "waveshare-device-address",
                "function": 3,
                "address": 16384,
                "quantity": 1
              },
              "expect": {
                "test_id": "waveshare-device-address",
                "byte_count": 2
              }
            },
            {
              "test": {
                "test_id": "waveshare-di-8",
                "function": 2,
                "address": 0,
                "quantity": 8
              },
              "expect": {
                "test_id": "waveshare-di-8",
                "byte_count": 1
              }
            },
            {
              "test": {
                "test_id": "waveshare-firmware-version",
                "function": 3,
                "address": 32768,
                "quantity": 1
              },
              "expect": {
                "test_id": "waveshare-firmware-version",
                "byte_count": 2
              }
            },
            {
              "test": {
                "test_id": "waveshare-output-modes",
                "function": 3,
                "address": 4096,
                "quantity": 8
              },
              "expect": {
                "test_id": "waveshare-output-modes",
                "byte_count": 16
              }
            },
            {
              "test": {
                "test_id": "wirenboard-model",
                "function": 4,
                "address": 200,
                "quantity": 20
              },
              "expect": {
                "test_id": "wirenboard-model",
                "exception_code": 1
              }
            }
          ]
        },
        "observation_policy": "Признаки содержат только форму ответа; сырые значения сохранены отдельно и требуют проверки.",
        "generated": true,
        "review_required": true
      }
    },
    "created_at": "1787658086",
    "updated_at": "1787658098"
  },
  {
    "session_id": "mb-7abdcc860d6b3f04",
    "request_id": "scan-0d6b3f047abdcc86",
    "base": "426db4",
    "slave_id": 12,
    "state": "finished",
    "reads_used": 14,
    "steps_used": 2,
    "result": {
      "outcome": "unknown",
      "reason": "ни один профиль не совместим с ответами",
      "confidence": "none",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-0d6b3f047abdcc86",
            "session_id": "mb-7abdcc860d6b3f04",
            "action": "accepted",
            "tm": "2026-08-25T11:41:21.671764Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "426db4"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "426db4",
            "event": "test_result",
            "request_id": "scan-0d6b3f047abdcc86",
            "results": [
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "000c",
                "registers": [
                  12
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  1,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "03",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "00c8",
                "registers": [
                  200
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 1,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-7abdcc860d6b3f04",
            "tm": "1787658079"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "426db4",
            "event": "step_complete",
            "request_id": "scan-0d6b3f047abdcc86",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-7abdcc860d6b3f04",
            "tm": "1787658079"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "explore-holding-0",
              "function": 3,
              "address": 0,
              "quantity": 4
            },
            {
              "test_id": "explore-input-0",
              "function": 4,
              "address": 0,
              "quantity": 4
            },
            {
              "test_id": "explore-holding-10",
              "function": 3,
              "address": 10,
              "quantity": 2
            },
            {
              "test_id": "explore-input-10",
              "function": 4,
              "address": 10,
              "quantity": 2
            },
            {
              "test_id": "explore-holding-100",
              "function": 3,
              "address": 100,
              "quantity": 2
            },
            {
              "test_id": "explore-input-100",
              "function": 4,
              "address": 100,
              "quantity": 2
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "426db4",
            "event": "test_result",
            "request_id": "scan-0d6b3f047abdcc86",
            "results": [
              {
                "address": 0,
                "exception_code": 2,
                "function": 3,
                "quantity": 4,
                "success": false,
                "test_id": "explore-holding-0"
              },
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 4,
                "success": false,
                "test_id": "explore-input-0"
              },
              {
                "address": 10,
                "exception_code": 2,
                "function": 3,
                "quantity": 2,
                "success": false,
                "test_id": "explore-holding-10"
              },
              {
                "address": 10,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "explore-input-10"
              },
              {
                "address": 100,
                "exception_code": 2,
                "function": 3,
                "quantity": 2,
                "success": false,
                "test_id": "explore-holding-100"
              },
              {
                "address": 100,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "explore-input-100"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-7abdcc860d6b3f04",
            "tm": "1787658086"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "426db4",
            "event": "step_complete",
            "request_id": "scan-0d6b3f047abdcc86",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-7abdcc860d6b3f04",
            "tm": "1787658086"
          }
        }
      ],
      "unknown_group": {
        "signature": "679470731cd110dbf7df00ceaf738a1035fecc396283b1d5574b91d16a13c636",
        "sample_count": 2
      },
      "draft_profile": {
        "profile_id": "draft-679470731cd1",
        "version": "0.1.0",
        "confidence": "medium",
        "description": {
          "name": "Неизвестное Modbus-устройство",
          "signature": "679470731cd110dbf7df00ceaf738a1035fecc396283b1d5574b91d16a13c636"
        },
        "line_parameters": {
          "baudrate": 9600,
          "data_bits": 8,
          "parity": "none",
          "stop_bits": 1
        },
        "sensor_templates": [],
        "polling_intervals": {
          "default_seconds": 60
        },
        "recognition": {
          "identity": {},
          "fingerprints": [
            {
              "test": {
                "test_id": "explore-holding-0",
                "function": 3,
                "address": 0,
                "quantity": 4
              },
              "expect": {
                "test_id": "explore-holding-0",
                "exception_code": 2
              }
            },
            {
              "test": {
                "test_id": "explore-holding-10",
                "function": 3,
                "address": 10,
                "quantity": 2
              },
              "expect": {
                "test_id": "explore-holding-10",
                "exception_code": 2
              }
            },
            {
              "test": {
                "test_id": "explore-holding-100",
                "function": 3,
                "address": 100,
                "quantity": 2
              },
              "expect": {
                "test_id": "explore-holding-100",
                "exception_code": 2
              }
            },
            {
              "test": {
                "test_id": "explore-input-0",
                "function": 4,
                "address": 0,
                "quantity": 4
              },
              "expect": {
                "test_id": "explore-input-0",
                "exception_code": 1
              }
            },
            {
              "test": {
                "test_id": "explore-input-10",
                "function": 4,
                "address": 10,
                "quantity": 2
              },
              "expect": {
                "test_id": "explore-input-10",
                "exception_code": 1
              }
            },
            {
              "test": {
                "test_id": "explore-input-100",
                "function": 4,
                "address": 100,
                "quantity": 2
              },
              "expect": {
                "test_id": "explore-input-100",
                "exception_code": 1
              }
            },
            {
              "test": {
                "test_id": "temperature-humidity-int16-div10",
                "function": 4,
                "address": 0,
                "quantity": 2
              },
              "expect": {
                "test_id": "temperature-humidity-int16-div10",
                "exception_code": 1
              }
            },
            {
              "test": {
                "test_id": "waveshare-device-address",
                "function": 3,
                "address": 16384,
                "quantity": 1
              },
              "expect": {
                "test_id": "waveshare-device-address",
                "byte_count": 2
              }
            },
            {
              "test": {
                "test_id": "waveshare-di-8",
                "function": 2,
                "address": 0,
                "quantity": 8
              },
              "expect": {
                "test_id": "waveshare-di-8",
                "byte_count": 1
              }
            },
            {
              "test": {
                "test_id": "waveshare-firmware-version",
                "function": 3,
                "address": 32768,
                "quantity": 1
              },
              "expect": {
                "test_id": "waveshare-firmware-version",
                "byte_count": 2
              }
            },
            {
              "test": {
                "test_id": "waveshare-output-modes",
                "function": 3,
                "address": 4096,
                "quantity": 8
              },
              "expect": {
                "test_id": "waveshare-output-modes",
                "byte_count": 16
              }
            },
            {
              "test": {
                "test_id": "wirenboard-model",
                "function": 4,
                "address": 200,
                "quantity": 20
              },
              "expect": {
                "test_id": "wirenboard-model",
                "exception_code": 1
              }
            }
          ]
        },
        "observation_policy": "Признаки содержат только форму ответа; сырые значения сохранены отдельно и требуют проверки.",
        "generated": true,
        "review_required": true
      }
    },
    "created_at": "1787658075",
    "updated_at": "1787658086"
  },
  {
    "session_id": "mb-5851a6eb54c22f0a",
    "request_id": "scan-54c22f0a5851a6eb",
    "base": "426db4",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "high",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-54c22f0a5851a6eb",
            "session_id": "mb-5851a6eb54c22f0a",
            "action": "accepted",
            "tm": "2026-08-25T11:41:17.385662Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "426db4"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "426db4",
            "event": "test_result",
            "request_id": "scan-54c22f0a5851a6eb",
            "results": [
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "000b",
                "registers": [
                  11
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  1,
                  1,
                  0,
                  1,
                  1,
                  0,
                  0
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "37",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "00c8",
                "registers": [
                  200
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 1,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-5851a6eb54c22f0a",
            "tm": "1787658074"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "426db4",
            "event": "step_complete",
            "request_id": "scan-54c22f0a5851a6eb",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-5851a6eb54c22f0a",
            "tm": "1787658074"
          }
        }
      ],
      "profile_id": "waveshare_modbus_rtu_io_8ch",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "waveshare_modbus_rtu_io_8ch",
        "profile_version": "1.0.0",
        "description": {
          "manufacturer": "Waveshare",
          "model": "Modbus RTU IO 8CH",
          "documentation_url": "https://www.waveshare.com/wiki/Modbus_RTU_IO_8CH",
          "device_type": "industrial_isolated_io",
          "inputs": 8,
          "outputs": 8
        },
        "line_parameters": {
          "mode": "rtu"
        },
        "sensor_templates": [
          {
            "id": "di1",
            "name": "DI1",
            "mode": "read",
            "function": 2,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di2",
            "name": "DI2",
            "mode": "read",
            "function": 2,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di3",
            "name": "DI3",
            "mode": "read",
            "function": 2,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di4",
            "name": "DI4",
            "mode": "read",
            "function": 2,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di5",
            "name": "DI5",
            "mode": "read",
            "function": 2,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di6",
            "name": "DI6",
            "mode": "read",
            "function": 2,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di7",
            "name": "DI7",
            "mode": "read",
            "function": 2,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di8",
            "name": "DI8",
            "mode": "read",
            "function": 2,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do1_state",
            "name": "DO1",
            "mode": "read",
            "function": 1,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do2_state",
            "name": "DO2",
            "mode": "read",
            "function": 1,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do3_state",
            "name": "DO3",
            "mode": "read",
            "function": 1,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do4_state",
            "name": "DO4",
            "mode": "read",
            "function": 1,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do5_state",
            "name": "DO5",
            "mode": "read",
            "function": 1,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do6_state",
            "name": "DO6",
            "mode": "read",
            "function": 1,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do7_state",
            "name": "DO7",
            "mode": "read",
            "function": 1,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do8_state",
            "name": "DO8",
            "mode": "read",
            "function": 1,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          }
        ],
        "polling_intervals": {
          "default_seconds": 5
        }
      }
    },
    "created_at": "1787658072",
    "updated_at": "1787658075"
  },
  {
    "session_id": "mb-492f4c08edebb9fc",
    "request_id": "scan-edebb9fc492f4c08",
    "base": "426db4",
    "slave_id": 2,
    "state": "finished",
    "reads_used": 14,
    "steps_used": 2,
    "result": {
      "outcome": "unknown",
      "reason": "ни один профиль не совместим с ответами",
      "confidence": "none",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-edebb9fc492f4c08",
            "session_id": "mb-492f4c08edebb9fc",
            "action": "accepted",
            "tm": "2026-08-25T11:41:06.891351Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "426db4"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "426db4",
            "event": "test_result",
            "request_id": "scan-edebb9fc492f4c08",
            "results": [
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "0002",
                "registers": [
                  2
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "00",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "00c8",
                "registers": [
                  200
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 1,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-492f4c08edebb9fc",
            "tm": "1787658065"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "426db4",
            "event": "step_complete",
            "request_id": "scan-edebb9fc492f4c08",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-492f4c08edebb9fc",
            "tm": "1787658065"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "explore-holding-0",
              "function": 3,
              "address": 0,
              "quantity": 4
            },
            {
              "test_id": "explore-input-0",
              "function": 4,
              "address": 0,
              "quantity": 4
            },
            {
              "test_id": "explore-holding-10",
              "function": 3,
              "address": 10,
              "quantity": 2
            },
            {
              "test_id": "explore-input-10",
              "function": 4,
              "address": 10,
              "quantity": 2
            },
            {
              "test_id": "explore-holding-100",
              "function": 3,
              "address": 100,
              "quantity": 2
            },
            {
              "test_id": "explore-input-100",
              "function": 4,
              "address": 100,
              "quantity": 2
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "426db4",
            "event": "test_result",
            "request_id": "scan-edebb9fc492f4c08",
            "results": [
              {
                "address": 0,
                "exception_code": 2,
                "function": 3,
                "quantity": 4,
                "success": false,
                "test_id": "explore-holding-0"
              },
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 4,
                "success": false,
                "test_id": "explore-input-0"
              },
              {
                "address": 10,
                "exception_code": 2,
                "function": 3,
                "quantity": 2,
                "success": false,
                "test_id": "explore-holding-10"
              },
              {
                "address": 10,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "explore-input-10"
              },
              {
                "address": 100,
                "exception_code": 2,
                "function": 3,
                "quantity": 2,
                "success": false,
                "test_id": "explore-holding-100"
              },
              {
                "address": 100,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "explore-input-100"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-492f4c08edebb9fc",
            "tm": "1787658071"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "426db4",
            "event": "step_complete",
            "request_id": "scan-edebb9fc492f4c08",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-492f4c08edebb9fc",
            "tm": "1787658071"
          }
        }
      ],
      "unknown_group": {
        "signature": "679470731cd110dbf7df00ceaf738a1035fecc396283b1d5574b91d16a13c636",
        "sample_count": 1
      },
      "draft_profile": {
        "profile_id": "draft-679470731cd1",
        "version": "0.1.0",
        "confidence": "medium",
        "description": {
          "name": "Неизвестное Modbus-устройство",
          "signature": "679470731cd110dbf7df00ceaf738a1035fecc396283b1d5574b91d16a13c636"
        },
        "line_parameters": {
          "baudrate": 9600,
          "data_bits": 8,
          "parity": "none",
          "stop_bits": 1
        },
        "sensor_templates": [],
        "polling_intervals": {
          "default_seconds": 60
        },
        "recognition": {
          "identity": {},
          "fingerprints": [
            {
              "test": {
                "test_id": "explore-holding-0",
                "function": 3,
                "address": 0,
                "quantity": 4
              },
              "expect": {
                "test_id": "explore-holding-0",
                "exception_code": 2
              }
            },
            {
              "test": {
                "test_id": "explore-holding-10",
                "function": 3,
                "address": 10,
                "quantity": 2
              },
              "expect": {
                "test_id": "explore-holding-10",
                "exception_code": 2
              }
            },
            {
              "test": {
                "test_id": "explore-holding-100",
                "function": 3,
                "address": 100,
                "quantity": 2
              },
              "expect": {
                "test_id": "explore-holding-100",
                "exception_code": 2
              }
            },
            {
              "test": {
                "test_id": "explore-input-0",
                "function": 4,
                "address": 0,
                "quantity": 4
              },
              "expect": {
                "test_id": "explore-input-0",
                "exception_code": 1
              }
            },
            {
              "test": {
                "test_id": "explore-input-10",
                "function": 4,
                "address": 10,
                "quantity": 2
              },
              "expect": {
                "test_id": "explore-input-10",
                "exception_code": 1
              }
            },
            {
              "test": {
                "test_id": "explore-input-100",
                "function": 4,
                "address": 100,
                "quantity": 2
              },
              "expect": {
                "test_id": "explore-input-100",
                "exception_code": 1
              }
            },
            {
              "test": {
                "test_id": "temperature-humidity-int16-div10",
                "function": 4,
                "address": 0,
                "quantity": 2
              },
              "expect": {
                "test_id": "temperature-humidity-int16-div10",
                "exception_code": 1
              }
            },
            {
              "test": {
                "test_id": "waveshare-device-address",
                "function": 3,
                "address": 16384,
                "quantity": 1
              },
              "expect": {
                "test_id": "waveshare-device-address",
                "byte_count": 2
              }
            },
            {
              "test": {
                "test_id": "waveshare-di-8",
                "function": 2,
                "address": 0,
                "quantity": 8
              },
              "expect": {
                "test_id": "waveshare-di-8",
                "byte_count": 1
              }
            },
            {
              "test": {
                "test_id": "waveshare-firmware-version",
                "function": 3,
                "address": 32768,
                "quantity": 1
              },
              "expect": {
                "test_id": "waveshare-firmware-version",
                "byte_count": 2
              }
            },
            {
              "test": {
                "test_id": "waveshare-output-modes",
                "function": 3,
                "address": 4096,
                "quantity": 8
              },
              "expect": {
                "test_id": "waveshare-output-modes",
                "byte_count": 16
              }
            },
            {
              "test": {
                "test_id": "wirenboard-model",
                "function": 4,
                "address": 200,
                "quantity": 20
              },
              "expect": {
                "test_id": "wirenboard-model",
                "exception_code": 1
              }
            }
          ]
        },
        "observation_policy": "Признаки содержат только форму ответа; сырые значения сохранены отдельно и требуют проверки.",
        "generated": true,
        "review_required": true
      }
    },
    "created_at": "1787658061",
    "updated_at": "1787658072"
  },
  {
    "session_id": "mb-356004459e9aa51a",
    "request_id": "scan-9e9aa51a35600445",
    "base": "1a2270",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "high",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-9e9aa51a35600445",
            "session_id": "mb-356004459e9aa51a",
            "action": "accepted",
            "tm": "2026-08-24T08:24:06.672930Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "1a2270"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "1a2270",
            "event": "test_result",
            "request_id": "scan-9e9aa51a35600445",
            "results": [
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "000b",
                "registers": [
                  11
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "01",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "00c8",
                "registers": [
                  200
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 1,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-356004459e9aa51a",
            "tm": "1787559848"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "1a2270",
            "event": "step_complete",
            "request_id": "scan-9e9aa51a35600445",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-356004459e9aa51a",
            "tm": "1787559848"
          }
        }
      ],
      "profile_id": "waveshare_modbus_rtu_io_8ch",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "waveshare_modbus_rtu_io_8ch",
        "profile_version": "1.0.0",
        "description": {
          "manufacturer": "Waveshare",
          "model": "Modbus RTU IO 8CH",
          "documentation_url": "https://www.waveshare.com/wiki/Modbus_RTU_IO_8CH",
          "device_type": "industrial_isolated_io",
          "inputs": 8,
          "outputs": 8
        },
        "line_parameters": {
          "mode": "rtu"
        },
        "sensor_templates": [
          {
            "id": "di1",
            "name": "DI1",
            "mode": "read",
            "function": 2,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di2",
            "name": "DI2",
            "mode": "read",
            "function": 2,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di3",
            "name": "DI3",
            "mode": "read",
            "function": 2,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di4",
            "name": "DI4",
            "mode": "read",
            "function": 2,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di5",
            "name": "DI5",
            "mode": "read",
            "function": 2,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di6",
            "name": "DI6",
            "mode": "read",
            "function": 2,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di7",
            "name": "DI7",
            "mode": "read",
            "function": 2,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di8",
            "name": "DI8",
            "mode": "read",
            "function": 2,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do1_state",
            "name": "DO1",
            "mode": "read",
            "function": 1,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do2_state",
            "name": "DO2",
            "mode": "read",
            "function": 1,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do3_state",
            "name": "DO3",
            "mode": "read",
            "function": 1,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do4_state",
            "name": "DO4",
            "mode": "read",
            "function": 1,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do5_state",
            "name": "DO5",
            "mode": "read",
            "function": 1,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do6_state",
            "name": "DO6",
            "mode": "read",
            "function": 1,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do7_state",
            "name": "DO7",
            "mode": "read",
            "function": 1,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do8_state",
            "name": "DO8",
            "mode": "read",
            "function": 1,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          }
        ],
        "polling_intervals": {
          "default_seconds": 5
        }
      }
    },
    "created_at": "1787559846",
    "updated_at": "1787559848"
  },
  {
    "session_id": "mb-26d7103e1ca42929",
    "request_id": "scan-1ca4292926d7103e",
    "base": "1a2270",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "high",
      "execution_trace": [
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-1ca4292926d7103e",
            "session_id": "mb-26d7103e1ca42929",
            "action": "accepted",
            "tm": "2026-08-24T08:00:32.835304Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "1a2270"
          }
        },
        {
          "kind": "command",
          "action": "start",
          "commands": [
            {
              "test_id": "device-identification-basic",
              "function": 43,
              "mei_type": 14,
              "read_device_id_code": 1
            },
            {
              "test_id": "report-server-id",
              "function": 17
            }
          ]
        },
        {
          "kind": "response",
          "event": "probe",
          "payload": {
            "action": "probe",
            "attempts": [
              {
                "function": 43,
                "mei_type": 14,
                "success": false,
                "test_id": "device-identification-basic"
              },
              {
                "function": 17,
                "success": false,
                "test_id": "report-server-id"
              }
            ],
            "controller_id": "1a2270",
            "event": "probe",
            "identity": {
              "device_identification": {
                "conformity_level": 0,
                "more_follows": false,
                "next_object_id": 0,
                "objects": [],
                "read_device_id_code": 0,
                "supported": false
              },
              "error": "exception_1",
              "server_id": {
                "supported": false
              }
            },
            "request_id": "scan-1ca4292926d7103e",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-26d7103e1ca42929",
            "tm": "1787558434"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "1a2270",
            "event": "test_result",
            "request_id": "scan-1ca4292926d7103e",
            "results": [
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "000b",
                "registers": [
                  11
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "01",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "00c8",
                "registers": [
                  200
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 1,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-26d7103e1ca42929",
            "tm": "1787558437"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "1a2270",
            "event": "step_complete",
            "request_id": "scan-1ca4292926d7103e",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-26d7103e1ca42929",
            "tm": "1787558437"
          }
        }
      ],
      "profile_id": "waveshare_modbus_rtu_io_8ch",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "waveshare_modbus_rtu_io_8ch",
        "profile_version": "1.0.0",
        "description": {
          "manufacturer": "Waveshare",
          "model": "Modbus RTU IO 8CH",
          "documentation_url": "https://www.waveshare.com/wiki/Modbus_RTU_IO_8CH",
          "device_type": "industrial_isolated_io",
          "inputs": 8,
          "outputs": 8
        },
        "line_parameters": {
          "mode": "rtu"
        },
        "sensor_templates": [
          {
            "id": "di1",
            "name": "DI1",
            "mode": "read",
            "function": 2,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di2",
            "name": "DI2",
            "mode": "read",
            "function": 2,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di3",
            "name": "DI3",
            "mode": "read",
            "function": 2,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di4",
            "name": "DI4",
            "mode": "read",
            "function": 2,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di5",
            "name": "DI5",
            "mode": "read",
            "function": 2,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di6",
            "name": "DI6",
            "mode": "read",
            "function": 2,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di7",
            "name": "DI7",
            "mode": "read",
            "function": 2,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di8",
            "name": "DI8",
            "mode": "read",
            "function": 2,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do1_state",
            "name": "DO1",
            "mode": "read",
            "function": 1,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do2_state",
            "name": "DO2",
            "mode": "read",
            "function": 1,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do3_state",
            "name": "DO3",
            "mode": "read",
            "function": 1,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do4_state",
            "name": "DO4",
            "mode": "read",
            "function": 1,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do5_state",
            "name": "DO5",
            "mode": "read",
            "function": 1,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do6_state",
            "name": "DO6",
            "mode": "read",
            "function": 1,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do7_state",
            "name": "DO7",
            "mode": "read",
            "function": 1,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do8_state",
            "name": "DO8",
            "mode": "read",
            "function": 1,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          }
        ],
        "polling_intervals": {
          "default_seconds": 5
        }
      }
    },
    "created_at": "1787558431",
    "updated_at": "1787558445"
  },
  {
    "session_id": "mb-15f7d838ebee2b0f",
    "request_id": "scan-ebee2b0f15f7d838",
    "base": "1a2270",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "high",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-ebee2b0f15f7d838",
            "session_id": "mb-15f7d838ebee2b0f",
            "action": "accepted",
            "tm": "2026-08-24T07:51:21.764102Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "1a2270"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "1a2270",
            "event": "test_result",
            "request_id": "scan-ebee2b0f15f7d838",
            "results": [
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "000b",
                "registers": [
                  11
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "01",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "00c8",
                "registers": [
                  200
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 1,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-15f7d838ebee2b0f",
            "tm": "1787557883"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "1a2270",
            "event": "step_complete",
            "request_id": "scan-ebee2b0f15f7d838",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-15f7d838ebee2b0f",
            "tm": "1787557883"
          }
        }
      ],
      "profile_id": "waveshare_modbus_rtu_io_8ch",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "waveshare_modbus_rtu_io_8ch",
        "profile_version": "1.0.0",
        "description": {
          "manufacturer": "Waveshare",
          "model": "Modbus RTU IO 8CH",
          "documentation_url": "https://www.waveshare.com/wiki/Modbus_RTU_IO_8CH",
          "device_type": "industrial_isolated_io",
          "inputs": 8,
          "outputs": 8
        },
        "line_parameters": {
          "mode": "rtu"
        },
        "sensor_templates": [
          {
            "id": "di1",
            "name": "DI1",
            "mode": "read",
            "function": 2,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di2",
            "name": "DI2",
            "mode": "read",
            "function": 2,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di3",
            "name": "DI3",
            "mode": "read",
            "function": 2,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di4",
            "name": "DI4",
            "mode": "read",
            "function": 2,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di5",
            "name": "DI5",
            "mode": "read",
            "function": 2,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di6",
            "name": "DI6",
            "mode": "read",
            "function": 2,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di7",
            "name": "DI7",
            "mode": "read",
            "function": 2,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di8",
            "name": "DI8",
            "mode": "read",
            "function": 2,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do1_state",
            "name": "DO1",
            "mode": "read",
            "function": 1,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do2_state",
            "name": "DO2",
            "mode": "read",
            "function": 1,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do3_state",
            "name": "DO3",
            "mode": "read",
            "function": 1,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do4_state",
            "name": "DO4",
            "mode": "read",
            "function": 1,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do5_state",
            "name": "DO5",
            "mode": "read",
            "function": 1,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do6_state",
            "name": "DO6",
            "mode": "read",
            "function": 1,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do7_state",
            "name": "DO7",
            "mode": "read",
            "function": 1,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do8_state",
            "name": "DO8",
            "mode": "read",
            "function": 1,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          }
        ],
        "polling_intervals": {
          "default_seconds": 5
        }
      }
    },
    "created_at": "1787557880",
    "updated_at": "1787557883"
  },
  {
    "session_id": "mb-49951ba1ead33a95",
    "request_id": "scan-ead33a9549951ba1",
    "base": "1a2270",
    "slave_id": 20,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "medium",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-ead33a9549951ba1",
            "session_id": "mb-49951ba1ead33a95",
            "action": "accepted",
            "tm": "2026-08-22T19:10:26.364352Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "1a2270"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "1a2270",
            "event": "test_result",
            "request_id": "scan-ead33a9549951ba1",
            "results": [
              {
                "address": 0,
                "byte_count": 4,
                "function": 4,
                "quantity": 2,
                "raw_hex": "0100022c",
                "registers": [
                  256,
                  556
                ],
                "success": true,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "exception_code": 3,
                "function": 3,
                "quantity": 1,
                "success": false,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "exception_code": 3,
                "function": 2,
                "quantity": 8,
                "success": false,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "exception_code": 3,
                "function": 3,
                "quantity": 1,
                "success": false,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "exception_code": 3,
                "function": 3,
                "quantity": 8,
                "success": false,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 3,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-49951ba1ead33a95",
            "tm": "1787426968"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "1a2270",
            "event": "step_complete",
            "request_id": "scan-ead33a9549951ba1",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-49951ba1ead33a95",
            "tm": "1787426968"
          }
        }
      ],
      "profile_id": "temperature_humidity_int16_div10",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "temperature_humidity_int16_div10",
        "profile_version": "1.0.0",
        "description": {
          "device_type": "temperature_humidity_sensor",
          "compatible_with": "SHT20",
          "identification_status": "requires_device_identification",
          "note": "Без подтверждённого FC 0x2B/0x0E или FC 0x11 это совместимый преобразователь, а не подтверждённая модель SHT20."
        },
        "line_parameters": {
          "mode": "rtu",
          "baudrate": 9600,
          "parity": "N",
          "timeout_ms": 200
        },
        "sensor_templates": [
          {
            "id": "temperature_c",
            "name": "Температура",
            "mode": "read",
            "function": 4,
            "address": 0,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "°C"
          },
          {
            "id": "humidity_percent",
            "name": "Влажность",
            "mode": "read",
            "function": 4,
            "address": 1,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "%"
          }
        ],
        "polling_intervals": {
          "default_seconds": 10
        }
      }
    },
    "created_at": "1787426963",
    "updated_at": "1787426969"
  },
  {
    "session_id": "mb-e62a2295c596e7a0",
    "request_id": "scan-c596e7a0e62a2295",
    "base": "1a2270",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "high",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-c596e7a0e62a2295",
            "session_id": "mb-e62a2295c596e7a0",
            "action": "accepted",
            "tm": "2026-08-22T19:10:16.305983Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "1a2270"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "1a2270",
            "event": "test_result",
            "request_id": "scan-c596e7a0e62a2295",
            "results": [
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "000b",
                "registers": [
                  11
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "01",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "00c8",
                "registers": [
                  200
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 1,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-e62a2295c596e7a0",
            "tm": "1787426955"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "1a2270",
            "event": "step_complete",
            "request_id": "scan-c596e7a0e62a2295",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-e62a2295c596e7a0",
            "tm": "1787426955"
          }
        }
      ],
      "profile_id": "waveshare_modbus_rtu_io_8ch",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "waveshare_modbus_rtu_io_8ch",
        "profile_version": "1.0.0",
        "description": {
          "manufacturer": "Waveshare",
          "model": "Modbus RTU IO 8CH",
          "documentation_url": "https://www.waveshare.com/wiki/Modbus_RTU_IO_8CH",
          "device_type": "industrial_isolated_io",
          "inputs": 8,
          "outputs": 8
        },
        "line_parameters": {
          "mode": "rtu"
        },
        "sensor_templates": [
          {
            "id": "di1",
            "name": "DI1",
            "mode": "read",
            "function": 2,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di2",
            "name": "DI2",
            "mode": "read",
            "function": 2,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di3",
            "name": "DI3",
            "mode": "read",
            "function": 2,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di4",
            "name": "DI4",
            "mode": "read",
            "function": 2,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di5",
            "name": "DI5",
            "mode": "read",
            "function": 2,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di6",
            "name": "DI6",
            "mode": "read",
            "function": 2,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di7",
            "name": "DI7",
            "mode": "read",
            "function": 2,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di8",
            "name": "DI8",
            "mode": "read",
            "function": 2,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do1_state",
            "name": "DO1",
            "mode": "read",
            "function": 1,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do2_state",
            "name": "DO2",
            "mode": "read",
            "function": 1,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do3_state",
            "name": "DO3",
            "mode": "read",
            "function": 1,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do4_state",
            "name": "DO4",
            "mode": "read",
            "function": 1,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do5_state",
            "name": "DO5",
            "mode": "read",
            "function": 1,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do6_state",
            "name": "DO6",
            "mode": "read",
            "function": 1,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do7_state",
            "name": "DO7",
            "mode": "read",
            "function": 1,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do8_state",
            "name": "DO8",
            "mode": "read",
            "function": 1,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          }
        ],
        "polling_intervals": {
          "default_seconds": 5
        }
      }
    },
    "created_at": "1787426952",
    "updated_at": "1787426963"
  },
  {
    "session_id": "mb-d3f15ba811b68cf8",
    "request_id": "scan-11b68cf8d3f15ba8",
    "base": "1a2270",
    "slave_id": 20,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "medium",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-11b68cf8d3f15ba8",
            "session_id": "mb-d3f15ba811b68cf8",
            "action": "accepted",
            "tm": "2026-08-22T18:34:50.901923Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "1a2270"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "1a2270",
            "event": "test_result",
            "request_id": "scan-11b68cf8d3f15ba8",
            "results": [
              {
                "address": 0,
                "byte_count": 4,
                "function": 4,
                "quantity": 2,
                "raw_hex": "01030229",
                "registers": [
                  259,
                  553
                ],
                "success": true,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "exception_code": 3,
                "function": 3,
                "quantity": 1,
                "success": false,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "exception_code": 3,
                "function": 2,
                "quantity": 8,
                "success": false,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "exception_code": 3,
                "function": 3,
                "quantity": 1,
                "success": false,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "exception_code": 3,
                "function": 3,
                "quantity": 8,
                "success": false,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 3,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-d3f15ba811b68cf8",
            "tm": "1787424831"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "1a2270",
            "event": "step_complete",
            "request_id": "scan-11b68cf8d3f15ba8",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-d3f15ba811b68cf8",
            "tm": "1787424831"
          }
        }
      ],
      "profile_id": "temperature_humidity_int16_div10",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "temperature_humidity_int16_div10",
        "profile_version": "1.0.0",
        "description": {
          "device_type": "temperature_humidity_sensor",
          "compatible_with": "SHT20",
          "identification_status": "requires_device_identification",
          "note": "Без подтверждённого FC 0x2B/0x0E или FC 0x11 это совместимый преобразователь, а не подтверждённая модель SHT20."
        },
        "line_parameters": {
          "mode": "rtu",
          "baudrate": 9600,
          "parity": "N",
          "timeout_ms": 200
        },
        "sensor_templates": [
          {
            "id": "temperature_c",
            "name": "Температура",
            "mode": "read",
            "function": 4,
            "address": 0,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "°C"
          },
          {
            "id": "humidity_percent",
            "name": "Влажность",
            "mode": "read",
            "function": 4,
            "address": 1,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "%"
          }
        ],
        "polling_intervals": {
          "default_seconds": 10
        }
      }
    },
    "created_at": "1787424825",
    "updated_at": "1787424832"
  },
  {
    "session_id": "mb-53b118a48427a81e",
    "request_id": "scan-8427a81e53b118a4",
    "base": "1a2270",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "high",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-8427a81e53b118a4",
            "session_id": "mb-53b118a48427a81e",
            "action": "accepted",
            "tm": "2026-08-22T18:34:46.771122Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "1a2270"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "1a2270",
            "event": "test_result",
            "request_id": "scan-8427a81e53b118a4",
            "results": [
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "000b",
                "registers": [
                  11
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "01",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "00c8",
                "registers": [
                  200
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 1,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-53b118a48427a81e",
            "tm": "1787424824"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "1a2270",
            "event": "step_complete",
            "request_id": "scan-8427a81e53b118a4",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-53b118a48427a81e",
            "tm": "1787424824"
          }
        }
      ],
      "profile_id": "waveshare_modbus_rtu_io_8ch",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "waveshare_modbus_rtu_io_8ch",
        "profile_version": "1.0.0",
        "description": {
          "manufacturer": "Waveshare",
          "model": "Modbus RTU IO 8CH",
          "documentation_url": "https://www.waveshare.com/wiki/Modbus_RTU_IO_8CH",
          "device_type": "industrial_isolated_io",
          "inputs": 8,
          "outputs": 8
        },
        "line_parameters": {
          "mode": "rtu"
        },
        "sensor_templates": [
          {
            "id": "di1",
            "name": "DI1",
            "mode": "read",
            "function": 2,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di2",
            "name": "DI2",
            "mode": "read",
            "function": 2,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di3",
            "name": "DI3",
            "mode": "read",
            "function": 2,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di4",
            "name": "DI4",
            "mode": "read",
            "function": 2,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di5",
            "name": "DI5",
            "mode": "read",
            "function": 2,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di6",
            "name": "DI6",
            "mode": "read",
            "function": 2,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di7",
            "name": "DI7",
            "mode": "read",
            "function": 2,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di8",
            "name": "DI8",
            "mode": "read",
            "function": 2,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do1_state",
            "name": "DO1",
            "mode": "read",
            "function": 1,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do2_state",
            "name": "DO2",
            "mode": "read",
            "function": 1,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do3_state",
            "name": "DO3",
            "mode": "read",
            "function": 1,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do4_state",
            "name": "DO4",
            "mode": "read",
            "function": 1,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do5_state",
            "name": "DO5",
            "mode": "read",
            "function": 1,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do6_state",
            "name": "DO6",
            "mode": "read",
            "function": 1,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do7_state",
            "name": "DO7",
            "mode": "read",
            "function": 1,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do8_state",
            "name": "DO8",
            "mode": "read",
            "function": 1,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          }
        ],
        "polling_intervals": {
          "default_seconds": 5
        }
      }
    },
    "created_at": "1787424821",
    "updated_at": "1787424825"
  },
  {
    "session_id": "mb-5b86788f6148763f",
    "request_id": "scan-6148763f5b86788f",
    "base": "1a2270",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "high",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-6148763f5b86788f",
            "session_id": "mb-5b86788f6148763f",
            "action": "accepted",
            "tm": "2026-08-22T18:32:51.283330Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "1a2270"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "1a2270",
            "event": "test_result",
            "request_id": "scan-6148763f5b86788f",
            "results": [
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "000b",
                "registers": [
                  11
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "01",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "00c8",
                "registers": [
                  200
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 1,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-5b86788f6148763f",
            "tm": "1787424709"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "1a2270",
            "event": "step_complete",
            "request_id": "scan-6148763f5b86788f",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-5b86788f6148763f",
            "tm": "1787424709"
          }
        }
      ],
      "profile_id": "waveshare_modbus_rtu_io_8ch",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "waveshare_modbus_rtu_io_8ch",
        "profile_version": "1.0.0",
        "description": {
          "manufacturer": "Waveshare",
          "model": "Modbus RTU IO 8CH",
          "documentation_url": "https://www.waveshare.com/wiki/Modbus_RTU_IO_8CH",
          "device_type": "industrial_isolated_io",
          "inputs": 8,
          "outputs": 8
        },
        "line_parameters": {
          "mode": "rtu"
        },
        "sensor_templates": [
          {
            "id": "di1",
            "name": "DI1",
            "mode": "read",
            "function": 2,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di2",
            "name": "DI2",
            "mode": "read",
            "function": 2,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di3",
            "name": "DI3",
            "mode": "read",
            "function": 2,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di4",
            "name": "DI4",
            "mode": "read",
            "function": 2,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di5",
            "name": "DI5",
            "mode": "read",
            "function": 2,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di6",
            "name": "DI6",
            "mode": "read",
            "function": 2,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di7",
            "name": "DI7",
            "mode": "read",
            "function": 2,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di8",
            "name": "DI8",
            "mode": "read",
            "function": 2,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do1_state",
            "name": "DO1",
            "mode": "read",
            "function": 1,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do2_state",
            "name": "DO2",
            "mode": "read",
            "function": 1,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do3_state",
            "name": "DO3",
            "mode": "read",
            "function": 1,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do4_state",
            "name": "DO4",
            "mode": "read",
            "function": 1,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do5_state",
            "name": "DO5",
            "mode": "read",
            "function": 1,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do6_state",
            "name": "DO6",
            "mode": "read",
            "function": 1,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do7_state",
            "name": "DO7",
            "mode": "read",
            "function": 1,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do8_state",
            "name": "DO8",
            "mode": "read",
            "function": 1,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          }
        ],
        "polling_intervals": {
          "default_seconds": 5
        }
      }
    },
    "created_at": "1787424706",
    "updated_at": "1787424709"
  },
  {
    "session_id": "mb-f1643ca5c1177ec6",
    "request_id": "scan-c1177ec6f1643ca5",
    "base": "1a2270",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "high",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-c1177ec6f1643ca5",
            "session_id": "mb-f1643ca5c1177ec6",
            "action": "accepted",
            "tm": "2026-08-22T17:23:18.412212Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "1a2270"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "1a2270",
            "event": "test_result",
            "request_id": "scan-c1177ec6f1643ca5",
            "results": [
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "000b",
                "registers": [
                  11
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "01",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "00c8",
                "registers": [
                  200
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 1,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-f1643ca5c1177ec6",
            "tm": "1787419400"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "1a2270",
            "event": "step_complete",
            "request_id": "scan-c1177ec6f1643ca5",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-f1643ca5c1177ec6",
            "tm": "1787419400"
          }
        }
      ],
      "profile_id": "waveshare_modbus_rtu_io_8ch",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "waveshare_modbus_rtu_io_8ch",
        "profile_version": "1.0.0",
        "description": {
          "manufacturer": "Waveshare",
          "model": "Modbus RTU IO 8CH",
          "documentation_url": "https://www.waveshare.com/wiki/Modbus_RTU_IO_8CH",
          "device_type": "industrial_isolated_io",
          "inputs": 8,
          "outputs": 8
        },
        "line_parameters": {
          "mode": "rtu"
        },
        "sensor_templates": [
          {
            "id": "di1",
            "name": "DI1",
            "mode": "read",
            "function": 2,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di2",
            "name": "DI2",
            "mode": "read",
            "function": 2,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di3",
            "name": "DI3",
            "mode": "read",
            "function": 2,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di4",
            "name": "DI4",
            "mode": "read",
            "function": 2,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di5",
            "name": "DI5",
            "mode": "read",
            "function": 2,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di6",
            "name": "DI6",
            "mode": "read",
            "function": 2,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di7",
            "name": "DI7",
            "mode": "read",
            "function": 2,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di8",
            "name": "DI8",
            "mode": "read",
            "function": 2,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do1_state",
            "name": "DO1",
            "mode": "read",
            "function": 1,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do2_state",
            "name": "DO2",
            "mode": "read",
            "function": 1,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do3_state",
            "name": "DO3",
            "mode": "read",
            "function": 1,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do4_state",
            "name": "DO4",
            "mode": "read",
            "function": 1,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do5_state",
            "name": "DO5",
            "mode": "read",
            "function": 1,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do6_state",
            "name": "DO6",
            "mode": "read",
            "function": 1,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do7_state",
            "name": "DO7",
            "mode": "read",
            "function": 1,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do8_state",
            "name": "DO8",
            "mode": "read",
            "function": 1,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          }
        ],
        "polling_intervals": {
          "default_seconds": 5
        }
      }
    },
    "created_at": "1787419397",
    "updated_at": "1787419408"
  },
  {
    "session_id": "mb-a4554c7df0e3a8e0",
    "request_id": "scan-f0e3a8e0a4554c7d",
    "base": "26b714",
    "slave_id": 20,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "medium",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-f0e3a8e0a4554c7d",
            "session_id": "mb-a4554c7df0e3a8e0",
            "action": "accepted",
            "tm": "2026-08-22T08:45:13.719436Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "26b714"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "26b714",
            "event": "test_result",
            "request_id": "scan-f0e3a8e0a4554c7d",
            "results": [
              {
                "address": 0,
                "byte_count": 4,
                "function": 4,
                "quantity": 2,
                "raw_hex": "01020200",
                "registers": [
                  258,
                  512
                ],
                "success": true,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "exception_code": 3,
                "function": 3,
                "quantity": 1,
                "success": false,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "exception_code": 3,
                "function": 2,
                "quantity": 8,
                "success": false,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "exception_code": 3,
                "function": 3,
                "quantity": 1,
                "success": false,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "exception_code": 3,
                "function": 3,
                "quantity": 8,
                "success": false,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 3,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-a4554c7df0e3a8e0",
            "tm": "1787389453"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "26b714",
            "event": "step_complete",
            "request_id": "scan-f0e3a8e0a4554c7d",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-a4554c7df0e3a8e0",
            "tm": "1787389453"
          }
        }
      ],
      "profile_id": "temperature_humidity_int16_div10",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "temperature_humidity_int16_div10",
        "profile_version": "1.0.0",
        "description": {
          "device_type": "temperature_humidity_sensor",
          "compatible_with": "SHT20",
          "identification_status": "requires_device_identification",
          "note": "Без подтверждённого FC 0x2B/0x0E или FC 0x11 это совместимый преобразователь, а не подтверждённая модель SHT20."
        },
        "line_parameters": {
          "mode": "rtu",
          "baudrate": 9600,
          "parity": "N",
          "timeout_ms": 200
        },
        "sensor_templates": [
          {
            "id": "temperature_c",
            "name": "Температура",
            "mode": "read",
            "function": 4,
            "address": 0,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "°C"
          },
          {
            "id": "humidity_percent",
            "name": "Влажность",
            "mode": "read",
            "function": 4,
            "address": 1,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "%"
          }
        ],
        "polling_intervals": {
          "default_seconds": 10
        }
      }
    },
    "created_at": "1787389447",
    "updated_at": "1787389453"
  },
  {
    "session_id": "mb-d42d727f018b5466",
    "request_id": "scan-018b5466d42d727f",
    "base": "26b714",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "high",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-018b5466d42d727f",
            "session_id": "mb-d42d727f018b5466",
            "action": "accepted",
            "tm": "2026-08-22T08:45:04.461840Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "26b714"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "26b714",
            "event": "test_result",
            "request_id": "scan-018b5466d42d727f",
            "results": [
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "000b",
                "registers": [
                  11
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "01",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "00c8",
                "registers": [
                  200
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 1,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-d42d727f018b5466",
            "tm": "1787389441"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "26b714",
            "event": "step_complete",
            "request_id": "scan-018b5466d42d727f",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-d42d727f018b5466",
            "tm": "1787389441"
          }
        }
      ],
      "profile_id": "waveshare_modbus_rtu_io_8ch",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "waveshare_modbus_rtu_io_8ch",
        "profile_version": "1.0.0",
        "description": {
          "manufacturer": "Waveshare",
          "model": "Modbus RTU IO 8CH",
          "documentation_url": "https://www.waveshare.com/wiki/Modbus_RTU_IO_8CH",
          "device_type": "industrial_isolated_io",
          "inputs": 8,
          "outputs": 8
        },
        "line_parameters": {
          "mode": "rtu"
        },
        "sensor_templates": [
          {
            "id": "di1",
            "name": "DI1",
            "mode": "read",
            "function": 2,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di2",
            "name": "DI2",
            "mode": "read",
            "function": 2,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di3",
            "name": "DI3",
            "mode": "read",
            "function": 2,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di4",
            "name": "DI4",
            "mode": "read",
            "function": 2,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di5",
            "name": "DI5",
            "mode": "read",
            "function": 2,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di6",
            "name": "DI6",
            "mode": "read",
            "function": 2,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di7",
            "name": "DI7",
            "mode": "read",
            "function": 2,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di8",
            "name": "DI8",
            "mode": "read",
            "function": 2,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do1_state",
            "name": "DO1",
            "mode": "read",
            "function": 1,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do2_state",
            "name": "DO2",
            "mode": "read",
            "function": 1,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do3_state",
            "name": "DO3",
            "mode": "read",
            "function": 1,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do4_state",
            "name": "DO4",
            "mode": "read",
            "function": 1,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do5_state",
            "name": "DO5",
            "mode": "read",
            "function": 1,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do6_state",
            "name": "DO6",
            "mode": "read",
            "function": 1,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do7_state",
            "name": "DO7",
            "mode": "read",
            "function": 1,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do8_state",
            "name": "DO8",
            "mode": "read",
            "function": 1,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          }
        ],
        "polling_intervals": {
          "default_seconds": 5
        }
      }
    },
    "created_at": "1787389415",
    "updated_at": "1787389447"
  },
  {
    "session_id": "mb-7b0eb2a64b2ae4a4",
    "request_id": "scan-4b2ae4a47b0eb2a6",
    "base": "1a2270",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "high",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "identity": {},
            "attempts": [
              {
                "test_id": "device-identification-basic",
                "function": 43,
                "mei_type": 14,
                "error": "scan_standard_identification_unavailable"
              },
              {
                "test_id": "report-server-id",
                "function": 17,
                "error": "scan_standard_identification_unavailable"
              }
            ]
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-4b2ae4a47b0eb2a6",
            "session_id": "mb-7b0eb2a64b2ae4a4",
            "action": "accepted",
            "tm": "2026-08-22T06:26:25.370783Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "1a2270"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "controller_id": "1a2270",
            "request_id": "scan-4b2ae4a47b0eb2a6",
            "session_id": "mb-7b0eb2a64b2ae4a4",
            "action": "test_result",
            "event": "test_result",
            "results": [
              {
                "test_id": "temperature-humidity-int16-div10",
                "function": 4,
                "address": 0,
                "quantity": 2,
                "success": false,
                "exception_code": 1
              },
              {
                "test_id": "waveshare-device-address",
                "function": 3,
                "address": 16384,
                "quantity": 1,
                "success": true,
                "byte_count": 2,
                "raw_hex": "000b",
                "registers": [
                  11
                ]
              },
              {
                "test_id": "waveshare-di-8",
                "function": 2,
                "address": 0,
                "quantity": 8,
                "success": true,
                "byte_count": 1,
                "raw_hex": "01",
                "bits": [
                  true,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false,
                  false
                ]
              },
              {
                "test_id": "waveshare-firmware-version",
                "function": 3,
                "address": 32768,
                "quantity": 1,
                "success": true,
                "byte_count": 2,
                "raw_hex": "00c8",
                "registers": [
                  200
                ]
              },
              {
                "test_id": "waveshare-output-modes",
                "function": 3,
                "address": 4096,
                "quantity": 8,
                "success": true,
                "byte_count": 16,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ]
              },
              {
                "test_id": "wirenboard-model",
                "function": 4,
                "address": 200,
                "quantity": 20,
                "success": false,
                "exception_code": 1
              }
            ],
            "tm": "1787381133"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "controller_id": "1a2270",
            "request_id": "scan-4b2ae4a47b0eb2a6",
            "session_id": "mb-7b0eb2a64b2ae4a4",
            "action": "step_complete",
            "event": "step_complete",
            "tm": "1787381133"
          }
        }
      ],
      "profile_id": "waveshare_modbus_rtu_io_8ch",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "waveshare_modbus_rtu_io_8ch",
        "profile_version": "1.0.0",
        "description": {
          "manufacturer": "Waveshare",
          "model": "Modbus RTU IO 8CH",
          "documentation_url": "https://www.waveshare.com/wiki/Modbus_RTU_IO_8CH",
          "device_type": "industrial_isolated_io",
          "inputs": 8,
          "outputs": 8
        },
        "line_parameters": {
          "mode": "rtu"
        },
        "sensor_templates": [
          {
            "id": "di1",
            "name": "DI1",
            "mode": "read",
            "function": 2,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di2",
            "name": "DI2",
            "mode": "read",
            "function": 2,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di3",
            "name": "DI3",
            "mode": "read",
            "function": 2,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di4",
            "name": "DI4",
            "mode": "read",
            "function": 2,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di5",
            "name": "DI5",
            "mode": "read",
            "function": 2,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di6",
            "name": "DI6",
            "mode": "read",
            "function": 2,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di7",
            "name": "DI7",
            "mode": "read",
            "function": 2,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di8",
            "name": "DI8",
            "mode": "read",
            "function": 2,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do1_state",
            "name": "DO1",
            "mode": "read",
            "function": 1,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do2_state",
            "name": "DO2",
            "mode": "read",
            "function": 1,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do3_state",
            "name": "DO3",
            "mode": "read",
            "function": 1,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do4_state",
            "name": "DO4",
            "mode": "read",
            "function": 1,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do5_state",
            "name": "DO5",
            "mode": "read",
            "function": 1,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do6_state",
            "name": "DO6",
            "mode": "read",
            "function": 1,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do7_state",
            "name": "DO7",
            "mode": "read",
            "function": 1,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do8_state",
            "name": "DO8",
            "mode": "read",
            "function": 1,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          }
        ],
        "polling_intervals": {
          "default_seconds": 5
        }
      }
    },
    "created_at": "1787381118",
    "updated_at": "1787381151"
  },
  {
    "session_id": "mb-716b6d1436456ffa",
    "request_id": "scan-36456ffa716b6d14",
    "base": "1a2270",
    "slave_id": 11,
    "state": "timed_out",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "schema": "misx5.device_discovery.v1",
      "controller_id": "1a2270",
      "request_id": "scan-36456ffa716b6d14",
      "session_id": "mb-716b6d1436456ffa",
      "action": "timeout",
      "event": "timeout",
      "code": "local_timeout",
      "tm": "1787380824"
    },
    "created_at": "1787380777",
    "updated_at": "1787380824"
  },
  {
    "session_id": "mb-fb44ebb98a54ebad",
    "request_id": "scan-8a54ebadfb44ebb9",
    "base": "1a2270",
    "slave_id": 11,
    "state": "failed",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "schema": "misx5.device_discovery.v1",
      "controller_id": "1a2270",
      "request_id": "scan-8a54ebadfb44ebb9",
      "session_id": "mb-fb44ebb98a54ebad",
      "action": "error",
      "event": "error",
      "code": "profile_payload_too_large",
      "tm": "1787380438"
    },
    "created_at": "1787380400",
    "updated_at": "1787380438"
  },
  {
    "session_id": "mb-169f3f363290c2a5",
    "request_id": "scan-3290c2a5169f3f36",
    "base": "1a2270",
    "slave_id": 11,
    "state": "timed_out",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "schema": "misx5.device_discovery.v1",
      "controller_id": "1a2270",
      "request_id": "scan-3290c2a5169f3f36",
      "session_id": "mb-169f3f363290c2a5",
      "action": "timeout",
      "event": "timeout",
      "code": "local_timeout",
      "tm": "1787380076"
    },
    "created_at": "1787380030",
    "updated_at": "1787380076"
  },
  {
    "session_id": "mb-661f10f3f8b1c747",
    "request_id": "scan-f8b1c747661f10f3",
    "base": "1a2270",
    "slave_id": 11,
    "state": "timed_out",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "reason": "service_timeout"
    },
    "created_at": "1787379771",
    "updated_at": "2026-08-22T06:04:46.286962Z"
  },
  {
    "session_id": "mb-553d4c1996962e3a",
    "request_id": "scan-96962e3a553d4c19",
    "base": "1a2270",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "high",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "identity": {},
            "attempts": [
              {
                "test_id": "device-identification-basic",
                "function": 43,
                "mei_type": 14,
                "error": "scan_standard_identification_unavailable"
              },
              {
                "test_id": "report-server-id",
                "function": 17,
                "error": "scan_standard_identification_unavailable"
              }
            ]
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-96962e3a553d4c19",
            "session_id": "mb-553d4c1996962e3a",
            "action": "accepted",
            "tm": "2026-08-22T05:53:49.089799Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "1a2270"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "1a2270",
            "event": "test_result",
            "request_id": "scan-96962e3a553d4c19",
            "results": [
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "000b",
                "registers": [
                  11
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "01",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "00c8",
                "registers": [
                  200
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 1,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-553d4c1996962e3a",
            "tm": "1787379177"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "controller_id": "1a2270",
            "request_id": "scan-96962e3a553d4c19",
            "session_id": "mb-553d4c1996962e3a",
            "action": "step_complete",
            "event": "step_complete",
            "tm": "1787379177"
          }
        }
      ],
      "profile_id": "waveshare_modbus_rtu_io_8ch",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "waveshare_modbus_rtu_io_8ch",
        "profile_version": "1.0.0",
        "description": {
          "manufacturer": "Waveshare",
          "model": "Modbus RTU IO 8CH",
          "documentation_url": "https://www.waveshare.com/wiki/Modbus_RTU_IO_8CH",
          "device_type": "industrial_isolated_io",
          "inputs": 8,
          "outputs": 8
        },
        "line_parameters": {
          "mode": "rtu"
        },
        "sensor_templates": [
          {
            "id": "di1",
            "name": "DI1",
            "mode": "read",
            "function": 2,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di2",
            "name": "DI2",
            "mode": "read",
            "function": 2,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di3",
            "name": "DI3",
            "mode": "read",
            "function": 2,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di4",
            "name": "DI4",
            "mode": "read",
            "function": 2,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di5",
            "name": "DI5",
            "mode": "read",
            "function": 2,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di6",
            "name": "DI6",
            "mode": "read",
            "function": 2,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di7",
            "name": "DI7",
            "mode": "read",
            "function": 2,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di8",
            "name": "DI8",
            "mode": "read",
            "function": 2,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do1_state",
            "name": "DO1",
            "mode": "read",
            "function": 1,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do2_state",
            "name": "DO2",
            "mode": "read",
            "function": 1,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do3_state",
            "name": "DO3",
            "mode": "read",
            "function": 1,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do4_state",
            "name": "DO4",
            "mode": "read",
            "function": 1,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do5_state",
            "name": "DO5",
            "mode": "read",
            "function": 1,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do6_state",
            "name": "DO6",
            "mode": "read",
            "function": 1,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do7_state",
            "name": "DO7",
            "mode": "read",
            "function": 1,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do8_state",
            "name": "DO8",
            "mode": "read",
            "function": 1,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          }
        ],
        "polling_intervals": {
          "default_seconds": 5
        }
      }
    },
    "created_at": "1787379161",
    "updated_at": "1787379177"
  },
  {
    "session_id": "mb-5973af922ac0c73a",
    "request_id": "scan-2ac0c73a5973af92",
    "base": "1a2270",
    "slave_id": 11,
    "state": "timed_out",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "reason": "service_timeout"
    },
    "created_at": "1787377455",
    "updated_at": "2026-08-22T05:26:02.947662Z"
  },
  {
    "session_id": "mb-3a16bebf95753c9c",
    "request_id": "scan-95753c9c3a16bebf",
    "base": "1a2270",
    "slave_id": 11,
    "state": "timed_out",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "reason": "service_timeout"
    },
    "created_at": "1787375145",
    "updated_at": "2026-08-22T04:49:48.701604Z"
  },
  {
    "session_id": "mb-a8844923ddcac484",
    "request_id": "scan-ddcac484a8844923",
    "base": "1a2270",
    "slave_id": 11,
    "state": "timed_out",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "reason": "service_timeout"
    },
    "created_at": "1787374780",
    "updated_at": "2026-08-22T04:43:43.432601Z"
  },
  {
    "session_id": "mb-638cdfeff7da76c9",
    "request_id": "scan-f7da76c9638cdfef",
    "base": "1a2270",
    "slave_id": 11,
    "state": "timed_out",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "action": "timeout",
      "code": "local_timeout",
      "controller_id": "1a2270",
      "event": "timeout",
      "request_id": "scan-f7da76c9638cdfef",
      "schema": "misx5.device_discovery.v1",
      "session_id": "mb-638cdfeff7da76c9",
      "tm": "1787371004"
    },
    "created_at": "1787370887",
    "updated_at": "1787371004"
  },
  {
    "session_id": "mb-20e011ca8458e68c",
    "request_id": "scan-8458e68c20e011ca",
    "base": "1a2270",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "high",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-8458e68c20e011ca",
            "session_id": "mb-20e011ca8458e68c",
            "action": "accepted",
            "tm": "2026-08-22T03:10:34.485293Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "1a2270"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "1a2270",
            "event": "test_result",
            "request_id": "scan-8458e68c20e011ca",
            "results": [
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "000b",
                "registers": [
                  11
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "01",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "00c8",
                "registers": [
                  200
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 1,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-20e011ca8458e68c",
            "tm": "1787369373"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "1a2270",
            "event": "step_complete",
            "request_id": "scan-8458e68c20e011ca",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-20e011ca8458e68c",
            "tm": "1787369373"
          }
        }
      ],
      "profile_id": "waveshare_modbus_rtu_io_8ch",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "waveshare_modbus_rtu_io_8ch",
        "profile_version": "1.0.0",
        "description": {
          "manufacturer": "Waveshare",
          "model": "Modbus RTU IO 8CH",
          "documentation_url": "https://www.waveshare.com/wiki/Modbus_RTU_IO_8CH",
          "device_type": "industrial_isolated_io",
          "inputs": 8,
          "outputs": 8
        },
        "line_parameters": {
          "mode": "rtu"
        },
        "sensor_templates": [
          {
            "id": "di1",
            "name": "DI1",
            "mode": "read",
            "function": 2,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di2",
            "name": "DI2",
            "mode": "read",
            "function": 2,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di3",
            "name": "DI3",
            "mode": "read",
            "function": 2,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di4",
            "name": "DI4",
            "mode": "read",
            "function": 2,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di5",
            "name": "DI5",
            "mode": "read",
            "function": 2,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di6",
            "name": "DI6",
            "mode": "read",
            "function": 2,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di7",
            "name": "DI7",
            "mode": "read",
            "function": 2,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di8",
            "name": "DI8",
            "mode": "read",
            "function": 2,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do1_state",
            "name": "DO1",
            "mode": "read",
            "function": 1,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do2_state",
            "name": "DO2",
            "mode": "read",
            "function": 1,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do3_state",
            "name": "DO3",
            "mode": "read",
            "function": 1,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do4_state",
            "name": "DO4",
            "mode": "read",
            "function": 1,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do5_state",
            "name": "DO5",
            "mode": "read",
            "function": 1,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do6_state",
            "name": "DO6",
            "mode": "read",
            "function": 1,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do7_state",
            "name": "DO7",
            "mode": "read",
            "function": 1,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do8_state",
            "name": "DO8",
            "mode": "read",
            "function": 1,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          }
        ],
        "polling_intervals": {
          "default_seconds": 5
        }
      }
    },
    "created_at": "1787369366",
    "updated_at": "1787369373"
  },
  {
    "session_id": "mb-3f53459830b3beb1",
    "request_id": "scan-30b3beb13f534598",
    "base": "1a2270",
    "slave_id": 20,
    "state": "timed_out",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "reason": "service_timeout"
    },
    "created_at": "1787345061",
    "updated_at": "2026-08-21T20:45:07.191964Z"
  },
  {
    "session_id": "mb-f66c6188ef5daa9b",
    "request_id": "scan-ef5daa9bf66c6188",
    "base": "1a2270",
    "slave_id": 20,
    "state": "timed_out",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "reason": "service_timeout"
    },
    "created_at": "1787344892",
    "updated_at": "2026-08-21T20:42:15.730066Z"
  },
  {
    "session_id": "mb-e2211a76c4fa9d8a",
    "request_id": "scan-c4fa9d8ae2211a76",
    "base": "1a2270",
    "slave_id": 11,
    "state": "timed_out",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "action": "timeout",
      "code": "local_timeout",
      "controller_id": "1a2270",
      "event": "timeout",
      "request_id": "scan-c4fa9d8ae2211a76",
      "schema": "misx5.device_discovery.v1",
      "session_id": "mb-e2211a76c4fa9d8a",
      "tm": "1787344892"
    },
    "created_at": "1787344576",
    "updated_at": "1787344892"
  },
  {
    "session_id": "mb-36b69bb939a6f982",
    "request_id": "scan-39a6f98236b69bb9",
    "base": "1a2270",
    "slave_id": 20,
    "state": "timed_out",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "reason": "service_timeout"
    },
    "created_at": "1787344576",
    "updated_at": "2026-08-21T20:37:40.199721Z"
  },
  {
    "session_id": "mb-db94a0673918b12e",
    "request_id": "scan-3918b12edb94a067",
    "base": "1a2270",
    "slave_id": 11,
    "state": "timed_out",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "action": "timeout",
      "code": "local_timeout",
      "controller_id": "1a2270",
      "event": "timeout",
      "request_id": "scan-3918b12edb94a067",
      "schema": "misx5.device_discovery.v1",
      "session_id": "mb-db94a0673918b12e",
      "tm": "1787344576"
    },
    "created_at": "1787344528",
    "updated_at": "1787344576"
  },
  {
    "session_id": "mb-616ddf9cfb246bc6",
    "request_id": "scan-fb246bc6616ddf9c",
    "base": "1a2270",
    "slave_id": 11,
    "state": "timed_out",
    "reads_used": 2,
    "steps_used": 0,
    "result": {
      "reason": "service_timeout"
    },
    "created_at": "1787344230",
    "updated_at": "2026-08-21T20:32:20.488907Z"
  },
  {
    "session_id": "mb-0b25ca38e8aa173e",
    "request_id": "scan-e8aa173e0b25ca38",
    "base": "1a2270",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "high",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-e8aa173e0b25ca38",
            "session_id": "mb-0b25ca38e8aa173e",
            "action": "accepted",
            "tm": "2026-08-16T20:04:37.423619Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "1a2270"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "1a2270",
            "event": "test_result",
            "request_id": "scan-e8aa173e0b25ca38",
            "results": [
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "000b",
                "registers": [
                  11
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "01",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "00c8",
                "registers": [
                  200
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 1,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-0b25ca38e8aa173e",
            "tm": "1786921478"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "1a2270",
            "event": "step_complete",
            "request_id": "scan-e8aa173e0b25ca38",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-0b25ca38e8aa173e",
            "tm": "1786921478"
          }
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "1a2270",
            "event": "test_result",
            "request_id": "scan-e8aa173e0b25ca38",
            "results": [
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "000b",
                "registers": [
                  11
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "01",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "00c8",
                "registers": [
                  200
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 1,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-0b25ca38e8aa173e",
            "tm": "1786921487"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "1a2270",
            "event": "step_complete",
            "request_id": "scan-e8aa173e0b25ca38",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-0b25ca38e8aa173e",
            "tm": "1786921487"
          }
        }
      ],
      "profile_id": "waveshare_modbus_rtu_io_8ch",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "waveshare_modbus_rtu_io_8ch",
        "profile_version": "1.0.0",
        "description": {
          "manufacturer": "Waveshare",
          "model": "Modbus RTU IO 8CH",
          "documentation_url": "https://www.waveshare.com/wiki/Modbus_RTU_IO_8CH",
          "device_type": "industrial_isolated_io",
          "inputs": 8,
          "outputs": 8
        },
        "line_parameters": {
          "mode": "rtu"
        },
        "sensor_templates": [
          {
            "id": "di1",
            "name": "DI1",
            "mode": "read",
            "function": 2,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di2",
            "name": "DI2",
            "mode": "read",
            "function": 2,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di3",
            "name": "DI3",
            "mode": "read",
            "function": 2,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di4",
            "name": "DI4",
            "mode": "read",
            "function": 2,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di5",
            "name": "DI5",
            "mode": "read",
            "function": 2,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di6",
            "name": "DI6",
            "mode": "read",
            "function": 2,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di7",
            "name": "DI7",
            "mode": "read",
            "function": 2,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di8",
            "name": "DI8",
            "mode": "read",
            "function": 2,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do1_state",
            "name": "DO1",
            "mode": "read",
            "function": 1,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do2_state",
            "name": "DO2",
            "mode": "read",
            "function": 1,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do3_state",
            "name": "DO3",
            "mode": "read",
            "function": 1,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do4_state",
            "name": "DO4",
            "mode": "read",
            "function": 1,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do5_state",
            "name": "DO5",
            "mode": "read",
            "function": 1,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do6_state",
            "name": "DO6",
            "mode": "read",
            "function": 1,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do7_state",
            "name": "DO7",
            "mode": "read",
            "function": 1,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do8_state",
            "name": "DO8",
            "mode": "read",
            "function": 1,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          }
        ],
        "polling_intervals": {
          "default_seconds": 5
        }
      }
    },
    "created_at": "1786921448",
    "updated_at": "1786921496"
  },
  {
    "session_id": "mb-26c2b3037f9a593f",
    "request_id": "scan-7f9a593f26c2b303",
    "base": "41af8c",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "high",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-7f9a593f26c2b303",
            "session_id": "mb-26c2b3037f9a593f",
            "action": "accepted",
            "tm": "2026-08-13T08:29:55.309215Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "41af8c"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "41af8c",
            "event": "test_result",
            "request_id": "scan-7f9a593f26c2b303",
            "results": [
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "000b",
                "registers": [
                  11
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  1,
                  1,
                  1,
                  1,
                  1,
                  1,
                  1
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "ff",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "00c8",
                "registers": [
                  200
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 1,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-26c2b3037f9a593f",
            "tm": "1786609791"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "41af8c",
            "event": "step_complete",
            "request_id": "scan-7f9a593f26c2b303",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-26c2b3037f9a593f",
            "tm": "1786609791"
          }
        }
      ],
      "profile_id": "waveshare_modbus_rtu_io_8ch",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "waveshare_modbus_rtu_io_8ch",
        "profile_version": "1.0.0",
        "description": {
          "manufacturer": "Waveshare",
          "model": "Modbus RTU IO 8CH",
          "documentation_url": "https://www.waveshare.com/wiki/Modbus_RTU_IO_8CH",
          "device_type": "industrial_isolated_io",
          "inputs": 8,
          "outputs": 8
        },
        "line_parameters": {
          "mode": "rtu"
        },
        "sensor_templates": [
          {
            "id": "di1",
            "name": "DI1",
            "mode": "read",
            "function": 2,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di2",
            "name": "DI2",
            "mode": "read",
            "function": 2,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di3",
            "name": "DI3",
            "mode": "read",
            "function": 2,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di4",
            "name": "DI4",
            "mode": "read",
            "function": 2,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di5",
            "name": "DI5",
            "mode": "read",
            "function": 2,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di6",
            "name": "DI6",
            "mode": "read",
            "function": 2,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di7",
            "name": "DI7",
            "mode": "read",
            "function": 2,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di8",
            "name": "DI8",
            "mode": "read",
            "function": 2,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do1_state",
            "name": "DO1",
            "mode": "read",
            "function": 1,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do2_state",
            "name": "DO2",
            "mode": "read",
            "function": 1,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do3_state",
            "name": "DO3",
            "mode": "read",
            "function": 1,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do4_state",
            "name": "DO4",
            "mode": "read",
            "function": 1,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do5_state",
            "name": "DO5",
            "mode": "read",
            "function": 1,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do6_state",
            "name": "DO6",
            "mode": "read",
            "function": 1,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do7_state",
            "name": "DO7",
            "mode": "read",
            "function": 1,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do8_state",
            "name": "DO8",
            "mode": "read",
            "function": 1,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          }
        ],
        "polling_intervals": {
          "default_seconds": 5
        }
      }
    },
    "created_at": "1786609787",
    "updated_at": "1786609791"
  },
  {
    "session_id": "mb-b946a117f46d8ce3",
    "request_id": "scan-f46d8ce3b946a117",
    "base": "41af8c",
    "slave_id": 1,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "medium",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-f46d8ce3b946a117",
            "session_id": "mb-b946a117f46d8ce3",
            "action": "accepted",
            "tm": "2026-08-13T08:29:52.954681Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "41af8c"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "41af8c",
            "event": "test_result",
            "request_id": "scan-f46d8ce3b946a117",
            "results": [
              {
                "address": 0,
                "byte_count": 4,
                "function": 4,
                "quantity": 2,
                "raw_hex": "00e70185",
                "registers": [
                  231,
                  389
                ],
                "success": true,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "0000",
                "registers": [
                  0
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  1,
                  1,
                  1,
                  1,
                  1,
                  1,
                  1
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "ff",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "0000",
                "registers": [
                  0
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "byte_count": 40,
                "function": 4,
                "quantity": 20,
                "raw_hex": "00000000000000000000000000000000000000000000000000000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-b946a117f46d8ce3",
            "tm": "1786609787"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "41af8c",
            "event": "step_complete",
            "request_id": "scan-f46d8ce3b946a117",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-b946a117f46d8ce3",
            "tm": "1786609787"
          }
        }
      ],
      "profile_id": "temperature_humidity_int16_div10",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "temperature_humidity_int16_div10",
        "profile_version": "1.0.0",
        "description": {
          "device_type": "temperature_humidity_sensor",
          "compatible_with": "SHT20",
          "identification_status": "requires_device_identification",
          "note": "Без подтверждённого FC 0x2B/0x0E или FC 0x11 это совместимый преобразователь, а не подтверждённая модель SHT20."
        },
        "line_parameters": {
          "mode": "rtu",
          "baudrate": 9600,
          "parity": "N",
          "timeout_ms": 200
        },
        "sensor_templates": [
          {
            "id": "temperature_c",
            "name": "Температура",
            "mode": "read",
            "function": 4,
            "address": 0,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "°C"
          },
          {
            "id": "humidity_percent",
            "name": "Влажность",
            "mode": "read",
            "function": 4,
            "address": 1,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "%"
          }
        ],
        "polling_intervals": {
          "default_seconds": 10
        }
      }
    },
    "created_at": "1786609785",
    "updated_at": "1786609787"
  },
  {
    "session_id": "mb-e27d0064cd126be1",
    "request_id": "scan-cd126be1e27d0064",
    "base": "1a2270",
    "slave_id": 20,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "medium",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-cd126be1e27d0064",
            "session_id": "mb-e27d0064cd126be1",
            "action": "accepted",
            "tm": "2026-08-12T10:11:44.653245Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "1a2270"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "1a2270",
            "event": "test_result",
            "request_id": "scan-cd126be1e27d0064",
            "results": [
              {
                "address": 0,
                "byte_count": 4,
                "function": 4,
                "quantity": 2,
                "raw_hex": "011f024b",
                "registers": [
                  287,
                  587
                ],
                "success": true,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "exception_code": 3,
                "function": 3,
                "quantity": 1,
                "success": false,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "exception_code": 3,
                "function": 2,
                "quantity": 8,
                "success": false,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "exception_code": 3,
                "function": 3,
                "quantity": 1,
                "success": false,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "exception_code": 3,
                "function": 3,
                "quantity": 8,
                "success": false,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 3,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-e27d0064cd126be1",
            "tm": "1786529493"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "1a2270",
            "event": "step_complete",
            "request_id": "scan-cd126be1e27d0064",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-e27d0064cd126be1",
            "tm": "1786529493"
          }
        }
      ],
      "profile_id": "temperature_humidity_int16_div10",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "temperature_humidity_int16_div10",
        "profile_version": "1.0.0",
        "description": {
          "device_type": "temperature_humidity_sensor",
          "compatible_with": "SHT20",
          "identification_status": "requires_device_identification",
          "note": "Без подтверждённого FC 0x2B/0x0E или FC 0x11 это совместимый преобразователь, а не подтверждённая модель SHT20."
        },
        "line_parameters": {
          "mode": "rtu",
          "baudrate": 9600,
          "parity": "N",
          "timeout_ms": 200
        },
        "sensor_templates": [
          {
            "id": "temperature_c",
            "name": "Температура",
            "mode": "read",
            "function": 4,
            "address": 0,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "°C"
          },
          {
            "id": "humidity_percent",
            "name": "Влажность",
            "mode": "read",
            "function": 4,
            "address": 1,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "%"
          }
        ],
        "polling_intervals": {
          "default_seconds": 10
        }
      }
    },
    "created_at": "1786529487",
    "updated_at": "1786529495"
  },
  {
    "session_id": "mb-e227ea7737ea6963",
    "request_id": "scan-37ea6963e227ea77",
    "base": "1a2270",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "high",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-37ea6963e227ea77",
            "session_id": "mb-e227ea7737ea6963",
            "action": "accepted",
            "tm": "2026-08-12T10:11:40.292397Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "1a2270"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "1a2270",
            "event": "test_result",
            "request_id": "scan-37ea6963e227ea77",
            "results": [
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "000b",
                "registers": [
                  11
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "01",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "00c8",
                "registers": [
                  200
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 1,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-e227ea7737ea6963",
            "tm": "1786529486"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "1a2270",
            "event": "step_complete",
            "request_id": "scan-37ea6963e227ea77",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-e227ea7737ea6963",
            "tm": "1786529486"
          }
        }
      ],
      "profile_id": "waveshare_modbus_rtu_io_8ch",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "waveshare_modbus_rtu_io_8ch",
        "profile_version": "1.0.0",
        "description": {
          "manufacturer": "Waveshare",
          "model": "Modbus RTU IO 8CH",
          "documentation_url": "https://www.waveshare.com/wiki/Modbus_RTU_IO_8CH",
          "device_type": "industrial_isolated_io",
          "inputs": 8,
          "outputs": 8
        },
        "line_parameters": {
          "mode": "rtu"
        },
        "sensor_templates": [
          {
            "id": "di1",
            "name": "DI1",
            "mode": "read",
            "function": 2,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di2",
            "name": "DI2",
            "mode": "read",
            "function": 2,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di3",
            "name": "DI3",
            "mode": "read",
            "function": 2,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di4",
            "name": "DI4",
            "mode": "read",
            "function": 2,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di5",
            "name": "DI5",
            "mode": "read",
            "function": 2,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di6",
            "name": "DI6",
            "mode": "read",
            "function": 2,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di7",
            "name": "DI7",
            "mode": "read",
            "function": 2,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di8",
            "name": "DI8",
            "mode": "read",
            "function": 2,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do1_state",
            "name": "DO1",
            "mode": "read",
            "function": 1,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do2_state",
            "name": "DO2",
            "mode": "read",
            "function": 1,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do3_state",
            "name": "DO3",
            "mode": "read",
            "function": 1,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do4_state",
            "name": "DO4",
            "mode": "read",
            "function": 1,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do5_state",
            "name": "DO5",
            "mode": "read",
            "function": 1,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do6_state",
            "name": "DO6",
            "mode": "read",
            "function": 1,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do7_state",
            "name": "DO7",
            "mode": "read",
            "function": 1,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do8_state",
            "name": "DO8",
            "mode": "read",
            "function": 1,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          }
        ],
        "polling_intervals": {
          "default_seconds": 5
        }
      }
    },
    "created_at": "1786529474",
    "updated_at": "1786529487"
  },
  {
    "session_id": "mb-1d7921474b01a3a7",
    "request_id": "scan-4b01a3a71d792147",
    "base": "41af8c",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "high",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-4b01a3a71d792147",
            "session_id": "mb-1d7921474b01a3a7",
            "action": "accepted",
            "tm": "2026-08-12T08:26:57.266571Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "41af8c"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "41af8c",
            "event": "test_result",
            "request_id": "scan-4b01a3a71d792147",
            "results": [
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "000b",
                "registers": [
                  11
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  0,
                  0,
                  0,
                  1,
                  1,
                  1,
                  0,
                  0
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "38",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "00c8",
                "registers": [
                  200
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 1,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-1d7921474b01a3a7",
            "tm": "1786523216"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "41af8c",
            "event": "step_complete",
            "request_id": "scan-4b01a3a71d792147",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-1d7921474b01a3a7",
            "tm": "1786523216"
          }
        }
      ],
      "profile_id": "waveshare_modbus_rtu_io_8ch",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "waveshare_modbus_rtu_io_8ch",
        "profile_version": "1.0.0",
        "description": {
          "manufacturer": "Waveshare",
          "model": "Modbus RTU IO 8CH",
          "documentation_url": "https://www.waveshare.com/wiki/Modbus_RTU_IO_8CH",
          "device_type": "industrial_isolated_io",
          "inputs": 8,
          "outputs": 8
        },
        "line_parameters": {
          "mode": "rtu"
        },
        "sensor_templates": [
          {
            "id": "di1",
            "name": "DI1",
            "mode": "read",
            "function": 2,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di2",
            "name": "DI2",
            "mode": "read",
            "function": 2,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di3",
            "name": "DI3",
            "mode": "read",
            "function": 2,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di4",
            "name": "DI4",
            "mode": "read",
            "function": 2,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di5",
            "name": "DI5",
            "mode": "read",
            "function": 2,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di6",
            "name": "DI6",
            "mode": "read",
            "function": 2,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di7",
            "name": "DI7",
            "mode": "read",
            "function": 2,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di8",
            "name": "DI8",
            "mode": "read",
            "function": 2,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do1_state",
            "name": "DO1",
            "mode": "read",
            "function": 1,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do2_state",
            "name": "DO2",
            "mode": "read",
            "function": 1,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do3_state",
            "name": "DO3",
            "mode": "read",
            "function": 1,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do4_state",
            "name": "DO4",
            "mode": "read",
            "function": 1,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do5_state",
            "name": "DO5",
            "mode": "read",
            "function": 1,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do6_state",
            "name": "DO6",
            "mode": "read",
            "function": 1,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do7_state",
            "name": "DO7",
            "mode": "read",
            "function": 1,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do8_state",
            "name": "DO8",
            "mode": "read",
            "function": 1,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          }
        ],
        "polling_intervals": {
          "default_seconds": 5
        }
      }
    },
    "created_at": "1786523189",
    "updated_at": "1786523230"
  },
  {
    "session_id": "mb-4bc58176d61ceb5e",
    "request_id": "scan-d61ceb5e4bc58176",
    "base": "41af8c",
    "slave_id": 1,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "medium",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-d61ceb5e4bc58176",
            "session_id": "mb-4bc58176d61ceb5e",
            "action": "accepted",
            "tm": "2026-08-12T08:26:03.600575Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "41af8c"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "41af8c",
            "event": "test_result",
            "request_id": "scan-d61ceb5e4bc58176",
            "results": [
              {
                "address": 0,
                "byte_count": 4,
                "function": 4,
                "quantity": 2,
                "raw_hex": "00f001b0",
                "registers": [
                  240,
                  432
                ],
                "success": true,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "0000",
                "registers": [
                  0
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  1,
                  1,
                  1,
                  1,
                  1,
                  1,
                  1
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "ff",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "0000",
                "registers": [
                  0
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "byte_count": 40,
                "function": 4,
                "quantity": 20,
                "raw_hex": "00000000000000000000000000000000000000000000000000000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-4bc58176d61ceb5e",
            "tm": "1786523159"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "41af8c",
            "event": "step_complete",
            "request_id": "scan-d61ceb5e4bc58176",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-4bc58176d61ceb5e",
            "tm": "1786523159"
          }
        }
      ],
      "profile_id": "temperature_humidity_int16_div10",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "temperature_humidity_int16_div10",
        "profile_version": "1.0.0",
        "description": {
          "device_type": "temperature_humidity_sensor",
          "compatible_with": "SHT20",
          "identification_status": "requires_device_identification",
          "note": "Без подтверждённого FC 0x2B/0x0E или FC 0x11 это совместимый преобразователь, а не подтверждённая модель SHT20."
        },
        "line_parameters": {
          "mode": "rtu",
          "baudrate": 9600,
          "parity": "N",
          "timeout_ms": 200
        },
        "sensor_templates": [
          {
            "id": "temperature_c",
            "name": "Температура",
            "mode": "read",
            "function": 4,
            "address": 0,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "°C"
          },
          {
            "id": "humidity_percent",
            "name": "Влажность",
            "mode": "read",
            "function": 4,
            "address": 1,
            "quantity": 1,
            "value_type": "int16",
            "divisor": 10,
            "unit": "%"
          }
        ],
        "polling_intervals": {
          "default_seconds": 10
        }
      }
    },
    "created_at": "1786523130",
    "updated_at": "1786523189"
  },
  {
    "session_id": "mb-8250eee306161dd6",
    "request_id": "scan-06161dd68250eee3",
    "base": "41af8c",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "high",
      "execution_trace": [
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-06161dd68250eee3",
            "session_id": "mb-8250eee306161dd6",
            "action": "accepted",
            "tm": "2026-08-12T07:35:03.710515Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "41af8c"
          }
        },
        {
          "kind": "command",
          "action": "start",
          "commands": [
            {
              "test_id": "device-identification-basic",
              "function": 43,
              "mei_type": 14,
              "read_device_id_code": 1
            },
            {
              "test_id": "report-server-id",
              "function": 17
            }
          ]
        },
        {
          "kind": "response",
          "event": "probe",
          "payload": {
            "action": "probe",
            "attempts": [
              {
                "function": 43,
                "mei_type": 14,
                "success": false,
                "test_id": "device-identification-basic"
              },
              {
                "function": 17,
                "success": false,
                "test_id": "report-server-id"
              }
            ],
            "controller_id": "41af8c",
            "event": "probe",
            "identity": {
              "device_identification": {
                "conformity_level": 0,
                "more_follows": false,
                "next_object_id": 0,
                "objects": [],
                "read_device_id_code": 0,
                "supported": false
              },
              "error": "exception_1",
              "server_id": {
                "supported": false
              }
            },
            "request_id": "scan-06161dd68250eee3",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-8250eee306161dd6",
            "tm": "1786520102"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "41af8c",
            "event": "test_result",
            "request_id": "scan-06161dd68250eee3",
            "results": [
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "000b",
                "registers": [
                  11
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "00",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "00c8",
                "registers": [
                  200
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 1,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-8250eee306161dd6",
            "tm": "1786520132"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "41af8c",
            "event": "step_complete",
            "request_id": "scan-06161dd68250eee3",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-8250eee306161dd6",
            "tm": "1786520132"
          }
        }
      ],
      "profile_id": "waveshare_modbus_rtu_io_8ch",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "waveshare_modbus_rtu_io_8ch",
        "profile_version": "1.0.0",
        "description": {
          "manufacturer": "Waveshare",
          "model": "Modbus RTU IO 8CH",
          "documentation_url": "https://www.waveshare.com/wiki/Modbus_RTU_IO_8CH",
          "device_type": "industrial_isolated_io",
          "inputs": 8,
          "outputs": 8
        },
        "line_parameters": {
          "mode": "rtu"
        },
        "sensor_templates": [
          {
            "id": "di1",
            "name": "DI1",
            "mode": "read",
            "function": 2,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di2",
            "name": "DI2",
            "mode": "read",
            "function": 2,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di3",
            "name": "DI3",
            "mode": "read",
            "function": 2,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di4",
            "name": "DI4",
            "mode": "read",
            "function": 2,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di5",
            "name": "DI5",
            "mode": "read",
            "function": 2,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di6",
            "name": "DI6",
            "mode": "read",
            "function": 2,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di7",
            "name": "DI7",
            "mode": "read",
            "function": 2,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di8",
            "name": "DI8",
            "mode": "read",
            "function": 2,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do1_state",
            "name": "DO1",
            "mode": "read",
            "function": 1,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do2_state",
            "name": "DO2",
            "mode": "read",
            "function": 1,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do3_state",
            "name": "DO3",
            "mode": "read",
            "function": 1,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do4_state",
            "name": "DO4",
            "mode": "read",
            "function": 1,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do5_state",
            "name": "DO5",
            "mode": "read",
            "function": 1,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do6_state",
            "name": "DO6",
            "mode": "read",
            "function": 1,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do7_state",
            "name": "DO7",
            "mode": "read",
            "function": 1,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do8_state",
            "name": "DO8",
            "mode": "read",
            "function": 1,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          }
        ],
        "polling_intervals": {
          "default_seconds": 5
        }
      }
    },
    "created_at": "1786520069",
    "updated_at": "1786520132"
  },
  {
    "session_id": "mb-2bbdf8cb7e58119b",
    "request_id": "scan-7e58119b2bbdf8cb",
    "base": "1a2270",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "high",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-7e58119b2bbdf8cb",
            "session_id": "mb-2bbdf8cb7e58119b",
            "action": "accepted",
            "tm": "2026-08-10T21:24:10.032704Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "1a2270"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "1a2270",
            "event": "test_result",
            "request_id": "scan-7e58119b2bbdf8cb",
            "results": [
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "000b",
                "registers": [
                  11
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "01",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "00c8",
                "registers": [
                  200
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 1,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-2bbdf8cb7e58119b",
            "tm": "1786397036"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "1a2270",
            "event": "step_complete",
            "request_id": "scan-7e58119b2bbdf8cb",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-2bbdf8cb7e58119b",
            "tm": "1786397036"
          }
        }
      ],
      "profile_id": "waveshare_modbus_rtu_io_8ch",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "waveshare_modbus_rtu_io_8ch",
        "profile_version": "1.0.0",
        "description": {
          "manufacturer": "Waveshare",
          "model": "Modbus RTU IO 8CH",
          "documentation_url": "https://www.waveshare.com/wiki/Modbus_RTU_IO_8CH",
          "device_type": "industrial_isolated_io",
          "inputs": 8,
          "outputs": 8
        },
        "line_parameters": {
          "mode": "rtu"
        },
        "sensor_templates": [
          {
            "id": "di1",
            "name": "DI1",
            "mode": "read",
            "function": 2,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di2",
            "name": "DI2",
            "mode": "read",
            "function": 2,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di3",
            "name": "DI3",
            "mode": "read",
            "function": 2,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di4",
            "name": "DI4",
            "mode": "read",
            "function": 2,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di5",
            "name": "DI5",
            "mode": "read",
            "function": 2,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di6",
            "name": "DI6",
            "mode": "read",
            "function": 2,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di7",
            "name": "DI7",
            "mode": "read",
            "function": 2,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di8",
            "name": "DI8",
            "mode": "read",
            "function": 2,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do1_state",
            "name": "DO1",
            "mode": "read",
            "function": 1,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do2_state",
            "name": "DO2",
            "mode": "read",
            "function": 1,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do3_state",
            "name": "DO3",
            "mode": "read",
            "function": 1,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do4_state",
            "name": "DO4",
            "mode": "read",
            "function": 1,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do5_state",
            "name": "DO5",
            "mode": "read",
            "function": 1,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do6_state",
            "name": "DO6",
            "mode": "read",
            "function": 1,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do7_state",
            "name": "DO7",
            "mode": "read",
            "function": 1,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do8_state",
            "name": "DO8",
            "mode": "read",
            "function": 1,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          }
        ],
        "polling_intervals": {
          "default_seconds": 5
        }
      }
    },
    "created_at": "1786397007",
    "updated_at": "1786397043"
  },
  {
    "session_id": "mb-47bb76a29982c8d3",
    "request_id": "scan-9982c8d347bb76a2",
    "base": "1a2270",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "high",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-9982c8d347bb76a2",
            "session_id": "mb-47bb76a29982c8d3",
            "action": "accepted",
            "tm": "2026-08-10T21:21:45.394444Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "1a2270"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "1a2270",
            "event": "test_result",
            "request_id": "scan-9982c8d347bb76a2",
            "results": [
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "000b",
                "registers": [
                  11
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "01",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "00c8",
                "registers": [
                  200
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 1,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-47bb76a29982c8d3",
            "tm": "1786396892"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "1a2270",
            "event": "step_complete",
            "request_id": "scan-9982c8d347bb76a2",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-47bb76a29982c8d3",
            "tm": "1786396892"
          }
        }
      ],
      "profile_id": "waveshare_modbus_rtu_io_8ch",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "waveshare_modbus_rtu_io_8ch",
        "profile_version": "1.0.0",
        "description": {
          "manufacturer": "Waveshare",
          "model": "Modbus RTU IO 8CH",
          "documentation_url": "https://www.waveshare.com/wiki/Modbus_RTU_IO_8CH",
          "device_type": "industrial_isolated_io",
          "inputs": 8,
          "outputs": 8
        },
        "line_parameters": {
          "mode": "rtu"
        },
        "sensor_templates": [
          {
            "id": "di1",
            "name": "DI1",
            "mode": "read",
            "function": 2,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di2",
            "name": "DI2",
            "mode": "read",
            "function": 2,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di3",
            "name": "DI3",
            "mode": "read",
            "function": 2,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di4",
            "name": "DI4",
            "mode": "read",
            "function": 2,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di5",
            "name": "DI5",
            "mode": "read",
            "function": 2,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di6",
            "name": "DI6",
            "mode": "read",
            "function": 2,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di7",
            "name": "DI7",
            "mode": "read",
            "function": 2,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di8",
            "name": "DI8",
            "mode": "read",
            "function": 2,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do1_state",
            "name": "DO1",
            "mode": "read",
            "function": 1,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do2_state",
            "name": "DO2",
            "mode": "read",
            "function": 1,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do3_state",
            "name": "DO3",
            "mode": "read",
            "function": 1,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do4_state",
            "name": "DO4",
            "mode": "read",
            "function": 1,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do5_state",
            "name": "DO5",
            "mode": "read",
            "function": 1,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do6_state",
            "name": "DO6",
            "mode": "read",
            "function": 1,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do7_state",
            "name": "DO7",
            "mode": "read",
            "function": 1,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do8_state",
            "name": "DO8",
            "mode": "read",
            "function": 1,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          }
        ],
        "polling_intervals": {
          "default_seconds": 5
        }
      }
    },
    "created_at": "1786396882",
    "updated_at": "1786396915"
  },
  {
    "session_id": "mb-5e30f524da7bc714",
    "request_id": "scan-da7bc7145e30f524",
    "base": "1a2270",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "high",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-da7bc7145e30f524",
            "session_id": "mb-5e30f524da7bc714",
            "action": "accepted",
            "tm": "2026-08-10T21:16:27.101375Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "1a2270"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "1a2270",
            "event": "test_result",
            "request_id": "scan-da7bc7145e30f524",
            "results": [
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "000b",
                "registers": [
                  11
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "01",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "00c8",
                "registers": [
                  200
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 1,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-5e30f524da7bc714",
            "tm": "1786396574"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "1a2270",
            "event": "step_complete",
            "request_id": "scan-da7bc7145e30f524",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-5e30f524da7bc714",
            "tm": "1786396574"
          }
        }
      ],
      "profile_id": "waveshare_modbus_rtu_io_8ch",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "waveshare_modbus_rtu_io_8ch",
        "profile_version": "1.0.0",
        "description": {
          "manufacturer": "Waveshare",
          "model": "Modbus RTU IO 8CH",
          "documentation_url": "https://www.waveshare.com/wiki/Modbus_RTU_IO_8CH",
          "device_type": "industrial_isolated_io",
          "inputs": 8,
          "outputs": 8
        },
        "line_parameters": {
          "mode": "rtu"
        },
        "sensor_templates": [
          {
            "id": "di1",
            "name": "DI1",
            "mode": "read",
            "function": 2,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di2",
            "name": "DI2",
            "mode": "read",
            "function": 2,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di3",
            "name": "DI3",
            "mode": "read",
            "function": 2,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di4",
            "name": "DI4",
            "mode": "read",
            "function": 2,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di5",
            "name": "DI5",
            "mode": "read",
            "function": 2,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di6",
            "name": "DI6",
            "mode": "read",
            "function": 2,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di7",
            "name": "DI7",
            "mode": "read",
            "function": 2,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di8",
            "name": "DI8",
            "mode": "read",
            "function": 2,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do1_state",
            "name": "DO1",
            "mode": "read",
            "function": 1,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do2_state",
            "name": "DO2",
            "mode": "read",
            "function": 1,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do3_state",
            "name": "DO3",
            "mode": "read",
            "function": 1,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do4_state",
            "name": "DO4",
            "mode": "read",
            "function": 1,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do5_state",
            "name": "DO5",
            "mode": "read",
            "function": 1,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do6_state",
            "name": "DO6",
            "mode": "read",
            "function": 1,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do7_state",
            "name": "DO7",
            "mode": "read",
            "function": 1,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do8_state",
            "name": "DO8",
            "mode": "read",
            "function": 1,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          }
        ],
        "polling_intervals": {
          "default_seconds": 5
        }
      }
    },
    "created_at": "1786396570",
    "updated_at": "1786396575"
  },
  {
    "session_id": "mb-fa6d6b96bdf4d7bb",
    "request_id": "scan-bdf4d7bbfa6d6b96",
    "base": "1a2270",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "high",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-bdf4d7bbfa6d6b96",
            "session_id": "mb-fa6d6b96bdf4d7bb",
            "action": "accepted",
            "tm": "2026-08-10T21:07:48.598038Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "1a2270"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "1a2270",
            "event": "test_result",
            "request_id": "scan-bdf4d7bbfa6d6b96",
            "results": [
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "000b",
                "registers": [
                  11
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "01",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "00c8",
                "registers": [
                  200
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 1,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-fa6d6b96bdf4d7bb",
            "tm": "1786396055"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "1a2270",
            "event": "step_complete",
            "request_id": "scan-bdf4d7bbfa6d6b96",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-fa6d6b96bdf4d7bb",
            "tm": "1786396055"
          }
        }
      ],
      "profile_id": "waveshare_modbus_rtu_io_8ch",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "waveshare_modbus_rtu_io_8ch",
        "profile_version": "1.0.0",
        "description": {
          "manufacturer": "Waveshare",
          "model": "Modbus RTU IO 8CH",
          "documentation_url": "https://www.waveshare.com/wiki/Modbus_RTU_IO_8CH",
          "device_type": "industrial_isolated_io",
          "inputs": 8,
          "outputs": 8
        },
        "line_parameters": {
          "mode": "rtu"
        },
        "sensor_templates": [
          {
            "id": "di1",
            "name": "DI1",
            "mode": "read",
            "function": 2,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di2",
            "name": "DI2",
            "mode": "read",
            "function": 2,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di3",
            "name": "DI3",
            "mode": "read",
            "function": 2,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di4",
            "name": "DI4",
            "mode": "read",
            "function": 2,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di5",
            "name": "DI5",
            "mode": "read",
            "function": 2,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di6",
            "name": "DI6",
            "mode": "read",
            "function": 2,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di7",
            "name": "DI7",
            "mode": "read",
            "function": 2,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di8",
            "name": "DI8",
            "mode": "read",
            "function": 2,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do1_state",
            "name": "DO1",
            "mode": "read",
            "function": 1,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do2_state",
            "name": "DO2",
            "mode": "read",
            "function": 1,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do3_state",
            "name": "DO3",
            "mode": "read",
            "function": 1,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do4_state",
            "name": "DO4",
            "mode": "read",
            "function": 1,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do5_state",
            "name": "DO5",
            "mode": "read",
            "function": 1,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do6_state",
            "name": "DO6",
            "mode": "read",
            "function": 1,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do7_state",
            "name": "DO7",
            "mode": "read",
            "function": 1,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do8_state",
            "name": "DO8",
            "mode": "read",
            "function": 1,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          }
        ],
        "polling_intervals": {
          "default_seconds": 5
        }
      }
    },
    "created_at": "1786396045",
    "updated_at": "1786396080"
  },
  {
    "session_id": "mb-39c2c0ec4ac5efa3",
    "request_id": "scan-4ac5efa339c2c0ec",
    "base": "1a2270",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "high",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "scan_standard_identification_unavailable",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "scan_standard_identification_unavailable",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-4ac5efa339c2c0ec",
            "session_id": "mb-39c2c0ec4ac5efa3",
            "action": "accepted",
            "tm": "2026-08-10T20:56:50.723844Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "1a2270"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "1a2270",
            "event": "test_result",
            "request_id": "scan-4ac5efa339c2c0ec",
            "results": [
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "000b",
                "registers": [
                  11
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "01",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "00c8",
                "registers": [
                  200
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 1,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-39c2c0ec4ac5efa3",
            "tm": "1786395398"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "1a2270",
            "event": "step_complete",
            "request_id": "scan-4ac5efa339c2c0ec",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-39c2c0ec4ac5efa3",
            "tm": "1786395398"
          }
        }
      ],
      "profile_id": "waveshare_modbus_rtu_io_8ch",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "waveshare_modbus_rtu_io_8ch",
        "profile_version": "1.0.0",
        "description": {
          "manufacturer": "Waveshare",
          "model": "Modbus RTU IO 8CH",
          "documentation_url": "https://www.waveshare.com/wiki/Modbus_RTU_IO_8CH",
          "device_type": "industrial_isolated_io",
          "inputs": 8,
          "outputs": 8
        },
        "line_parameters": {
          "mode": "rtu"
        },
        "sensor_templates": [
          {
            "id": "di1",
            "name": "DI1",
            "mode": "read",
            "function": 2,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di2",
            "name": "DI2",
            "mode": "read",
            "function": 2,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di3",
            "name": "DI3",
            "mode": "read",
            "function": 2,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di4",
            "name": "DI4",
            "mode": "read",
            "function": 2,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di5",
            "name": "DI5",
            "mode": "read",
            "function": 2,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di6",
            "name": "DI6",
            "mode": "read",
            "function": 2,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di7",
            "name": "DI7",
            "mode": "read",
            "function": 2,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di8",
            "name": "DI8",
            "mode": "read",
            "function": 2,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do1_state",
            "name": "DO1",
            "mode": "read",
            "function": 1,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do2_state",
            "name": "DO2",
            "mode": "read",
            "function": 1,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do3_state",
            "name": "DO3",
            "mode": "read",
            "function": 1,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do4_state",
            "name": "DO4",
            "mode": "read",
            "function": 1,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do5_state",
            "name": "DO5",
            "mode": "read",
            "function": 1,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do6_state",
            "name": "DO6",
            "mode": "read",
            "function": 1,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do7_state",
            "name": "DO7",
            "mode": "read",
            "function": 1,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do8_state",
            "name": "DO8",
            "mode": "read",
            "function": 1,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          }
        ],
        "polling_intervals": {
          "default_seconds": 5
        }
      }
    },
    "created_at": "1786395374",
    "updated_at": "1786395402"
  },
  {
    "session_id": "mb-6f1b3100929153f4",
    "request_id": "scan-929153f46f1b3100",
    "base": "1a2270",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "high",
      "execution_trace": [
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-929153f46f1b3100",
            "session_id": "mb-6f1b3100929153f4",
            "action": "accepted",
            "tm": "2026-08-10T20:44:11.476582Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "1a2270"
          }
        },
        {
          "kind": "command",
          "action": "start",
          "commands": [
            {
              "test_id": "device-identification-basic",
              "function": 43,
              "mei_type": 14,
              "read_device_id_code": 1
            },
            {
              "test_id": "report-server-id",
              "function": 17
            }
          ]
        },
        {
          "kind": "response",
          "event": "probe",
          "payload": {
            "action": "probe",
            "attempts": [
              {
                "function": 43,
                "mei_type": 14,
                "success": false,
                "test_id": "device-identification-basic"
              },
              {
                "function": 17,
                "success": false,
                "test_id": "report-server-id"
              }
            ],
            "controller_id": "1a2270",
            "event": "probe",
            "identity": {
              "device_identification": {
                "conformity_level": 0,
                "more_follows": false,
                "next_object_id": 0,
                "objects": [],
                "read_device_id_code": 0,
                "supported": false
              },
              "error": "exception_1",
              "server_id": {
                "supported": false
              }
            },
            "request_id": "scan-929153f46f1b3100",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-6f1b3100929153f4",
            "tm": "1786394638"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "1a2270",
            "event": "test_result",
            "request_id": "scan-929153f46f1b3100",
            "results": [
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "000b",
                "registers": [
                  11
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "01",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "00c8",
                "registers": [
                  200
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 1,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-6f1b3100929153f4",
            "tm": "1786394644"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "1a2270",
            "event": "step_complete",
            "request_id": "scan-929153f46f1b3100",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-6f1b3100929153f4",
            "tm": "1786394644"
          }
        }
      ],
      "profile_id": "waveshare_modbus_rtu_io_8ch",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "waveshare_modbus_rtu_io_8ch",
        "profile_version": "1.0.0",
        "description": {
          "manufacturer": "Waveshare",
          "model": "Modbus RTU IO 8CH",
          "documentation_url": "https://www.waveshare.com/wiki/Modbus_RTU_IO_8CH",
          "device_type": "industrial_isolated_io",
          "inputs": 8,
          "outputs": 8
        },
        "line_parameters": {
          "mode": "rtu"
        },
        "sensor_templates": [
          {
            "id": "di1",
            "name": "DI1",
            "mode": "read",
            "function": 2,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di2",
            "name": "DI2",
            "mode": "read",
            "function": 2,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di3",
            "name": "DI3",
            "mode": "read",
            "function": 2,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di4",
            "name": "DI4",
            "mode": "read",
            "function": 2,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di5",
            "name": "DI5",
            "mode": "read",
            "function": 2,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di6",
            "name": "DI6",
            "mode": "read",
            "function": 2,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di7",
            "name": "DI7",
            "mode": "read",
            "function": 2,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di8",
            "name": "DI8",
            "mode": "read",
            "function": 2,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do1_state",
            "name": "DO1",
            "mode": "read",
            "function": 1,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do2_state",
            "name": "DO2",
            "mode": "read",
            "function": 1,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do3_state",
            "name": "DO3",
            "mode": "read",
            "function": 1,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do4_state",
            "name": "DO4",
            "mode": "read",
            "function": 1,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do5_state",
            "name": "DO5",
            "mode": "read",
            "function": 1,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do6_state",
            "name": "DO6",
            "mode": "read",
            "function": 1,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do7_state",
            "name": "DO7",
            "mode": "read",
            "function": 1,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do8_state",
            "name": "DO8",
            "mode": "read",
            "function": 1,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          }
        ],
        "polling_intervals": {
          "default_seconds": 5
        }
      }
    },
    "created_at": "1786394614",
    "updated_at": "1786394671"
  },
  {
    "session_id": "mb-ef97d235f40f07d4",
    "request_id": "scan-f40f07d4ef97d235",
    "base": "1a2270",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "high",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "manual_web_start",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "manual_web_start",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-f40f07d4ef97d235",
            "session_id": "mb-ef97d235f40f07d4",
            "action": "accepted",
            "tm": "2026-08-10T20:36:12.148135Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "1a2270"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "1a2270",
            "event": "test_result",
            "request_id": "scan-f40f07d4ef97d235",
            "results": [
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "000b",
                "registers": [
                  11
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "01",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "00c8",
                "registers": [
                  200
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 1,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-ef97d235f40f07d4",
            "tm": "1786394159"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "1a2270",
            "event": "step_complete",
            "request_id": "scan-f40f07d4ef97d235",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-ef97d235f40f07d4",
            "tm": "1786394159"
          }
        }
      ],
      "profile_id": "waveshare_modbus_rtu_io_8ch",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "waveshare_modbus_rtu_io_8ch",
        "profile_version": "1.0.0",
        "description": {
          "manufacturer": "Waveshare",
          "model": "Modbus RTU IO 8CH",
          "documentation_url": "https://www.waveshare.com/wiki/Modbus_RTU_IO_8CH",
          "device_type": "industrial_isolated_io",
          "inputs": 8,
          "outputs": 8
        },
        "line_parameters": {
          "mode": "rtu"
        },
        "sensor_templates": [
          {
            "id": "di1",
            "name": "DI1",
            "mode": "read",
            "function": 2,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di2",
            "name": "DI2",
            "mode": "read",
            "function": 2,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di3",
            "name": "DI3",
            "mode": "read",
            "function": 2,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di4",
            "name": "DI4",
            "mode": "read",
            "function": 2,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di5",
            "name": "DI5",
            "mode": "read",
            "function": 2,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di6",
            "name": "DI6",
            "mode": "read",
            "function": 2,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di7",
            "name": "DI7",
            "mode": "read",
            "function": 2,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di8",
            "name": "DI8",
            "mode": "read",
            "function": 2,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do1_state",
            "name": "DO1",
            "mode": "read",
            "function": 1,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do2_state",
            "name": "DO2",
            "mode": "read",
            "function": 1,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do3_state",
            "name": "DO3",
            "mode": "read",
            "function": 1,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do4_state",
            "name": "DO4",
            "mode": "read",
            "function": 1,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do5_state",
            "name": "DO5",
            "mode": "read",
            "function": 1,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do6_state",
            "name": "DO6",
            "mode": "read",
            "function": 1,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do7_state",
            "name": "DO7",
            "mode": "read",
            "function": 1,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do8_state",
            "name": "DO8",
            "mode": "read",
            "function": 1,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          }
        ],
        "polling_intervals": {
          "default_seconds": 5
        }
      }
    },
    "created_at": "1786394128",
    "updated_at": "1786394166"
  },
  {
    "session_id": "mb-0780c032e2427cbe",
    "request_id": "scan-e2427cbe0780c032",
    "base": "1a2270",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "high",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "manual_web_start",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "manual_web_start",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-e2427cbe0780c032",
            "session_id": "mb-0780c032e2427cbe",
            "action": "accepted",
            "tm": "2026-08-10T20:29:03.123623Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "1a2270"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "1a2270",
            "event": "test_result",
            "request_id": "scan-e2427cbe0780c032",
            "results": [
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "000b",
                "registers": [
                  11
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "01",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "00c8",
                "registers": [
                  200
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 1,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-0780c032e2427cbe",
            "tm": "1786393730"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "1a2270",
            "event": "step_complete",
            "request_id": "scan-e2427cbe0780c032",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-0780c032e2427cbe",
            "tm": "1786393730"
          }
        }
      ],
      "profile_id": "waveshare_modbus_rtu_io_8ch",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "waveshare_modbus_rtu_io_8ch",
        "profile_version": "1.0.0",
        "description": {
          "manufacturer": "Waveshare",
          "model": "Modbus RTU IO 8CH",
          "documentation_url": "https://www.waveshare.com/wiki/Modbus_RTU_IO_8CH",
          "device_type": "industrial_isolated_io",
          "inputs": 8,
          "outputs": 8
        },
        "line_parameters": {
          "mode": "rtu"
        },
        "sensor_templates": [
          {
            "id": "di1",
            "name": "DI1",
            "mode": "read",
            "function": 2,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di2",
            "name": "DI2",
            "mode": "read",
            "function": 2,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di3",
            "name": "DI3",
            "mode": "read",
            "function": 2,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di4",
            "name": "DI4",
            "mode": "read",
            "function": 2,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di5",
            "name": "DI5",
            "mode": "read",
            "function": 2,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di6",
            "name": "DI6",
            "mode": "read",
            "function": 2,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di7",
            "name": "DI7",
            "mode": "read",
            "function": 2,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di8",
            "name": "DI8",
            "mode": "read",
            "function": 2,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do1_state",
            "name": "DO1",
            "mode": "read",
            "function": 1,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do2_state",
            "name": "DO2",
            "mode": "read",
            "function": 1,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do3_state",
            "name": "DO3",
            "mode": "read",
            "function": 1,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do4_state",
            "name": "DO4",
            "mode": "read",
            "function": 1,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do5_state",
            "name": "DO5",
            "mode": "read",
            "function": 1,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do6_state",
            "name": "DO6",
            "mode": "read",
            "function": 1,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do7_state",
            "name": "DO7",
            "mode": "read",
            "function": 1,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do8_state",
            "name": "DO8",
            "mode": "read",
            "function": 1,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          }
        ],
        "polling_intervals": {
          "default_seconds": 5
        }
      }
    },
    "created_at": "1786393712",
    "updated_at": "1786393731"
  },
  {
    "session_id": "mb-9603aca7a01d1792",
    "request_id": "scan-a01d17929603aca7",
    "base": "1a2270",
    "slave_id": 11,
    "state": "failed",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "action": "error",
      "code": "cancelled",
      "controller_id": "1a2270",
      "event": "error",
      "request_id": "scan-a01d17929603aca7",
      "schema": "misx5.device_discovery.v1",
      "session_id": "mb-9603aca7a01d1792",
      "tm": "1786393649"
    },
    "created_at": "1786393627",
    "updated_at": "1786393649"
  },
  {
    "session_id": "mb-f0b887e0528e2311",
    "request_id": "scan-528e2311f0b887e0",
    "base": "1a2270",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "reason": "service_timeout"
    },
    "created_at": "1786393504",
    "updated_at": "1786393508"
  },
  {
    "session_id": "mb-36aef6338210c841",
    "request_id": "scan-8210c84136aef633",
    "base": "1a2270",
    "slave_id": 11,
    "state": "failed",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "action": "error",
      "code": "cancelled",
      "controller_id": "1a2270",
      "event": "error",
      "request_id": "scan-8210c84136aef633",
      "schema": "misx5.device_discovery.v1",
      "session_id": "mb-36aef6338210c841",
      "tm": "1786393402"
    },
    "created_at": "1786393377",
    "updated_at": "1786393402"
  },
  {
    "session_id": "mb-2596a74baa83ac57",
    "request_id": "scan-aa83ac572596a74b",
    "base": "1a2270",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "reason": "service_timeout"
    },
    "created_at": "1786393072",
    "updated_at": "1786393075"
  },
  {
    "session_id": "mb-790f1058c683f435",
    "request_id": "scan-c683f435790f1058",
    "base": "1a2270",
    "slave_id": 11,
    "state": "failed",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "action": "error",
      "code": "cancelled",
      "controller_id": "1a2270",
      "event": "error",
      "request_id": "scan-c683f435790f1058",
      "schema": "misx5.device_discovery.v1",
      "session_id": "mb-790f1058c683f435",
      "tm": "1786392861"
    },
    "created_at": "1786392843",
    "updated_at": "1786392861"
  },
  {
    "session_id": "mb-4ba44ec45c93bb86",
    "request_id": "scan-5c93bb864ba44ec4",
    "base": "1a2270",
    "slave_id": 11,
    "state": "timed_out",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "reason": "service_timeout"
    },
    "created_at": "1786392242",
    "updated_at": "2026-08-10T20:05:02.565801Z"
  },
  {
    "session_id": "mb-fd69d2a474952d19",
    "request_id": "scan-74952d19fd69d2a4",
    "base": "1a2270",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "high",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "manual_web_start",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "manual_web_start",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-74952d19fd69d2a4",
            "session_id": "mb-fd69d2a474952d19",
            "action": "accepted",
            "tm": "2026-08-10T20:03:27.874052Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "1a2270"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "1a2270",
            "event": "test_result",
            "request_id": "scan-74952d19fd69d2a4",
            "results": [
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "000b",
                "registers": [
                  11
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "01",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "00c8",
                "registers": [
                  200
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 1,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-fd69d2a474952d19",
            "tm": "1786392194"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "1a2270",
            "event": "step_complete",
            "request_id": "scan-74952d19fd69d2a4",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-fd69d2a474952d19",
            "tm": "1786392194"
          }
        }
      ],
      "profile_id": "waveshare_modbus_rtu_io_8ch",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "waveshare_modbus_rtu_io_8ch",
        "profile_version": "1.0.0",
        "description": {
          "manufacturer": "Waveshare",
          "model": "Modbus RTU IO 8CH",
          "documentation_url": "https://www.waveshare.com/wiki/Modbus_RTU_IO_8CH",
          "device_type": "industrial_isolated_io",
          "inputs": 8,
          "outputs": 8
        },
        "line_parameters": {
          "mode": "rtu"
        },
        "sensor_templates": [
          {
            "id": "di1",
            "name": "DI1",
            "mode": "read",
            "function": 2,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di2",
            "name": "DI2",
            "mode": "read",
            "function": 2,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di3",
            "name": "DI3",
            "mode": "read",
            "function": 2,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di4",
            "name": "DI4",
            "mode": "read",
            "function": 2,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di5",
            "name": "DI5",
            "mode": "read",
            "function": 2,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di6",
            "name": "DI6",
            "mode": "read",
            "function": 2,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di7",
            "name": "DI7",
            "mode": "read",
            "function": 2,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di8",
            "name": "DI8",
            "mode": "read",
            "function": 2,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do1_state",
            "name": "DO1",
            "mode": "read",
            "function": 1,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do2_state",
            "name": "DO2",
            "mode": "read",
            "function": 1,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do3_state",
            "name": "DO3",
            "mode": "read",
            "function": 1,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do4_state",
            "name": "DO4",
            "mode": "read",
            "function": 1,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do5_state",
            "name": "DO5",
            "mode": "read",
            "function": 1,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do6_state",
            "name": "DO6",
            "mode": "read",
            "function": 1,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do7_state",
            "name": "DO7",
            "mode": "read",
            "function": 1,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do8_state",
            "name": "DO8",
            "mode": "read",
            "function": 1,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          }
        ],
        "polling_intervals": {
          "default_seconds": 5
        }
      }
    },
    "created_at": "1786392175",
    "updated_at": "1786392197"
  },
  {
    "session_id": "mb-756f0aa1b54f318c",
    "request_id": "scan-b54f318c756f0aa1",
    "base": "1a2270",
    "slave_id": 11,
    "state": "timed_out",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "reason": "service_timeout"
    },
    "created_at": "1786391984",
    "updated_at": "2026-08-10T20:00:44.195128Z"
  },
  {
    "session_id": "mb-f7849c4d5b349956",
    "request_id": "scan-5b349956f7849c4d",
    "base": "1a2270",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "high",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "device_identification=exception_1;server_id=exception_1",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "device_identification=exception_1;server_id=exception_1",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-5b349956f7849c4d",
            "session_id": "mb-f7849c4d5b349956",
            "action": "accepted",
            "tm": "2026-08-10T19:08:23.611078Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "1a2270"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "1a2270",
            "event": "test_result",
            "request_id": "scan-5b349956f7849c4d",
            "results": [
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "000b",
                "registers": [
                  11
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "01",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "00c8",
                "registers": [
                  200
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 1,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-f7849c4d5b349956",
            "tm": "1786388890"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "1a2270",
            "event": "step_complete",
            "request_id": "scan-5b349956f7849c4d",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-f7849c4d5b349956",
            "tm": "1786388890"
          }
        }
      ],
      "profile_id": "waveshare_modbus_rtu_io_8ch",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "waveshare_modbus_rtu_io_8ch",
        "profile_version": "1.0.0",
        "description": {
          "manufacturer": "Waveshare",
          "model": "Modbus RTU IO 8CH",
          "documentation_url": "https://www.waveshare.com/wiki/Modbus_RTU_IO_8CH",
          "device_type": "industrial_isolated_io",
          "inputs": 8,
          "outputs": 8
        },
        "line_parameters": {
          "mode": "rtu"
        },
        "sensor_templates": [
          {
            "id": "di1",
            "name": "DI1",
            "mode": "read",
            "function": 2,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di2",
            "name": "DI2",
            "mode": "read",
            "function": 2,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di3",
            "name": "DI3",
            "mode": "read",
            "function": 2,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di4",
            "name": "DI4",
            "mode": "read",
            "function": 2,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di5",
            "name": "DI5",
            "mode": "read",
            "function": 2,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di6",
            "name": "DI6",
            "mode": "read",
            "function": 2,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di7",
            "name": "DI7",
            "mode": "read",
            "function": 2,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di8",
            "name": "DI8",
            "mode": "read",
            "function": 2,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do1_state",
            "name": "DO1",
            "mode": "read",
            "function": 1,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do2_state",
            "name": "DO2",
            "mode": "read",
            "function": 1,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do3_state",
            "name": "DO3",
            "mode": "read",
            "function": 1,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do4_state",
            "name": "DO4",
            "mode": "read",
            "function": 1,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do5_state",
            "name": "DO5",
            "mode": "read",
            "function": 1,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do6_state",
            "name": "DO6",
            "mode": "read",
            "function": 1,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do7_state",
            "name": "DO7",
            "mode": "read",
            "function": 1,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do8_state",
            "name": "DO8",
            "mode": "read",
            "function": 1,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          }
        ],
        "polling_intervals": {
          "default_seconds": 5
        }
      }
    },
    "created_at": "1786388879",
    "updated_at": "1786388891"
  },
  {
    "session_id": "mb-eeeff89b1a3bba62",
    "request_id": "scan-1a3bba62eeeff89b",
    "base": "1a2270",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "outcome": "known",
      "reason": "выполнены все условия единственного профиля",
      "confidence": "high",
      "execution_trace": [
        {
          "kind": "initial_probe",
          "payload": {
            "attempts": [
              {
                "error": "device_identification=exception_1;server_id=exception_1",
                "function": 43,
                "mei_type": 14,
                "test_id": "device-identification-basic"
              },
              {
                "error": "device_identification=exception_1;server_id=exception_1",
                "function": 17,
                "test_id": "report-server-id"
              }
            ],
            "identity": {}
          }
        },
        {
          "kind": "accepted",
          "payload": {
            "schema": "misx5.device_discovery.v1",
            "request_id": "scan-1a3bba62eeeff89b",
            "session_id": "mb-eeeff89b1a3bba62",
            "action": "accepted",
            "tm": "2026-08-10T18:50:19.423975Z",
            "emitter": "mqtt-modbus-detect",
            "event": "accepted",
            "controller_id": "1a2270"
          }
        },
        {
          "kind": "command",
          "action": "test",
          "commands": [
            {
              "test_id": "temperature-humidity-int16-div10",
              "function": 4,
              "address": 0,
              "quantity": 2
            },
            {
              "test_id": "waveshare-device-address",
              "function": 3,
              "address": 16384,
              "quantity": 1
            },
            {
              "test_id": "waveshare-di-8",
              "function": 2,
              "address": 0,
              "quantity": 8
            },
            {
              "test_id": "waveshare-firmware-version",
              "function": 3,
              "address": 32768,
              "quantity": 1
            },
            {
              "test_id": "waveshare-output-modes",
              "function": 3,
              "address": 4096,
              "quantity": 8
            },
            {
              "test_id": "wirenboard-model",
              "function": 4,
              "address": 200,
              "quantity": 20
            }
          ]
        },
        {
          "kind": "response",
          "event": "test_result",
          "payload": {
            "action": "test_result",
            "controller_id": "1a2270",
            "event": "test_result",
            "request_id": "scan-1a3bba62eeeff89b",
            "results": [
              {
                "address": 0,
                "exception_code": 1,
                "function": 4,
                "quantity": 2,
                "success": false,
                "test_id": "temperature-humidity-int16-div10"
              },
              {
                "address": 16384,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "000b",
                "registers": [
                  11
                ],
                "success": true,
                "test_id": "waveshare-device-address"
              },
              {
                "address": 0,
                "bits": [
                  1,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "byte_count": 1,
                "function": 2,
                "quantity": 8,
                "raw_hex": "01",
                "success": true,
                "test_id": "waveshare-di-8"
              },
              {
                "address": 32768,
                "byte_count": 2,
                "function": 3,
                "quantity": 1,
                "raw_hex": "00c8",
                "registers": [
                  200
                ],
                "success": true,
                "test_id": "waveshare-firmware-version"
              },
              {
                "address": 4096,
                "byte_count": 16,
                "function": 3,
                "quantity": 8,
                "raw_hex": "00000000000000000000000000000000",
                "registers": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0
                ],
                "success": true,
                "test_id": "waveshare-output-modes"
              },
              {
                "address": 200,
                "exception_code": 1,
                "function": 4,
                "quantity": 20,
                "success": false,
                "test_id": "wirenboard-model"
              }
            ],
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-eeeff89b1a3bba62",
            "tm": "1786387806"
          }
        },
        {
          "kind": "response",
          "event": "step_complete",
          "payload": {
            "action": "step_complete",
            "controller_id": "1a2270",
            "event": "step_complete",
            "request_id": "scan-1a3bba62eeeff89b",
            "schema": "misx5.device_discovery.v1",
            "session_id": "mb-eeeff89b1a3bba62",
            "tm": "1786387806"
          }
        }
      ],
      "profile_id": "waveshare_modbus_rtu_io_8ch",
      "profile_version": "1.0.0",
      "proposed_config": {
        "profile_id": "waveshare_modbus_rtu_io_8ch",
        "profile_version": "1.0.0",
        "description": {
          "manufacturer": "Waveshare",
          "model": "Modbus RTU IO 8CH",
          "documentation_url": "https://www.waveshare.com/wiki/Modbus_RTU_IO_8CH",
          "device_type": "industrial_isolated_io",
          "inputs": 8,
          "outputs": 8
        },
        "line_parameters": {
          "mode": "rtu"
        },
        "sensor_templates": [
          {
            "id": "di1",
            "name": "DI1",
            "mode": "read",
            "function": 2,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di2",
            "name": "DI2",
            "mode": "read",
            "function": 2,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di3",
            "name": "DI3",
            "mode": "read",
            "function": 2,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di4",
            "name": "DI4",
            "mode": "read",
            "function": 2,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di5",
            "name": "DI5",
            "mode": "read",
            "function": 2,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di6",
            "name": "DI6",
            "mode": "read",
            "function": 2,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di7",
            "name": "DI7",
            "mode": "read",
            "function": 2,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "di8",
            "name": "DI8",
            "mode": "read",
            "function": 2,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do1_state",
            "name": "DO1",
            "mode": "read",
            "function": 1,
            "address": 0,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do2_state",
            "name": "DO2",
            "mode": "read",
            "function": 1,
            "address": 1,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do3_state",
            "name": "DO3",
            "mode": "read",
            "function": 1,
            "address": 2,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do4_state",
            "name": "DO4",
            "mode": "read",
            "function": 1,
            "address": 3,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do5_state",
            "name": "DO5",
            "mode": "read",
            "function": 1,
            "address": 4,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do6_state",
            "name": "DO6",
            "mode": "read",
            "function": 1,
            "address": 5,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do7_state",
            "name": "DO7",
            "mode": "read",
            "function": 1,
            "address": 6,
            "quantity": 1,
            "map": "direct"
          },
          {
            "id": "do8_state",
            "name": "DO8",
            "mode": "read",
            "function": 1,
            "address": 7,
            "quantity": 1,
            "map": "direct"
          }
        ],
        "polling_intervals": {
          "default_seconds": 5
        }
      }
    },
    "created_at": "1786387785",
    "updated_at": "1786387810"
  },
  {
    "session_id": "mb-99b37028313c5ccc",
    "request_id": "scan-313c5ccc99b37028",
    "base": "1a2270",
    "slave_id": 11,
    "state": "finished",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "reason": "service_timeout"
    },
    "created_at": "1786387756",
    "updated_at": "1786387785"
  },
  {
    "session_id": "mb-b2a09bf9de9163d0",
    "request_id": "scan-de9163d0b2a09bf9",
    "base": "1a2270",
    "slave_id": 11,
    "state": "timed_out",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "reason": "service_timeout"
    },
    "created_at": "1786387581",
    "updated_at": "2026-08-10T18:47:09.360881Z"
  },
  {
    "session_id": "mb-1628d11f3f2bf032",
    "request_id": "scan-3f2bf0321628d11f",
    "base": "1a2270",
    "slave_id": 11,
    "state": "timed_out",
    "reads_used": 8,
    "steps_used": 1,
    "result": {
      "reason": "service_timeout"
    },
    "created_at": "1786387544",
    "updated_at": "2026-08-10T18:46:46.995929Z"
  }
]