Sorry, bin erst jetzt zum ausprobieren gekommen.
Die Checkbox bei der man den On und Off Wert angeben kann funktioniert nicht. Wenn das Level auf 50% ist, ist diese auf dem Zustand aus. Ist ja auch ein nicht definierter Zustand und somit ok. Aber für meinen Fall leider nicht richtig.
Den State "…Manuell" brauche ich. Habe es jetzt ohne getestet und es ging nicht. Wenn ich über die Homematic WebUI den Dimmer auf 50% stelle, springt der Trigger auf Level an und stellt den State "KellerlichtDimmer" auf true. Damit legt der Trigger auf KellerlichtDimmer los und stellt das Level auf 100%, so wie es aus meiner Sicht auch zu erwarten war und richtig ist. Dieses verhalten habe ich mit dem "...Manuell verhindert".
In den Skripten war noch ein Problem, wenn ich über die Checkbox das Licht auf aus geschaltet hatte, ist die Checkbox erst auf aus, dann auf an und dann wieder auf aus gesprungen. Dieses liegt wohl an dem HM Dimmer Einstellungen. Sobald ich aus schalte startet der Trigger auf Level mit dem aktuellen Wert - 0,5 und dieser hatte bisher den State wieder auf true geschalten irgendwann kommt der Trigger dann mit Level 0 und hatte den State wieder auf false gestellt. Funktion war richtig aber es war auf der Oberfläche nicht schön, dieses habe ich jetzt auch noch angepasst. Anbei mein Script so wie ich es für mich jetzt funktioniert.
Danke noch für eure Hilfe!
on("javascript.0.Homematic.KellerlichtDimmer", function(obj) {
if(!getState("javascript.0.Homematic.KellerlichtDimmerManuell").val) {
// setzt den Level auf 100 oder 0, je nachdem ob AN oder AUS gesetz wurde
setState("hm-rpc.0.OEQ0076563.1.LEVEL", (obj.state.val ? 100 : 0));
}
});
on("hm-rpc.0.OEQ0076563.1.LEVEL", function(obj) {
//Wenn der Dimmer per VIS ausgeschalten wird, wird der Trigger erst mit xy,5% ausgeführt und dann mit 0%
//damit die Checkbox nicht aus/an und wieder aus geht, wird hier xy,5% ignoriert
if(obj.state.val % 1 == 0.5) return;
var newVal = (obj.state.val > 0);
if (newVal != getState("javascript.0.Homematic.KellerlichtDimmer").val) {
setState("javascript.0.Homematic.KellerlichtDimmerManuell", true);
setState("javascript.0.Homematic.KellerlichtDimmer", newVal);
setState("javascript.0.Homematic.KellerlichtDimmerManuell", false);
}
});