Seite 1 von 1

Max. Temperatur innerhalb einer Woche

Verfasst: 15. Jan 2016 22:42
von toto1975
Hallo,

ich möchte gerne die Max. und die Min. Temperatur für eine Woche auslesen. Für den aktuellen Tag habe ich die Lösung aus dem Beispiel genommen was auch sehr gut Funktioniert

Code: Alles auswählen

rule "Update Temperature Min- and Max values for Day"
    when
        Item HMTemp received update
    then
        var Number Min
        var Number Max
        var String tmp
        var SimpleDateFormat df = new SimpleDateFormat( "HH:mm" ) 

        if (HMTemp.state instanceof DecimalType) {
            Min = (HMTemp.minimumSince(now.toDateMidnight, "mysql").state as DecimalType)
            tmp = (Math::round(Min.floatValue*10.0)/10.0) + " °C (" + df.format(HMTemp.minimumSince(now.toDateMidnight, "mysql").timestamp) + " )"
            postUpdate(HMTemp_Min, tmp)

            Max = HMTemp.maximumSince(now.toDateMidnight, "mysql").state as DecimalType
            df = new SimpleDateFormat( "HH:mm" ) 
            tmp = (Math::round(Max.floatValue*10.0)/10.0) + " °C (" + df.format(HMTemp.maximumSince(now.toDateMidnight, "mysql").timestamp) + ")"
            postUpdate(HMTemp_Max, tmp)
        }
    end
Wie muss ich die Zeile

Code: Alles auswählen

Min = (HMTemp.minimumSince(now.toDateMidnight, "mysql").state as DecimalType)
abändern für eine Woche, Monat und Jahr?

Danke und Gruß
Torsten

PS: In welcher "Sprache" werden die Regeln erstellt? Ich möchte mich da gerne weiter einlesen. Ich bin mir nicht sicher denke aber es müsste Java sein? ;)

Re: Max. Temperatur innerhalb einer Woche

Verfasst: 16. Jan 2016 17:44
von seppy
Hi Toto1975,

wenn Du immer die vergangene Woche haben möchtest, kannst Du zum Beispiel folgendes nehmen:

Code: Alles auswählen

var Number Min = (InnenEGEsszimmerHKTCurrTemp.minimumSince(now.minusWeeks(1), "mysql").state as DecimalType)
So bekommst Du immer ab dem aktuellen Zeitpunkt das Minimum für den Zeitraum einer Woche.

Zur Sprache: openHab nutzt eine von Java abgeleitete Scriptsprache. Schau mal im Wiki, irgendwo steht genau woher und wie abgeleitet. Nutzt Du den Designer?

Grüße,
Seppy

Re: AW: Max. Temperatur innerhalb einer Woche

Verfasst: 16. Jan 2016 20:23
von snowy
Hast du einen Link, wo es eine gute Dokumentation gibt, wie Klassen und Funktionen abgeleitet werden.

Zum Beispiel auch listen, oder hasmap mit Objekten?

Hab vieles bei mir jetzt in Scripte ausgelagert. Kann man z. B. einem Script ein Objekt übergeben?

Code: Alles auswählen

try {
	callScript("SCENE_HueTv")
}
catch(Exception e){
        logInfo ("Error run Script SCENE_HueTv", e.toString())
}  
Gesendet von meinem A0001 mit Tapatalk 2

Re: Max. Temperatur innerhalb einer Woche

Verfasst: 16. Jan 2016 20:39
von seppy
Hi Snowy,
ich habe auch eine zeit lang sehr viel mit Scripten hantiert. Für mich überwiegen die Nachteile, man kann eben nichts wirklich übergeben. Es gib zwar ein Möglichkeit so eine Art Funktion zu bauen, aber das Verhalten ist sonderbar und extrem schwer zu debuggen.
Für Hashmaps kannst Du einfach Java Beispiele und Dokus nehmen. Ich konnte keinen Unterschied finden.
Grüße,
Seppy

Re: Max. Temperatur innerhalb einer Woche

Verfasst: 18. Jan 2016 13:47
von toto1975
seppy hat geschrieben: Nutzt Du den Designer?

Seppy
Ja ich nutze den Designer Vorteil ist das Fehler gleich angezeigt werden und mit "strg"+"Leertaste" man eine "Auswahl" an Befehlen bekommt. Wenn man allerdings nicht die genaue Bedeutung kennt hilft es einen nur bedingt weiter ;-)

Gruß
Torsten