und hier nun mein Ergebnis.
Die untere Zeile (Mittelwert und Aktualisiert) ist nur zum Testen und wird später wieder ausgeblendet .
Wie man sieht, wir haben die „Eisheiligen“ .
Gruß und danke für die schnelle Hilfe in diesem Forum
Jürgen
Code: Alles auswählen
var tAkt = datapoints.Get("BidCos-RF.OEQ1387281:1.TEMPERATURE").Value(); ! altuelle Temperatur
var zAkt = system.Date("%H:%M Uhr"); ! aktuelle Zeit
var tMax = dom.GetObject("Max Temp Heute").Value(); ! Heutige Maximale Temperatur
var tMin = dom.GetObject("Min Temp Heute").Value(); ! Heutige Minimale Temperatur
var tMit = (dom.GetObject("Mittelwert").Value())*1.00; ! *1.00 um Kommastellen zu erhalten
object zMaH = dom.GetObject("Max Heute").Value(); ! Zeitpunk der MaxTempHeute
object zMiH = dom.GetObject("Min Heute").Value(); ! Zeitpunk der MinTempHeute
var tDif = 0.05; ! Bereich in dem "Tendenz = konstant =" angezeigt wird (Bei 0.05 = zwischen +0,05°C und -0,05°C Abweichung)
var n = 5.00; ! Wie schnell der Mittelwert sich dem Istwert annähert. >der Wert muss mind 02.00 sein, sinnvoll 5.00 - 10.00
! Bei 02.00= wird die Diff. pro Durchgang halbiert /Bei 10.00= wird die Diff. pro Durchgang um ein 1/10 kleiner)
! -- Aktuallisierungszeit, -----------------Zeitpunkt, wann zuletzt aktualisiert wurde
dom.GetObject("Aktualisiert").State(system.Date("%d.%m. - %H:%M Uhr"));
! -- Min/Max ,------------------------------Minimale/Maximale Temperatur wird ermittelt
if (tMax < tAkt)
{
dom.GetObject("Max Temp Heute").State(tAkt); ! (tAkt);
dom.GetObject("Max Heute").State(system.Date("%d.%m. - %H:%M Uhr")); ! State(zMaH);
}
if ((tMin) > (tAkt))
{
dom.GetObject("Min Temp Heute").State(tAkt);
dom.GetObject("Min Heute").State(system.Date("%d.%m. - %H:%M Uhr")); ! (zMiH);
}
! -- Tendenz ,---------------------------Schwankungen werden gedämpft und dann die Richtung ermittelt
tMit = ((((n - 1) * (tMit)) + (tAkt)) / n);
dom.GetObject("Mittelwert").State(tMit);
if ((tMit - tAkt) > tDif) {dom.GetObject("Tendenz").State("__ fällt __");}
elseif ((tAkt - tMit) > tDif) {dom.GetObject("Tendenz").State("++ steigt ++");}
else {dom.GetObject("Tendenz").State("= konstant =");}
! -- Ende des Programms -----------------
! - Ab hier kann alles gelöscht oder ausgeblendet werden, zum Testen benutzen - !!!
WriteLine (("===== Testausgabe: ==== ")+(dom.GetObject("Aktualisiert")).Value());
WriteLine (("Aktuelle Zeit = ")+(dom.GetObject("Aktualisiert")).Value()); ! (zAkt));
WriteLine (("Aktuelle Temp = ")+(tAkt));
WriteLine (("Maximale Temp = ")+(tMax));
WriteLine (("Minimale Temp = ")+(tMin));
WriteLine (("MaxUhrHeute = ")+(zMaH));
WriteLine (("MinUhrHeute = ")+(zMiH));
WriteLine ((" Differenz = ")+(tMit-tAkt));
WriteLine ((" T-Mittel = ")+(dom.GetObject("Mittelwert")).Value());
WriteLine ((" Tendenz = ")+(dom.GetObject("Tendenz")).Value());
WriteLine (("KonstBereich = ")+(tDif));
WriteLine (("MittelwBildg = ")+(n));