Тарировочная таблица для ДУТ | LLS fuel sensor calibration table

Lightman 24 days ago

Прогулялся по форуму но не нашел. А может, не туда смотрел.
Нужна потребность в обработке сырых данных с датчика уровня топлива, но не нашел, где можно было бы удобно хранить пару ключ-значение. Как вариант, можно было бы использовать атрибуты устройства, благо можно добавить свой кастомный (Что-то вроде {"fuel1CalibrationTable": "0:0,512:200,1024:400,2048:600,3072:720,4096:800"}). И тут же встает вопрос, как отображать уже обработанное значение на web.
В идеале, каждый из датчиков топлива имеет свою таблицу |Сырые данные|Литры|. Атрибуты устройства позволяют разделить эти таблицы между устройствами.
Вот в чем вопрос - атрибуты устройства единственное возможное место для хранения этих данных? Есть ли реализованный механизм обработки сырых значений ДУТ и последующей их перезаписи в литрах в таблицу позиций?

Lightman 24 days ago

Если я правильно понял структуру, обработка позиции идет примерно в таком порядке

  1. ProtocolDecoder
  2. ProcessingHandler
  3. ComputedAttributesHandler
  4. FuelEventHandler
  5. DatabaseHandler

Если уже реализованного решения нет, может просто добавить еще один Handler с проверкой на наличие данных с датчика и определенных атрибутов у устройства?

Anton Tananaev 24 days ago

You can use computed attributes for actual calculation. And use device attributes for the table.

Lightman 24 days ago

Попробую такой вариант, спасибо

memesaregood 22 days ago

С виалона приходите?

Похожая проблема была. Решил через создание собственного хэндлера, который тарирует топливо. Через JEXL тоже имеет смысл работать - делал тарировку через него, но там overhead был большой из-за JEXL.

Сделайте атрибут, который будет возвращать атрибут Fuel. Он покажется в Position, а оттуда уже можно показать его на фронте.