Чтобы создавать, изменять и удалять датчики, нужно использовать команду unit/update_sensor:
svc=unit/update_sensor¶ms={"itemId":<long>, "id":<long>, "callMode":<text>, "unlink":<uint>, "n":<text>, "t":<text>, "d":<text>, "m":<text>, "p":<text>, "f":<uint>, "c":<text>, "vt":<uint>, "vs":<long>, "tbl":[ { "x":<double>, "a":<double>, "b":<double> } ]}
| Название | Описание | 
|---|---|
| itemId | ID объекта | 
| id | ID датчика (0 для создания) | 
| callMode | действие: создание, редактирование, удаление (create, update, delete) | 
| unlink | Удалять связи с другими датчиками и параметрами объекта при удалении (1 - да(по умолчанию), 0 - нет) | 
| Параметры, обязательные только при создании и редактировании | |
| n | название | 
| t | тип (см. ниже) | 
| d | описание | 
| m | единица измерения | 
| p | параметр | 
| f | флаги датчика (см. ниже) | 
| c | конфигурация (см. ниже) | 
| vt | тип валидации (см. ниже) | 
| vs | ID валидирующего датчика | 
| tbl | таблица расчета | 
Типы датчиков:
Здесь можно прочитать о типах датчиков подробно.
Флаги датчика:
| Флаг | Описание | 
|---|---|
| 0x01 | Тип счетчика: мгновенный | 
| 0x02 | Тип счетчика: дифференциальный | 
| 0x03 | Тип счетчика: дифференциальный с переполнением (2 байта) | 
| 0x04 | Тип счетчика: переключатель из ВЫКЛ в ВКЛ | 
| 0x05 | Тип счетчика: Переключатель из ВКЛ в ВЫКЛ | 
| 0x20 | включить опцию «С переполнением» (см. ниже) | 
| 0x40 | Применять нижнюю/верхнюю границы ПОСЛЕ расчета (см. ниже) | 
 Уточнение для 0x20: 
- актуально для следующих датчиков:
Если флаг 0x20 не задан, то датчик работает так: дельта изменения будет равна abs(V2 - V1), где V2 – новое сообщение, V1 – предыдущее, abs() – модуль числа; если флаг задан, то при V2 < V1 дельтой будет считаться V2 (т.е. V1 = 0).
  Уточнение для 0x40:
Типы валидации:
| Тип | Описание | 
|---|---|
| 0x01 | Логическое И | 
| 0x02 | Логическое ИЛИ | 
| 0x03 | Математическое И | 
| 0x04 | Математическое ИЛИ | 
| 0x05 | Суммировать | 
| 0x06 | Вычесть валидатор из датчика | 
| 0x07 | Вычесть датчик из валидатора | 
| 0x08 | Перемножить | 
| 0x09 | Делить датчик на валидатор | 
| 0x0A | Делить валидатор на датчик | 
| 0x0B | Проверка на неравенство нулю | 
| 0x0C | Заменять датчик валидатором в случае ошибки | 
Параметры конфигурации датчика:
 Замечание: JSON-объект передается как строка, потому необходимо заключить его в кавычки, все двойные кавычки для ключей и значений необходимо экранировать (\«).
    	    "{
		\"act\":<bool>,
		\"appear_in_popup\":<bool>,
		\"ci\":<object>,
		\"filter\":<long>,
		\"mu\":<uint>,
		\"pos\":<uint>,
		\"show_time\":<bool>,
		\"unbound_code\":<text>,
		\"validate_driver_unbound\":<bool>,
		\"timeout\":<uint>,
		\"uct\":<bool>,
		\"lower_bound\":<double>,
		\"upper_bound\":<double>,
		\"text_params\":<uint>
	     }" 
| Параметр | Описание | 
|---|---|
| act |  опция "Последнее сообщение": 0 - опция включена, 1 - опция выключена (см. дополнительную информацию ниже)  | 
	
