Min.- Max. Temperaturen Gestern und Heute

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

Moderator: Co-Administratoren

Benutzeravatar
BausatzFan
Beiträge: 106
Registriert: 05.10.2015, 21:36
Wohnort: Bayern

Re: Min.- Max. Temperaturen Gestern und Heute

Beitrag von BausatzFan » 10.12.2015, 22:15

Guten Abend,

leider gelingt es mir nicht die Skripte richtig auszuführen. Bei der Fehlerprüfung bekomme ich bei beiden Skripten einen Fehler. Kann mir jemand sagen wo mein Fehler liegt?

Skript 1 - bei Aktualisierung
var curTemp = dom.GetObject("Aussen.Temperaturfuehler.Sender").DPByHssDP("TEMPERATURE").Value();
var maxTemp = dom.GetObject("Außentemperatur Maximum").Value();
var minTemp = dom.GetObject("Außentemperatur Minimum").Value();
var jetzt = system.Date("%H:%M h");

if (curTemp > maxTemp)
{ dom.GetObject("Außentemperatur Maximum").State(curTemp);
dom.GetObject("Uhrzeit Maximum").State(jetzt);
}
if (curTemp < minTemp)
{ dom.GetObject("Außentemperatur Minimum").State(curTemp);
dom.GetObject("Uhrzeit Minimum").State(jetzt);
}]

Skript 2 - Mitternacht
var curTemp = dom.GetObject("Aussen.Temperaturfuehler.Sender").DPByHssDP("TEMPERATURE").Value();
var maxTemp = dom.GetObject("Außentemperatur Maximum").Value();
var minTemp = dom.GetObject("Außentemperatur Minimum").Value();

dom.GetObject("Außentemperatur Max Gestern").State(maxTemp);
dom.GetObject("Außentemperatur Min Gestern").State(minTemp);
dom.GetObject("Außentemperatur Maximum").State(curTemp);
dom.GetObject("Außentemperatur Minimum").State(curTemp);
dom.GetObject("Uhrzeit Maximum").State("00:00 h");
dom.GetObject("Uhrzeit Minimum").State("00:00 h");


Mein Servicemeldungen haben andere Ursachen.
Danke!
Dateianhänge
hm4.png
Systemvariablen Uhrzeit
hm3.png
Systemvariablen
hm2.png
Skript was bei Aktualisierung ausgelöst wird
hm1.png
Skript was Mitternacht ausgelöst wird
CCU3 - Firmwareversion: 3.41.11; 243 Kanaele in 84 Geraeten und 49 CUxD-Kanaele in 4 CUxD-Geraeten

Xel66
Beiträge: 14165
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 585 Mal
Danksagung erhalten: 1500 Mal

Re: Min.- Max. Temperaturen Gestern und Heute

Beitrag von Xel66 » 11.12.2015, 22:44

Ich würde auf Sonderzeichen verzichten, denn dieses meckert das Scriptmodul an (ß in Außentemperatur).

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Xel66
Beiträge: 14165
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 585 Mal
Danksagung erhalten: 1500 Mal

Re: Min.- Max. Temperaturen Gestern und Heute

Beitrag von Xel66 » 11.12.2015, 22:46

Xel66 hat geschrieben:Ich würde auf Sonderzeichen verzichten, denn dieses meckert das Scriptmodul an (ß in Außentemperatur). Auch wenn einige Anwender hier schreiben, dass sie mit Sonderzeichen kein Problem haben, ist das das klassische Gegenbeispiel dazu. Um gar nicht erst in solche Probleme zu rennen, ersetze ich solche durch ss, ae, oe oder ue bzw. verwende Begriffe, die diese nicht enthalten. Darum heißt meine Gästetoilette in der CCU auch "Besucherklo".

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Benutzeravatar
BausatzFan
Beiträge: 106
Registriert: 05.10.2015, 21:36
Wohnort: Bayern

Re: Min.- Max. Temperaturen Gestern und Heute

Beitrag von BausatzFan » 13.12.2015, 20:09

