Ankündigung

Einklappen

Serverwartung 21.2.



Am 21.2. im Laufe des späten Abends wird eine Serverwartung durchgeführt. Das Forum ist dadurch für gut zwei Stunden nicht erreichbar.
Es wird eine Wartungsseite geschaltet.

Mehr anzeigen
Weniger anzeigen

MinimumSince-Problem

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

    MinimumSince-Problem

    Guten Morgen,

    ich habe ein Problem mit folgender Regel:
    Code:
    rule "Sommer-Winter-Modus"
    when
      Time cron "0 0 0/12 * * ?"
    then
      // Mindest-Temperatur über 14 Tage höher als 5°C? Ja, Sommermodus
      if (T_Outside.minimumSince(now.minusDays(14)) > 5) {
        logInfo("runtime.busevents", "Sommermodus")
        sendCommand(Sommermodus, ON)
      }
      else {
        logInfo("runtime.busevents", "Wintermodus")
        sendCommand(Sommermodus, OFF)
      }
    end
    Das Problem ist, dass bei Ausführung ein Fehler auftritt, den ich mir nicht erklären kann:
    Code:
    06:33:00.469 ERROR o.o.m.r.i.e.ExecuteRuleJob[:77] - Error during the execution of rule Sommer-Winter-Modus
    java.lang.RuntimeException: The name '<XMemberFeatureCallImplCustom> > <XNumberLiteralImpl>' cannot be resolved to an item or type.
            at org.openhab.model.script.interpreter.ScriptInterpreter.internalFeatureCallDispatch(ScriptInterpreter.java:87)
    Habt ihr eine Idee?

    Danke & Gruß
    Sascha

    #2
    Guten morgen,

    du musst da erst einen Typecast machen:
    Code:
     T_Outside.minimumSince(now.minusDays(14)).state as DecimalType
    damit die Werte verglichen werden können. Wurde schon einige male diskutiert, hab aber gerade die Freds nicht zur Hand.

    Gruss
    Norbert

    Kommentar


      #3
      Danke für den Hinweis. Gerade so getestet:
      Code:
      var Number Min
        Min = (T_Outside.minimumSince(now.minusDays(14).state as DecimalType)
      Leider immernoch mit Fehler:
      Code:
      06:44:00.279 ERROR o.o.m.r.i.e.ExecuteRuleJob[:77] - Error during the execution of rule Sommer-Winter-Modus
      java.lang.RuntimeException: The name '<XMemberFeatureCallImplCustom>.state' cannot be resolved to an item or type.
              at org.openhab.model.script.interpreter.ScriptInterpreter.internalFeatureCallDispatch(ScriptInterpreter.java:87)
      Sascha

      Kommentar


        #4
        Das Item hast du aber in der Persistence eingetragen?
        ich nutze das z.B. so:
        Code:
        Min = (Temp_Outside.minimumSince(now.toDateMidnight, "rrd4j").state as DecimalType)

        Kommentar


          #5
          Gelöst

          Danke, das rrd4j hat geholfen:

          Code:
          06:48:50.454 INFO  o.o.m.script.runtime.busevents[:73] - Sommermodus - Min:8.763930555555557333491378813050687313079833984375
          06:48:50.458 INFO  o.o.m.script.runtime.busevents[:73] - Sommermodus
          Regel:
          Code:
          rule "Sommer-Winter-Modus"
          when
            Time cron "0/5 * * * * ?"
          then
            var Number Min
            Min = (T_Outside.minimumSince(now.minusDays(14), "rrd4j").state as DecimalType)
            logInfo("runtime.busevents", "Sommermodus - Min:"+Min)
          
            // Mindest-Temperatur über 14 Tage höher als 5°C? Ja, Sommermodus
            if (Min >= 5) {
              logInfo("runtime.busevents", "Sommermodus")
              sendCommand(Sommermodus, ON)
            }
            else {
              logInfo("runtime.busevents", "Wintermodus")
              sendCommand(Sommermodus, OFF)
            }
          end

          Kommentar

          Lädt...
          X