[SOLVED Huge error. Any thoughts?

Just saw this testing a rule… Has anyone seen this?

Job DEFAULT.2018-07-18T06:44:28.385+10:00: Proxy for org.eclipse.xtext.xbase.lib.Procedures$Procedure0: [ | {
  org.eclipse.xtext.xbase.impl.XIfExpressionImpl@101e34f4
} ] threw an unhandled Exception:
java.lang.NullPointerException: null
        at org.eclipse.smarthome.model.script.engine.ScriptError.<init>(ScriptError.java:66) [137:org.eclipse.smarthome.model.script:0.10.0.oh230]
        at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:132) [137:org.eclipse.smarthome.model.script:0.10.0.oh230]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:901) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:864) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:223) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:219) [137:org.eclipse.smarthome.model.script:0.10.0.oh230]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:203) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:759) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:219) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:219) [137:org.eclipse.smarthome.model.script:0.10.0.oh230]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:203) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluateArgumentExpressions(XbaseInterpreter.java:1115) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._invokeFeature(XbaseInterpreter.java:1045) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeFeature(XbaseInterpreter.java:991) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:143) [137:org.eclipse.smarthome.model.script:0.10.0.oh230]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:901) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:225) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:219) [137:org.eclipse.smarthome.model.script:0.10.0.oh230]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:203) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:457) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:243) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:219) [137:org.eclipse.smarthome.model.script:0.10.0.oh230]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:203) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:446) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:227) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:219) [137:org.eclipse.smarthome.model.script:0.10.0.oh230]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:203) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluate(XbaseInterpreter.java:189) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.xtext.xbase.interpreter.impl.ClosureInvocationHandler.doInvoke(ClosureInvocationHandler.java:46) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.xtext.xbase.interpreter.impl.AbstractClosureInvocationHandler.invoke(AbstractClosureInvocationHandler.java:29) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at com.sun.proxy.$Proxy156.apply(Unknown Source) [?:?]
        at org.eclipse.smarthome.model.script.internal.actions.TimerExecutionJob.execute(TimerExecutionJob.java:49) [137:org.eclipse.smarthome.model.script:0.10.0.oh230]
        at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [107:org.eclipse.smarthome.core.scheduler:0.10.0.oh230]
        at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) [107:org.eclipse.smarthome.core.scheduler:0.10.0.oh230]
06:45:46.141 [ERROR] [org.quartz.core.JobRunShell          ] - Job DEFAULT.2018-07-18T06:44:28.385+10:00: Proxy for org.eclipse.xtext.xbase.lib.Procedures$Procedure0: [ | {
  org.eclipse.xtext.xbase.impl.XIfExpressionImpl@101e34f4
} ] threw an unhandled Exception:
java.lang.NullPointerException: null
        at org.eclipse.smarthome.model.script.engine.ScriptError.<init>(ScriptError.java:66) [137:org.eclipse.smarthome.model.script:0.10.0.oh230]
        at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:132) [137:org.eclipse.smarthome.model.script:0.10.0.oh230]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:901) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:864) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:223) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:219) [137:org.eclipse.smarthome.model.script:0.10.0.oh230]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:203) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:759) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:219) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:219) [137:org.eclipse.smarthome.model.script:0.10.0.oh230]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:203) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluateArgumentExpressions(XbaseInterpreter.java:1115) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._invokeFeature(XbaseInterpreter.java:1045) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeFeature(XbaseInterpreter.java:991) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:143) [137:org.eclipse.smarthome.model.script:0.10.0.oh230]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:901) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:225) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:219) [137:org.eclipse.smarthome.model.script:0.10.0.oh230]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:203) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:457) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:243) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:219) [137:org.eclipse.smarthome.model.script:0.10.0.oh230]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:203) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:446) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:227) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:219) [137:org.eclipse.smarthome.model.script:0.10.0.oh230]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:203) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluate(XbaseInterpreter.java:189) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.xtext.xbase.interpreter.impl.ClosureInvocationHandler.doInvoke(ClosureInvocationHandler.java:46) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at org.eclipse.xtext.xbase.interpreter.impl.AbstractClosureInvocationHandler.invoke(AbstractClosureInvocationHandler.java:29) [156:org.eclipse.xtext.xbase:2.12.0.v20170519-0752]
        at com.sun.proxy.$Proxy156.apply(Unknown Source) [?:?]
        at org.eclipse.smarthome.model.script.internal.actions.TimerExecutionJob.execute(TimerExecutionJob.java:49) [137:org.eclipse.smarthome.model.script:0.10.0.oh230]
        at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [107:org.eclipse.smarthome.core.scheduler:0.10.0.oh230]
        at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) [107:org.eclipse.smarthome.core.scheduler:0.10.0.oh230]
06:45:46.511 [ERROR] [org.quartz.core.ErrorLogger          ] - Job (DEFAULT.2018-07-18T06:44:28.385+10:00: Proxy for org.eclipse.xtext.xbase.lib.Procedures$Procedure0: [ | {
  org.eclipse.xtext.xbase.impl.XIfExpressionImpl@101e34f4
} ] threw an exception.
org.quartz.SchedulerException: Job threw an unhandled exception.
        at org.quartz.core.JobRunShell.run(JobRunShell.java:213) [107:org.eclipse.smarthome.core.scheduler:0.10.0.oh230]
        at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) [107:org.eclipse.smarthome.core.scheduler:0.10.0.oh230]
Caused by: java.lang.NullPointerException
        at org.eclipse.smarthome.model.script.engine.ScriptError.<init>(ScriptError.java:66) ~[?:?]
        at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:132) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:901) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:864) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:223) ~[?:?]
        at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:219) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:203) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:759) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:219) ~[?:?]
        at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:219) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:203) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluateArgumentExpressions(XbaseInterpreter.java:1115) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._invokeFeature(XbaseInterpreter.java:1045) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeFeature(XbaseInterpreter.java:991) ~[?:?]
        at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:143) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:901) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:225) ~[?:?]
        at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:219) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:203) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:457) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:243) ~[?:?]
        at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:219) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:203) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:446) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:227) ~[?:?]
        at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:219) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:203) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluate(XbaseInterpreter.java:189) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.ClosureInvocationHandler.doInvoke(ClosureInvocationHandler.java:46) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.AbstractClosureInvocationHandler.invoke(AbstractClosureInvocationHandler.java:29) ~[?:?]
        at com.sun.proxy.$Proxy156.apply(Unknown Source) ~[?:?]
        at org.eclipse.smarthome.model.script.internal.actions.TimerExecutionJob.execute(TimerExecutionJob.java:49) ~[?:?]
        at org.quartz.core.JobRunShell.run(JobRunShell.java:202) ~[?:?]
        ... 1 more
06:45:46.511 [ERROR] [org.quartz.core.ErrorLogger          ] - Job (DEFAULT.2018-07-18T06:44:28.385+10:00: Proxy for org.eclipse.xtext.xbase.lib.Procedures$Procedure0: [ | {
  org.eclipse.xtext.xbase.impl.XIfExpressionImpl@101e34f4
} ] threw an exception.
org.quartz.SchedulerException: Job threw an unhandled exception.
        at org.quartz.core.JobRunShell.run(JobRunShell.java:213) [107:org.eclipse.smarthome.core.scheduler:0.10.0.oh230]
        at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) [107:org.eclipse.smarthome.core.scheduler:0.10.0.oh230]
Caused by: java.lang.NullPointerException
        at org.eclipse.smarthome.model.script.engine.ScriptError.<init>(ScriptError.java:66) ~[?:?]
        at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:132) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:901) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:864) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:223) ~[?:?]
        at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:219) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:203) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:759) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:219) ~[?:?]
        at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:219) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:203) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluateArgumentExpressions(XbaseInterpreter.java:1115) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._invokeFeature(XbaseInterpreter.java:1045) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeFeature(XbaseInterpreter.java:991) ~[?:?]
        at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:143) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:901) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:225) ~[?:?]
        at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:219) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:203) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:457) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:243) ~[?:?]
        at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:219) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:203) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:446) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:227) ~[?:?]
        at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:219) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:203) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluate(XbaseInterpreter.java:189) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.ClosureInvocationHandler.doInvoke(ClosureInvocationHandler.java:46) ~[?:?]
        at org.eclipse.xtext.xbase.interpreter.impl.AbstractClosureInvocationHandler.invoke(AbstractClosureInvocationHandler.java:29) ~[?:?]
        at com.sun.proxy.$Proxy156.apply(Unknown Source) ~[?:?]
        at org.eclipse.smarthome.model.script.internal.actions.TimerExecutionJob.execute(TimerExecutionJob.java:49) ~[?:?]
        at org.quartz.core.JobRunShell.run(JobRunShell.java:202) ~[?:?]
        ... 1 more

You have a lambda (code defined between [ ]) like in a createTimer or forEach or you may have defined your own. This lambda is throwing an exception for some reason. I’m going to assume that it is a Timer that is throwing an exception. Add logging to all of your Timer bodies to narrow it down to what Timer and what line is generating the error. Often the problem becomes obvious once you see the line.

The error is a NullPointerException, but unfortunately that doesn’t tell us much. Whenever the Rules DSL encounters a type missmatch it will throw an Exception so it could be that one of your Items is NULL or you are trying to use an Item’s state in a way it doesn’t support.

Thanks for the explaination rikoshak. Yes, I have a Timer

Here is the rule:


var Timer Eye1_Timer = null
val Integer Eye1_TimeOut = 1

rule "FibaroEye1 motion detection turns ON Living Room Lights when Lux is less than 20, with a 1 Minute Inactivity Timer"
when
        Item FibaroEye1Alarm changed to ON
then
        if (FibaroEye1Lux.state < 20 ) {
                if (Eye1_Timer !== null) {
                        LivingRoomDim1.sendCommand("10")
                        logInfo("FibaroEye1Motion","Eye1 Timer rescheduled for " + Eye1_TimeOut + " minutes")
                        Eye1_Timer.reschedule(now.plusMinutes(Eye1_TimeOut))
                } else {
                        logInfo("FibaroEye1Motion", "Eye1 Motion Detected! Turning ON Living Room Lights")
                        LivingRoomDim1.sendCommand("10")
                        logInfo("FibaroEye1Motion","Eye1 Timer created with " + Eye1_TimeOut + " minutes")
                        Eye1_Timer = createTimer(now.plusMinutes(Eye1_TimeOut))
                        [|
                                if (FibaroEye1Motion.state ==  OFF) {
                                        logInfo("FibaroEye1Motion","Eye1 Timer triggered, but rescheduled again for " + Eye1_TimeOut + " minutes")
                                        Eye1_Timer.reschedule(now.plusMinutes(Eye1_TimeOut))
                                } else {
                                        logInfo("FibaroEye1Motion", "Eye1 No Motion Detected! Turning OFF Living Room Lights")
                                        LivingRoomSw1.sendCommand("OFF")
                                        Eye1_Timer = null
                                }
                        ]
                }
        }
end

Well, as I said above. Add logging to find the line generating the error. From there you will know what Items/variables to check the values of and that should tell you what is wrong.

1 Like

