1

Новое в API Wialon

Topic: Новое в API Wialon

В этой теме будем публиковать, что нового появилось в API Wialon. Изменения в API происходят достаточно редко, это касается только каких-то глобальных фич, и в основном, дополнительных параметров, методов, опций и т.д

Diana Cheley
Wialon Hosting Expert
Gurtam
2

Новое в API Wialon

Re: Новое в API Wialon

В скором времени будет доступен новый функционал, который позволит для каждого топливного датчика задать свои индивидуальные настройки расчета расхода топлива.
Подробности обсуждались в одной из тем форума ( https://forum.gurtam.com/viewtopic.php?id=16779 )

В связи с этим в свойства датчиков (настройки) были добавлены новые дополнительные параметры

Все новые параметры в датчике добавляются в параметр "c" (конфигурация)

В топливные датчики добавился параметр "calc_fuel" - это аналог флага включения типа датчиков для отображения расчета топлива в отчетах(по старому устанавливается запросом user/update_fuel_calc_types). Т.е чтобы в отчете отображался например расход по ДУТ, у этого датчика должен быть параметр "calc_fuel":2

В ДУТ добавлен параметр "fuel_params", тут хранятся все настройки для ДУТ (аналогично ранее выполнялся запрос user/update_fuel_level_params)

Например "fuel_params":

{\"flags\":1728,\"ignoreStayTimeout\":20,\"minFillingVolume\":21,\"minTheftTimeout\":0,\"minTheftVolume\":15,\"filterQuality\":0,\"fillingsJoinInterval\":300,\"theftsJoinInterval\":300,\"extraFillingTimeout\":0}. 

Для ДИРТ добавляются свои настройки, например

 "fuel_params":{\"maxImpulses\":10, \"skipZero\":0}

В датчике ДУТ можно задавать параметр "engine_sensors", в котором указан список id датчиков зажигания (моточасов) для расчета потраченного топлива с учетом работы этих датчиков (через метод "расход топлива по времени" )

В датчике зажигания(моточасы) можно задавать параметр "engine_efficiency", в котором указан список id датчиков ДПРД.

Diana Cheley
Wialon Hosting Expert
Gurtam
3

Новое в API Wialon

Re: Новое в API Wialon

В одном из последних обновлений появится новый метод :

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

При создании\редактировании можно добавить новый тип "video_service"
Обязательных параметров нет.

В параметрах можно задать:
"duration_before" и "duration_after" - дефолтное значение 10 секунд, с максимумом в 30 сек.
"channel_mask" - маска доступных камер, по умолчанию берется из свойства объекта "video_channel_mask"

Пример:

"act":[{"t":"video_service","p":{"channel_mask":1,"duration":15,"base_url":"http://hst-api.qa.wdc.dc/"}}]
Diana Cheley
Wialon Hosting Expert
Gurtam
4

Новое в API Wialon

Re: Новое в API Wialon

Добрый день!

Раньше мы получали данные запросами: update_fuel_level_params и update_fuel_calc_types.

С update_fuel_level_params - все логично (описано в документации). Как быть с флагами, которые мы устанавливаем запросом update_fuel_calc_types?

Спасибо.

5

Новое в API Wialon

Re: Новое в API Wialon

vdvicivt wrote:

Добрый день!

Раньше мы получали данные запросами: update_fuel_level_params и update_fuel_calc_types.

С update_fuel_level_params - все логично (описано в документации). Как быть с флагами, которые мы устанавливаем запросом update_fuel_calc_types?

Спасибо.

Добрый день!

Флаг для расчета топлива (получение данных в отчете) нужно передавть в параметре "calc_fuel"  в свойствах датчика , в параметре "c" (конфигурация). Значение как и были раньше - Типы расчета расхода топлива

К примеру , ДУТ

"params":{"n":"Дут","t":"fuel level","d":"","m":"л","p":"fuel","f":0,"c":"{\"act\":1,\"timeout\":0,\"mu\":\"0\",\"appear_in_popup\":true,\"calc_fuel\":2,\"ci\":{},\"cm\":1,\"fuel_params\":{\"fillingsJoinInterval\":300,\"flags\":1408,\"ignoreStayTimeout\":20,\"minFillingVolume\":50,\"minTheftTimeout\":10,\"minTheftVolume\":60,\"theftsJoinInterval\":400,\"filterQuality\":0},\"pos\":11,\"show_time\":false,\"uct\":0}","vt":0,"vs":0,"tbl":[],"id":11,"itemId":22088658,"callMode":"update"}}],"flags":0}
Diana Cheley
Wialon Hosting Expert
Gurtam
6

