Hey,
i am using OH3 stable on Raspberry Pi 3b.
I have installes the whole system several times on different hardware and i am getting the “Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater” error over and over. mostly one time a day and the the system slows down or stops working.
I didn’t find this error related to openhab 3 in the forum.
In one thread someone mentioned badly written rules for this. what inside of a rule could lead to this kind of trouble?
the first time this error accured (a few installations ago), i blamed the chromecast binding for this problem. this time it isn’t inbstalled.
Restarting openhab.service leaded to the situation that alle my things are gone. (this also happened on the first installation)
A full restart didn’t help anyway. Items are there but i don’t have any Things.
Waiting and restarting again didn’t bring back mi things so i will install a backup knowing this error will accure again.
I didn’t copy any rule or data from an older installation. all rules were written by hand and all rules wich can be done in blockly are written in blockly. there were only 2 or 3 rules using the old rule dsl.
one, when a string item changed to send a telegram message:
val telegramAction = getActions("telegram","telegram:telegramBot:a1b2c3d4e5")
telegramAction.sendTelegram(TelegramText.state.toString)
one that fires every five minutes and does some math for light values:
var DayTimeVal = (ZonedDateTime.now().getMinute())+
(ZonedDateTime.now().getHour()*60)
var Number LiTempval
var Number LiBrival
if((DayTimeVal >= 360) && (DayTimeVal <= 1320))
{
if(DayTimeVal <= 480)
{
LiTempval = Math::round(((1+DayTimeVal-360)*0.16)+20)
LiBrival = Math::round(((1+DayTimeVal-360)*0.5)+40)
}
else if(DayTimeVal >= 1080)
{
LiTempval = Math::round(((1+DayTimeVal-1080)*0.16)+60)
LiBrival = Math::round(((1+DayTimeVal-1080)*-0.4125)+100)
}
else
{
LiTempval = Math::round(((1+DayTimeVal-480)*0.03)+40)
LiBrival = 100
}
if(LiTempval >= 100){
LiTempval = 100
}
if(LiBrival >= 100){
LiBrival = 100
}
}
else
{
LiTempval = 100
LiBrival = 1
}
LiTemp.sendCommand(LiTempval)
LiBri.sendCommand(LiBrival)
and the last one fires when LiTemp or LiBri from previous rule has changed:
if(EsstischZone_Helligkeit.state == EzPreBri.state &&
EsstischZone_Farbtemperatur.state == EzPreTemp.state)
{
EzPreTemp.sendCommand(LiTemp.state.toString)
EsstischZone_Farbtemperatur.sendCommand(LiTemp.state.toString)
Thread::sleep(100)
EzPreBri.sendCommand(LiBri.state.toString)
EsstischZone_Helligkeit.sendCommand(LiBri.state.toString)
}
the rules work well and there is nothing in them wich leads to this trouble i have i guess.
My installed Bindings are:
Astro Binding
Hue Binding
Telegram Binding
zigbee Binding
yeelight Binding
xiaomi smart home Binding
on a complete fresh backup i get this warnings on startup:
2021-01-10 22:47:31.534 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://192.168.178.75:8080/rest/events/states/12345678-1234-1234-1234-123456789abc's Observer
2021-01-10 22:47:32.278 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://192.168.178.75:8080/rest/items's Observer
2021-01-10 22:47:32.319 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://192.168.178.75:8080/rest/ui/components/ui:page's Observer
2021-01-10 22:47:32.343 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://192.168.178.75:8080/rest/ui/components/ui:widget's Observer
2021-01-10 22:47:33.574 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'b8890f1017' failed: val telegramAction = getActions("telegram","telegram:telegramBot:a1b2c3d4e5")
I hope someone has an idea. or my last chance is to go back to my old openhab 2.5 installation.