I'm getting an error while trying to check the router connectivity

here you are

[21:23:34] openhabian@openhab:~$ sudo ls -al var/lib/openhab2/cache/
ls: cannot access 'var/lib/openhab2/cache/': No such file or directory
[21:23:49] openhabian@openhab:~$ sudo ls -al var/lib/openhab2/tmp/
ls: cannot access 'var/lib/openhab2/tmp/': No such file or directory
[21:24:03] openhabian@openhab:~$

thanks , after recovering Iā€™ll try this

Need to add leading / to var and remove the last / no sudo needed.

ls -al /var/lib/openhab2/cache

Just opened ssh to verify above command is correct.

[21:31:43] openhabian@openhab:~$ ls -al /var/lib/openhab2/tmp/
total 56
drwxrwxr-x+ 12 openhab openhab 4096 Nov 23 21:30 .
drwxrwxr-x+ 13 openhab openhab 4096 Nov 23 21:06 ..
drwxrwxr-x+  2 openhab openhab 4096 Nov 23 21:06 bundles
drwxrwxr-x+  2 openhab openhab 4096 Nov 23 21:26 fileinstall-1379301321134977117
drwxrwxr-x+  2 openhab openhab 4096 Nov 23 21:08 fileinstall--309897697722470909                                                                                                                                                             8
drwxrwxr-x+  2 openhab openhab 4096 Nov 23 21:21 fileinstall--837624981975188997                                                                                                                                                             0
drwxrwxr-x+  2 openhab openhab 4096 Nov 23 21:06 instances
drwxrwxr-x+  2 openhab openhab 4096 Nov 23 21:12 kar
-rw-rw-r--   1 openhab openhab    3 Nov 23 21:26 karaf.pid
-rw-rw-r--   1 openhab openhab    0 Nov 23 21:06 lock
drwxrwxr-x+  5 openhab openhab 4096 Nov 23 21:31 mvn
drwxrwxr-x+  2 openhab openhab 4096 Nov 23 21:12 .paxweb1521914221834411493
drwxrwxr-x+  2 openhab openhab 4096 Nov 23 21:21 .paxweb1898223497919615958
drwxrwxr-x+  2 openhab openhab 4096 Nov 23 21:30 .paxweb3168812641540650532
-rw-rw-r--   1 openhab openhab    5 Nov 23 21:26 port

Looks good.

Use openhabian-config tool and select option to delay starting rules (option 44) for optimal startup then restart OH with sudo systemctl restart openhab2 if restart is not correct then just use stop and then same command with start.

OK thanks

openhab working now fine thanks all

rules

var Timer BlinkingTimer = null



rule "Network Router OFF"
when
    Item Router changed to OFF
then
    logInfo("network", "Router is offline")

    if(BlinkingTimer !== null){
        BlinkingTimer.cancel()
        BlinkingTimer = null
    }

    
    if(BlinkingTimer === null){
        BlinkingTimer = createTimer(now.plusMillis(500), [ |
            if(GPIO_OKLed.state==ON){
                logInfo("network", "LED OFF")
                GPIO_OKLed.sendCommand(OFF)
                BlinkingTimer.reschedule(now.plusMillis(150))
        
            }else{
                logInfo("network", "LED is "+ GPIO_OKLed.state.toString() +", and will set ON")
                GPIO_OKLed.sendCommand(ON)
                BlinkingTimer.reschedule(now.plusMillis(150))
            }
        ])
    
    }
end

rule "Network Router ON"
when
    Item Router changed to ON
then
    logInfo("network", "Router is online")



    if(BlinkingTimer !== null){
        BlinkingTimer.cancel()
        BlinkingTimer = null
    }

    logInfo("network", "LED is "+ GPIO_OKLed.state.toString() +", and will set ON")
    GPIO_OKLed.sendCommand(ON)

end

log errors

2019-11-23 22:01:04.448 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Network Router OFF': An error occurred during the script execution: Cannot resolve proxy: network.rules#/1

2019-11-23 22:01:04.500 [ERROR] [org.quartz.core.JobRunShell         ] - Job DEFAULT.2019-11-23T22:01:02.545+02:00: Proxy for org.eclipse.xtext.xbase.lib.Procedures$Procedure0: [ | {

  org.eclipse.xtext.xbase.impl.XIfExpressionImpl@35b88

} ] threw an unhandled Exception: 

