Heizungsthermostatscript V2.0

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

Moderator: Co-Administratoren

Dirkschr
Beiträge: 13
Registriert: 03.01.2013, 19:05

Re: Heizungsthermostatscript V2.0

Beitrag von Dirkschr » 03.01.2013, 19:16

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
:?:

Lueghi
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

Beitrag von Lueghi » 03.01.2013, 21:03

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.
Gruß Stefan

Dirkschr
Beiträge: 13
Registriert: 03.01.2013, 19:05

Re: Heizungsthermostatscript V2.0

Beitrag von Dirkschr » 04.01.2013, 18:13

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 :roll:

landi-mandi
Beiträge: 118
Registriert: 15.05.2010, 23:30

Re: AW: Heizungsthermostatscript V2.0

Beitrag von landi-mandi » 04.01.2013, 19:17

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

stefanp
Beiträge: 38
Registriert: 18.12.2012, 22:15

Re: AW: Heizungsthermostatscript V2.0

Beitrag von stefanp » 05.01.2013, 12:21

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.
Meines erachtens ist die Bedingung kurz vor dem Setzen der neuen Solltemperatur problematisch.
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))) {
geändert.

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.

Dirkschr
Beiträge: 13
Registriert: 03.01.2013, 19:05

Re: Heizungsthermostatscript V2.0

Beitrag von Dirkschr » 05.01.2013, 12:46

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...

stefanp
Beiträge: 38
Registriert: 18.12.2012, 22:15

Re: Heizungsthermostatscript V2.0

Beitrag von stefanp » 05.01.2013, 15:29

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:

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"
}
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

Code: Alles auswählen

boolean prioritaet = false;   ! Ist prioritaet = true, dann wird die neue Solltemperatur auf jeden Fall in den Regler geschrieben.
in

Code: Alles auswählen

boolean prioritaet = true;   ! Ist prioritaet = true, dann wird die neue Solltemperatur auf jeden Fall in den Regler geschrieben.
ä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
Dateianhänge
Unbenannt.png
Unbenannt.png (17.52 KiB) 4405 mal betrachtet

Dirkschr
Beiträge: 13
Registriert: 03.01.2013, 19:05

Re: Heizungsthermostatscript V2.0

Beitrag von Dirkschr » 05.01.2013, 20:38

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
:mrgreen:

stefanp
Beiträge: 38
Registriert: 18.12.2012, 22:15

Re: Heizungsthermostatscript V2.0

Beitrag von stefanp » 05.01.2013, 22:08

Dirkschr hat geschrieben:Hallo Stefanp
Vielleicht ist es ja nur Zufall, oder muss die Einheit echt dabei sein ???
Sorry, aber das dürfte ein Zufall sein - die Einheit ist nur kosmetisch :(
Schön, dass es trotzdem funktioniert :mrgreen:

Dirkschr
Beiträge: 13
Registriert: 03.01.2013, 19:05

Re: Heizungsthermostatscript V2.0

Beitrag von Dirkschr » 13.01.2013, 16:14

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?
Script.txt
(17.86 KiB) 266-mal heruntergeladen
Dirk
:shock:

Antworten

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