Min.- Max. Temperaturen Gestern und Heute

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

2LeftHands
Beiträge: 16
Registriert: 11.05.2016, 21:43

Re: Min.- Max. Temperaturen Gestern und Heute

Beitrag von 2LeftHands » 15.11.2016, 09:58

BadenPower hat geschrieben:
BadenPower hat geschrieben:Allerdings gefällt mir die Zeile 7 bei der Ausgabe nicht, denn dort sollte 2.000000 stehen und nicht 1.900000. Denn wenn 1.90000 in Zeile 7 richtig ist, dann dürfte der IF-Block nicht abgearbeitet werden. :shock:
Das Phänomen hat sich im Schlaf auch aufgeklärt. Es war gestern halt schon zu spät.

Es werden in den IF-Abfragen real's miteinander verglichen und das muß ja schiefgehen bzw. nicht immer so enden, wie man es erwartet. 1.900000 ist halt nicht gleich 1.900000 es aknn auch einmal größer oder kleiner sein.

Um es perfekt zu machen mußte man die real's vor dem Vergelich mit 10 multiplizieren und in Integer umwandeln, um sie dann zu vergleichen.
Jetzt hast du mich komplett verwirrt :cry:
CCU2 -FW 2.21.10
--------------------------------------------
55 Kanäle in 15 Geräten und 65 CUxD-Kanäle in 10 CUxD-Geräten:
1x HM-WDS10-TH-O, 3x CUX28, 3x HM-ES-PMSw1-Pl, 1x HMIP-PSM, 7x CUX91, 1x HM-Sec-RHS, 2x HM-CC-RT-DN, 1x HM-CC-VG-1, 1x HM-PB-6-WM55, 1x HM-Sec-SC-2, 1x HM-TC-IT-WM-W-EU, 1x HM-PB-2-WM55-2, 2x HM-LC-Bl1PBU-FM
--------------------------------------------

BadenPower

Re: Min.- Max. Temperaturen Gestern und Heute

Beitrag von BadenPower » 15.11.2016, 10:20

2LeftHands hat geschrieben:Jetzt hast du mich komplett verwirrt :cry:
Also, das Skript macht eigentlich was es soll.

Aber nicht so sauber wie es sein könnte.
Durch die betriebssystembedingte (hier Linux) Ungenauigkeit von real/double-Werten im hinteren Nachkommastellenbereich kann es eben sein, dass der Wert 1.9 nicht exakt gleich mit 1.9 ist.
Daher kann der Minimal- oder Maximalwert in dem Skript, wie es jetzt vorliegt auch einmal neu gesetzt werden, auch wenn der "angeblich" gleiche Wert schon in der Systemvariable steht.

Im ersten Moment ist dies kein Problem, wenn man in seinen Programmen auf "Änderung" reagiert, oder eben nur die Information angezeigt bekommen will. Reagiert man aber auf "bei Aktuallisierung", dann kann dies durchaus zu unerwünschten Effekten kommen, da das Skript die Systemvariablen für den Maximal- und Minimalwert eigenlich nur neu setzen sollte, wenn der neue Wert größer oder kleiner des Wertes ist, welcher bereits in der Systemvariable steht.

Daher sollten eben nicht zwei real's miteinander vergleichen werden, sondern zwei integer.
.

2LeftHands
Beiträge: 16
Registriert: 11.05.2016, 21:43

Re: Min.- Max. Temperaturen Gestern und Heute

Beitrag von 2LeftHands » 15.11.2016, 11:18

Ah ok ..

Nur wie kann man das so umsetzen, bin leider nicht bewandert im Scripten :roll:
CCU2 -FW 2.21.10
--------------------------------------------
55 Kanäle in 15 Geräten und 65 CUxD-Kanäle in 10 CUxD-Geräten:
1x HM-WDS10-TH-O, 3x CUX28, 3x HM-ES-PMSw1-Pl, 1x HMIP-PSM, 7x CUX91, 1x HM-Sec-RHS, 2x HM-CC-RT-DN, 1x HM-CC-VG-1, 1x HM-PB-6-WM55, 1x HM-Sec-SC-2, 1x HM-TC-IT-WM-W-EU, 1x HM-PB-2-WM55-2, 2x HM-LC-Bl1PBU-FM
--------------------------------------------

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: Min.- Max. Temperaturen Gestern und Heute

Beitrag von alchy » 15.11.2016, 11:57

2LeftHands hat geschrieben:Ah ok ..
Nur wie kann man das so umsetzen, bin leider nicht bewandert im Scripten :roll:


Du könntest anfangen die Doku zu lesen :wink:

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

2LeftHands
Beiträge: 16
Registriert: 11.05.2016, 21:43

Re: Min.- Max. Temperaturen Gestern und Heute

Beitrag von 2LeftHands » 15.11.2016, 22:20

alchy hat geschrieben:
2LeftHands hat geschrieben:Ah ok ..
Nur wie kann man das so umsetzen, bin leider nicht bewandert im Scripten :roll:


Du könntest anfangen die Doku zu lesen :wink:

Alchy

Werde ich machen ... :D

Danke für Eure Hilfe, es läuft jetzt so wie es soll.

LG
Peter
CCU2 -FW 2.21.10
--------------------------------------------
55 Kanäle in 15 Geräten und 65 CUxD-Kanäle in 10 CUxD-Geräten:
1x HM-WDS10-TH-O, 3x CUX28, 3x HM-ES-PMSw1-Pl, 1x HMIP-PSM, 7x CUX91, 1x HM-Sec-RHS, 2x HM-CC-RT-DN, 1x HM-CC-VG-1, 1x HM-PB-6-WM55, 1x HM-Sec-SC-2, 1x HM-TC-IT-WM-W-EU, 1x HM-PB-2-WM55-2, 2x HM-LC-Bl1PBU-FM
--------------------------------------------