java.lang.NullPointerException: cannot invoke method public abstract boolean org.eclipse.smarthome.model.script.actions.Timer.reschedule(org.joda.time.base.AbstractInstant) on null

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeOperation(XbaseInterpreter.java:1071) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeOperation(XbaseInterpreter.java:1061) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._invokeFeature(XbaseInterpreter.java:1047) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeFeature(XbaseInterpreter.java:992) ~[?:?]

	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:151) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:772) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:220) ~[?:?]

	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:204) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:447) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:228) ~[?:?]

	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:204) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:464) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:244) ~[?:?]

	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:204) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:447) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:228) ~[?:?]

	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:204) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluate(XbaseInterpreter.java:190) ~[?:?]

	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.$Proxy158.apply(Unknown Source) ~[?:?]

	at org.eclipse.smarthome.model.script.internal.actions.TimerExecutionJob.execute(TimerExecutionJob.java:49) ~[?:?]

	at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [107:org.eclipse.smarthome.core.scheduler:0.10.0.oh240]

	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) [107:org.eclipse.smarthome.core.scheduler:0.10.0.oh240]



==> /var/log/openhab2/openhab.log <==

2019-11-23 22:01:04.780 [ERROR] [org.quartz.core.ErrorLogger         ] - Job (DEFAULT.2019-11-23T22:01:02.545+02:00: Proxy for org.eclipse.xtext.xbase.lib.Procedures$Procedure0: [ | {

  org.eclipse.xtext.xbase.impl.XIfExpressionImpl@35b88

} ] threw an exception.

org.quartz.SchedulerException: Job threw an unhandled exception.

	at org.quartz.core.JobRunShell.run(JobRunShell.java:213) [107:org.eclipse.smarthome.core.scheduler:0.10.0.oh240]

	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) [107:org.eclipse.smarthome.core.scheduler:0.10.0.oh240]

Caused by: java.lang.NullPointerException: cannot invoke method public abstract boolean org.eclipse.smarthome.model.script.actions.Timer.reschedule(org.joda.time.base.AbstractInstant) on null

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeOperation(XbaseInterpreter.java:1071) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeOperation(XbaseInterpreter.java:1061) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._invokeFeature(XbaseInterpreter.java:1047) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeFeature(XbaseInterpreter.java:992) ~[?:?]

	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:151) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:772) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:220) ~[?:?]

	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:204) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:447) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:228) ~[?:?]

	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:204) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:464) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:244) ~[?:?]

	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:204) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:447) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:228) ~[?:?]

	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:204) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluate(XbaseInterpreter.java:190) ~[?:?]

	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.$Proxy158.apply(Unknown Source) ~[?:?]

	at org.eclipse.smarthome.model.script.internal.actions.TimerExecutionJob.execute(TimerExecutionJob.java:49) ~[?:?]

	at org.quartz.core.JobRunShell.run(JobRunShell.java:202) ~[?:?]

	... 1 more

still getting the same errors

See what happens if you change the var at the top of the rule from

var Timer BlinkingTimer = null

to

var Timer BlinkingTimer

