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

Lightman 3 days ago

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

Lightman 2 days ago

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

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

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

Anton Tananaev 2 days ago

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

Lightman 2 days ago

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

memesaregood 11 hours ago

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

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

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