I have realized that different to other triggers the CronTrigger is not filling inputs.
Here modified Hello World from the examples:
from core.rules import rule
from core.triggers import StartupTrigger, CronTrigger, ItemStateUpdateTrigger
from core.log import logging, LOG_PREFIX
log = logging.getLogger(LOG_PREFIX + ".hello.log")
@rule("Jython Hello World (CronTrigger extension with rule decorator)", description="This is an example rule using a CronTrigger extension and rule decorator", tags=["Example rule tag"])
class ExampleExtensionRule(object):
def __init__(self):
self.triggers = [StartupTrigger("START").trigger,
CronTrigger("0/10 * * * * ?", "CRON").trigger,
ItemStateUpdateTrigger("proxySW", None, "SWI").trigger]
def execute(self, module, inputs):
for key in inputs:
log.info('key: {}, item: {}'.format(key, inputs[str(key)]))
log.info("Hello World!")
The log output for the startup is:
2020-03-10 09:49:43.171 [DEBUG] [e.automation.internal.RuleEngineImpl] - The trigger 'START_1569e5a162ac11ea880b25d59a83eade' of rule 'aa50c377-aead-46bb-81c1-7184eebaff53' is triggered.
2020-03-10 09:49:43.188 [INFO ] [jsr223.jython.hello.log ] - key: START_1569e5a162ac11ea880b25d59a83eade.startup, item: 1
2020-03-10 09:49:43.204 [INFO ] [jsr223.jython.hello.log ] - key: startup, item: 1
2020-03-10 09:49:43.213 [INFO ] [jsr223.jython.hello.log ] - key: module, item: START_1569e5a162ac11ea880b25d59a83eade
2020-03-10 09:49:43.219 [INFO ] [jsr223.jython.hello.log ] - Hello World!
2020-03-10 09:49:43.222 [DEBUG] [e.automation.internal.RuleEngineImpl] - The rule 'aa50c377-aead-46bb-81c1-7184eebaff53' is executed.
the item trigger:
2020-03-10 09:57:14.182 [INFO ] [jsr223.jython.hello.log ] - key: event, item: proxySW updated to OFF
2020-03-10 09:57:14.189 [INFO ] [jsr223.jython.hello.log ] - key: SWI_156b1e1e62ac11ea85e225d59a83eade.state, item: OFF
2020-03-10 09:57:14.197 [INFO ] [jsr223.jython.hello.log ] - key: SWI_156b1e1e62ac11ea85e225d59a83eade.event, item: proxySW updated to OFF
2020-03-10 09:57:14.204 [INFO ] [jsr223.jython.hello.log ] - key: module, item: SWI_156b1e1e62ac11ea85e225d59a83eade
2020-03-10 09:57:14.210 [INFO ] [jsr223.jython.hello.log ] - Hello World!
The cron trigger thou delivers empty inputs:
2020-03-10 09:58:10.302 [DEBUG] [e.automation.internal.RuleEngineImpl] - The trigger 'CRON_156aa8ee62ac11ea899425d59a83eade' of rule 'aa50c377-aead-46bb-81c1-7184eebaff53' is triggered.
2020-03-10 09:58:10.308 [INFO ] [jsr223.jython.hello.log ] - Hello World!
This does not seem to be consistent, at least “module” should be populated with the trigger name