deconz legt für den Aqara Cube 2 sensor devices an: Eins für die Flips und Swipes (und drop und double-tap), und eins für die rotation.
Mein Device für die Flips:
defmod ZW.Flip HUEDevice sensor 17 IODev=deCONZ
attr ZW.Flip IODev deCONZ
attr ZW.Flip room System->HUEDevice
attr ZW.Flip stateFormat action (side)
attr ZW.Flip userReadings first \
{\
my $string = ReadingsVal($name,"state","");;;;\
my $first = substr($string, 0, 1);;;;\
if($first gt "0" and $first lt "7")\
{\
return $first\
}\
else\
{\
return 'unknown'\
}\
}, \
last \
{\
my $string = ReadingsVal($name,"state","");;;;\
my $last = substr($string, 3, 1);;;; \
if($last gt "0" and $last lt "7")\
{\
return $last\
}\
else\
{\
return 'unknown'\
}}, \
action \
{\
my $string = ReadingsVal($name,"state","");;;;\
my $first = substr($string, 0, 1);;;; \
my $last = substr($string, 3, 1);;;; \
if ($string eq "7007") {return 'shake'}\
elsif($string eq "7008") {return 'drop'}\
elsif ($first eq $last) {return 'doubletap'} \
elsif ($last eq "0") {return 'swipe'} \
elsif ($string =~ /(1006|2005|3004|4003|5002|6001)/) {return 'flip180'}\
elsif ($string =~ /(1002|1003|1004|1005|2001|2003|2004|2006|3001|3002|3005|3006|4001|4002|4005|4006|5001|5003|5004|5006|6002|6003|6004|6005)/)\
{\
return 'flip90'\
}\
else {return 'unknown'}}, \
side \
{\
my $string = ReadingsVal($name,"state","");;;;\
my $first = substr($string, 0, 1);;;; \
if ($first eq "1") {return 'upper'} \
elsif ($first eq "2") {return 'behind'} \
elsif ($first eq "3") {return 'left'} \
elsif ($first eq "4") {return 'right'} \
elsif ($first eq "5") {return 'front'} \
elsif ($first eq "6") {return 'under'} \
else {return 'unknown'}}, \
last_side \
{\
my $string = ReadingsVal($name,"state","");;;; \
my $last = substr($string, 3, 1);;;; \
if ($last eq "1") {return 'upper'} \
elsif ($last eq "2") {return 'behind'} \
elsif ($last eq "3") {return 'left'} \
elsif ($last eq "4") {return 'right'} \
elsif ($last eq "5") {return 'front'} \
elsif ($last eq "6") {return 'under'} \
else {return 'unknown'}}
Und für Rotate:
defmod ZW.Rotate HUEDevice sensor 18 IODev=deCONZ
attr ZW.Rotate IODev deCONZ
attr ZW.Rotate room System->HUEDevice
attr ZW.Rotate stateFormat rotate
attr ZW.Rotate userReadings rotate {\
\
my $state = ReadingsVal($name,"state","");;\
if ($state gt 0)\
{\
return 'right'\
}\
elsif ($state lt 0)\
{\
return 'left'\
}\
else\
{\
return 'unknown'\
}\
}
Ich werte dann in einem DOIF die Stati der beiden Sensoren aus und führe Aktionen aus.