| appear_in_popup | галочка "Видимость": false - снять, true - поставить | 
| ci | пользовательские интервалы | 
| filter | переопределить степень фильтрации | 
| mu | единицы измерения: 0 - si, 1 - us, 2 - имперская, 3 - метрическая с галлонами | 
| pos | положение в списке Датчиков, счет от 1 | 
| show_time | галочка "Время": false - снять, true - поставить | 
| unbound_code | код снятия | 
| validate_driver_unbound | валидировать снятие, 0 - нет, 1 - да | 
| timeout | таймаут, секунды | 
| uct | опция "Переполнение по сырым данным": 0 - выкл, 1 - вкл | 
| lower_bound | опция "Нижняя граница" | 
| upper_bound | опция "Верхняя граница" | 
| text_params | опция "Текстовый параметр" , 0 - выкл, 1 - вкл | 
| fuel_params | настройки расхода топлива по ДУТ - см ниже | 
| engine_sensors | для датчика типа ДУТ можно указать id Датчика зажигания (моточасов)-используется для расчета расхода топлива(сливов) | 
| engine_efficiency | для датчика зажигания(моточасов) можно указать id ДПРД | 
 Уточнение для «act»: для этой опции использована инверсивная логика: выбранная галочка (значение 0) – это исторически старая логика, а выключенная опция (значение 1) – это более новая логика (данные используются во всплывающих подсказках, удобны в ситуациях, когда некоторые важные параметры редко приходят). Старая логика всё так же активна по умолчанию.
 Уточнение для «filter»:
- опция позволяет переопределить степень фильтрации (ширину окна медианной фильтрации), валидна для датчиков:
Пример:
"c":"{\"appear_in_popup\":true,\"pos\":1,\"ci\":{}}"
 Уточнение по «calc_fuel», «fuel_params», engine_sensors, engine_efficiency: новые опции могут быть использованы опционально (если работать только через api), и старые запросы и логика по прежнему актуальны (но до тех пор пока не были выполнены изменения в конфигурации датчиков)
Параметр «calc_fuel» устанавливает флаг расчета расхода топлива для каждого типа датчика соответственно :
| Флаг | Описание | 
|---|---|
| 0x0 | не использовать расчет топлива в отчетах | 
| 0x01 | расход по расчету | 
| 0x02 | датчики уровня топлива | 
| 0x04 | заменять ошибочные значения датчиков уровня топлива рассчитанными математически | 
| 0x08 | датчики абсолютного расхода топлива | 
| 0x10 | импульсные датчики | 
| 0x20 | датчики мгновенного расхода топлива | 
| 0x40 | расход по нормам | 
«flags» - флаги устанавливают остальные настройки расхода топлива по ДУТ :
| Значение | Опция | 
|---|---|
| 2 | фильтрация включена, значение в «filterQuality» | 
| 8 | поиск заправок только при остановке, таймаут в «extraFillingTimeout» | 
| 64 | рассчитывать объем заправки без учета фильтрации | 
| 512 | расчет заправки по времени | 
| 128 | рассчитывать объем слива без учета фильтрации | 
| 256 | поиск сливов в движении | 
| 1024 | расчет сливов по времени | 
| 2048 | расчет расхода топлива по времени | 
| 4069 | заменять ошибочные значения рассчитанными математически | 
Пример новых параметров в конфигурации: ДУТ «fuel_params»
"fuel_params":{\"flags\":1728,\"ignoreStayTimeout\":20,\"minFillingVolume\":21,\"minTheftTimeout\":0,\"minTheftVolume\":15,\"filterQuality\":0,\"fillingsJoinInterval\":300,\"theftsJoinInterval\":300,\"extraFillingTimeout\":0}.
ДМРТ «fuel_params»
"fuel_params":{\"maxImpulses\":10, \"skipZero\":0}
Специальных настроек нет, «calc_fuel» - флаг для включения (нулевое значение - опция выключена) опции "Рассчитывать расход топлива по датчику":
Пример конфигурации ДМРТ
c: "{"act":1,"appear_in_popup":false,"calc_fuel":8,"ci":{},"cm":1,"fuel_params":{"flags":0},"mu":0,"pos":24,"show_time":false,"timeout":0}"
Расход топлива по расчету (Расход топлива: расход по расчету - старый метод) использует настройки датчиков моточасов (датчик зажигания и датчики двигателя)
При создании и редактировании:
[ <long>, /* ID датчика */ { "id":<long>, /* ID датчика */ "n":<text>, /* название */ "t":<text>, /* тип */ "d":<text>, /* описание */ "m":<text>, /* единица измерения */ "p":<text>, /* параметр */ "f":<uint>, /* флаги датчика */ "c":<object>, /* конфигурация */ "vt":<int>, /* тип валидации */ "vs":<long>, /* ID валидирующего датчика */ "tbl":[ /* таблица расчета */ { /* параметры */ "x":<double>, "a":<double>, "b":<double> } ] } ]
При удалении:
[ <long>, /* ID датчика */ null ]