Новое в API Wialon

(edited by vdvicivt 13/11/2020 14:23:06)

Re: Новое в API Wialon

chdi wrote:
vdvicivt wrote:

Добрый день!

Раньше мы получали данные запросами: update_fuel_level_params и update_fuel_calc_types.

С update_fuel_level_params - все логично (описано в документации). Как быть с флагами, которые мы устанавливаем запросом update_fuel_calc_types?

Спасибо.

Добрый день!

Флаг для расчета топлива (получение данных в отчете) нужно передавть в параметре "calc_fuel"  в свойствах датчика , в параметре "c" (конфигурация). Значение как и были раньше - Типы расчета расхода топлива

К примеру , ДУТ

"params":{"n":"Дут","t":"fuel level","d":"","m":"л","p":"fuel","f":0,"c":"{\"act\":1,\"timeout\":0,\"mu\":\"0\",\"appear_in_popup\":true,\"calc_fuel\":2,\"ci\":{},\"cm\":1,\"fuel_params\":{\"fillingsJoinInterval\":300,\"flags\":1408,\"ignoreStayTimeout\":20,\"minFillingVolume\":50,\"minTheftTimeout\":10,\"minTheftVolume\":60,\"theftsJoinInterval\":400,\"filterQuality\":0},\"pos\":11,\"show_time\":false,\"uct\":0}","vt":0,"vs":0,"tbl":[],"id":11,"itemId":22088658,"callMode":"update"}}],"flags":0}

Спасибо, отчасти помогло. Есть еще вопросы:

1) Почему – то не заполнились флаги: заменять ошибочные данные математически, рассчитывать расход топлива по времени, расчет заправок по времени, расчет сливов по времени (ниже представлен запрос) - До обновления все работало.
2) Куда делись настройки настройки импульсных датчиков и датчиков абсолютного расхода топлива. Не вижу их в интерфейсе Wialon ( скрин (Снимок_Импульс) из 1с, но похожая настройка была ранее во вкладке «Расход топлива» у объекта).

3) Не заполняются пользовательские интервалы в Wialon. До обновления все работало.

Ниже приведен текст запроса:
hst-api.wialon.com/wialon/ajax.html?sid=091fa8db7d36f19e4623ae4ef03e9429&svc=unit/update_sensor&params={"itemId":"22155862","id":"1","callMode":"update","n":"%D0%A2%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%B0%D1%82%D1%87%D0%B8%D0%BA","t":"fuel level","d":"%D0%A2%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D0%BE%D0%B5%20%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5","m":"л.","p":"%5Bp%5D","f":"65","c":"{\"act\":false,\"appear_in_popup\":true,\"show_time\":true,\"lower_bound\":10,\"upper_bound\":100,\"filter\":12,\"timeout\":0,\"ci\":{\"0\":{\"c\":\"16711680\",\"t\":\"Красный\"},\"10\":{\"c\":\"16769280\",\"t\":\"Желтый\"},\"20\":{\"c\":\"38470\",\"t\":\"Зеленый\"}},\"calc_fuel\":62,\"fuel_params\":{\"ignoreStayTimeout\":3,\"minFillingVolume\":1,\"minTheftTimeout\":4,\"minTheftVolume\":2,\"filterQuality\":5,\"fillingsJoinInterval\":5,\"theftsJoinInterval\":6,\"extraFillingTimeout\":7,\"flags\":474}}","vt":"1","vs":"0","tbl":[{"x":4,"a":2,"b":0},{"x":7,"a":0,"b":7}]}

Скрин Запроса во вложении

В дополнение:

В документации https://sdk.wialon.com/wiki/ru/sidebar/ … #parametry у Вас ошибка:

ДМРТ «fuel_params»

"fuel_params":{\"maxImpulses\":10, \"skipZero\":0}

Не ДМРТ, а ДИРТ. Только флаг "Рассчитывать расход топлива по датчику " в Истину не устанавливается, остальные 2 параметры заполнились.


Прошу помочь.

7

Новое в API Wialon

Re: Новое в API Wialon

Добрый день!

1) Для установки этих расчетов  значения передать в параметре flags
В вашем примере  flags  = 7682, \"calc_fuel\":2  к примеру,

\"fuel_params\":{\"fillingsJoinInterval\":5,\"filterQuality\":1,\"flags\":7682,\"ignoreStayTimeout\":5,\"minFillingVolume\":5,\"minTheftTimeout\":5,\"minTheftVolume\":4,\"theftsJoinInterval\":5}

В документации в таблице еще к старому способу описаны параметры, поправим обязательно. И перепроверим по новым параметрам
Спасибо за информацию

