Frage: Wenn Du von knx Taster sprichst, gibt es einen Grund, den Taster nicht selbst toggeln zu lassen?
Gewöhnlich definiert man den Taster als Schalter, der bei jedem Tastendruck den Status wechselt und als Kommando sendet.
Dabei ist es dann auch wichtig, eine zweite GA anzulegen, mit der openHAB dem Taster den aktuellen Status meldet, damit man den Taster nicht zweimal drücken muss, falls die Lampe nicht über knx geschaltet wurde.
Ansonsten ist diese Toggle Funktion nicht als einfaches Command implementiert. Du könntest natürlich zwei Rules anlegen, eine, die das Item einschaltet, falls es gerade aus ist, eine weitere, die das Item ausschaltet, falls es gerade eingeschaltet ist.
Einfacher und effizienter wäre es allerdings, statt "send a command" auszuwählen, solltest Du "run script" auswählen. Anschließend hast Du die freie Wahl. Blockly funktioniert grafisch (wer's mag...) ECMA ist JavaScript (Blockly erzeugt ECMA). Die breiteste Unterstützung wirst Du hier nach wie vor für die DSL Rules finden, weil sie schon in openHAB1 mit an Bord war. Konkret das Toggle:
Code: Alles auswählen
configuration: {}
triggers:
- id: "1"
configuration:
itemName: KNXDeviceTaster_Wohnen
command: ON
type: core.ItemCommandTrigger
conditions: []
actions:
- inputs: {}
id: "2"
configuration:
type: application/vnd.openhab.dsl.rule
script: >2
KNXDeviceSchaltaktoren_Licht.sendCommand(if(KNXDeviceSchaltaktoren_Licht.state != ON) ON else OFF)
type: script.ScriptAction
Falls das Item nicht den Status ON hat, wird der Befehl ON gesendet, ansonsten OFF. Wichtig ist noch die Einschränkung, dass die Rule nur dann ausgeführt wird, wenn der empfangene Befehl ON war.