Wenn ich gemein sein wollte... Alles
Aber tröste Dich, es gibt so viele Möglichkeiten mit openHAB, da sieht man manchmal die "korrekte" (im Sinne von "sauberste") Lösung nicht.
Punkt eins ist schon der Trigger der Rule. Ein Taster wird nicht mit einem Item verkoppelt, stattdessen verwendet man in der Rule einen Channel Trigger.
https://www.openhab.org/addons/bindings ... ic/#button zeigt das beispielhaft:
Code: Alles auswählen
rule "example trigger rule"
when
Channel 'homematic:HM-RC-19-B:ccu:KEQ0012345:1#BUTTON' triggered SHORT_PRESSED
then
...
end
Punkt zwei ist das Toggeln des Schaltzustands. Da es sich bei der Lampe um ein Color Item handelt, hast Du als Status gewöhnlich HSBType, was es etwas unpraktisch macht. Man könnte nun versuchen, HSBType nach String zu konvertieren, aber die kleinste Abweichung - warum auch immer - und die Rule funktioniert nicht mehr.
Zum Glück gibt es aber die Möglichkeit, explizit einen bestimmten Status abzurufen (sofern dieser grundsätzlich vom Item unterstützt wird).
Code: Alles auswählen
rule "example trigger rule"
when
Channel 'homematic:HM-RC-19-B:ccu:KEQ0012345:1#BUTTON' triggered SHORT_PRESSED
then
Wohnzimmer_mitte_Farbe.sendCommand(if(Wohnzimmer_mitte_Farbe.getStateAs(OnOffType) != ON) ON else OFF)
end
Den Trigger musst Du natürlich anpassen
der Rest sollte aber 1:1 funktionieren.
.getStateAs(OnOffType) liefert für die Helligkeit 0 OFF, ansonsten ON.
.getStateAs(PercentType) sollte ebenfalls funktionieren und dann den reinen Helligkeitswert liefern (also 0 - 100).
Den HSBType könntest Du auch so auswerten:
Code: Alles auswählen
Wohnzimmer_mitte_Farbe.sendCommand(if((Wohnzimmer_mitte_Farbe.state as HSBType).brightness != 0) OFF else ON)
Erscheint aber vergleichsweise umständlich...