Ankündigung

Einklappen
Keine Ankündigung bisher.

Präsenzsimulation

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

    Präsenzsimulation

    Hallo zusammen!

    Da irgendwann mal wieder Urlaub ansteht, würde ich gerne eine relativ einfache Simulation machen. Ich habe eine komplexere Anwendung mit Datenbank und Kalender gefunden, die möchte ich aber nicht unbedingt, weil ich auch Lichter schalten möchte, die ich sonst kaum verwende.

    Ein weiterer Beitrag ist noch für OH 1.8 bzw 1.7, also nicht ganz aktuell.

    Gibt es eine Art Zufallsgenerator, der mir bei Aktivieren der Simulation (Rule schaltbar über Switch), gewisse vordefinierte Lichter zu verschiedenen Zeitpunkten in vordefinierten Zeiträumen (etwa 20-22 Uhr) für eine jeweils unterschiedliche Dauer aus und einschaltet?

    Vielen Dank für Eure Hilfe

    LG

    Fred

    #2
    Wenn Du Präsenzmelder oder Lichter hast, und deren Status per Datenbank aufgeichnet hast (rrd4j, ect), kannst Du den Wert von vor einer Woche oder einem Monat abfragen, auf den Bus senden und die darüber geschalteten Lichter an- und ausschalten. Gleiches geht mit Jalousien etc.
    Das ganze steckst Du dann in eine rule, die per cron jede Minute ausgeführt wird.

    Kommentar


      #3
      Du kannst einen Zufallsgenerator nutzen, musst Dich aber um die konkrete Umsetzung selbst kümmern.
      Die leichteste Variante ist natürlich, die gcal Persistence zu aktivieren und die Automation einfach anzuweisen, das zu tun, was vor zwei Wochen getan wurde. Diese Funktion gab es bereits in OH1.0, und sie hat eigentlich auch zuverlässig funktioniert.
      Zwei Haken gibt es dabei, zum einen ist gcal jetzt mit OAUTH2 unterwegs (ich hab gcal nicht mehr genutzt, seit das so ist - ich weiß also nicht, wie komplex die Einrichtung dadurch ist), zum anderen muss openHAB dann natürlich eine funktionierende Internetverbindung haben - und wenn man im Urlaub ist, hat man im Zweifel keine Möglichkeit, einen abgestürzten Router wieder zum Leben zu erwecken.

      Ansonsten kannst Du die Funktion auch mit dem caldav-Binding nachbilden, wobei ich das noch nicht getestet habe. Das caldav-Binding kann auf einen selbst gehosteten Kalender zugreifen, wenn Du also z.B. owncloud lokal bereit stellst, entfällt die oben genannte Problematik.

      Der Beispielcode müsste immer noch im Demo enthalten sein, ansonsten müsste ich nach einer alten Demo stöbern. Allerdings gibt es auch die Zufallsvariante, es müsste sowohl hier als auch (vor allem) im englischen Forum Beispielcode geben.

      Kommentar


        #4
        Hallo!

        Danke, das ist die Anwendung, die ich gefunden hätte, aber das Problem ist, dass die Lichter, die geschaltet werden sollen, in der Regel kaum verwendet werden.
        Für die Jalousien habe ich schon eine Rule, die sich am Sonnenstand orientiert.

        Kommentar


          #5
          Danke, dann schau ich mal im englischen Forum nach der Zufallsvariante :-)

          Kommentar


            #6
            Ich habe jetzt etwas in einem englischen Forum gefunden, nur läuft es nicht, ich habe aber auch keine Einträge in der Logdatei.

            Hier die Rule:

            valString filename ="dev.rules"
            varTimerRandomLightsTimer=null
            valjava.util.concurrent.ThreadLocalRandom random = (newjava.util.concurrent.ThreadLocalRandom)
            rule"Präsenzsimulation"
            when
            Time cron "0 */10 5-23 * * ?"
            then
            if ((Urlaub.state ==ON) && (now.isBefore((Sunrise_Time.state as DateTimeType).calendar.timeInMillis) || now.isAfter((Sunset_Time.state as DateTimeType).calendar.timeInMillis))) {
            // Licht zufällig einschalten 50/50
            if ((newjava.util.Random()).nextInt(2) ==1) {
            // Timer erstellen mit einem zufälligen Wert in Sekunden
            varint randomTime = random.nextInt(240)
            logInfo(filename,"Neuer Wert Zufallstimer: "+ randomTime +" Sekunden.")
            RandomLightsTimer= createTimer(now.plusSeconds(randomTime)) [|
            var randomLights = random.nextInt(gUr.size)
            var randomLightCurrentState = gUr.get(randomLights).state
            // ersetzen der Dimmer-Werte von "0" auf "OFF"
            if (randomLightCurrentState ==0) {
            (randomLightCurrentState =OFF)
            }
            // alle Dimmer-Werte von 1-100 werden als ON gewertet
            var randomLightNewState =if (randomLightCurrentState !=OFF) OFFelseON
            logInfo(filename, "Schalte Licht "+ gUr.allMembers.get(randomLights).name +" von "+ randomLightCurrentState +" zu "+ randomLightNewState)
            //sendCommand(gUr.allMembers.get(randomLights), randomLightNewState)
            gUr.allMembers.get(randomLights).sendCommand(randomLightNewState)
            ]
            }
            }
            end

            Die zufällig zu schaltenden Lichter sind in zu einer Gruppe Urlaub (gUR) hinzugefügt, befinden sich halt jetzt in zwei Gruppen in den Items (zB (gOG, gUr).

            Sieht zufällig wer den Fehler?

            Kommentar


              #7
              Schau mal hier:
              https://openhabforum.de/viewtopic.php?t=355
              Ich glaube, dass trifft Deine Anforderungen gut.

              EDIT:
              ich sehe grad, dass ist das, was Du auch gefunden hast. Mein Link führt nur zum Ersteller mit deutscher Erklärung.

              Ich hab das bei mir am laufen gehabt, bin nun aber zur Kalender-Lösung gewechselt, weil die mir gleich eine "Zeitschaltuhr" mitliefert.
              Zuletzt geändert von schrad; 08.08.2018, 09:12.

              Kommentar


                #8
                Leider tut sich nichts bei mir mit diesem Script…


                Kann es vielleicht daran liegen, ich habe in der Urlaubsjalousiensteuerung, die funktioniert, folgende Zeile:

                Channel"astro:sun:local:nauticDusk#event" triggered START


                Sollte man dann für die Lichter die Zeile so anpassen?

                if ((Urlaub.state ==ON) && (now.isBefore((astro:sun:local:rise#start.state as DateTimeType).calendar.timeInMillis) || now.isAfter((astro:sun:local:set#start.state as DateTimeType).calendar.timeInMillis)))


                Zuletzt geändert von fred07; 08.08.2018, 14:09.

                Kommentar


                  #9
                  Grob gesagt soll der Code zwischen 5 Uhr und 0 Uhr alle 10 Minuten aufgerufen werden, und dann vielleicht (chance 1:1) innerhalb eines zufälligen Zeitfensters von 240 Sekunden jeweils ein zufällig gewähltes Mitglied der Gruppe gUr umschalten.
                  Allerdings soll das nur passieren, falls das Item Urlaub auf ON steht und es entweder vor Sonnenaufgang oder nach Sonnenuntergang ist, wobei diese Information aus den Items Sunrise_Time und Sunset_Time gewonnen wird.

                  Voraussetzungen zum Funktionieren sind also:
                  1. Ein Switch Item Urlaub (ON = Zufall aktiv)
                  2. Ein DateTime Item Sunrise_Time { channel="astro:sun:local:rise#start" }
                  3. Ein DateTime Item Sunset_Time { channel="astro:sun:local:set#start" }
                  4. Die zu schaltenden Lichter gehören alle der Gruppe gUr an (dabei ist es unerheblich, ob sie direkt oder verschachtelt dazu gehören)
                  Weiterhin führt nicht jeder Aufruf der Rule zu einem Schaltereignis!

                  Ich habe der Vollständigkeit halber den Code hier nochmals angehängt, weil Dein Posting ein bisschen unglücklich ist (fehlende Leerzeichen, Farben schlecht lesbar; beides hat seine Ursache in VSCode, der zu viele Informationen in die Zwischenablage packt )

                  Code:
                  val String filename ="dev.rules"
                  var Timer RandomLightsTimer=null
                  val java.util.concurrent.ThreadLocalRandom random = (new java.util.concurrent.ThreadLocalRandom)
                  
                  rule"Präsenzsimulation"
                  when
                      Time cron "0 */10 5-23 * * ?"
                  then
                      if ((Urlaub.state ==ON) && (now.isBefore((Sunrise_Time.state as DateTimeType).calendar.timeInMillis) || now.isAfter((Sunset_Time.state as DateTimeType).calendar.timeInMillis))) {
                          // Licht zufällig einschalten 50/50
                          if ((new java.util.Random()).nextInt(2) == 1) {
                              // Timer erstellen mit einem zufälligen Wert in Sekunden
                              var int randomTime = random.nextInt(240)
                              logInfo(filename,"Neuer Wert Zufallstimer: "+ randomTime +" Sekunden.")
                              RandomLightsTimer= createTimer(now.plusSeconds(randomTime)) [|
                                  var randomLights = random.nextInt(gUr.size)
                                  var randomLightCurrentState = gUr.get(randomLights).state
                                  // ersetzen der Dimmer-Werte von "0" auf "OFF"
                                  if (randomLightCurrentState == 0) randomLightCurrentState = OFF
                                  // alle Dimmer-Werte von 1-100 werden als ON gewertet
                                  var randomLightNewState = if (randomLightCurrentState !=OFF) OFF else ON
                                  logInfo(filename, "Schalte Licht "+ gUr.allMembers.get(randomLights).name +" von "+ randomLightCurrentState +" zu "+ randomLightNewState)
                                  gUr.allMembers.get(randomLights).sendCommand(randomLightNewState)
                              ]
                          }
                      }
                  end
                  Zuletzt geändert von udo1toni; 08.08.2018, 18:51.

                  Kommentar


                    #10
                    Vielen Dank!
                    Switch und Date Items waren schon vorhanden, nur tut sich leider nichts.
                    Ich werde heute Abend noch mal schauen,
                    ob es klappt.
                    Das Switch Item funktioniert bei der Rule für Jalousien, die nimmt aber die Zeit aus der nautischen Dämmerung als Event.
                    Date Items sind befüllt, ich sehe die Uhrzeit in der Astrogruppe.

                    Kommentar


                      #11
                      Notfalls musst Du halt anfangen, das Ganze mit logInfo() zu versehen, um dahinter zu kommen, wo es bei Dir schief läuft.
                      Ein heißer Kandidat ist natürlich die random-Funktion, einfach, weil ich die nicht kenne aber auch, weil ohne die in der Rule gar nichts geht...

                      Kommentar


                        #12
                        das wird es aus.... ist leider chinesisch für mich...



                        2018-08-0921:01:44.085[ERROR] [org.quartz.core.JobRunShell ] - Job DEFAULT.2018-08-09T21:01:44.079+02:00: Proxy for org.eclipse.xtext.xbase.lib.Procedures$Procedure0: [ | {

                        var randomLights

                        var randomLightCurrentState

                        org.eclipse.xtext.xbase.impl.XIfExpressionImpl@1015de0

                        var randomLightNewState

                        logInfo(<XFeatureCallImplCustom>,<XBinaryOperation ImplCustom>)

                        <XMemberFeatureCallImplCustom>.sendCommand(<XFeatu reCallImplCustom>)

                        } ] threw an unhandled Exception:

                        java.lang.reflect.UndeclaredThrowableException: null

                        at com.sun.proxy.$Proxy169.apply(Unknown Source) [?:?]

                        at org.eclipse.smarthome.model.script.internal.action s.TimerExecutionJob.execute(TimerExecutionJob.java :49) [137rg.eclipse.smarthome.model.script:0.10.0.oh230]


                        at org.quartz.core.JobRunShell.run(JobRunShell.java:2 02) [107rg.eclipse.smarthome.core.scheduler:0.10.0.oh230]

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

                        Caused by: org.eclipse.smarthome.model.script.engine.ScriptEx ecutionException: 'size' is not a member of 'org.eclipse.smarthome.core.items.GroupItem'; line 16, column 51, length 8

                        at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.invokeFeature(ScriptInterpreter.jav a:125) ~[?:?]

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

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

                        at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.doEvaluate(ScriptInterpreter.java:2 19) ~[?:?]

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

                        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.evaluateArgumentExpressions(XbaseInterpret er.java:1115) ~[?:?]

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

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

                        at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.invokeFeature(ScriptInterpreter.jav a:143) ~[?:?]

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


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

                        at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.doEvaluate(ScriptInterpreter.java:2 19) ~[?:?]

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

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

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

                        at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.doEvaluate(ScriptInterpreter.java:2 19) ~[?:?]

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

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

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

                        at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.doEvaluate(ScriptInterpreter.java:2 19) ~[?:?]

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

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

                        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) ~[?:?]

                        ... 4 more

                        2018-08-0921:01:44.219[ERROR] [org.quartz.core.ErrorLogger ] - Job (DEFAULT.2018-08-09T21:01:44.079+02:00: Proxy for org.eclipse.xtext.xbase.lib.Procedures$Procedure0: [ | {

                        var randomLights

                        var randomLightCurrentState

                        org.eclipse.xtext.xbase.impl.XIfExpressionImpl@1015de0

                        var randomLightNewState

                        logInfo(<XFeatureCallImplCustom>,<XBinaryOperation ImplCustom>)

                        <XMemberFeatureCallImplCustom>.sendCommand(<XFeatu reCallImplCustom>)

                        } ] threw an exception.

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

                        at org.quartz.core.JobRunShell.run(JobRunShell.java:2 13) [107rg.eclipse.smarthome.core.scheduler:0.10.0.oh230]

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

                        Caused by: java.lang.reflect.UndeclaredThrowableException

                        at com.sun.proxy.$Proxy169.apply(Unknown Source) ~[?:?]

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

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

                        ... 1 more

                        Caused by: org.eclipse.smarthome.model.script.engine.ScriptEx ecutionException: 'size' is not a member of 'org.eclipse.smarthome.core.items.GroupItem'; line 16, column 51, length 8

                        at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.invokeFeature(ScriptInterpreter.jav a:125) ~[?:?]

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

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

                        at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.doEvaluate(ScriptInterpreter.java:2 19) ~[?:?]

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

                        at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.evaluateArgumentExpressions(XbaseInterpret er.java:1115) ~[?:?]

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

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

                        at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.invokeFeature(ScriptInterpreter.jav a:143) ~[?:?]

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

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

                        at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.doEvaluate(ScriptInterpreter.java:2 19) ~[?:?]

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

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

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

                        at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.doEvaluate(ScriptInterpreter.java:2 19) ~[?:?]

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

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

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

                        at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.doEvaluate(ScriptInterpreter.java:2 19) ~[?:?]

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

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

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

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

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


                        Kommentar


                          #13
                          Also funktioniert die Rule so garnicht... Sicher,
                          • dass Du keine Tippfehler drin hast? (z.B. fehlende Leerzeichen)
                          • dass die Definition sämtlicher Values außerhalb der Rule (also der Teil über dem Schlüsselwort "rule") ganz zu Beginn der rules-Datei steht, noch vor dem ersten Auftreten des Schlüsselwortes "rule"?
                          Wir können die Rule erstmal etwas umschreiben, um ein paar zusätzliche Logs unterzubringen. Es bietet sich an, dass Du die Rule in ein eigenes Rules-File verfrachtest (Obacht! es darf sich keine andere Version der Rule in einem anderen Rules-File befinden)

                          Die Rule sieht etwas anders aus, sollte sich aber exakt gleich verhalten. Nur gibt es jetzt ein bisschen mehr Informationen. Du musst die Rule komplett tauschen!

                          Code:
                          // Dies ist die erste Zeile des Rules-Files
                          // imports, globale Values und Variablen
                          val String filename ="dev.rules"
                          var Timer RandomLightsTimer=null
                          val java.util.concurrent.ThreadLocalRandom random = (new java.util.concurrent.ThreadLocalRandom)  
                          
                          // ab hier kommen die Rules
                          
                          rule"Präsenzsimulation"
                          when
                              Time cron "0 */10 5-23 * * ?"
                          then
                              if(Urlaub.state == ON) {
                                  logInfo(filename,"Urlaub ON")
                                  val sunrise =(Sunrise_Time.state as DateTimeType).calendar.timeInMillis
                                  logInfo(filename,"Sunrise {}",sunrise)
                                  val sunset = (Sunset_Time.state as DateTimeType).calendar.timeInMillis
                                  logInfo(filename,"Sunset {}",sunset)
                                  if (now.isBefore(sunrise) || now.isAfter(sunset)) {
                                      logInfo(filename,"Nach Sonnenuntergang und vor Sonnenaufgang")
                                      var int randomTime = random.nextInt(240)
                                      logInfo(filename,"Neuer Wert Zufallstimer: {} Sekunden.",randomTime)
                                      RandomLightsTimer = createTimer(now.plusSeconds(randomTime)) [ |
                                          var randomItem = gUr.get(random.nextInt(gUr.size))
                                          var randomLightCurrentState = randomItem.state
                                          // ersetzen der Dimmer-Werte von "0" auf "OFF"
                                          if (randomLightCurrentState == 0) randomLightCurrentState = OFF
                                          // alle Dimmer-Werte von 1-100 werden als ON gewertet
                                          var randomLightNewState = if (randomLightCurrentState != OFF) OFF else ON
                                          logInfo(filename, "Schalte Licht {} von {} nach {}",randomItem.name,randomLightCurrentState,randomLightNewState)
                                          randomItem.sendCommand(randomLightNewState)
                                      ]
                                  } else logInfo(filename,"Tagsüber")
                              } else logInfo(filename,"Urlaub OFF")
                          end

                          Kommentar


                            #14
                            So, Urlaub ist vorbei, die Rule habe ich heute geändert. Leider geht es nicht, aber ich habe einige Logs:

                            2018-08-19 20:40:00.022 [INFO ] [pse.smarthome.model.script.dev.rules] - Urlaub ON
                            2018-08-19 20:40:00.035 [INFO ] [pse.smarthome.model.script.dev.rules] - Sunrise 1534650900000
                            2018-08-19 20:40:00.050 [INFO ] [pse.smarthome.model.script.dev.rules] - Sunset 1534701660000
                            2018-08-19 20:40:00.067 [INFO ] [pse.smarthome.model.script.dev.rules] - Nach Sonnenuntergang und vor Sonnenaufgang
                            2018-08-19 20:40:00.077 [INFO ] [pse.smarthome.model.script.dev.rules] - Neuer Wert Zufallstimer: 138 Sekunden.
                            2018-08-19 20:42:18.084 [ERROR] [org.quartz.core.JobRunShell ] - Job DEFAULT.2018-08-19T20:42:18.079+02:00: Proxy for org.eclipse.xtext.xbase.lib.Procedures$Procedure0: [ | {
                            var randomItem
                            var randomLightCurrentState
                            org.eclipse.xtext.xbase.impl.XIfExpressionImpl@180 bc09
                            var randomLightNewState
                            logInfo(<XFeatureCallImplCustom>,<XStringLiteralIm pl>,<XMemberFeatureCallImplCustom>,<XFeatureCallIm plCustom>,<XFeatureCallImplCustom>)
                            <XFeatureCallImplCustom>.sendCommand(<XFeatureCall ImplCustom>)
                            } ] threw an unhandled Exception:
                            java.lang.reflect.UndeclaredThrowableException: null
                            at com.sun.proxy.$Proxy159.apply(Unknown Source) [?:?]
                            at org.eclipse.smarthome.model.script.internal.action s.TimerExecutionJob.execute(TimerExecutionJob.java :49) [137rg.eclipse.smarthome.model.script:0.10.0.oh230]
                            at org.quartz.core.JobRunShell.run(JobRunShell.java:2 02) [107rg.eclipse.smarthome.core.scheduler:0.10.0.oh230]
                            at org.quartz.simpl.SimpleThreadPool$WorkerThread.run (SimpleThreadPool.java:573) [107rg.eclipse.smarthome.core.scheduler:0.10.0.oh230]
                            Caused by: org.eclipse.smarthome.model.script.engine.ScriptEx ecutionException: 'get' is not a member of 'org.eclipse.smarthome.core.items.GroupItem'; line 24, column 34, length 33
                            at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.invokeFeature(ScriptInterpreter.jav a:125) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._doEvaluate(XbaseInterpreter.java:763) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.doEvaluate(XbaseInterpreter.java:219) ~[?:?]
                            at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.doEvaluate(ScriptInterpreter.java:2 19) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.internalEvaluate(XbaseInterpreter.java:203 ) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._doEvaluate(XbaseInterpreter.java:826) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.doEvaluate(XbaseInterpreter.java:263) ~[?:?]
                            at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.doEvaluate(ScriptInterpreter.java:2 19) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.internalEvaluate(XbaseInterpreter.java:203 ) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._doEvaluate(XbaseInterpreter.java:446) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.doEvaluate(XbaseInterpreter.java:227) ~[?:?]
                            at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.doEvaluate(ScriptInterpreter.java:2 19) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.internalEvaluate(XbaseInterpreter.java:203 ) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.evaluate(XbaseInterpreter.java:189) ~[?:?]
                            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) ~[?:?]
                            ... 4 more
                            2018-08-19 20:42:18.174 [ERROR] [org.quartz.core.ErrorLogger ] - Job (DEFAULT.2018-08-19T20:42:18.079+02:00: Proxy for org.eclipse.xtext.xbase.lib.Procedures$Procedure0: [ | {
                            var randomItem
                            var randomLightCurrentState
                            org.eclipse.xtext.xbase.impl.XIfExpressionImpl@180 bc09
                            var randomLightNewState
                            logInfo(<XFeatureCallImplCustom>,<XStringLiteralIm pl>,<XMemberFeatureCallImplCustom>,<XFeatureCallIm plCustom>,<XFeatureCallImplCustom>)
                            <XFeatureCallImplCustom>.sendCommand(<XFeatureCall ImplCustom>)
                            } ] threw an exception.
                            org.quartz.SchedulerException: Job threw an unhandled exception.
                            at org.quartz.core.JobRunShell.run(JobRunShell.java:2 13) [107rg.eclipse.smarthome.core.scheduler:0.10.0.oh230]
                            at org.quartz.simpl.SimpleThreadPool$WorkerThread.run (SimpleThreadPool.java:573) [107rg.eclipse.smarthome.core.scheduler:0.10.0.oh230]
                            Caused by: java.lang.reflect.UndeclaredThrowableException
                            at com.sun.proxy.$Proxy159.apply(Unknown Source) ~[?:?]
                            at org.eclipse.smarthome.model.script.internal.action s.TimerExecutionJob.execute(TimerExecutionJob.java :49) ~[?:?]
                            at org.quartz.core.JobRunShell.run(JobRunShell.java:2 02) ~[?:?]
                            ... 1 more
                            Caused by: org.eclipse.smarthome.model.script.engine.ScriptEx ecutionException: 'get' is not a member of 'org.eclipse.smarthome.core.items.GroupItem'; line 24, column 34, length 33
                            at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.invokeFeature(ScriptInterpreter.jav a:125) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._doEvaluate(XbaseInterpreter.java:763) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.doEvaluate(XbaseInterpreter.java:219) ~[?:?]
                            at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.doEvaluate(ScriptInterpreter.java:2 19) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.internalEvaluate(XbaseInterpreter.java:203 ) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._doEvaluate(XbaseInterpreter.java:826) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.doEvaluate(XbaseInterpreter.java:263) ~[?:?]
                            at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.doEvaluate(ScriptInterpreter.java:2 19) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.internalEvaluate(XbaseInterpreter.java:203 ) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._doEvaluate(XbaseInterpreter.java:446) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.doEvaluate(XbaseInterpreter.java:227) ~[?:?]
                            at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.doEvaluate(ScriptInterpreter.java:2 19) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.internalEvaluate(XbaseInterpreter.java:203 ) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.evaluate(XbaseInterpreter.java:189) ~[?:?]
                            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.$Proxy159.apply(Unknown Source) ~[?:?]
                            at org.eclipse.smarthome.model.script.internal.action s.TimerExecutionJob.execute(TimerExecutionJob.java :49) ~[?:?]
                            at org.quartz.core.JobRunShell.run(JobRunShell.java:2 02) ~[?:?]
                            ... 1 more
                            2018-08-19 20:50:00.032 [INFO ] [pse.smarthome.model.script.dev.rules] - Urlaub ON
                            2018-08-19 20:50:00.047 [INFO ] [pse.smarthome.model.script.dev.rules] - Sunrise 1534650900000
                            2018-08-19 20:50:00.061 [INFO ] [pse.smarthome.model.script.dev.rules] - Sunset 1534701660000
                            2018-08-19 20:50:00.080 [INFO ] [pse.smarthome.model.script.dev.rules] - Nach Sonnenuntergang und vor Sonnenaufgang
                            2018-08-19 20:50:00.094 [INFO ] [pse.smarthome.model.script.dev.rules] - Neuer Wert Zufallstimer: 49 Sekunden.
                            2018-08-19 20:50:49.103 [ERROR] [org.quartz.core.JobRunShell ] - Job DEFAULT.2018-08-19T20:50:49.098+02:00: Proxy for org.eclipse.xtext.xbase.lib.Procedures$Procedure0: [ | {
                            var randomItem
                            var randomLightCurrentState
                            org.eclipse.xtext.xbase.impl.XIfExpressionImpl@180 bc09
                            var randomLightNewState
                            logInfo(<XFeatureCallImplCustom>,<XStringLiteralIm pl>,<XMemberFeatureCallImplCustom>,<XFeatureCallIm plCustom>,<XFeatureCallImplCustom>)
                            <XFeatureCallImplCustom>.sendCommand(<XFeatureCall ImplCustom>)
                            } ] threw an unhandled Exception:
                            java.lang.reflect.UndeclaredThrowableException: null
                            at com.sun.proxy.$Proxy159.apply(Unknown Source) [?:?]
                            at org.eclipse.smarthome.model.script.internal.action s.TimerExecutionJob.execute(TimerExecutionJob.java :49) [137rg.eclipse.smarthome.model.script:0.10.0.oh230]
                            at org.quartz.core.JobRunShell.run(JobRunShell.java:2 02) [107rg.eclipse.smarthome.core.scheduler:0.10.0.oh230]
                            at org.quartz.simpl.SimpleThreadPool$WorkerThread.run (SimpleThreadPool.java:573) [107rg.eclipse.smarthome.core.scheduler:0.10.0.oh230]
                            Caused by: org.eclipse.smarthome.model.script.engine.ScriptEx ecutionException: 'get' is not a member of 'org.eclipse.smarthome.core.items.GroupItem'; line 24, column 34, length 33
                            at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.invokeFeature(ScriptInterpreter.jav a:125) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._doEvaluate(XbaseInterpreter.java:763) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.doEvaluate(XbaseInterpreter.java:219) ~[?:?]
                            at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.doEvaluate(ScriptInterpreter.java:2 19) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.internalEvaluate(XbaseInterpreter.java:203 ) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._doEvaluate(XbaseInterpreter.java:826) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.doEvaluate(XbaseInterpreter.java:263) ~[?:?]
                            at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.doEvaluate(ScriptInterpreter.java:2 19) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.internalEvaluate(XbaseInterpreter.java:203 ) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._doEvaluate(XbaseInterpreter.java:446) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.doEvaluate(XbaseInterpreter.java:227) ~[?:?]
                            at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.doEvaluate(ScriptInterpreter.java:2 19) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.internalEvaluate(XbaseInterpreter.java:203 ) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.evaluate(XbaseInterpreter.java:189) ~[?:?]
                            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) ~[?:?]
                            ... 4 more
                            2018-08-19 20:50:49.195 [ERROR] [org.quartz.core.ErrorLogger ] - Job (DEFAULT.2018-08-19T20:50:49.098+02:00: Proxy for org.eclipse.xtext.xbase.lib.Procedures$Procedure0: [ | {
                            var randomItem
                            var randomLightCurrentState
                            org.eclipse.xtext.xbase.impl.XIfExpressionImpl@180 bc09
                            var randomLightNewState
                            logInfo(<XFeatureCallImplCustom>,<XStringLiteralIm pl>,<XMemberFeatureCallImplCustom>,<XFeatureCallIm plCustom>,<XFeatureCallImplCustom>)
                            <XFeatureCallImplCustom>.sendCommand(<XFeatureCall ImplCustom>)
                            } ] threw an exception.
                            org.quartz.SchedulerException: Job threw an unhandled exception.
                            at org.quartz.core.JobRunShell.run(JobRunShell.java:2 13) [107rg.eclipse.smarthome.core.scheduler:0.10.0.oh230]
                            at org.quartz.simpl.SimpleThreadPool$WorkerThread.run (SimpleThreadPool.java:573) [107rg.eclipse.smarthome.core.scheduler:0.10.0.oh230]
                            Caused by: java.lang.reflect.UndeclaredThrowableException
                            at com.sun.proxy.$Proxy159.apply(Unknown Source) ~[?:?]
                            at org.eclipse.smarthome.model.script.internal.action s.TimerExecutionJob.execute(TimerExecutionJob.java :49) ~[?:?]
                            at org.quartz.core.JobRunShell.run(JobRunShell.java:2 02) ~[?:?]
                            ... 1 more
                            Caused by: org.eclipse.smarthome.model.script.engine.ScriptEx ecutionException: 'get' is not a member of 'org.eclipse.smarthome.core.items.GroupItem'; line 24, column 34, length 33
                            at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.invokeFeature(ScriptInterpreter.jav a:125) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._doEvaluate(XbaseInterpreter.java:763) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.doEvaluate(XbaseInterpreter.java:219) ~[?:?]
                            at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.doEvaluate(ScriptInterpreter.java:2 19) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.internalEvaluate(XbaseInterpreter.java:203 ) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._doEvaluate(XbaseInterpreter.java:826) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.doEvaluate(XbaseInterpreter.java:263) ~[?:?]
                            at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.doEvaluate(ScriptInterpreter.java:2 19) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.internalEvaluate(XbaseInterpreter.java:203 ) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._doEvaluate(XbaseInterpreter.java:446) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.doEvaluate(XbaseInterpreter.java:227) ~[?:?]
                            at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.doEvaluate(ScriptInterpreter.java:2 19) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.internalEvaluate(XbaseInterpreter.java:203 ) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.evaluate(XbaseInterpreter.java:189) ~[?:?]
                            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.$Proxy159.apply(Unknown Source) ~[?:?]
                            at org.eclipse.smarthome.model.script.internal.action s.TimerExecutionJob.execute(TimerExecutionJob.java :49) ~[?:?]
                            at org.quartz.core.JobRunShell.run(JobRunShell.java:2 02) ~[?:?]
                            ... 1 more
                            2018-08-19 21:00:00.033 [INFO ] [pse.smarthome.model.script.dev.rules] - Urlaub ON
                            2018-08-19 21:00:00.048 [INFO ] [pse.smarthome.model.script.dev.rules] - Sunrise 1534650900000
                            2018-08-19 21:00:00.061 [INFO ] [pse.smarthome.model.script.dev.rules] - Sunset 1534701660000
                            2018-08-19 21:00:00.083 [INFO ] [pse.smarthome.model.script.dev.rules] - Nach Sonnenuntergang und vor Sonnenaufgang
                            2018-08-19 21:00:00.097 [INFO ] [pse.smarthome.model.script.dev.rules] - Neuer Wert Zufallstimer: 138 Sekunden.
                            2018-08-19 21:02:18.108 [ERROR] [org.quartz.core.JobRunShell ] - Job DEFAULT.2018-08-19T21:02:18.102+02:00: Proxy for org.eclipse.xtext.xbase.lib.Procedures$Procedure0: [ | {
                            var randomItem
                            var randomLightCurrentState
                            org.eclipse.xtext.xbase.impl.XIfExpressionImpl@180 bc09
                            var randomLightNewState
                            logInfo(<XFeatureCallImplCustom>,<XStringLiteralIm pl>,<XMemberFeatureCallImplCustom>,<XFeatureCallIm plCustom>,<XFeatureCallImplCustom>)
                            <XFeatureCallImplCustom>.sendCommand(<XFeatureCall ImplCustom>)
                            } ] threw an unhandled Exception:
                            java.lang.reflect.UndeclaredThrowableException: null
                            at com.sun.proxy.$Proxy159.apply(Unknown Source) [?:?]
                            at org.eclipse.smarthome.model.script.internal.action s.TimerExecutionJob.execute(TimerExecutionJob.java :49) [137rg.eclipse.smarthome.model.script:0.10.0.oh230]
                            at org.quartz.core.JobRunShell.run(JobRunShell.java:2 02) [107rg.eclipse.smarthome.core.scheduler:0.10.0.oh230]
                            at org.quartz.simpl.SimpleThreadPool$WorkerThread.run (SimpleThreadPool.java:573) [107rg.eclipse.smarthome.core.scheduler:0.10.0.oh230]
                            Caused by: org.eclipse.smarthome.model.script.engine.ScriptEx ecutionException: 'get' is not a member of 'org.eclipse.smarthome.core.items.GroupItem'; line 24, column 34, length 33
                            at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.invokeFeature(ScriptInterpreter.jav a:125) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._doEvaluate(XbaseInterpreter.java:763) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.doEvaluate(XbaseInterpreter.java:219) ~[?:?]
                            at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.doEvaluate(ScriptInterpreter.java:2 19) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.internalEvaluate(XbaseInterpreter.java:203 ) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._doEvaluate(XbaseInterpreter.java:826) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.doEvaluate(XbaseInterpreter.java:263) ~[?:?]
                            at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.doEvaluate(ScriptInterpreter.java:2 19) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.internalEvaluate(XbaseInterpreter.java:203 ) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._doEvaluate(XbaseInterpreter.java:446) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.doEvaluate(XbaseInterpreter.java:227) ~[?:?]
                            at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.doEvaluate(ScriptInterpreter.java:2 19) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.internalEvaluate(XbaseInterpreter.java:203 ) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.evaluate(XbaseInterpreter.java:189) ~[?:?]
                            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) ~[?:?]
                            ... 4 more
                            2018-08-19 21:02:18.195 [ERROR] [org.quartz.core.ErrorLogger ] - Job (DEFAULT.2018-08-19T21:02:18.102+02:00: Proxy for org.eclipse.xtext.xbase.lib.Procedures$Procedure0: [ | {
                            var randomItem
                            var randomLightCurrentState
                            org.eclipse.xtext.xbase.impl.XIfExpressionImpl@180 bc09
                            var randomLightNewState
                            logInfo(<XFeatureCallImplCustom>,<XStringLiteralIm pl>,<XMemberFeatureCallImplCustom>,<XFeatureCallIm plCustom>,<XFeatureCallImplCustom>)
                            <XFeatureCallImplCustom>.sendCommand(<XFeatureCall ImplCustom>)
                            } ] threw an exception.
                            org.quartz.SchedulerException: Job threw an unhandled exception.
                            at org.quartz.core.JobRunShell.run(JobRunShell.java:2 13) [107rg.eclipse.smarthome.core.scheduler:0.10.0.oh230]
                            at org.quartz.simpl.SimpleThreadPool$WorkerThread.run (SimpleThreadPool.java:573) [107rg.eclipse.smarthome.core.scheduler:0.10.0.oh230]
                            Caused by: java.lang.reflect.UndeclaredThrowableException
                            at com.sun.proxy.$Proxy159.apply(Unknown Source) ~[?:?]
                            at org.eclipse.smarthome.model.script.internal.action s.TimerExecutionJob.execute(TimerExecutionJob.java :49) ~[?:?]
                            at org.quartz.core.JobRunShell.run(JobRunShell.java:2 02) ~[?:?]
                            ... 1 more
                            Caused by: org.eclipse.smarthome.model.script.engine.ScriptEx ecutionException: 'get' is not a member of 'org.eclipse.smarthome.core.items.GroupItem'; line 24, column 34, length 33
                            at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.invokeFeature(ScriptInterpreter.jav a:125) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._doEvaluate(XbaseInterpreter.java:763) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.doEvaluate(XbaseInterpreter.java:219) ~[?:?]
                            at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.doEvaluate(ScriptInterpreter.java:2 19) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.internalEvaluate(XbaseInterpreter.java:203 ) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._doEvaluate(XbaseInterpreter.java:826) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.doEvaluate(XbaseInterpreter.java:263) ~[?:?]
                            at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.doEvaluate(ScriptInterpreter.java:2 19) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.internalEvaluate(XbaseInterpreter.java:203 ) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter._doEvaluate(XbaseInterpreter.java:446) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.doEvaluate(XbaseInterpreter.java:227) ~[?:?]
                            at org.eclipse.smarthome.model.script.interpreter.Scr iptInterpreter.doEvaluate(ScriptInterpreter.java:2 19) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.internalEvaluate(XbaseInterpreter.java:203 ) ~[?:?]
                            at org.eclipse.xtext.xbase.interpreter.impl.XbaseInte rpreter.evaluate(XbaseInterpreter.java:189) ~[?:?]
                            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.$Proxy159.apply(Unknown Source) ~[?:?]
                            at org.eclipse.smarthome.model.script.internal.action s.TimerExecutionJob.execute(TimerExecutionJob.java :49) ~[?:?]
                            at org.quartz.core.JobRunShell.run(JobRunShell.java:2 02) ~[?:?]
                            ... 1 more
                            2018-08-19 21:10:00.032 [INFO ] [pse.smarthome.model.script.dev.rules] - Urlaub ON
                            2018-08-19 21:10:00.045 [INFO ] [pse.smarthome.model.script.dev.rules] - Sunrise 1534650900000
                            2018-08-19 21:10:00.055 [INFO ] [pse.smarthome.model.script.dev.rules] - Sunset 1534701660000
                            2018-08-19 21:10:00.071 [INFO ] [pse.smarthome.model.script.dev.rules] - Nach Sonnenuntergang und vor Sonnenaufgang
                            2018-08-19 21:10:00.081 [INFO ] [pse.smarthome.model.script.dev.rules] - Neuer Wert Zufallstimer: 225 Sekunden.



                            Vielleicht sieht man jetzt den Fehler...

                            Kommentar


                              #15
                              Ja, ich tippe darauf, dass es gUr.members. heißen muss... also
                              Code:
                              // Dies ist die erste Zeile des Rules-Files
                              // imports, globale Values und Variablen
                              val String filename ="dev.rules"
                              var Timer RandomLightsTimer=null
                              val java.util.concurrent.ThreadLocalRandom random = (new java.util.concurrent.ThreadLocalRandom)    
                              
                              // ab hier kommen die Rules  
                              
                              rule "Präsenzsimulation"
                              when
                                  Time cron "0 */10 5-23 * * ?"
                              then
                                  if(Urlaub.state == ON) {
                                      logInfo(filename,"Urlaub ON")
                                      val sunrise =(Sunrise_Time.state as DateTimeType).calendar.timeInMillis
                                      logInfo(filename,"Sunrise {}",sunrise)
                                      val sunset = (Sunset_Time.state as DateTimeType).calendar.timeInMillis
                                      logInfo(filename,"Sunset {}",sunset)
                                      if (now.isBefore(sunrise) || now.isAfter(sunset)) {
                                          logInfo(filename,"Nach Sonnenuntergang und vor Sonnenaufgang")
                                          var int randomTime = random.nextInt(240)
                                          logInfo(filename,"Neuer Wert Zufallstimer: {} Sekunden.",randomTime)
                                          RandomLightsTimer = createTimer(now.plusSeconds(randomTime)) [ |
                                              var randomItem = gUr.[COLOR=#FF0000]members.[/COLOR]get(random.nextInt(gUr.[COLOR=#FF0000]members.[/COLOR]size))
                                              var randomLightCurrentState = randomItem.state
                                              // ersetzen der Dimmer-Werte von "0" auf "OFF"
                                              if (randomLightCurrentState == 0) randomLightCurrentState = OFF
                                              // alle Dimmer-Werte von 1-100 werden als ON gewertet
                                              var randomLightNewState = if (randomLightCurrentState != OFF) OFF else ON
                                              logInfo(filename, "Schalte Licht {} von {} nach {}",randomItem.name,randomLightCurrentState,randomLightNewState)
                                              randomItem.sendCommand(randomLightNewState)
                                          ]
                                      } else logInfo(filename,"Tagsüber")
                                  } else logInfo(filename,"Urlaub OFF")
                              end
                              Solche Fehler sind echt nervig, weil sie eigentlich offensichtlich sind, aber wenn man die Funktionsaufrufe so aus dem Kopf verwendet, fällt das nicht wirklich auf...

                              Kommentar

                              Lädt...
                              X