the rule stopped because of the if(BlinkingTimer === null){ I guess

Why all the timers and why the first if statement? Itā€™s canceling a timer that hasnā€™t even started.

var Timer BlinkingTimer = null

rule "Network Router OFF"
when
    Item Router changed to OFF
then
    logInfo("network", "Router is offline")

    if(BlinkingTimer !== null){
        BlinkingTimer.cancel()
        BlinkingTimer = null

Itā€™s a precaution, and costs nothing to do. Failing to take account of unexpected rule entries account for a good many errors.

The second if() is indeed redundant; if the variable wasnā€™t null before, it is by now.

What makes you think it stopped? Is there an error report we should see?

var Timer BlinkingTimer = null
is good practice cos us mere mortals can see what it does at a glance
var Timer BlinkingTimer
will do the exact same thing though.

Just in case, you do not have any Timer imports you may have seen suggested in old postings?

This is a bit alarming really -

2019-11-23 15:14:44.013 [INFO ] [lipse.smarthome.model.script.network] - Router is offline
2019-11-23 15:14:46.856 [INFO ] [lipse.smarthome.model.script.network] - LED is NULL, and will set ON

Nearly three seconds between those logInfo, when it should be a few mS. How stressed is this system? Are there many other timer jobs grabbing resource?
I note that there seems to be an MQTT broker initialising in the middle of all this, are we in the midst of a bootup?

Note this old post for same error -

You might expect an orphaned timer error after editing a rule file - but your timer should only take seconds to blow up.

yes , we are in the midst of a bootup
Iā€™m looking at the post you referred, thanks

thanks all for helping

Iā€™m so frustrated, here is my latest errors
Iā€™m trying to check the internet connection and blink the led according to the problem in the connection, first Iā€™ll check if the router is online, if not blink the led fast, if online go to check the internet connection if offline blink the led slowly, if online turn the led on, but as you see iā€™m still in the first step and errors stopped me

rules

var Timer BlinkingTimer = null

rule "Network Router OFF"
when
    Item Router changed to OFF
then
    logInfo("network", "Router is offline")


    if(BlinkingTimer !== null){
        BlinkingTimer.cancel()
        BlinkingTimer = null
    }

    
    if(BlinkingTimer === null){
        BlinkingTimer = createTimer(now.plusSeconds(1), [ |
            if(GPIO_OKLed.state == ON){
                GPIO_OKLed.sendCommand(OFF)
                BlinkingTimer.reschedule(now.plusMillis(250))
            }else{
                GPIO_OKLed.sendCommand(ON)
                BlinkingTimer.reschedule(now.plusMillis(250))
            }
        ])
    }

end



rule "Network Router ON"
when
    Item Router changed to ON
then
    logInfo("network", "Router is online")



    if(BlinkingTimer !== null){
        BlinkingTimer.cancel()
        BlinkingTimer = null
    }

    logInfo("network", "LED is "+ GPIO_OKLed.state.toString() +", and will set ON")
    GPIO_OKLed.sendCommand(ON)

end

things

Thing network:pingdevice:Router [ hostname="192.168.1.1" ]
Thing network:pingdevice:InternetConnection [ hostname="8.8.8.8" ]

items

Switch GPIO_OKLed       "OKLed"         <led>           (Led)                       ["Switchable"]     {gpio="pin:27"}

Group Network
Switch Router "Router [%s]" <network> (Network) { channel="network:pingdevice:Router:online" }
Switch InternetConnection "Internet Connection [%s]" <network> (Network) { channel="network:pingdevice:InternetConnection:online" }

log

2019-11-24 11:29:30.945 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Network Router OFF': An error occurred during the script execution: Cannot resolve proxy: network.rules#/1

2019-11-24 11:29:30.971 [ERROR] [org.quartz.core.JobRunShell         ] - Job DEFAULT.2019-11-24T11:29:28.824+02:00: Proxy for org.eclipse.xtext.xbase.lib.Procedures$Procedure0: [ | {

  org.eclipse.xtext.xbase.impl.XIfExpressionImpl@1069f1e

} ] threw an unhandled Exception: 

java.lang.NullPointerException: cannot invoke method public abstract boolean org.eclipse.smarthome.model.script.actions.Timer.reschedule(org.joda.time.base.AbstractInstant) on null

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeOperation(XbaseInterpreter.java:1071) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeOperation(XbaseInterpreter.java:1061) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._invokeFeature(XbaseInterpreter.java:1047) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeFeature(XbaseInterpreter.java:992) ~[?:?]

	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:151) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:772) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:220) ~[?:?]

	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:204) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:447) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:228) ~[?:?]

	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:204) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:464) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:244) ~[?:?]

	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:204) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:447) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:228) ~[?:?]

	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:204) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluate(XbaseInterpreter.java:190) ~[?:?]

	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.$Proxy153.apply(Unknown Source) ~[?:?]

	at org.eclipse.smarthome.model.script.internal.actions.TimerExecutionJob.execute(TimerExecutionJob.java:49) ~[?:?]

	at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [107:org.eclipse.smarthome.core.scheduler:0.10.0.oh240]

	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) [107:org.eclipse.smarthome.core.scheduler:0.10.0.oh240]

2019-11-24 11:29:31.189 [ERROR] [org.quartz.core.ErrorLogger         ] - Job (DEFAULT.2019-11-24T11:29:28.824+02:00: Proxy for org.eclipse.xtext.xbase.lib.Procedures$Procedure0: [ | {

  org.eclipse.xtext.xbase.impl.XIfExpressionImpl@1069f1e

} ] threw an exception.

org.quartz.SchedulerException: Job threw an unhandled exception.

	at org.quartz.core.JobRunShell.run(JobRunShell.java:213) [107:org.eclipse.smarthome.core.scheduler:0.10.0.oh240]

	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) [107:org.eclipse.smarthome.core.scheduler:0.10.0.oh240]

