Справочный центр Wialon

Поиск элементов

Поиск — один из наиболее распространенных запросов в Wialon. В Wialon доступны два типа поиска:

  • поиск элементов по ID;
  • поиск элементов по свойству.

Описание обоих типов поиска приведено ниже.

Поиск элементов по ID

Если вы знаете ID элемента, вы можете получить любую доступную информацию о нем с помощью метода core/search_item.

Пример

Найдем последнее местоположение объекта с ID 34868. Чтобы получить информацию о местоположении объекта, в запрос необходимо включить флаг 0x00000400 (1024). Также включим флаг 0x00000001 (1), чтобы получить имя объекта. Информация о флагах и форматах данных приведена в разделе Формат данных.

Copied!
https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_item&
params={
    "id": 34868,
    "flags": 1025
}
&sid=<your_sid>

Пример ответа:

Copied!
{
    "item": {
        "nm": "Bavarian Tractor",
        "cls": 2,
        "id": 34868,
        "pos": {
            "t": 1358761631,
            "y": 53.9205504,
            "x": 27.4921152,
            "z": 238,
            "s": 0,
            "c": 102,
            "sc": 10
        },
        "lmsg": {
            "t": 1358761631,
            "f": 3,
            "tp": "ud",
            "pos": {
                "y": 53.9205504,
                "x": 27.4921152,
                "z": 238,
                "s": 0,
                "c": 102,
                "sc": 10
            },
            "i": 0,
            "p": {
                "param22": 3,
                "adc1": 12.352,
                "pwr_ext": 12.356,
                "param199": 0,
                "param241": 25701,
                "battery_charge": 0
            }
        },
        "uacl": 638138188323
    },
    "flags": 1025
}

Из этого ответа можно узнать, что объект с указанным ID называется Bavarian Tractor, а его последнее известное местоположение — 53,9205504° с. ш. и 27,4921152° в. д.

Поиск элементов по свойству

Чтобы найти несколько элементов с определенным свойством, используйте метод core/search_items.

Пример 1

Найдем всех пользователей, выполнив следующий запрос:

Copied!
https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_items&
params={
    "spec": {
        "itemsType": "user",
        "propName": "sys_name",
        "propValueMask": "*",
        "sortType": "sys_name"
    },
    "force": 1,
    "flags": 1,
    "from": 0,
    "to": 0
}&sid=<your_sid>

Звездочка в параметре propValueMask означает, что массив результатов будет содержать пользователей с любыми значениями в поле sys_name (то есть пользователей с любыми именами). Это означает, что в результат будут включены все доступные пользователи. Значение 1 параметра flags означает, что в результат должна быть включена основная информация об элементе. Информация о флагах пользователей приведена на странице Пользователи. Нулевые значения параметров from и to указывают, что должны быть возвращены все найденные пользователи.

Пример ответа:

Copied!
{
  "searchSpec": {
    "itemsType": "user",
    "propName": "sys_name",
    "propValueMask": "*",
    "sortType": "sys_name"
  },
  "dataFlags": 1,
  "totalItemsCount": 1,
  "indexFrom": 0,
  "indexTo": 0,
  "items": [
    {
      "nm": "test_6512789",
      "cls": 1,
      "id": 648548,
      "uacl": -1
    }
  ]
}

Приведенный выше пример можно использовать для поиска только таких элементов, как ресурсы, ретрансляторы, объекты, группы объектов, пользователи и маршруты. Однако некоторые из этих элементов, например ресурсы или маршруты, обычно содержат подэлементы. Например, геозоны являются подэлементами ресурса. Примеры поиска подэлементов приведены ниже.

Пример 2

Чтобы искать подэлементы, добавьте в спецификацию поиска параметр propType, установите для него значение propitemname и укажите имя подэлемента в параметре propName. Список всех подэлементов приведен на странице core/search_items.