Danke, Xel66, für die schnelle Antwort.

Ich kenne das Problem mit den Sonderzeichen und habe sie bislang auch konsequent vermieden. Nur bei diesem Skript habe ich sie übernommen, da alle Vorredner beschrieben haben, dass es funktioniert.

Dennoch habe ich Deinen Rat befolgt und alle Sonderzeichen korrigiert - also alle ß gegegn ss ausgetauscht. In den Systemvariablen als auch in den Skripten. Das Resultat ist leider das gleiche wie schon zuvor...

Das Skript scheint schon nicht zu laufen. Die Fehlerprüfung im Skripteditor bringt den Fehler:

Error 1 at row 6 col 12 near ^ > maxTemp)
{ dom.GetObject("Aussentemperatur Maximum").State(curTemp);
dom.Ge
Parse following code failed:
var curTemp = dom.GetObject("Aussen.Temperaturfuehler.Sender").DPByHssDP("TEMPERATURE").Value();
var maxTemp = dom.GetObject("Aussentemperatur Maximum").Value();
var minTemp = dom.GetObject("Aussentemperatur Minimum").Value();
var jetzt = system.Date("%H:%M h");

if (curTemp > maxTemp)
{ dom.GetObject("Aussentemperatur Maximum").State(curTemp);
dom.GetObject("Uhrzeit Maximum").State(jetzt);
}
if (curTemp < minTemp)
{ dom.GetObject("Aussentemperatur Minimum").State(curTemp);
dom.GetObject("Uhrzeit Minimum").State(jetzt);
}
(Siehe auch Dateianhang/Bild zu meinem ersten Beitrag)

Anscheinend kommt er mit dem Ausdruck "if (curTemp > maxTemp)" nicht klar. Es wäre toll wenn mir noch mal jemand helfen würde. Ich würde diese Funktion gerne für eine Reihe an Messwerten anwenden.

Vielen Dank und Grüße aus Franken!
CCU3 - Firmwareversion: 3.41.11; 243 Kanaele in 84 Geraeten und 49 CUxD-Kanaele in 4 CUxD-Geraeten

Xel66
Beiträge: 14165
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 585 Mal
Danksagung erhalten: 1500 Mal

Re: Min.- Max. Temperaturen Gestern und Heute

Beitrag von Xel66 » 13.12.2015, 21:31

Ist dann vermutlich ein typisches Beispiel für die These, dass der CCU der Speicherplatz für die Variablen ausgeht oder ähnliches. Vermutlich läuft das Script, wenn Du die CCU mal neu bootest. Dieser Fehler kommt leider öfter vor. Es gibt verschiedene Ansätze das Problem zu umgehen. Keine Ahnung, welcher der richtige Ansatz ist. Der Hersteller "kennt das Problem" wohl nicht.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Benutzeravatar
BausatzFan
Beiträge: 106
Registriert: 05.10.2015, 21:36
Wohnort: Bayern

Re: Min.- Max. Temperaturen Gestern und Heute

Beitrag von BausatzFan » 13.12.2015, 23:04

ne, das glaub ich jetzt nicht! :shock:

Ich habe schon viel programmiert in meinem Leben - 5 verschiedene Sprachen sind es und Assembler ist dabei (hm ausgeschlossen) - aber noch keine erforderte einen "Reboot" des Systems vor dem Ausführen eines Skripts! Als leidiger Windows-Nutzer sollte ich zwar auf die Idee kommen mal neu zu booten, bevor ich die Schuld auf ein Programm schiebe, aber hier, bei sowas? - ohne Worte -

Danke Xle66, das hat geholfen. ich bekomme jetzt Werte angezeigt :)

Schade aber irgendwie, dass anscheinend alle Anfänger über die gleichen Unzulänglichkeiten stolpern wie ich. Zum Glück bin ich erst jetzt eingestiegen und habe Andere viel Vorarbeit machen lassen. Hab ich nicht genügend recherchiert, oder gibt's da einfach nicht genug Aufklärung?
CCU3 - Firmwareversion: 3.41.11; 243 Kanaele in 84 Geraeten und 49 CUxD-Kanaele in 4 CUxD-Geraeten

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

