ich bin leider neu in diesem Stoff, daher ist meine Frage wohl etwas beginnerlike aber dadurch vielleicht schnell zu klären. Mir werden inzwischen alle Google-Links zu dem Thema als gelesen markiert und ich weiß irgendwie nicht mehr weiter:
Ich versuche einen Fibaro Keyfob in mein OpenHAB einzubinden, das scheint auch gemäß events.log grundsätzlich zu funktionieren:
Code: Alles auswählen
[vent.ItemStateChangedEvent] - KeyfobTest_SceneNumber changed from 2.0 to 1.0
Nun möchte ich natürlich die einzelnen Tastenereignisse innerhalb eines .rules-Files auswerten und entsprechenden Kommandos zuordnen. Dazu habe ich ein bei https://community.openhab.org/t/how-to- ... it/41044/4 gefundenes Gerüst verwendet und Informationen von anderer Stelle einfließen lassen. Meine "keyfob.rules" sieht testweise entsprechend nun so aus:
Code: Alles auswählen
rule "Keyfob"
when
Item KeyfobTest received update
then
logInfo("then-Block wird durchlaufen!")
var swState = KeyfobTest.state as Number
var name = "KeyfobRule"
logInfo(name, "Update: " + swState.toString)
switch swState {
case 1.0: {
logInfo(name, "Square1xClick")
StudioRolloRechts_BlindsControl.sendCommand(UP)
}
...
}
end
Frage: Muss ich in der Bedingung einen anderen Item-Name verwenden? Da in der events.log immer von "KeyfobTest_SceneNumber changed..." zu lesen ist, habe ich in der .rules-Datei "KeyfobTest" durch z.B. "Keyfob_SceneNumber" ersetzt. Dann erhalte ich in der openhab.log allerdings folgende Meldung:
Code: Alles auswählen
[ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Keyfob': An error occurred during the script execution: index=1, size=1
Vielen Dank vorab. Ich hoffe die Formatierung ist ok so.