Caused by: java.lang.NullPointerException: cannot invoke method public abstract boolean org.eclipse.smarthome.model.script.actions.Timer.reschedule(org.joda.time.base.AbstractInstant) on null

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeOperation(XbaseInterpreter.java:1071) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeOperation(XbaseInterpreter.java:1061) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._invokeFeature(XbaseInterpreter.java:1047) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeFeature(XbaseInterpreter.java:992) ~[?:?]

	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:151) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:772) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:220) ~[?:?]

	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:204) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:447) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:228) ~[?:?]

	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:204) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:464) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:244) ~[?:?]

	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:204) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:447) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:228) ~[?:?]

	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:204) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluate(XbaseInterpreter.java:190) ~[?:?]

	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.$Proxy153.apply(Unknown Source) ~[?:?]

	at org.eclipse.smarthome.model.script.internal.actions.TimerExecutionJob.execute(TimerExecutionJob.java:49) ~[?:?]

	at org.quartz.core.JobRunShell.run(JobRunShell.java:202) ~[?:?]

	... 1 more

There is something weird about your BlinkingTimer variable; I donā€™t know what, duplicate declaration somewhere else? donā€™t know.

But it breaks your rule ā€¦
... Rule 'Network Router OFF': An error ... Cannot resolve proxy: network.rules#/1
Iā€™m pretty convinced that comes from the cancel attempt
AND it breaks the timer block
... cannot invoke method ... .Timer.reschedule... on null
obviously from the reschedule attempt.

Have a think about that; the ā€œOFFā€ rule breaks before it creates the timer, but the timer breaks as well?

Youā€™ve hidden from us the logInfo output from the beginning of the rule, that would reveal multiple entries into the rule. So first, find out if your rule triggers multiple times.

Youā€™ve taken the logInfos out of your timer code that would reveal what that is up to. Youā€™ve made the flashing schedule more demanding. Itā€™s not helping. I understand your frustration, weā€™re looking for an oddball race condition.

Do some basics -
Make sure you have no timer import in that file.
Make sure your global var Timer is at the top of the file, before any rules.
Sprinkle logInfos to see how far things get. Youā€™ve never mentioned if the LED does anything.

Donā€™t forget that when you edit a rule file that has already spawned a timer that is still running, that timer will keep on running, but probably fail later because something in inaccessible, null.

Not a fix, a suggested diagnostic -

    rule "Network Router OFF"
    when
        Item Router changed to OFF
    then
        logInfo("network", "Router is offline")

        if(BlinkingTimer !== null){
            logInfo("network", "old timer " + BlinkingTimer.toString)
            BlinkingTimer.cancel()
            BlinkingTimer = null
        }
            // it's always null if we get this far
        BlinkingTimer = createTimer(now.plusSeconds(1), [ |
            logInfo("timer", "my handle is " + BlinkingTimer.toString)
             if(GPIO_OKLed.state == ON){
                 GPIO_OKLed.sendCommand(OFF)
             }else{
                 GPIO_OKLed.sendCommand(ON)
             }
             BlinkingTimer.reschedule(now.plusMillis(1000))
         ])
    end

Looking at OPā€™s items, the rule is started with Item Router changed to OFF, but there is no Router listed in items file only GPIO_OKLed and GPIO_WULed. This would explain the rule breaking before the timer?

If there were no Item Router, it could never change, and the rule would never run at all.
In post one there is actually a Router Item, but weā€™ve been a long way round since then.

My point about both rule and the timer it spawns breaking, is that there is more than one rule execution involved.

Iā€™m convinced this is all about the circular reference inside the timer block to its own handle. That isnā€™t a problem, until you mess with that handle. Typically by reloading the rules file.
That brings a thought - at load time, you should see in openhab.log "xxx.rules loaded" - do you see a multiple message for this file?

thanks all for helping .
GPIO_WULed is for other propose not listed here

the Router is listed above, I forgot to include here in the post , Iā€™ve updated the post above

Try your group like below.

Group:Switch:AND(OFF,ON) Network <network>
Switch Router "Router" <network> (Network) { channel="network:pingdevice:Router:online" }
Switch InternetConnection "Internet Connection" <network> (Network) { channel="network:pingdevice:InternetConnection:online" }