Преобразование параметров
Параметры, поступающие непосредственно от оборудования, можно преобразовывать. Для этого в поле Параметр свойств датчика необходимо указать операцию преобразования. Случаи ее применения описаны ниже.
Побитовый контроль параметра
Побитовый контроль параметра позволяет контролировать не весь параметр в целом, а конкретный бит. Эта операция используется, если устройство показывает разные данные через один параметр: первый бит может соответствовать состоянию сигнализации (вкл/выкл), второй — состоянию водительской двери (открыта/закрыта), третий — состоянию фар и т. д.
Чтобы контролировать, например, третий бит параметра param199, после его названия необходимо поставить двоеточие и номер бита:
param199:3
Таким образом на основе одного параметра можно создать несколько датчиков для контроля разных битов.
Параметры типа double при побитовом контроле автоматически приводятся к типу int, после чего выделяется бит.</blockquoteПобитовый контроль также может применяться к 64-битовым значениям параметров, но учитывайте следующую особенность. При отображении числа с заполненным 64-ым битом этот бит расценивается системой как знак минус для числа, содержащегося в остальных 63 битах. Таким образом, значения параметра, большие чем (2^63 - 1) = 9223372036854775807, отображаются как отрицательные значения.Преобразование текстовых параметров
Если для датчика указан параметр в виде выражения, в котором содержится текстовый параметр, то текстовое значение преобразуется в 53-битное целое число. По умолчанию исходное значение считается десятичным. Если это число из другой системы счисления, укажите ее после текстового параметра через двоеточие — и число автоматически преобразуется в десятичное. Например, если в параметре text_param пришло значение 100, то
text_param = 100 text_param:10 = 100 text_param:16 = 256 text_param:2 = 4
Определение номера дня в году
Unix-время сообщения можно преобразовать в номер дня в году относительно 1 января. Для этого необходимо создать произвольный датчик с параметром time:d.
Например, для 11:00:00 (UTC) 28 марта 2017 года UNIX-время соответствует значению 1490698800. Следовательно,
time = 1490698800 time:d = 87