You need to add a space between the [ and the | of the lambda

                        ....
                        logInfo("FibaroEye1Motion","Eye1 Timer created with " + Eye1_TimeOut + " minutes")
                        Eye1_Timer = createTimer(now.plusMinutes(Eye1_TimeOut))
                        [ |
                                if (FibaroEye1Motion.state ==  OFF) {
                                        logInfo("FibaroEye1Motion","Eye1 Timer triggered, but rescheduled again for " + Eye1_TimeOut + " minutes")
                                        ....

1 Like

That is true, that error is usually a syntax error caught when the .rules files i loaded and parsed. In this case the Timer body is running but throwing an exception. @dastrix80, are you running OH 2.2 or an early 2.3 SNAPSHOT?

1 Like

Hi Gents,

Im running 2.3 stable. Ill add the space now and test tonight, thank you guys

btw, I have this rule running on OH2.4 S1313 and it works fine (without a space) and I have no validation errors.

Interesting. Do you have any forEach and do you need the space there still?

I wonder if whatever changed early in the 2.3 SNAPSHOTS got changed back in the 2.4 SNAPSHOTS.

Nope. The entire rule is:

var	Timer	FE01_Timer = null
val	Integer	FE01_TimeOut = 5

rule "FE01_ON" // FibEye01 motion detection turns ON Staircase LEDs when dark
when
	Item FibEye01_Movement changed from 0 to 1
then
	if (FibEye01_Lux.state < 80 ) {
		if (FE01_Timer !== null) {
			WDim01_Dim.sendCommand(100)
			logInfo("FE01","FE01 Timer rescheduled for " + FE01_TimeOut + " minutes")
			FE01_Timer.reschedule(now.plusMinutes(FE01_TimeOut))
		} else {
			logInfo("FE01", "FE01 Motion Detected! Turn ON Staircase LEDs")
			WDim01_Dim.sendCommand(100)
			logInfo("FE01","FE01 Timer created with " + FE01_TimeOut + " minutes")
			FE01_Timer = createTimer(now.plusMinutes(FE01_TimeOut))
			[|
				if (FibEye01_Movement.state ==  1) {
					logInfo("FE01","FE01 Timer triggered, but rescheduled again for " + FE01_TimeOut + " minutes")
					FE01_Timer.reschedule(now.plusMinutes(FE01_TimeOut))
				} else {
					logInfo("FE01", "FE01 No Motion Detected! Turn OFF Staircase LEDs")
					WDim01_Dim.sendCommand(0)
					FE01_Timer = null
				}
			]
		}
	}
end

by the way: the docs entry shows an example without space: https://www.openhab.org/docs/configuration/actions.html#timers

I have not seen any validation error since I first introduced this rule (back in 2.1)

The only update that I had to do (around 2.2 I think) was:
from if (FE01_Timer != null) to if (FE01_Timer !== null)

We know, there are a number of updates like that that have been missed. Though if the space is no longer an issue then the update doesn’t need to be made. I asked about the forEach because maybe the space is only needed for forEach/filter/sortBy/et. al.

1 Like

With space is working for me, without errors :slight_smile:

Hi Dim,

Ive having issues with this rule. I suspect ive got something wrong :frowning:

The motion sensor is off, and its been past 2 minutes, but the lights are still on. Any thoughts? Thankyou!

The only item that detects motion is the Alarm_general or the Switch ‘FibaroEye1Alarm’. 'FibaroEye1Motion never changes to 1 from 0.


openhab> smarthome:status FibaroEye1Alarm
OFF

The rule… There must be an error in this rule, under the final if statement, shouldnt there be a sendCommand for the lights to go off? All i see is the state changing to OFF and the timer just constantly restarting.


val Integer Eye1_TimeOut = 2

rule "FibaroEye1 motion detection turns ON Living Room Lights when Lux is less than 20, with a 2 Minute Inactivity Timer"
when
        Item FibaroEye1Alarm changed to ON
then
        if (FibaroEye1Lux.state < 20 ) {
                if (Eye1_Timer !== null) {
                        LivingRoomDim1.sendCommand("5")
                        logInfo("FibaroEye1Motion","Eye1 Timer rescheduled for " + Eye1_TimeOut + " minutes")
                        Eye1_Timer.reschedule(now.plusMinutes(Eye1_TimeOut))
                } else {
                        logInfo("FibaroEye1Motion", "Eye1 Motion Detected! Turning ON Living Room Lights")
                        LivingRoomDim1.sendCommand("5")
                        logInfo("FibaroEye1Motion","Eye1 Timer created with " + Eye1_TimeOut + " minutes")
                        Eye1_Timer = createTimer(now.plusMinutes(Eye1_TimeOut))
                        [ |
                                if (FibaroEye1Alarm.state ==  OFF) {
                                        logInfo("FibaroEye1Motion","Eye1 Timer triggered, but rescheduled again for " + Eye1_TimeOut + " minutes")
                                        Eye1_Timer.reschedule(now.plusMinutes(Eye1_TimeOut))
                                } else {
                                        logInfo("FibaroEye1Motion", "Eye1 No Motion Detected! Turning OFF Living Room Lights")
                                        LivingRoomSw1.sendCommand("OFF")
                                        Eye1_Timer = null
                                }
                        ]
                }
        }
end

And my motion sensor items:


/*ZWave Motion Sensor Near Bifolds*/
Group FibaroEye1                    "Motion Sensor"                                         (Zwave)
Number FibaroEye1Lux                 "Motion Sensor [%.2f Lux]"   <sun>       (FibaroEye1)      { channel="zwave:device:512:node10:sensor_luminance" }
Number FibaroEye1Battery             "Motion Sensor [%.1f %%]"      <battery>    (FibaroEye1)     { channel="zwave:device:512:node10:battery-level" }
Number FibaroEye1Temp                "Motion Sensor [%.1f C]"     <temperature>(FibaroEye1)     { channel="zwave:device:512:node10:sensor_temperature" }
Number FibaroEye1Motion              "Motion Sensor Motion [%s]"               (FibaroEye1)     { channel="zwave:device:512:node10:sensor_binary" }
Switch FibaroEye1Alarm               "Motion Sensor Alarm [%s]"   <fire>   (FibaroEye1)         { channel="zwave:device:512:node10:alarm_general" }
Switch FibaroEye1AlarmBurglar        "Motion Sensor Alarm b [%s]" <fire>   (FibaroEye1)         { channel="zwave:device:512:node10:alarm_burglar" }
Number FibaroEye1Seismic             "Motion Sensor Seismic [%f]"                (FibaroEye1)   { channel="zwave:device:512:node10:sensor_seismicintensity" }

So I reset it by removing the battery.

It switches on under motion, great. But then it just automagically detects motion and resets the timer and never turns off :confused:

Geeeeeeeeeeeeeeeeeeeez


21:55:08.527 [INFO ] [smarthome.event.ItemStateChangedEvent] - FibaroEye1Alarm changed from ON to OFF
21:55:09.471 [INFO ] [smarthome.event.ItemStateChangedEvent] - FibaroEye1Alarm changed from OFF to ON
21:55:09.472 [INFO ] [smarthome.event.ItemCommandEvent     ] - Item 'LivingRoomDim1' received command 5
21:55:09.471 [INFO ] [marthome.model.script.FibaroEye1Alarm] - Eye1 Timer rescheduled for 1 minutes

Then there is nothing in the rule that can mitigate this problem. You need to check if the FibEye unit is faulty and RMA it if necessary.

Dim, how on your rule does it ever reach the ‘else’ statement where the OFF is sent?

I read this as it just checks state, writes a log entry and the time is rescheduled. It never goes to the ‘else’ at the end where it has the sendCommand(“OFF”)

var Timer Eye1_Timer = null
val Integer Eye1_TimeOut = 1



rule "FibaroEye1 motion detection turns ON Living Room Lights when Lux is less than 20, with a 2 Minute Inactivity Timer"
when
        Item FibaroEye1Alarm changed to ON
then
        if (FibaroEye1Lux.state < 20 ) {
                if (Eye1_Timer !== null) {
                        LivingRoomSw1.sendCommand("ON")
                        logInfo("FibaroEye1Motion","Eye1 Timer rescheduled for " + Eye1_TimeOut + " minutes")
                        Eye1_Timer.reschedule(now.plusMinutes(Eye1_TimeOut))
                } else {
                        logInfo("FibaroEye1Motion", "Eye1 Motion Detected! Turning ON Living Room Lights")
                        LivingRoomSw1.sendCommand("ON")
                        logInfo("FibaroEye1Motion","Eye1 Timer created with " + Eye1_TimeOut + " minutes")
                        Eye1_Timer = createTimer(now.plusMinutes(Eye1_TimeOut))
                        [ |
                                if (FibaroEye1Alarm.state ==  OFF) {
                                        logInfo("FibaroEye1Motion","Eye1 Timer triggered, but rescheduled again for " + Eye1_TimeOut + " minutes")
                                        Eye1_Timer.reschedule(now.plusMinutes(Eye1_TimeOut))
                                } else {
                                        logInfo("FibaroEye1Motion", "Eye1 No Motion Detected! Turning OFF Living Room Lights")
                                        LivingRoomSw1.sendCommand("OFF")
                                        Eye1_Timer = null
                                }
                        ]
                }
        }
end

The logic in my rule is a bit messed up (like spaghetti) but it works :slight_smile:

It reaches at the end of the rule when:

  1. There has been a motion detected for the first time (so I create a timer)
  2. While within the timer duration there has been no other motion detected.

edit: the second if should be checking for ON

if (FibaroEye1Alarm.state ==  ON) {
1 Like

Hmm. Well theres been no motion detected, or I’d see the FibaroEye1Alarm changed to ON, but it doesnt send the OFF command :frowning:

AHHHHHHHHHHHHHHHH

That makes sense :smiley: lol. Let me test that…

1 Like

Thats it Dim :smiley: You’re original post I copied verbatim. It seems you had an error in it :wink:

Its working now!

22:26:47.058 [INFO ] [arthome.model.script.FibaroEye1Motion] - Eye1 No Motion Detected! Turning OFF Living Room Lights
22:26:47.060 [INFO ] [smarthome.event.ItemCommandEvent     ] - Item 'LivingRoomSw1' received command OFF
22:26:47.062 [INFO ] [smarthome.event.ItemStateChangedEvent] - LivingRoomSw1 changed from ON to OFF
22:26:47.168 [INFO ] [smarthome.event.ItemStateChangedEvent] - LivingRoomDim1 changed from 5 to 0
1 Like