Hi @all,
my openHAB2 playground worked fine for many days. Suddenly it occurred a problem with my cron trigger. No idea, what is going wrong?
The trigger event should be executed once every minute. But as you can see in the event log, the trigger very often was executed 3 times in a minute. Sometimes it is running well. Sometimes it does not.
It is just a feeling that the problem started last week during an openHAB upgrade. But there is no proof for that.
Hope, anyone has some hint for my problem.
Thanks very much in advance.
Event log:
2016-11-22 16:53:01.090 [ItemStateChangedEvent ] - FBH_PWM_Takt changed from 0 to 10
2016-11-22 16:53:02.116 [ItemStateChangedEvent ] - FBH_PWM_Takt changed from 10 to 20
2016-11-22 16:53:03.118 [ItemStateChangedEvent ] - FBH_PWM_Takt changed from 20 to 30
2016-11-22 16:54:01.086 [ItemStateChangedEvent ] - FBH_PWM_Takt changed from 30 to 40
2016-11-22 16:54:02.114 [ItemStateChangedEvent ] - FBH_PWM_Takt changed from 40 to 50
2016-11-22 16:54:03.123 [ItemStateChangedEvent ] - FBH_PWM_Takt changed from 50 to 60
2016-11-22 16:55:01.085 [ItemStateChangedEvent ] - FBH_PWM_Takt changed from 60 to 70
2016-11-22 16:55:02.111 [ItemStateChangedEvent ] - FBH_PWM_Takt changed from 70 to 80
2016-11-22 16:55:03.124 [ItemStateChangedEvent ] - FBH_PWM_Takt changed from 80 to 90
2016-11-22 16:56:01.089 [ItemStateChangedEvent ] - FBH_PWM_Takt changed from 90 to 0
2016-11-22 16:56:02.124 [ItemStateChangedEvent ] - FBH_PWM_Takt changed from 0 to 10
2016-11-22 16:56:03.137 [ItemStateChangedEvent ] - FBH_PWM_Takt changed from 10 to 20
Rule:
Later, I inserted the sleep and the reentrant lock. But this did not change anything.
rule "FBH PWM anwenden"
when
Time cron "0 * * * * ?" // Timer jede Minute auslösen
then
lock.lock()
try {
Thread::sleep(1000)
// PWM Takt berechnen ---------------------------------------------------------------------------------------------------------
var Number Takt = FBH_PWM_Takt.state
Takt = Takt + 10
if(Takt >= 100) Takt = 0
postUpdate(FBH_PWM_Takt,Takt)
}
finally {
lock.unlock()
}
)
end