Herzlich willkommen im openHAB Forum!
Grundsätzlich ist es so, dass openHAB der Chef ist. Mithin wird alles, was empfangen wird, als Status betrachtet, es sei denn, man sorgt dafür, dass es als Befehl interpretiert wird.
Du hast leider nicht angegeben, welche Version von openHAB Du verwendest, da gibt es immer ein paar "steht erst ab x.y zur Verfügung".
Zum Glück musst Du aber auch nicht unbedingt auf
received command triggern, ein
received update geht auch.
Aber weiter: Ein Switch Item kennt erst mal zwei Status,
ON und
OFF.
ON ist etwas anderes als
on und noch mal etwas anderes als
"on" oder
"ON". (in Anführungszeichen handelt es sich um einen String, nicht um einen Status).
In openHAB ist grundsätzlich die Groß/Kleinschreibung für jeden einzelnen Buchstaben zu beachten. In der Konfiguration kannst Du immer davon ausgehen, dass die Schreibweise camelCase ist, das heißt, ein Schlüseelwort, welches eigentlich aus mehreren aneinandergereihten Schlüsselworten besteht wird an den betreffenden Stellen durch einen einzelnen Großbuchstaben gekennzeichnet. In den Rules ist das bei den Actions auch so, z.B.
sendCommand(). Bei den Status werden ausschließlich Großbuchstaben verwendet, also ON, CLOSED, PLAY usw. Das gilt auch für Befehle, z.B. UP oder STOP.
Du kannst im
events.log von openHAB jederzeit nachschauen, was openHAB empfängt und in welchem Item es das speichert. Allerdings mit einer Einschränkung: Wenn ein Item seinen Status nicht ändert (also mehrfach hintereinander der gleiche Wert empfangen wird) wird das ignoriert, falls es nicht explizit im Logging aktiviert wurde. Schau also bitte mal ins Log, ob dort etwas passiert, wenn Du den Taster drückst und loslässt.
Deine Rule zum toggeln der Lampe wäre so sinnvoll:
Code: Alles auswählen
rule "Tischlampe Manu Büro"
when
Item TRADFRI_Button_1_A received update ON
then
TRADFRI_E14_W_1_SW.sendCommand(if(TRADFRI_E14_W_1_SW.state == ON) OFF else ON)
end
Also: Sende an das Item
TRADFRI_E14_W_1_SW einen Befehl. Falls der Status gerade ON ist, sende OFF, sonst ON. Das
if() wird hier als ternärer Operator verwendet, das ist nicht ganz so gut lesbar, aber schön kurz...
Da es sich hier sowohl beim Knopf als auch bei der Lampe um ein Tradfri Gerät handelt und ich mich mit dem Krempel nicht auskenne: Kann man die Tradfri Geräte nicht direkt koppeln? Meine Empfehlung wäre, wann immer möglich den direkten Weg zu gehen, statt des Umwegs über openHAB. Der Hintergrund ist einfach, dass die Taste dann auch noch funktioniert, wenn openHAB mal ausfallen sollte (was es natürlich nicht sollte...)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet