Die Frage ist, ob das Topic immer diesen Inhalt hat (natürlich mit abweichenden Werten, aber eben z.B. immer mit einem JSONPATH $.action).
Grundsätzlich kommen alle Payloads im jeweiligen Channel über das stateTopic an. Um im obigen JSON Objekt den Wert on_press_release geliefert zu bekommen, musst Du zusätzlich eine incomming value transformation definieren, in diesem Fall eben
JSONPATH:$.action.
Als Channel Typ musst Du string verwenden, oder noch weitere Werte in der Konfiguration setzen, wobei Du Dich dann aber einschränkst.
Im nächsten Schritt brauchst Du eine Rule, welche entweder einen Channel Trigger eingetragen hat, oder alternativ verlinkst Du den Channel mit einem String Item und triggerst auf eine Änderung dieses Items.
Innerhalb der Rule musst Du dann für alle Möglichkeiten, die in dem Channel empfangen werden entsprechendes Verhalten programmieren.
Z.B. Licht bei jedem Loslassen des Tasters umschalten (aus ON wird OFF und umgekehrt):
Code: Alles auswählen
rule "toggle Licht"
when
Item MeinHueSwitch changed // MeinHueSwitch ist ein String Item,
// welches mit dem passenden Channel verknüpft ist
then
if(MeinHueSwitch.state.toString == "on_press_release") // Wenn der Taster losgelassen wurde
Licht.sendCommand(if(Licht.state != ON) ON else OFF) // Falls Zustand ungleich ON, sende ON, sonst OFF
end
Viel Handarbeit, dafür ist man aber auch sehr flexibel, denkbar wäre z.B. Erkennung von Doppelklick/Trippelklick/Langer/Kurzer Tastendruck/Morsecode...
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet