Bad reaction time


(vaschu) #1

Hello,

I’m new to z-wave and openhab.

I have a problem with reaction time. Sometimes it takes about 8 seconds for light to turn on. I attach screenshots. I also have no idea ahead of it could be.

As you can see in the screenshot, if I press the switch (wall_c) then it takes quite a long time until the command is sent to Relay. As a controller, I have Raspbarry. I thought, already it is too little memory and wanted to buy Pine a64, but before I do it, maybe there is another solution.

openhabian1


(Vincent Regaud) #2

Can you post the items and rules involved, please?


(Sebastien Vermeille) #3

I experienced the same issues…

here is what I do to solve my problems (hope it helps):

It seems when you edit your rules or items file that openhab is a bit between two worlds (the old one with old values + the new one) so it may require some time to sync everything -> just restart openhab after your changes on rules and it should be fine.


(B K) #4

It’s also very apparent the first time you fire a rule after saving a config file - the rules have to be reparsed and recompiled by openHAB. It will take some time to do that, and then it should run fast after the first time.


(vaschu) #5

Hello,

I’m sorry that I have not contacted me so long. I did some tests for a few weeks. First of all, I wanted to test the following option:

It’s also very apparent the first time you fire a rule after saving a config file - the rules have to be reparsed and recompiled by openHAB. It will take some time to do that, and then it should run fast after the first time.

I experienced the same issues…

here is what I do to solve my problems (hope it helps):

It seems when you edit your rules or items file that openhab is a bit between two worlds (the old one with old values + the new one) so it may require some time to sync everything -> just restart openhab after your changes on rules and it should be fine.

So I tried to do the following:

Change configuration. Then go through and press all devices. After 5 days nothing change, control does not start new.

Change configuration. Then go through and press all devices. After that change 5 days nothing, control regularly start new ones.

Change configuration. After that, do not press anything. After that, do not change anything for 5 days. Control does not restart.

It got better, but the problem remained.

Can you post the items and rules involved, please?

It’s different switches and things. I have over 50 things, about 20-30 more. Slow is always when I press WALLC-S Wall Controller. In the log see that push arrives directly to controller without delay. Relay switches, either PAN06 In Wall Dual Relay (1 Way) Switch Module 2 x 1.5kW or FGR222 Roller Shutter 2. But it takes several seconds until the signal is sent and then it works fast too. Just the time between receiving the signal and sending the signal is the delay. You can also see that on the Log Screen, which I sent above.

18:04:08. 693 Signal incomming
18:04:20.510 Signal sending(Reactions time over 10 Seconds)
18: 04: 20.517 Get back status (again, everything fast)

So now parsing and compiling is only partially a problem, something else slows down the system.


(B K) #6

@vaschu - just a hunch, but are you using any Thread::sleep statements in your rules?


(HomeAutomation) #7

I do not see this behaviour. Maybe because I made some speed up things from other posts in this forum:

  1. In every rule file I put a rule like this one:
rule "System started file Testrules"
	when
		System started
	then
		logInfo("Logger", "System started has triggered in testrules.rules")
end

If I see this line in the log, I know that the rule file is fully reloaded and phrased. I do no tests before this is seen.

  1. I have an additional rule which triggers every 30min.
rule "keep this rules in memory"
	when
		Time cron "0 3/30 * ? * *"
	then
		//logInfo("Logger","cron execution to prevent gargabe collection of compiled rules")
		return;
end

This one keep all rules in memory without swapping to HDD.

  1. I do not use z-wave to z-wave direct communication without OH. Because then I can see everything in log and know what is happen.

  2. I try to use as less as possible thread:sleep

Thats all, my OH run’s very fast and relyable. I do not see delay longer the just some msec.


(vaschu) #8

No, I do not use sleep. I use timer on one place:
createTimer(now.plusMinutes(25))