2) Настройки других топливных датчиков в их свойствах.
К примеру,  ДИРТ

"c":"{\"act\":1,\"timeout\":0,\"mu\":0,\"fuel_params\":{\"maxImpulses\":65235,\"flags\":0,\"skipZero\":true},\"calc_fuel\":16,\"ci\":{},\"cm\":1,\"show_time\":false,\"appear_in_popup\":false,\"pos\":20}"

где
Рассчитывать расход топлива по датчику: - calc_fuel = 16 - 0x10    импульсные датчики

Максимум импульсов  -  \"maxImpulses\"

Пропускать начальные нулевые значения - "skipZero\":true - активировано, false - нет

3) Попробуйте, пожалуйста, убрать кавычки в значениях числа цветов
К примеру,

\"ci\":{\"0\":{\"c\":16711680,\"t\":\"кр\"},\"10\":{\"c\":16776960,\"t\":\"ж\"},\"20\":{\"c\":1669936,\"t\":\"зел\"}}
Diana Cheley
Wialon Hosting Expert
Gurtam
8

Новое в API Wialon

Re: Новое в API Wialon

Добавлены запросы для работы с настройками видео (объекта):
1. unit/update_video_settings с параметрами:

{
"itemId":long,
"settings":[{"name":"cam","flags":1},{"name":"cam1","flags":0}...]
}

возвращает пустой JSON (при успешном выполнении запроса)- {}

Запрос используется для настройки имени стрима и выгрузки видео с камеры.

2. И запрос unit/get_video_settings с параметрами:

{"itemId": long}

возвращает

{"settings":[{"flags":1,"name":"cam"},{"flags":0,"name":"cam1"}...]}

Запрос используется для получения информации о настройках видео.

Если для камеры выставлено flags:0, то выгрузки с этой камеры не происходит, если же для камеры выставлено flags:1 - то видео с камеры будет выгружено.

Если настройки по камерам в объекте не заданны, то выгрузка происходит из свойства объекта "video_channel_mask" (эта маска заполняется на стороне системы с учетом протокола оборудования)

Для запроса update_video_settings нужно право на объект  "Редактирование не упомянутых свойств"
Для запроса get_video_settings нужно право "Просмотр подробных свойств"

Diana Cheley
Wialon Hosting Expert
Gurtam
9

Новое в API Wialon

Re: Новое в API Wialon

Добавлены новые API запросы

1.
Добавлен запрос "Библиотека типов"

svc=file/type_library&params={"lang":"text"}

Параметр "lang" является необязательным. При его отсутствии возьмётся язык из сессии.

В ответе будет JSON co списком Библиотеки типов устройств.

В запрос item/update_profile_field добавлено новое название ( "vehicle_type" если был до этого установлен, также останется) поля "vehicle_class" (параметр "n"). Значение поля (параметр "v") принимает имена из последнего уровня вложенности Библиотеки типов.

Пример запроса:

svc=item/update_profile_field&params={"itemId":4958071,"n":"vehicle_class","v":"empty_compressor"}

Результат выполнения:

[
    2,
    {
        "id": 2,
        "n": "vehicle_class",
        "v": "empty_compressor"
    }
]

В случае некорректного указания значения поля - в ответ придёт ошибка с описанием. Пример:

{
    "error": 4,
    "reason": "Invalid vehicle_class value"
}

3.
Обновлён запрос svc=core/search_items, чтобы происходил поиск по новому значениям поля "vehicle_class"
т.е. производя поиск по profilefield (указанный в качестве propName) - можно произвести по значению, указанному в vehicle_class (искомое заносится как propValueMask )

Пример, найти объекты с типом TC 'van' (грузовик)

hst-api.wialon.com/wialon/ajax.html?svc=core/search_items&params={"spec":{"itemsType":"avl_unit","propName":"profilefield","propValueMask":"van","sortType":"sys_name","propType":"profilefield"},"force":1,"flags":8388609,"from":0,"to":200}}],"flags":0}&sid=02673bc10dcf516e0d6647acf35331ce

Ответ

{"searchSpec":{"itemsType":"avl_unit","propName":"profilefield","propValueMask":"van","sortType":"sys_name","propType":"profilefield","or_logic":"0"},"dataFlags":8388609,"totalItemsCount":1,"indexFrom":0,"indexTo":0,"items":[{"nm":"dia_awesome ni","cls":2,"id":20325200,"mu":0,"pflds":{"1":{"id":1,"n":"vehicle_class","v":"van"}},"pfldsmax":-1,"uacl":-1}]}
Diana Cheley
Wialon Hosting Expert
Gurtam