Re: Min.- Max. Temperaturen Gestern und Heute

Beitrag von alchy » 14.12.2015, 15:09

Unter anderem in diesem >> Thread << kannst du einiges darüber nachlesen.

Ich kann das immer noch nicht nachvollziehen. Trotz Einsatz vieler eigener Scripte und ständiger Testerei dafür.

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.

prinzeisenherz1
Beiträge: 194
Registriert: 22.01.2015, 19:44
Danksagung erhalten: 1 Mal

Re: Min.- Max. Temperaturen Gestern und Heute

Beitrag von prinzeisenherz1 » 15.12.2015, 18:14

Hi zusammen!
Ich möchte das hier auch gerne umsetzen!
Als Temperaturfühler hab ich aber nur die Werte über wunderground!
Kann ich das auch über eine variable (Wetter_Temperatur) auswerten?
Hab das mit dem Skript von BausatzFan probiert aber leider klappt das nicht!
Das angepasste Skript :

Code: Alles auswählen

var curTemp = dom.GetObject("Wetter_Temperatur").Value();
var maxTemp = dom.GetObject("Aussentemperatur_Maximum").Value();
var minTemp = dom.GetObject("Aussentemperatur_Minimum").Value();
var jetzt = system.Date("%H:%M h");

if ( curTemp.Value() > maxTemp.Value() )
{
dom.GetObject("Aussentemperatur_Maximum").State(curTemp);
dom.GetObject("Uhrzeit Maximum").State(jetzt);
}
if ( curTemp.Value() < minTemp.Value() )
{
dom.GetObject("Aussentemperatur_Minimum").State(curTemp);
dom.GetObject("Uhrzeit Minimum").State(jetzt);
}
Programm :
Screenshot_2015-12-15-18-12-03.png
Vielleicht kann mir da jemand weiterhelfen
Johnny

prinzeisenherz1
Beiträge: 194
Registriert: 22.01.2015, 19:44
Danksagung erhalten: 1 Mal

Re: Min.- Max. Temperaturen Gestern und Heute

Beitrag von prinzeisenherz1 » 16.12.2015, 08:24

Hab das Skript wie folgt geändert und jetzt klappt es!

Code: Alles auswählen

var curTemp = dom.GetObject("Wetter_Temperatur").Value();
var maxTemp = dom.GetObject("Aussentemperatur_Maximum").Value();
var minTemp = dom.GetObject("Aussentemperatur_Minimum").Value();
var jetzt = system.Date("%H:%M h");

if (curTemp > maxTemp)
{
dom.GetObject("Aussentemperatur_Maximum").State(curTemp);
dom.GetObject("Uhrzeit Maximum").State(jetzt);
}

if (minTemp > curTemp)
{
dom.GetObject("Aussentemperatur_Minimum").State(curTemp);
dom.GetObject("Uhrzeit Minimum").State(jetzt);
}
Zuletzt geändert von prinzeisenherz1 am 17.12.2015, 20:12, insgesamt 1-mal geändert.

Benutzeravatar
Andronid
Beiträge: 265
Registriert: 06.03.2012, 17:52
Wohnort: Beelitz

Re: Min.- Max. Temperaturen Gestern und Heute

Beitrag von Andronid » 17.12.2015, 08:45

Hallo BausatzFan,

wenn ich das richtig sehe, hast du in der Systemvariablen "Uhrzeit Minimum" die Einheit "°C" statt "h" verwendet. Kann das evtl. daran liegen?
Beste Grüße
Andronid


--------------------------------------------------------------------------------------------------------
RaspiMatic, Fw: 3.51.6, 132 Kanäle in 66 Geräten und 48 CUxD-Kanäle in 3 CUxD-Geräten:

---------------------------------------------------------------------------------------------------------

Antworten

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