Найдем ресурсы, содержащие геозоны, в названиях которых есть слово office. Нужно, чтобы ответ содержал только первые два найденных ресурса. Чтобы в ответ были включены геозоны, помимо основного флага необходимо установить флаг 0x00001000 (4096).

Copied!
https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_items&
params={
  "spec": {
    "itemsType": "avl_resource",
    "propName": "zones_library",
    "propValueMask": "*office*",
    "sortType": "zones_library",
    "propType": "propitemname"
  },
  "force": 1,
  "flags": 4097,
  "from": 0,
  "to": 1
}&sid=<your_sid>

Пример ответа:

Copied!
{
  "searchSpec": {
    "itemsType": "avl_resource",
    "propName": "zones_library",
    "propValueMask": "*office*",
    "sortType": "zones_library",
    "propType": "propitemname"
  },
  "dataFlags": 4097,
  "totalItemsCount": 1,
  "indexFrom": 0,
  "indexTo": 0,
  "items": [
    {
      "nm": "template_en",
      "cls": 3,
      "id": 163266,
      "zl": {
        "1": {
          "n": "Head office",
          "d": "",
          "id": 1,
          "f": 1,
          "t": 2,
          "e": 60774,
          "b": {
            "min_x": 43.5271002776,
            "min_y": 49.7636455785,
            "max_x": 43.5622908598,
            "max_y": 49.7794993012,
            "cen_x": 43.5446955687,
            "cen_y": 49.7715724398
          }
        },
        "2": {
          "n": "Route1_final_destination",
          "d": "",
          "id": 2,
          "f": 1,
          "t": 2,
          "e": 62438,
          "b": {
            "min_x": 44.3872954375,
            "min_y": 48.6329175554,
            "max_x": 44.6300246245,
            "max_y": 48.856592389,
            "cen_x": 44.508660031,
            "cen_y": 48.7447549722
          }
        },
        "3": {
          "n": "Route1_starting_point",
          "d": "",
          "id": 3,
          "f": 1,
          "t": 2,
          "e": 4566,
          "b": {
            "min_x": 43.107388,
            "min_y": 50.009182,
            "max_x": 43.294156,
            "max_y": 50.119376,
            "cen_x": 43.200772,
            "cen_y": 50.064279
          }
        },
        "4": {
          "n": "Shopping mall",
          "d": "",
          "id": 4,
          "f": 1,
          "t": 1,
          "e": 39844,
          "b": {
            "min_x": 37.5347102757,
            "min_y": 55.7544919087,
            "max_x": 37.5596537243,
            "max_y": 55.7598140913,
            "cen_x": 37.546216,
            "cen_y": 55.757443
          }
        },
        "5": {
          "n": "Warehouse",
          "d": "",
          "id": 5,
          "f": 1,
          "t": 3,
          "e": 44015,
          "b": {
            "min_x": 37.5537148786,
            "min_y": 55.7585093867,
            "max_x": 37.5576971214,
            "max_y": 55.7607546133,
            "cen_x": 37.555706,
            "cen_y": 55.757443
          }
        }
      },
      "uacl": 2200454562339
    }
  ]
}

В результате был найден один ресурс с пятью геозонами. В названии одной из них есть слово office.

Пример 3

Найдем объекты с маской имени *Volvo*:

Copied!
https://hst-api.wialon.com/wialon/ajax.html?
svc=core/search_items&
params={
  "spec": {
    "itemsType": "avl_unit",
    "propName": "sys_name",
    "propValueMask": "*Volvo*",
    "sortType": "sys_name"
  },
  "force": 1,
  "flags": 1439,
  "from": 0,
  "to": 0
}&
sid=021df621073f5b102b83740b0ea0eaf5

Спецификация:

Параметр Значение Описание
itemsType avl_unit Объект
propName sys_name Поиск по имени
propValueMask *Volvo* Маска имени

Пример ответа:

