- Platform information:
- Hardware: Raspberry Pi 3 Model B
- OS: Raspbian GNU/Linux 9 (stretch)
- Java Runtime Environment: OpenJDK Runtime Environment (build 1.8.0_242-8u242-b08-1~deb9u1-b08)
- openHAB version: 2.5.3-1
With no apparent reason, one specific rule just stop working after some hours while two others continue working without any problem.
val actions = getActions("mqtt","mqtt:systemBroker:embedded-mqtt-broker")
var Timer offTimer = null
val Number hours = now.getHourOfDay
rule "Sensor 433mhz Sonoff Bridge"
when
Item Sensor433mhz changed or
Channel "mqtt:systemBroker:embedded-mqtt-broker:MQTT433mhz" triggered
then
switch Sensor433mhz.state {
case "79E006": {
if ((hours > 19 || hours < 3)
&& Luz_Entrada_Frente.state.toString !== "ON") {
actions.publishMQTT("cmnd/LuzEntradaFrente/POWER", "ON")
if(Alexa_Boas_Vindas.state == ON) {
offTimer = createTimer(now.plusSeconds(10), [|
if(Sensor433mhz.state.toString == "29E006" || Sensor433mhz.state.toString == "1961E6") {
Conta_Alexa.sendCommand(Alexa_Msg_Boas_Vindas.state.toString)
}
])
}
offTimer = createTimer(now.plusSeconds(20), [|
actions.publishMQTT("cmnd/LuzEntradaFrente/POWER", "OFF")
])
}else if(Alexa_Boas_Vindas.state == ON) {
offTimer = createTimer(now.plusSeconds(10), [|
if(Sensor433mhz.state.toString == "29E006" || Sensor433mhz.state.toString == "1961E6") {
Conta_Alexa.sendCommand(Alexa_Msg_Boas_Vindas.state.toString)
}
])
}
}
case "7CAC81": {
Alarme.sendCommand(ON)
}
case "7CAC82": {
Alarme.sendCommand(OFF)
}
}
if(Sensor433mhz.state.toString !== "") {
offTimer = createTimer(now.plusMinutes(1), [|
Sensor433mhz.postUpdate("")
])
}
end
Strange thing here is, I only have to get inside rule, save it and BAM, it starts working again.
So this is the events.log BEFORE I hit save:
2020-03-31 21:11:23.135 [vent.ChannelTriggeredEvent] - mqtt:systemBroker:embedded-mqtt-broker:MQTT433mhz triggered {"Time":"2020-03-31T21:11:22","RfReceived":{"Sync":12630,"Low":420,"High":1240,"Data":"79E006","RfKey":"None"}}
2020-03-31 21:11:23.163 [vent.ItemStateChangedEvent] - Sensor433mhz changed from to 79E006
And this is the events.log AFTER I hit save:
2020-03-31 21:12:56.275 [vent.ChannelTriggeredEvent] - mqtt:systemBroker:embedded-mqtt-broker:MQTT433mhz triggered {"Time":"2020-03-31T21:12:56","RfReceived":{"Sync":12610,"Low":410,"High":1250,"Data":"79E006","RfKey":"None"}}
2020-03-31 21:12:56.297 [vent.ItemStateChangedEvent] - Sensor433mhz changed from to 79E006
2020-03-31 21:12:58.336 [vent.ItemStateChangedEvent] - Luz_Entrada_Frente changed from OFF to ON
Now, on my openhab.log file I do have some weird things happening after I have hit save on that rule:
2020-03-31 21:12:48.221 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'sensores_433mhz_iluminacao.rules'
2020-03-31 21:13:23.333 [ERROR] [org.quartz.core.JobRunShell ] - Job DEFAULT.Timer 190 2020-03-31T21:13:23.316+01:00: Proxy for org.eclipse.xtext.xbase.lib.Procedures$Procedure0: [ | {
<XFeatureCallImplCustom>.postUpdate(<XStringLiteralImpl>)
} ] threw an unhandled Exception:
java.lang.NullPointerException: null
at org.eclipse.smarthome.model.script.engine.ScriptError.<init>(ScriptError.java:65) ~[?:?]
at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:140) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:991) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:954) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:235) ~[?:?]
at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:215) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluateArgumentExpressions(XbaseInterpreter.java:1205) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._invokeFeature(XbaseInterpreter.java:1135) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeFeature(XbaseInterpreter.java:1081) ~[?:?]
at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:151) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:861) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:231) ~[?:?]
at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:215) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:458) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:239) ~[?:?]
at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:215) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluate(XbaseInterpreter.java:201) ~[?:?]
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.$Proxy218.apply(Unknown Source) ~[?:?]
at org.eclipse.smarthome.model.script.internal.actions.TimerExecutionJob.execute(TimerExecutionJob.java:48) ~[?:?]
at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [bundleFile:?]
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) [bundleFile:?]
2020-03-31 21:13:23.395 [ERROR] [org.quartz.core.ErrorLogger ] - Job (DEFAULT.Timer 190 2020-03-31T21:13:23.316+01:00: Proxy for org.eclipse.xtext.xbase.lib.Procedures$Procedure0: [ | {
<XFeatureCallImplCustom>.postUpdate(<XStringLiteralImpl>)
} ] threw an exception.
org.quartz.SchedulerException: Job threw an unhandled exception.
at org.quartz.core.JobRunShell.run(JobRunShell.java:213) [bundleFile:?]
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) [bundleFile:?]
Caused by: java.lang.NullPointerException
at org.eclipse.smarthome.model.script.engine.ScriptError.<init>(ScriptError.java:65) ~[?:?]
at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:140) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:991) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:954) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:235) ~[?:?]
at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:215) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluateArgumentExpressions(XbaseInterpreter.java:1205) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._invokeFeature(XbaseInterpreter.java:1135) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeFeature(XbaseInterpreter.java:1081) ~[?:?]
at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:151) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:861) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:231) ~[?:?]
at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:215) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:458) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:239) ~[?:?]
at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:215) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluate(XbaseInterpreter.java:201) ~[?:?]
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.$Proxy218.apply(Unknown Source) ~[?:?]
at org.eclipse.smarthome.model.script.internal.actions.TimerExecutionJob.execute(TimerExecutionJob.java:48) ~[?:?]
at org.quartz.core.JobRunShell.run(JobRunShell.java:202) ~[?:?]
... 1 more
Any help here will be much appreciated.
Thanks guys!