55class tradfridevices extends tradfri
66 {
77
8+ function getDimmer ($ Id ){
9+
10+ $ dimid = $ this ->getDetails ("15001/ $ Id " );
11+
12+ return $ dimid ['3311 ' ]['0 ' ][DIMMER ];
13+
14+ }
15+
816 function getIds (){
917
1018 return explode (", " , trim (str_replace (['[ ' ,'] ' ], "" ,strstr ($ this ->query ("15001 " ), '[65 ' ))));
@@ -58,7 +66,7 @@ function poweroff($path){
5866 }
5967
6068 else
61- return " Gerät kann nicht ausgeschalet werden, da es keine Lampe ist " ;
69+ return $ this -> getName ( " 15001/ $ device " ). " konnte nicht ausgeschaltet werden, da es keine Lampe ist " ;
6270
6371 }
6472
@@ -75,7 +83,28 @@ function poweron($path){
7583 }
7684
7785 else
78- return "Gerät konnte nicht eingeschaltet werden, da es keine Lampe ist " ;
86+ return $ this ->getName ("15001/ $ device " )." konnte nicht eingeschaltet werden, da es keine Lampe ist " ;
87+
88+ }
89+
90+ function setDimmer ($ path , $ dimmer , $ transition = NULL ){
91+
92+ if ($ this ->getTypeId ($ path ) == TYPE_LIGHT ){
93+
94+ $ dim = round (254 * (int )str_replace ("% " , "" , trim ($ dimmer )) / 100 , 0 );
95+
96+ $ payload = is_null ($ transition ) ? '{ "3311": [{ "5851" : ' .$ dim .' }] }" : "{ "3311": [{ "5851": ' .$ dim .', "5712": ' .$ transition .' }] } ' ;
97+ $ this ->action ("put " , $ payload , "15001/ $ path " );
98+
99+ if ($ this ->getDimmer ($ path ) == $ dim )
100+ return $ this ->getName ("15001/ $ path " )." wurde auf {$ dimmer } gedimmt " ;
101+ else
102+ return $ this ->getName ("15001/ $ path " )." konnte nicht auf {$ dimmer } gedimmt werden " ;
103+
104+ }
105+
106+ else
107+ return $ this ->getName ("15001/ $ device " )." konnte nicht gedimmt werden, da es keine Lampe ist " ;
79108
80109 }
81110
0 commit comments