Copied!
{
  "searchSpec": {
    "itemsType": "avl_unit",
    "propName": "sys_name",
    "propValueMask": "*Volvo awe*",
    "sortType": "sys_name",
    "propType": "",
    "or_logic": "0"
  },
  "dataFlags": 1439,
  "totalItemsCount": 1,
  "indexFrom": 0,
  "indexTo": 0,
  "items": [
    {
      "nm": "Volvo awesome",
      "cls": 2,
      "id": 21728414,
      "prp": {
        "label_color": "39219",
        "solid_colors": "39219",
        "track_solid": "39219",
        "use_sensor_color": "0"
      },
      "crt": 930848,
      "bact": 930849,
      "mu": 0,
      "ct": 1599638776,
      "ftp": {
        "ch": 0,
        "tp": 0,
        "fl": 1
      },
      "uid": "Volvo XC90",
      "uid2": "",
      "hw": 96266,
      "ph": "+37069678441",
      "ph2": "",
      "psw": "",
      "pos": {
        "t": 1614336759,
        "f": 1073741831,
        "lc": 0,
        "y": 43.2444668333,
        "x": -118.146447667,
        "c": 0,
        "z": 300,
        "s": 12,
        "sc": 8
      },
      "lmsg": {
        "t": 1614336759,
        "f": 1073741831,
        "tp": "ud",
        "pos": {
          "y": 43.2444668333,
          "x": -118.146447667,
          "c": 0,
          "z": 300,
          "s": 12,
          "sc": 8
        },
        "i": 0,
        "o": 0,
        "lc": 0,
        "rt": 1614336760,
        "p": {
          "hdop": 0.5,
          "pass": "E2000020340F02371900D866",
          "mil": 1001,
          "ves": "900025517477741444444",
          "io_1_76": 459,
          "tco_activity_tm": 400,
          "fuel": 220.79,
          "tco_driver1_id": "rettt"
        }
      },
      "act": 1,
      "dactt": 0,
      "flds": {
        "1": {
          "id": 1,
          "n": "Type",
          "v": "Navtelecom"
        },
        "2": {
          "id": 2,
          "n": "Device type",
          "v": "Teltonika"
        }
      },
      "fldsmax": -1,
      "aflds": {},
      "afldsmax": -1,
      "uri": "/avl_library_image/19725/0/library/unit/supertux.png",
      "ugi": 1,
      "uacl": -1
    }
  ]
}

Пример 4

Получим список подчиненных пользователей.

Если иерархия простая, то есть есть только одна родительская учетная запись, а остальные подчинены ей, список подчиненных пользователей можно получить, указав имя создателя. Для этого передайте rel_user_creator_name в параметре propName и укажите имя создателя в параметре propValueMask.

Copied!
https://hst-api.wialon.com/wialon/ajax.html?
svc=core/search_items&
sid=0281169f3adf2593e00f2fc1&
params={
  "spec": {
    "itemsType": "user",
    "propName": "rel_user_creator_name",
    "propValueMask": "chdi_test",
    "sortType": "sys_name"
  },
  "force": 1,
  "flags": 3,
  "from": 0,
  "to": 0
}

Если иерархия сложная, то есть есть несколько родительских учетных записей, список подчиненных пользователей можно получить, указав цепочку создателей. Для этого передайте creatortree в параметре propType и укажите в параметре propValueMask ID верхнего пользователя (или ID любого родительского пользователя, если нужно увидеть только его подчиненных пользователей).

Copied!
https://hst-api.wialon.com/wialon/ajax.html?
svc=core/search_items&
sid=0281169f3adf2593e00f2fc1&
params={
  "spec": {
    "itemsType": "user",
    "propName": "sys_user_creator",
    "propValueMask": 930848,
    "sortType": "sys_name",
    "propType": "creatortree"
  },
  "force": 1,
  "flags": 3,
  "from": 0,
  "to": 0
}

Если вы заметили ошибку в тексте, пожалуйста, выделите её и нажмите Ctrl+Enter.

Сообщить об ошибке

Ваше сообщение отправлено. Спасибо!

Произошла ошибка при отправке формы