My journey to migrate from OH1 to OH2 continues, working through rules the following no longer works:
import org.joda.time.*
import java.util.concurrent.locks.ReentrantLock
import java.util.Date
import java.util.Calendar
val int LANDING_DELAY_SECONDS = 15
var Timer landing_hwTimer = null
var ReentrantLock landing_hwLock = new ReentrantLock(false)
rule "Landing Motion"
when
Item LandingMotion changed from CLOSED to OPEN
then
logInfo("lightsLanding", "Landing Motion Timer lights ON")
//if (TimeOfDay.state.toString == "Evening" || TimeOfDay.state.toString == "Night" || TimeOfDay.state.toString == "Dawn"){
if (Elevation.state < 1.6){
logInfo("lightsLanding", "Landing Motion Night Time")
sendCommand(LandingLightLoadLevelStatus, 80)
}
landing_hwLock.lock
if (landing_hwTimer != null) {
landing_hwTimer.cancel
logInfo("lightsLanding", "Landing Motion Timer Cancel")
}
landing_hwTimer = createTimer(now.plusSeconds(LANDING_DELAY_SECONDS)) [
landing_hwTimer = null
logInfo("lightsLanding", "Landing Motion Timer lights OFF")
if (TimeOfDay.state.toString == "Evening") {
sendCommand(LandingLightLoadLevelStatus, 10)
}
else {
sendCommand(LandingLightStatus, OFF)
}
]
landing_hwLock.unlock
end
giving the following exception:
2016-11-18 06:19:51.281 [ERROR] [org.quartz.core.JobRunShell ] - Job DEFAULT.2016-11-18T06:19:51.262Z: Proxy for org.eclipse.xtext.xbase.lib.Procedures$Procedure0: [ {
<null>.landing_hwTimer = <XNullLiteralImplCustom>
logInfo(<XStringLiteralImpl>,<XStringLiteralImpl>)
org.eclipse.xtext.xbase.impl.XIfExpressionImpl@1a508
} ] threw an unhandled Exception:
java.lang.RuntimeException: The name '<XFeatureCallImplCustom>.state' cannot be resolved to an item or type.
at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:112)[127:org.eclipse.smarthome.model.script:0.9.0.201611161058]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:763)[143:org.eclipse.xtext.xbase:2.9.2.v20160428-1452]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:219)[143:org.eclipse.xtext.xbase:2.9.2.v20160428-1452]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:203)[143:org.eclipse.xtext.xbase:2.9.2.v20160428-1452]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:759)[143:org.eclipse.xtext.xbase:2.9.2.v20160428-1452]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:219)[143:org.eclipse.xtext.xbase:2.9.2.v20160428-1452]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:203)[143:org.eclipse.xtext.xbase:2.9.2.v20160428-1452]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:900)[143:org.eclipse.xtext.xbase:2.9.2.v20160428-1452]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:225)[143:org.eclipse.xtext.xbase:2.9.2.v20160428-1452]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:203)[143:org.eclipse.xtext.xbase:2.9.2.v20160428-1452]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:457)[143:org.eclipse.xtext.xbase:2.9.2.v20160428-1452]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:243)[143:org.eclipse.xtext.xbase:2.9.2.v20160428-1452]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:203)[143:org.eclipse.xtext.xbase:2.9.2.v20160428-1452]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:446)[143:org.eclipse.xtext.xbase:2.9.2.v20160428-1452]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:227)[143:org.eclipse.xtext.xbase:2.9.2.v20160428-1452]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:203)[143:org.eclipse.xtext.xbase:2.9.2.v20160428-1452]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluate(XbaseInterpreter.java:189)[143:org.eclipse.xtext.xbase:2.9.2.v20160428-1452]
at org.eclipse.xtext.xbase.interpreter.impl.ClosureInvocationHandler.doInvoke(ClosureInvocationHandler.java:46)[143:org.eclipse.xtext.xbase:2.9.2.v20160428-1452]
at org.eclipse.xtext.xbase.interpreter.impl.AbstractClosureInvocationHandler.invoke(AbstractClosureInvocationHandler.java:29)[143:org.eclipse.xtext.xbase:2.9.2.v20160428-1452]
at com.sun.proxy.$Proxy124.apply(Unknown Source)[:]
at org.eclipse.smarthome.model.script.internal.actions.TimerExecutionJob.execute(TimerExecutionJob.java:38)[127:org.eclipse.smarthome.model.script:0.9.0.201611161058]
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)[102:org.eclipse.smarthome.core.scheduler:0.9.0.201611161058]
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)[102:org.eclipse.smarthome.core.scheduler:0.9.0.201611161058]
Thanks
James