d4pro
Beiträge: 26
Registriert: 06.01.2017, 08:47

Re: Min.- Max. Temperaturen Gestern und Heute

Beitrag von d4pro » 23.01.2017, 07:38

Hallo zusammen,
ich habe das Script wie im Video besprochen eingebunden.
Den Namen des Kanals meines Temperaturdifferenzsensors habe ich ebenfalls eingetragen (nicht wundern, die Namen machen noch keinen Sinn!).
Es funktioniert bei mir lediglich die Max-Temperatur, nicht die Min Temperatur.
(siehe Anhang)
Hat vielleicht jemand eine Idee, woran es liegen kann.... vielleicht habe ich ja irgendwas übersehen

Danke und Gruß

Script:

Code: Alles auswählen

var source = dom.GetObject("$src$");
var maxTemp = dom.GetObject("Außentemperatur Maximum");
object maxTempDate = dom.GetObject("Uhrzeit Maximum");
object minTempDate = dom.GetObject("Uhrzeit Minimum");
if (source)
{
if (source.Value() > maxTemp.Variable())
{
maxTemp.Variable(source.Value());maxTempDate.Variable(system.Date("%Y:%m:%d:%H:%M "))
}
}
else
{
var wds = dom.GetObject("Temperatur Vorlauf WP intern");
var curTemp = wds.DPByHssDP("TEMPERATURE");
maxTemp.Variable(curTemp.Value());
}
var source = dom.GetObject("$src$");
var minTemp = dom.GetObject("Außentemperatur Minimum");
var maxTemp = dom.GetObject("Außentemperatur Maximum");
object maxTempDate = dom.GetObject("Uhrzeit Maximum");
object minTempDate = dom.GetObject("Uhrzeit Minimum");
if (source)
{
if (source.Value() < minTemp.Variable())
{
minTemp.Variable(source.Value());minTempDate.Variable(system.Date("%Y:%m:%d:%H:%M "))
}
}
else
{
var wds = dom.GetObject("Temperatur Vorlauf WP intern");
var curTemp = wds.DPByHssDP("TEMPERATURE");
minTemp.Variable(curTemp.Value());
}
Dateianhänge
Anzeige.JPG
Zuletzt geändert von alchy am 23.01.2017, 15:17, insgesamt 1-mal geändert.
Grund: Code in Codetags posten

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: Min.- Max. Temperaturen Gestern und Heute

Beitrag von alchy » 23.01.2017, 17:55

Da es ags noch nicht kälter als -59Grad geworden ist, warum sollte das Script die aktuelle Temperatur als niedriger als die gespeicherte Minimaltemperatur bewerten?
Außerdem ist das Script überholt, bzw. kann auch durch ein WrapperDevice CUX9002001 mit sinnvollen Datenpunkten ersetzt werden, wenn du z.B. eh CUxD installiert hast.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

d4pro
Beiträge: 26
Registriert: 06.01.2017, 08:47

Re: Min.- Max. Temperaturen Gestern und Heute

Beitrag von d4pro » 23.01.2017, 19:12

OK... das mit den 59°C hab ich echt übersehen...
Mein Programm läuft jetzt...
Gibt es denn ein aktuelleres Script?
Ich habe auf meiner Suche nur das hier im Forum bzw. Youtube gefunden.
CUxD habe ich nicht...Und was ist ein Wrapper Device?
Bin noch nicht so der Experte - Fange grade erst an.....Sorry...

dondaik
Beiträge: 12887
Registriert: 16.01.2009, 18:48
Wohnort: Steingaden
Hat sich bedankt: 1584 Mal
Danksagung erhalten: 221 Mal

Re: Min.- Max. Temperaturen Gestern und Heute

Beitrag von dondaik » 23.01.2017, 19:43

kein cuxd - ein fehler :-) wrapper-device .... steht im handbuch von cuxd .
-------
!!! der download der handbüchern auf den seiten von eq3 und das lesen der tips und tricks kann das hm-leben sehr erleichtern - das nutzen der suche nach schlagworten ebenso :mrgreen: !!!
wer schreibfehler findet darf sie behalten.

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: Min.- Max. Temperaturen Gestern und Heute

Beitrag von alchy » 23.01.2017, 20:22

d4pro hat geschrieben:OK... das mit den 59°C hab ich echt übersehen...
Kleiner Fehler, große Wirkung. :mrgreen:
d4pro hat geschrieben: Gibt es denn ein aktuelleres Script?
Ich habe auf meiner Suche nur das hier im Forum bzw. Youtube gefunden.
Es wird .Variable() zum Speichern der Werte benutzt, was dann den Zeitstempel der Variable nicht mit setzt. Es wird aber auch .Variable() zum Auslesen benutzt, im bunten Mix mit .Value() ..
Grundsätzlich kann man einige Scriptvariablen sparen usw...
d4pro hat geschrieben: CUxD habe ich nicht...Und was ist ein Wrapper Device?
CUxD ist ein Addon was man auf der CCU2 installieren kann. Es hat ein >>eigenes Unterforum<< und Uwe hat ein sehr umfangreiches Handbuch dazu verfasst. Es bietet unter anderem an, für ein Temperatursensor ein virtuelles "Parallelgerät" zu dem Sensor zu installieren, was dann die Werte des Origanlsensors erweitert um ein paar berechnete Datenpunkte
wrapper.jpg
d4pro hat geschrieben: Bin noch nicht so der Experte - Fange grade erst an.....Sorry...
Dann hilft viel Lesen. Siehe auch Signatur.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“