Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater...takes more than 5000ms. And Thing are deleted

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. :worried:

Hi Dennis

I can only speak from my experience over the last week of so migrating to OH3. I love it and particularly the UI, but had a few challenges and continue to learn as it goes. I am recreating all my rules via the ECMA script process, thanks to our fantastic community’s help once the rules work correctly the logs have been error free and my OH3 has been working wonderfully well.

I had challenges with my DSL rules that caused the difficulty you describe, my system became unresponsive after a few hours. If you have DSL rules running I might suggest you disable them for a while and see if your system stabilises.

I also started with a new openhabian install, fixed the front tail issue, and then went from there. Along the way I have learned how to get docker running and OH3 operating in a container, might seem elementary to many but now I have a sandbox to play and test stuff out and then when it works ok for a while move it over.

OH3 is a big step forward, I would encourage you to persevere.

Cheers,

1 Like

Hey George,

thanks for your response.
I totaly agree with you, OH3 is an awesome peace of software and it is a massive step forward from 2.5.

It seems like we realy had the same way but you are a few steps further.
Fresh install and frontail fix are done (btw. i installed the newest dark theme frontail from openhabian-config and it works well).
I wasn’t sure if the rule dsl causes this issue so i thought it was something in side my rules because in another thread someone blamed “poorly written rules” for this issue.
I will trie to rewrite them in java script.

Do you have docker running on a raspberry? Or would you recomend to run docker on a more powerfull machine?

I am running docker on a Mac, works well. Took a little to get used to docker but was not too difficult.
Just install docker, grab the image from Docker Hub and then to fire up a new container,
docker run --name openhab -p 8080:8080 openhab/openhab:3.0.0 (the ports are important for Mac setups)
Once it is running then,
Load up, http://localhost:8080
and login to the cli via,
docker exec -it openhab /openhab/runtime/bin/client (pass, habopen)
and then log:tail

Seems a good sandbox environment to try stuff out, if I manage to break it easy to set up a new one. Much easier than setting up a new SD ect. Now I am wondering what else I should try out in docker!

1 Like

After deaktivating all DSL rules and rewriting them to ECMA, everything works fine!
Thanks for your help!!!

1 Like