Это старая версия документа!
Внутри контроллера команды и значения между каналами передаются в унифицированном виде (см itemCmd) Но для управления реальными устройствами, данные необходимо конвертировать из унифицированного вида в формат, который понимает устройство и наоборот
Для этого существует механизм преобразований, который может производить как конвертацию значений так и переобразования между командами и значениями
Первое место, где используются преобразования - это интеграция Modbus v2. это обьясняется тем, что в Modbus все взаимодействие с устройством происходит через регистры, в которые пишутся, либо, из которых считываются числовые значения.
Предусмотрено два типа преобразований - преобразования команды и преобразование значения Также, два направления преобразования - прямое (когда из унифицированного вида создается значение для записи в устройство) и обратное - когда считанное из устройства значение преобразуется в унифицированный вид
Преобразование определяется при помощи JSON обьекта «map» который добавляется в описание регистра устройства в разделе конфигурирования modbus
"fanspeed" :{"reg":40000,"map":{"val":[1,255,1,5],"cmd":[["OFF",0]]},"id":7},
"acon":{"reg":40003,"map":{"cmd":[1,["OFF",0]],"val":null,"def":40001},"id":8},
"acmode" :{"reg":40001,"map":{"cmd":[["FAN_ONLY",1],["HEAT",4],["COOL",2],["AUTO",8]]},"id":8},
"on":{"reg":41,"type":"u8l","id":1,"map":{"cmd":[["OFF",0],["ON",1],["AUTO",1],["HEAT",1],["FAN_ONLY",1]]}},
"fanspeed":{"reg":42,"type":"u8l","id":7,"map":{"cmd":"fan"}},
"$rain":{"reg":67,"type":"u8l", "map":{"cmd":[null,["OFF",10],["ON",11]],"val":null}},
"pwr":{"coil":0,"map":{"cmd":[1,["OFF",0]],"val":null, "def":"acmode"},"id":1}, "fanoff":{"coil":0,"map":{"cmd":[1,["OFF",0]],"val":[0,0,0,0,1,1,null,null], "id":7}}, "acmode":{"reg":1,"map":{"cmd":[["FAN_ONLY",4],["HEAT",2],["COOL",1],["DRY",3],["AUTO",5]],"val":null},"id":1},