Background:
openHAB 3.0.2 Release Build
I would like to create an ecmascript rule that is triggered by several events. Within the rule I would like to parse the source trigger events. For the trigger type timer.TimeOfDayTrigger
, event
is not define and I can not use code such as if (event.itemName == '<someName>') {}
to parse the trigger. How do I identify the trigger when the trigger is (in GUI speak) “Add Trigger”->“Time Event”->“at a fixed time of day”->?
Please note that event.itemName
is working for core.ItemsStateChangeTigger
triggers, but not for timer.TimeOfDayTrigger
which does not define event
in my environment.
Example
triggers:
- id: "1"
configuration:
time: 10:50
type: timer.TimeOfDayTrigger
conditions: []
actions:
- inputs: {}
id: "2"
configuration:
type: application/javascript
script: >
var logger =
Java.type('org.slf4j.LoggerFactory').getLogger('org.openhab.rule.' +
ctx.ruleUID);
logger.info('rule running (event: ' + event + ')');
type: script.ScriptAction
This code creates the error
2021-07-26 10:50:01.270 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'b0a16fe1a4' failed: ReferenceError: "event" is not defined in <eval> at line number 2
(note: line 2 refers to the logger line in the format of original code).
What can I test to identify a TimeOfDayTrigger?
Thanks,
john