Ankündigung

Einklappen
Keine Ankündigung bisher.

Proiblem mit Timer

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Proiblem mit Timer

    Hallo zusammen,

    ich habe folgendes Problem:

    Ich habe Aussenbeleuchtung an der Einfahrt mit einem Shelly Dimmer versorgt.
    Klappt auch wunderbar...

    Nun möchte ich die Helligkeit per Bewegungsmelder steuern.
    Helligkeit ist auf 65% eingestellt.
    Wenn Bewegung erkannt wird, soll der Wert "zwischengespeichert" und die Helligkeit auf 100% gestellt werden.

    Nach abgelaufener Zeit soll die Helligkeit wieder auf den "zwischengespeicherten" Wert zurückgestellt werden.

    Folgende rule soll es bewerkstelligen:

    Code:
    
    var Timer md2Timer = null  // Einschalt-Timer für den BWM Auffahrt
    val int BWMMinutes1 = 5 // Zeit in Minuten Einschaltdauer BWM Auffahrt
    
    
    rule "Helligkeit Auffahrt über BWM"
    when
        Item Bewegung_Auffahrt received update 1
    then
         
         val BWMMinutes1 = (Zeit_Tag.state as DecimalType).intValue
         if(Sunset_Auto.state==ON && BWM_Bewegung_Freigabe.state==ON)
         {
              if(md2Timer === null ) 
              {
                   Shelly_Dimmer_Strasse_Hell_Temp.postUpdate(Shelly_ Dimmer_Strasse_Hell.state)
                   Shelly_Dimmer_Strasse_Hell.sendCommand(100)
                   logInfo("Licht_Aussen.rules", "Bewegung Auffahrt erkannt! Wird aufgehellt")
                   md2Timer = createTimer(now.plusMinutes(BWMMinutes1 ), 
                        [|
                        Shelly_Dimmer_Strasse_Hell.sendCommand(Shelly_Dimmer_Strasse_Hell_Temp.state)
                        logInfo("Licht_Aussen.rules", "Keine Bewegung mehr! Wird abgedunkelt")
                   md2Timer = null
                   ])
              }
              else 
              {
              logInfo("Licht_Aussen.rules", "Erneut Bewegung Auffahrt erkannt! Bleibt aufgehellt!")     
              md2Timer.reschedule(now.plusMinutes(BWMMinutes1 ))
         }
        }
         
    end
    Die rule funktioniert nur leider nicht.
    Ich bekomme da folgende Fehlermeldung

    Code:
    
    
    
    2020-12-17 19:07:31.346 [ERROR] [org.quartz.core.JobRunShell ] - Job DEFAULT.Timer 80 2020-12-17T19:07:31.344+01:00: Proxy for org.eclipse.xtext.xbase.lib.Procedures$Procedure0: [ | {
    
    <XFeatureCallImplCustom>.sendCommand(<XMemberFeatu reCallImplCustom>)
    
    logInfo(<XStringLiteralImpl>,<XStringLiteralImpl>)
    
    <null>.md2Timer = <XNullLiteralImplCustom>
    
    } ] threw an unhandled Exception:
    
    java.lang.NullPointerException: null
    
    at org.eclipse.smarthome.model.script.engine.ScriptEr ror.<init>(ScriptError.java:65) ~[?:?]
    
    at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.invokeFeature(ScriptInterpreter.jav a:140) ~[?:?]
    
    at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._doEvaluate(XbaseInterpreter.java:991) ~[?:?]
    
    at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._doEvaluate(XbaseInterpreter.java:954) ~[?:?]
    
    at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.doEvaluate(XbaseInterpreter.java:235) ~[?:?]
    
    at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.doEvaluate(ScriptInterpreter.java:2 26) ~[?:?]
    
    at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.internalEvaluate(XbaseInterpreter.java:215 ) ~[?:?]
    
    at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.evaluateArgumentExpressions(XbaseInterpret er.java:1205) ~[?:?]
    
    at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._invokeFeature(XbaseInterpreter.java:1135) ~[?:?]
    
    at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.invokeFeature(XbaseInterpreter.java:1081) ~[?:?]
    
    at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.invokeFeature(ScriptInterpreter.jav a:151) ~[?:?]
    
    at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._doEvaluate(XbaseInterpreter.java:861) ~[?:?]
    
    at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.doEvaluate(XbaseInterpreter.java:231) ~[?:?]
    
    at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.doEvaluate(ScriptInterpreter.java:2 26) ~[?:?]
    
    at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.internalEvaluate(XbaseInterpreter.java:215 ) ~[?:?]
    
    at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._doEvaluate(XbaseInterpreter.java:458) ~[?:?]
    
    at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.doEvaluate(XbaseInterpreter.java:239) ~[?:?]
    
    at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.doEvaluate(ScriptInterpreter.java:2 26) ~[?:?]
    
    at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.internalEvaluate(XbaseInterpreter.java:215 ) ~[?:?]
    
    at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.evaluate(XbaseInterpreter.java:201) ~[?:?]
    
    at org.eclipse.xtext.xbase.interpreter.impl.ClosureIn vocationHandler.doInvoke(ClosureInvocationHandler. java:46) ~[?:?]
    
    at org.eclipse.xtext.xbase.interpreter.impl.AbstractC losureInvocationHandler.invoke(AbstractClosureInvo cationHandler.java:29) ~[?:?]
    
    at com.sun.proxy.$Proxy1968.apply(Unknown Source) ~[?:?]
    
    at org.eclipse.smarthome.model.script.internal.action s.TimerExecutionJob.execute(TimerExecutionJob.java :48) ~[?:?]
    
    at org.quartz.core.JobRunShell.run(JobRunShell.java:2 02) [bundleFile:?]
    
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run (SimpleThreadPool.java:573) [bundleFile:?]
    
    2020-12-17 19:07:31.370 [ERROR] [org.quartz.core.ErrorLogger ] - Job (DEFAULT.Timer 80 2020-12-17T19:07:31.344+01:00: Proxy for org.eclipse.xtext.xbase.lib.Procedures$Procedure0: [ | {
    
    <XFeatureCallImplCustom>.sendCommand(<XMemberFeatu reCallImplCustom>)
    
    logInfo(<XStringLiteralImpl>,<XStringLiteralImpl>)
    
    <null>.md2Timer = <XNullLiteralImplCustom>
    
    } ] threw an exception.
    
    org.quartz.SchedulerException: Job threw an unhandled exception.
    
    at org.quartz.core.JobRunShell.run(JobRunShell.java:2 13) [bundleFile:?]
    
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run (SimpleThreadPool.java:573) [bundleFile:?]
    
    Caused by: java.lang.NullPointerException
    
    at org.eclipse.smarthome.model.script.engine.ScriptEr ror.<init>(ScriptError.java:65) ~[?:?]
    
    at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.invokeFeature(ScriptInterpreter.jav a:140) ~[?:?]
    
    at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._doEvaluate(XbaseInterpreter.java:991) ~[?:?]
    
    at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._doEvaluate(XbaseInterpreter.java:954) ~[?:?]
    
    at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.doEvaluate(XbaseInterpreter.java:235) ~[?:?]
    
    at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.doEvaluate(ScriptInterpreter.java:2 26) ~[?:?]
    
    at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.internalEvaluate(XbaseInterpreter.java:215 ) ~[?:?]
    
    at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.evaluateArgumentExpressions(XbaseInterpret er.java:1205) ~[?:?]
    
    at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._invokeFeature(XbaseInterpreter.java:1135) ~[?:?]
    
    at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.invokeFeature(XbaseInterpreter.java:1081) ~[?:?]
    
    at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.invokeFeature(ScriptInterpreter.jav a:151) ~[?:?]
    
    at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._doEvaluate(XbaseInterpreter.java:861) ~[?:?]
    
    at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.doEvaluate(XbaseInterpreter.java:231) ~[?:?]
    
    at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.doEvaluate(ScriptInterpreter.java:2 26) ~[?:?]
    
    at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.internalEvaluate(XbaseInterpreter.java:215 ) ~[?:?]
    
    at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._doEvaluate(XbaseInterpreter.java:458) ~[?:?]
    
    at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.doEvaluate(XbaseInterpreter.java:239) ~[?:?]
    
    at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.doEvaluate(ScriptInterpreter.java:2 26) ~[?:?]
    
    at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.internalEvaluate(XbaseInterpreter.java:215 ) ~[?:?]
    
    at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.evaluate(XbaseInterpreter.java:201) ~[?:?]
    
    at org.eclipse.xtext.xbase.interpreter.impl.ClosureIn vocationHandler.doInvoke(ClosureInvocationHandler. java:46) ~[?:?]
    
    at org.eclipse.xtext.xbase.interpreter.impl.AbstractC losureInvocationHandler.invoke(AbstractClosureInvo cationHandler.java:29) ~[?:?]
    
    at com.sun.proxy.$Proxy1968.apply(Unknown Source) ~[?:?]
    
    at org.eclipse.smarthome.model.script.internal.action s.TimerExecutionJob.execute(TimerExecutionJob.java :48) ~[?:?]
    
    at org.quartz.core.JobRunShell.run(JobRunShell.java:2 02) ~[?:?]
    
    ... 1 more
    Ich finde den Fehler leider nicht.

    Hat da jemand einen Tip für mich??





    #2
    Ein offensichtlicher Fehler: Du definierst dieselbe Konstante einmal global und einmal lokal, das ist nicht erlaubt.

    Kommentar


      #3
      Hallo Toni,

      das stimmt.
      Manchmal sieht man den Wald vor lauter Bäumen nicht....
      Läuft jetzt... :-)


      Gruß
      Yankee

      Kommentar

      Lädt...
      X