Это старая версия документа!
Внутри контроллера команды и значения между каналами передаются в унифицированном виде (см 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},