Lesen und setzen von Dimmer Level

Ich habe einen Eventlistener, welcher eine Aktion ausführt (eine andere Variable setzen), wenn der Wert des Dimmers nicht 0.3 ist

$hg->addEvent(
array(
“ID” => “Cinema mode inactive; Lamp 3”,
“TYPE” => “event”,
“ENABLED” => true,
“PEERID” => 3,
“PEERCHANNEL” => 1,
“VARIABLE” => “LEVEL”,
“TRIGGER” => 9,
“TRIGGERVALUE” => “0.3”,
“EVENTMETHOD” => “setSystemVariable”,
“EVENTMETHODPARAMS” => array (“Kinomode”, false)
)
);

Jedoch feuert dieses Event auch, wenn ich den Dimmer auf 0.3 setze. Meine erste Vermutung ist, dass es hier zu Rundungsfehlern zwischen Dezimal und dem Homematic Hex kommt. Jedoch habe ich noch nicht verstanden, wie die Umrechnung funktioniert. So steht in der Debugausgabe von Homegear, das 0.3 gleich 0x3C ist.

Hat jemand eine Idee, wie ich das umgehen kann?

BTW: Was ist der Unterschied zwischen LEVEL und LEVEL_REAL?

Grüße
Sven

Hallo Sven,

im Prinzip sieht das so richtig aus. Rundungsfehler als Ursache könnten sein. Kannst du mir die Logausgabe vom Triggern des Events mit dem vorher empfangenen Paket posten? Was genau “LEVEL_REAL” müsste ich auch schauen. Zumindest kommt LEVEL_REAL nur als Status von den Dimmern zurück und ist nicht setzbar.

Viele Grüße

Sathya