Ankündigung

Einklappen
Keine Ankündigung bisher.

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