Heizungsthermostatscript V2.0
Moderator: Co-Administratoren
Re: Heizungsthermostatscript V2.0
Hallo Leute
Ich bin nun schon eine ganze weile hier im Forum unterwegs, und habe schon viel gelernt.
Allen erst einmal ein großer Dank für die Hilfen.
Aber ich komme jetzt nicht mehr weiter...
Ich versuche das Heizungsscript zum laufen zu bekommen, aber wenn ich die Heizperiode auf aus stelle, ght der Regler auf 100%. Das soll ja so sein... Aber bei Heizperiode ein geht der Regler auf 0% und der Thermostat auf off.
Ich habe schon viel rumprobiert, aber ich finde den Fehler nicht.
Hat das ggf. schon einmal jemand gehabt???
Bitte Hilfe
Ich bin nun schon eine ganze weile hier im Forum unterwegs, und habe schon viel gelernt.
Allen erst einmal ein großer Dank für die Hilfen.
Aber ich komme jetzt nicht mehr weiter...
Ich versuche das Heizungsscript zum laufen zu bekommen, aber wenn ich die Heizperiode auf aus stelle, ght der Regler auf 100%. Das soll ja so sein... Aber bei Heizperiode ein geht der Regler auf 0% und der Thermostat auf off.
Ich habe schon viel rumprobiert, aber ich finde den Fehler nicht.
Hat das ggf. schon einmal jemand gehabt???
Bitte Hilfe
-
- Beiträge: 630
- Registriert: 01.11.2007, 21:45
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Siebengebirge (bei Bonn)
- Hat sich bedankt: 18 Mal
- Danksagung erhalten: 2 Mal
Re: Heizungsthermostatscript V2.0
Ich habe zu Anfang auch mit dem Script ziemlich gekämpft, es lag am Ende an mir.
Ganz wichtig: prüfe alle zu setzenden Variablen (Schreibweisen, Zustände etc.). Und natürlich auch die Heizzeiten/-temperaturen setzen.
Ganz wichtig: prüfe alle zu setzenden Variablen (Schreibweisen, Zustände etc.). Und natürlich auch die Heizzeiten/-temperaturen setzen.
Gruß Stefan
Re: Heizungsthermostatscript V2.0
Hallo Lueghi
Vielen Dank für Deine Ausführungen.
Ich habe heute noch einmal komplett neu angefangen.
Alle Variablen, Programme und Scripte gelöscht und CCU neu gestartet.
Die Variablen neu angelegt, und auch ein diesmal (erst) vereinfachtes Programm.
Das Script von den Zeiten angpasst, und den entsprechenden Thermostaten eingetragen.
Aber dann leider wiéder das selbe Ergebnis.
Wenn Du das Script V2 auch einsetzt, kannst Du mir ggf. einmal ein Screenshot Deiner Variablen schicken.
Ich würde die gerne einmal mit meinen vergleichen.
Auch das Script wäre interessant.
mfg
Dirk
Vielen Dank für Deine Ausführungen.
Ich habe heute noch einmal komplett neu angefangen.
Alle Variablen, Programme und Scripte gelöscht und CCU neu gestartet.
Die Variablen neu angelegt, und auch ein diesmal (erst) vereinfachtes Programm.
Das Script von den Zeiten angpasst, und den entsprechenden Thermostaten eingetragen.
Aber dann leider wiéder das selbe Ergebnis.
Wenn Du das Script V2 auch einsetzt, kannst Du mir ggf. einmal ein Screenshot Deiner Variablen schicken.
Ich würde die gerne einmal mit meinen vergleichen.
Auch das Script wäre interessant.
mfg
Dirk
-
- Beiträge: 118
- Registriert: 15.05.2010, 23:30
Re: AW: Heizungsthermostatscript V2.0
Bei mir stehen alle Temperaturen nach nem Neustart der ccu auch erstmal auf off. Lass es einfach mal laufen oder starte das Programm per Hand.
Gruß chris
Gesendet von meinem Nexus 4 mit Tapatalk 2
Gruß chris
Gesendet von meinem Nexus 4 mit Tapatalk 2
Re: AW: Heizungsthermostatscript V2.0
Meines erachtens ist die Bedingung kurz vor dem Setzen der neuen Solltemperatur problematisch.landi-mandi hat geschrieben:Bei mir stehen alle Temperaturen nach nem Neustart der ccu auch erstmal auf off. Lass es einfach mal laufen oder starte das Programm per Hand.
Ich habe diese bei mir testweise auf
Code: Alles auswählen
if ( soll_ist == 0) {
prioritaet = true;
}
if ((diff >= setdelta) || (prioritaet) || (soll_ist == grad_fenster) || (sv_timestamp >= rt_timestamp) || ((soll_ist == soll_alt) && (soll_alt <> soll_neu))) {
Hintergrund: Nach einem Neustart wird die ursprüngliche Bedingung nie erfüllt, da:
da diff >= setdelta false -> die eingestellte Zeit von 120 min ist sicher noch nicht rum
prioritaet false -> ist nur true falls das Fenster geöfnet wird
soll_ist == grad_fenster false -> wäre schon ein unwahrscheinlicher zufall ( bibber)
sv_timestamp >= rt_timestamp false -> Alle Systemvariablen bekommen beim Neustart eine aktuellen Timestamp.
Der RT Timestamp hinkt diesem immer etwas nach.
(soll_ist == soll_alt) && (soll_alt <> soll_neu) wird nicht erfüllt, da soll_ist nach einem Neustart anscheinend erst einmal =0 ist.
Durch das setzen von prioritaet=true wird bei soll_ist =0 definitiv eine neue Soll-Temperatur an das RT gesendet.
Das Setzen scheint die Rückmeldung des soll_ist des RT an die CCU relativ schnell zu korrigieren ( 1-2 min) so das das Script danach wie gewohnt funktioniert
Vielleicht mag sich ja jemand der Sache einmal annehmen und die Theorie hinterleuchten. Habe die CCU auch erst ein paar Wochen und bin auch noch nicht 100% Skriptfest.
EDIT:
die Änderung funktioniert zuverlässig... ausser wenn ein Fenster während des Reboots geöffnet ist. MIST!
Dieser Fehler tritt allerdings erst auf, seit dem ich den Fensterzustand in einer Variable speicher damit er nach einem Reboot verfügbar ist ( sonst meint die CCU ja erstmal, dass alle Fenster geschlossen sind und heizt wie bekloppt weiter).
Dadurch erfülle ich nun
if (soll_ist <= grad_fenster)
und soll_neu wird auf soll_ist ( 0 °C) gesetzt
Zuletzt geändert von stefanp am 05.01.2013, 18:38, insgesamt 3-mal geändert.
Re: Heizungsthermostatscript V2.0
Hallo landi-mandi
Ich habe die Zeit für das Rückstellen im Script schon auf 1 Minute reduziert, um besser testen zu können.
Auch habe ich das Programm mehrfach per hand gestartet, damit es auch durchläuft.
Aber was ich auch mache, es scheint bei mir ein digitales Script zu sein... es gibt nur 0% oder 100% Heizleistung!
Hallo Stefanp
Da ich mich noch nicht so lange mit den Scripten beschäftige, kann ich die nur theorethisch folgen.
Bis ich so ein Script selber hinbekomme, dauert es wohl noch ein wenig...
Ich habe die Zeit für das Rückstellen im Script schon auf 1 Minute reduziert, um besser testen zu können.
Auch habe ich das Programm mehrfach per hand gestartet, damit es auch durchläuft.
Aber was ich auch mache, es scheint bei mir ein digitales Script zu sein... es gibt nur 0% oder 100% Heizleistung!
Hallo Stefanp
Da ich mich noch nicht so lange mit den Scripten beschäftige, kann ich die nur theorethisch folgen.
Bis ich so ein Script selber hinbekomme, dauert es wohl noch ein wenig...
Re: Heizungsthermostatscript V2.0
Beim verstehen des Scriptes hat mir der erweiterte Script Parser sehr viel weitergeholfen:
http://homematic-forum.de/forum/viewtop ... =31&t=7014
Er erlaubt es die ganzen Variablen im Script im Auge zu behalten und eventuelle Rückschlüsse zu ziehen.
Die Ausgabe sieht dann bei abgeschalteter Komfort Config z.B. so aus:
Interessant wäre primär der Wert von "soll_neu", dieser wird , falls die anderen Parmeter passen ins Thermostat geschrieben.
Sollte hier eine 0 drin stehen würde ich mir alle Zeilen mit "soll_neu =" mal genauer unter die Lupe nehmen.
Am einfachsten dürfte es sein wenn du vor diese Zeilen jeweils ein
WriteLine( "TEST-Punkt1");
einfügst um ersteinmal herauszubekommen welches Zuweisung deinen Sollwert auf 0 setzt.
Bei Verwendung des erweiterten Script Parsers findest du die Ausgaben der WritelLine() Befehle in
der Variable "STDOUT".
Zum schnelleren Testen kannst du auch temporär
in
ändern. Das hat bei mir immer ganz gute Dienste geleistet.
Gerade kommt mir noch eine weitere Idee:
Prüfe mal welchen Wert deine Variable "PARTYTEMPERATUR" enthält. Nicht dass hier eine 0 hinterlegt ist.
Hier meine Variablen
http://homematic-forum.de/forum/viewtop ... =31&t=7014
Er erlaubt es die ganzen Variablen im Script im Auge zu behalten und eventuelle Rückschlüsse zu ziehen.
Die Ausgabe sieht dann bei abgeschalteter Komfort Config z.B. so aus:
Code: Alles auswählen
{
"kconfig": "0",
"sessionId": "",
"deltaStdMin": "02:00",
"regler": "BidCos-RF.JEQ0235834:2.SETPOINT",
"stunde": "2",
"tag": "6",
"offen": "0",
"debug": "0",
"zeitleiste_gestern": "",
"soll_alt": "21.500000",
"zeitleiste_mon": "111111111111133455555555555555555555555555555111",
"stderr": "",
"zeitleiste_heute": "111111111111113355555555555555555555555555551111",
"woche": "0",
"partytemperatur": "-1.000000",
"soll_ist": "21.500000",
"heizwert": "5",
"stdout": "",
"STDOUT": "",
"prioritaet": "false",
"id": "",
"grad_0": "17.000000",
"grad_1": "19.000000",
"grad_2": "20.000000",
"grad_aa": "19",
"grad_3": "20.500000",
"grad_urlaub": "16.500000",
"add": "0",
"grad_4": "21.000000",
"grad_5": "21.500000",
"grad_6": "22.000000",
"zeitleiste_mit": "111111111111133455555555555555555555555555555111",
"grad_7": "22.500000",
"value": "BidCos-RF.JEQ0121226:1.STATE",
"raum": "Wohnzimmer",
"grad_8": "23.000000",
"httpUserAgent": "",
"grad_9": "24.000000",
"myChannel": "BidCos-RF.JEQ0121226:1.STATE",
"sRegler": "JEQ0235834",
"grad_fenster": "7",
"sv_timestamp": "2013-01-05 14:54:40",
"grad_gaeste": "22",
"zeitleiste_fre": "111111111111133455555555555555555555555555555111",
"setdelta": "7200",
"myAssembly": "null",
"device": "null",
"soll_neu": "21.500000",
"rt_timestamp": "1970-01-01 00:59:59",
"settime": "2013-01-05 12:26:06",
"now": "1970-01-01 00:59:59",
"regler_gesetzt": "0",
"leiste": "1",
"item": "null",
"zeitleiste_son": "111111111111113355555555555555555555555555551111",
"zeitleiste_don": "111111111111133455555555555555555555555555555111",
"zeitleiste_sam": "111111111111113355555555555555555555555555551111",
"zeitleiste_die": "111111111111133455555555555555555555555555555111",
"sTuerenUndFenster": "BidCos-RF.JEQ0121226:1.STATE",
"itemID": "",
"diff": "0",
"sTime": "30",
"minute": "0",
"func": "null"
}
Sollte hier eine 0 drin stehen würde ich mir alle Zeilen mit "soll_neu =" mal genauer unter die Lupe nehmen.
Am einfachsten dürfte es sein wenn du vor diese Zeilen jeweils ein
WriteLine( "TEST-Punkt1");
einfügst um ersteinmal herauszubekommen welches Zuweisung deinen Sollwert auf 0 setzt.
Bei Verwendung des erweiterten Script Parsers findest du die Ausgaben der WritelLine() Befehle in
der Variable "STDOUT".
Zum schnelleren Testen kannst du auch temporär
Code: Alles auswählen
boolean prioritaet = false; ! Ist prioritaet = true, dann wird die neue Solltemperatur auf jeden Fall in den Regler geschrieben.
Code: Alles auswählen
boolean prioritaet = true; ! Ist prioritaet = true, dann wird die neue Solltemperatur auf jeden Fall in den Regler geschrieben.
Gerade kommt mir noch eine weitere Idee:
Prüfe mal welchen Wert deine Variable "PARTYTEMPERATUR" enthält. Nicht dass hier eine 0 hinterlegt ist.
Hier meine Variablen
- Dateianhänge
-
- Unbenannt.png (17.52 KiB) 4405 mal betrachtet
Re: Heizungsthermostatscript V2.0
Hallo Stefanp
Vielen Dank, das Du den Screenshot Deiner Variablen gepostet hast. Das hat mir echt geholfen, hier lag wohl der Fehler
Du hast bei Partytemperatur die Einheit dahinter, das hatte ich nicht.
Ich habe die Einheit angefügt, und siehe da, es funktioniert.
Vielleicht ist es ja nur Zufall, oder muss die Einheit echt dabei sein ???
Jedenfalls danke ich Dir und allen anderen hier im Forum für die Hilfe.
Nun läuft das Script erst einmal in einem Raum und wird beobachtet.
Dirk
Vielen Dank, das Du den Screenshot Deiner Variablen gepostet hast. Das hat mir echt geholfen, hier lag wohl der Fehler
Du hast bei Partytemperatur die Einheit dahinter, das hatte ich nicht.
Ich habe die Einheit angefügt, und siehe da, es funktioniert.
Vielleicht ist es ja nur Zufall, oder muss die Einheit echt dabei sein ???
Jedenfalls danke ich Dir und allen anderen hier im Forum für die Hilfe.
Nun läuft das Script erst einmal in einem Raum und wird beobachtet.
Dirk
Re: Heizungsthermostatscript V2.0
Sorry, aber das dürfte ein Zufall sein - die Einheit ist nur kosmetischDirkschr hat geschrieben:Hallo Stefanp
Vielleicht ist es ja nur Zufall, oder muss die Einheit echt dabei sein ???
Schön, dass es trotzdem funktioniert
Re: Heizungsthermostatscript V2.0
Hallo Leute
Ich habe mal wieder ein Problem, wo ich leider nicht weiter komme.
Im Script habe ich eingestellt, das zwei Stunden die manuelle Eingabe am Regler genutz wird, bis wieder auf die zentrale Steuerung umgestellt wird.
Aber das funktioniert leider nicht.
Sobald das Programm abläuft wird trotzdem wieder die Händisch eingestelle Temperatur überschrieben.
Kann mir jemand helfen, wo liegt das Problem?
Dirk
Ich habe mal wieder ein Problem, wo ich leider nicht weiter komme.
Im Script habe ich eingestellt, das zwei Stunden die manuelle Eingabe am Regler genutz wird, bis wieder auf die zentrale Steuerung umgestellt wird.
Aber das funktioniert leider nicht.
Sobald das Programm abläuft wird trotzdem wieder die Händisch eingestelle Temperatur überschrieben.
Kann mir jemand helfen, wo liegt das Problem?
Dirk