define <name> dev_proxy <dev1> <dev2> ...
defmod testdev_proxy dev_proxy MQ_DG_WZ_O_Rollo1 MQ_DG_WZ_O_Rollo2
attr <name> observedReadings state level
attr <name> setList opens:noArg closes:noArg stop:noArg up:noArg down:noArg position:slider,0,1,100
{'<device>:<reading>'=>{'<value>'=>'new value',..},..}
{'out:<device>:<reading>'=>{'<value>'=>'new value[:new reading]',..},..}
attr <name> mapValues {'*:position'=>{'*'=>'{100-$val}','down'=>'100', 'closed'=>'100', 'up'=>'0', 'open'=>'0', 'open_ack'=>'0', 'off'=>'0', 'on'=>'100'}}
attr <name> mapReadings <device>:<original reading>:<hier zu verwendende reading> ...
attr <name> mapReadings Rollo1:pct:position Rollo2:pct:position
attr <name> useSetExtensions <flags>
defmod test1 dev_proxy Rollo1 Rollo2
attr test1 mapValues {'*:position'=>{'*'=>'{100-$val}','down'=>'100', 'closed'=>'100', 'up'=>'0', 'open'=>'0', 'open_ack'=>'0', 'off'=>'0', 'on'=>'100'}}
attr test1 setList opens:noArg closes:noArg stop:noArg up:noArg down:noArg position:slider,0,1,100
attr test1 webCmd opens:closes:stop:position
defmod test2 dev_proxy Rollo1
attr test2 observed_readings pos state
attr test2 mapValues {'*:pos'=>{'*'=>'{100-$val}','down'=>'100', 'closed'=>'100', 'up'=>'0', 'open'=>'0', 'open_ack'=>'0', 'off'=>'0', 'on'=>'100'}}
attr test2 setList opens:noArg closes:noArg stop:noArg up:noArg down:noArg pos:slider,0,1,100
attr test2 mapReadings *:position:pos
attr test2 webCmd up:down:stop:pos