Fussbodenheizung Vorheizzeit automatisch lernen

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

4_motion
Beiträge: 45
Registriert: 24.01.2016, 12:13
Hat sich bedankt: 2 Mal

Re: Fussbodenheizung Vorheizzeit automatisch lernen

Beitrag von 4_motion » 24.03.2016, 19:49

Hallo noch einmal,

sorry, wenn ich das nicht so intensiv betreiben kann, der liebe Job. Trotzdem möchte ich das Problem nach wie vor noch lösen. Vielleicht hat jemand eine Idee, warum das Script nicht läuft. Es wäre schön, wenn mir hier jemand helfen könnte.

Vielen Dank und schöne Ostern

4_motion

4_motion
Beiträge: 45
Registriert: 24.01.2016, 12:13
Hat sich bedankt: 2 Mal

Re: Fussbodenheizung Vorheizzeit automatisch lernen

Beitrag von 4_motion » 26.03.2017, 19:29

Hallo an alle,

ich habe das Thema wieder einmal aufgegriffen und die automatische Vorheizung funktioniert jetzt. Ich habe z.B. im Bad eingestellt, dass es um 07:00 Uhr am Sonntag warm sein soll. Das System hat in den letzten Tagen gelernt und den Heizkreis so zugeschaltet, dass um 07:00:59 Uhr die Solltemperatur erreicht wurde. Im Wohnzimmer hat das noch nicht geklappt, weil hier teilweise in der Aufheizphase, in der das System auch wieder lernt, gelüftet wurde. Da muss ich mir noch etwas einfallen lassen. Sobald ich das Problem mit der "Lüftung während der Lernphase" gelöst habe, stelle ich das Programm gerne online.

Im Moment habe ich die Zeiten, wann es warm sein soll und die Wunschtemperatur im Programm fest vorgegeben. Viel lieber würde ich das aus den Wandthermostaten auslesen. Kennt jemand eine Möglichkeit, wie ich aus den Wandthermostaten die Komforttemperatur auslesen kann. Auch den nächsten Einschaltpunkt würde ich gerne aus dem WT auslesen. Vielleicht hat ja jemand eine Lösung.


Ich freue mich auf hoffentlich viele Vorschläge.

Danke 4-motion

twoxx
Beiträge: 534
Registriert: 16.03.2015, 18:57
Hat sich bedankt: 1 Mal
Danksagung erhalten: 15 Mal

Re: Fussbodenheizung Vorheizzeit automatisch lernen

Beitrag von twoxx » 07.04.2017, 22:12

Hallo 4-motion.

Ich nutze bei meinem Fussbodenheizungsscript eine von mir berechnete Pulsweitenmodulierung. Dabei wird die aktuelle ISt-Temperatur und die Entwicklung der Isttemperatur im Raum der letzen 20, 40, 60 Minuten mit berücksichtigt und so die Heizzeit des Stellantriebes "vorausgerechnet". Dabei prüft das Script im Standard alle 20 Minuten die aktuelle Raumtemperaturentwicklung (kann individuell geändert werden) und passt jeweils den Einschaltzeitraum des Stellantriebes entsprechend an. Mit der Funktionsweise meines Scriptes müsstest Du Dein Problem beim "Zwischenlüften" oder auch bei anderen einflüssen wie erhöhte sonneneinstrahlung etc.lösen können.

Ich stelle mir vor, das Dein Script die Fussbodenheizung mit den erlernten Werten steuert und die Stellantriebe so rechtzeitig zu den richtigen Tageszeiten einschaltet um die gewünschte Raumtemperatur dann zum richtigen Zeitpunkt zu erreichen. Und das passiert solange über Deine Lösung, wie sich die Ist-Temperatur des Raumes im Bereich zwischen 0 Grad Celsisus und dem Wert der bei mir als "Niedertemp" bezeichnet wird befindet. Wenn die Raumtemperatur dann über "Niedertemp" steigt, übernimmt dann meine Lösung, wodurch ein "Überheizen" im Raum oder auch ein "nicht genügend geheizt" im falle deines "zwischenlüftens" dann in jedem Fall verhindert wird, egal ob der Raum gelüftet wurde oder nicht oder egal ob auch noch andere einflüsse "dazwischenfunken". Meine Lösung regelt dann auch entsprechend die Feinsteuerung um die Raumtemperatur im gewünschten Bereich zu halten und um auf "unregelmäßige Raumtemperaturveränderungen" wie z.B Sonneneinstrahlung, mehr Leute betreten den Raum, Ofen in der Küche heizt mit etc. zu reagieren.

also kurz gesagt: deine lösung sorgt dafür das der stellantrieb rechtzeitig eingeschaltet wird um die raumtemperatur zum gewünschten zeitpunkt zu erreichen...und meine lösung sorgt dafür das unerwartete einflüsse auf die raumtemperaturentwicklung ausgeglichen werden und die raumtemperatur nach erreichen der solltemperatur konstant gehalten wird.

Siehe mein Schaubild (es kann in meinem Thread vergrößert angesehen werden):
Temp steigt.JPG
Temp steigt.JPG (17.91 KiB) 1248 mal betrachtet
Meine Lösung zieht auch die gewünschte Solltemperatur aus dem Wandthermostat anstatt die Solltemperatur fest im Script zu hinterlege, so wie Du es Dir auch wünschst.

Hier ein Script mit welchem du pro Gerät sämtliche Datenpunkte auslesen und so ermitteln kannst:

Code: Alles auswählen

string auswahl = "LEQXXXXXX";
string index;
string liste = dom.GetObject(ID_DATAPOINTS).EnumUsedNames();
foreach (index, liste) {
var sserial = (index.StrValueByIndex(":",0).StrValueByIndex(".",1));
if (sserial == auswahl) {
Write(index #"\n");
}
}
Hier der Link zu meinem Thread:
viewtopic.php?f=31&t=24890
- Charly - Raspymatic mit Redmatic, 420 Systemvariablen, 440 Programmen, 101 Direktverknüpfungen, 121 Geräten
- CCU3- Raspymatic mit Redmatic und Verbindung zur PV-Anlage/Wechselrichter
- Charly - Raspymatic mit Redmatic und Sprachsteuerung per Alexa

etv
Beiträge: 195
Registriert: 06.12.2010, 09:26

Re: Fussbodenheizung Vorheizzeit automatisch lernen

Beitrag von etv » 16.09.2017, 15:49

4_motion hat geschrieben:Hallo an alle,

ich habe das Thema wieder einmal aufgegriffen und die automatische Vorheizung funktioniert jetzt. Ich habe z.B. im Bad eingestellt, dass es um 07:00 Uhr am Sonntag warm sein soll. Das System hat in den letzten Tagen gelernt und den Heizkreis so zugeschaltet, dass um 07:00:59 Uhr die Solltemperatur erreicht wurde. Im Wohnzimmer hat das noch nicht geklappt, weil hier teilweise in der Aufheizphase, in der das System auch wieder lernt, gelüftet wurde. Da muss ich mir noch etwas einfallen lassen. Sobald ich das Problem mit der "Lüftung während der Lernphase" gelöst habe, stelle ich das Programm gerne online.
Servus 4-motion,

gibt es bei deinem Projekt Neuigkeiten? Mich würde ein Skript mit der automatischen Berechnung sehr interesseieren, da ich ja daran gescheitert bin :)
Möchte den heurigen Winter wiedermal zum Experimentieren nutzen UND die Steuerung komplett auf ioBroker auslagern, weil es da viel mehr Möglichkeiten gibt.


Würde mich über dein Script und ein paar erklärende Worte freuen...

Liebe Grüße
tom
__________________________________________________________________
zwei CCU2 und den ioBroker auf einem Raspi4 der die beiden synchronisiert,
eigentlich mittlerweile das HIRN des Smarthomes darstellt und vor allem mit
Javascript alles steuert, regelt, loggt - und - visualisiert...

whn
Beiträge: 61
Registriert: 24.06.2017, 13:38
System: CCU
Wohnort: Bremen
Danksagung erhalten: 1 Mal

Re: Fussbodenheizung Vorheizzeit automatisch lernen

Beitrag von whn » 17.09.2017, 16:20

Hoffentlich ist dieser Hinweis nicht OFF-topic aber der HMIP-WTH-2 hat diese Funktionalität anscheinend bereits implementiert:
6.5.4 Optimum-Start-/Stop-Funktion Damit zur festgelegten Zeit die gewünschte Temperatur im Raum bereits erreicht wurde, können Sie die Optimum-Start-/Stop-Funktion aktivieren. • Wählen Sie im Menüpunkt „OSSF“ durch Drehen des Stellrads (E) „On“ für das Aktivieren oder „OFF“ für das Deaktivieren der Funktion aus und bestätigen Sie die Auswahl durch kurzes Drücken des Stellrads.
Gruß, Wilfried
Gruß, Wilfried
--------------------------------------------------------------------------------
Messenger: Threema & Telegram

etv
Beiträge: 195
Registriert: 06.12.2010, 09:26

Re: Fussbodenheizung Vorheizzeit automatisch lernen

Beitrag von etv » 17.09.2017, 17:01

... ok, danke für die Info! Muss ich mir mal anschauen das neue System...
Aktuell werkeln bei mir noch die guten alten Wandthermostate, allerdings als reine "Messinstrumente" und mein Programm schaltet dann dementsprechend die Ventile mit 2-fach und 4-fach Aktoren ein und aus...

Gesendet mit Tapatalk
__________________________________________________________________
zwei CCU2 und den ioBroker auf einem Raspi4 der die beiden synchronisiert,
eigentlich mittlerweile das HIRN des Smarthomes darstellt und vor allem mit
Javascript alles steuert, regelt, loggt - und - visualisiert...

whn
Beiträge: 61
Registriert: 24.06.2017, 13:38
System: CCU
Wohnort: Bremen
Danksagung erhalten: 1 Mal

Re: Fussbodenheizung Vorheizzeit automatisch lernen

Beitrag von whn » 17.09.2017, 17:18

etv hat geschrieben:... ok, danke für die Info! Muss ich mir mal anschauen das neue System...
Gerne, ich wühle mich gerade durch die eQ-3 Dokumentationen da ich selbst gerade eine in der Planung einer Wandheizung bin.

Gruß, Wilfried
Gruß, Wilfried
--------------------------------------------------------------------------------
Messenger: Threema & Telegram

joe13
Beiträge: 65
Registriert: 10.11.2013, 22:16

Re: Fussbodenheizung Vorheizzeit automatisch lernen

Beitrag von joe13 » 22.10.2019, 11:31

paul53 hat geschrieben:
29.01.2016, 00:44
4_motion hat geschrieben:Wenn der Schaltaktor für den Stellmotor eingeschaltet wird möchte ich die aktuelle Uhrzeit in die Variable "t-ein" und die aktuelle Temperatur des zugehörigen Wandthermostaten ind die Variable "T-EIN" schreiben.

Code: Alles auswählen

string t = system.Date("%F %T");
dom.GetObject("t-ein").State(t);
real T = dom.GetObject("Name von Kanal 1 des WT").DPByHssDP("TEMPERATURE").Value();
dom.GetObject("T-EIN").State(T);
4_motion hat geschrieben:Wenn der Schaltaktor für den Stellmotor dann ausgeschaltet wird, möchte ich die aktuelle Uhrzeit in die Variable "t-aus" und die aktuelle Temperatur des zugehörigen Wandthermostaten in die Variable "T-AUS" schreiben. Aus den dann vorliegenden Informationen möchte ich dann die benötigte Heizzeit pro °C errechnen, z.B. "t-Grad" = ("t-aus" - "t-ein") / ("T-AUS" - "T-EIN"). Wie muss ich das in ein Script programmieren, welches ich dann ausführen würde, wenn der Schaltaktor ausgeschaltet wird.

Code: Alles auswählen

string t = system.Date("%F %T");
dom.GetObject("t-aus").State(t);
real T = dom.GetObject("Name von Kanal 1 des WT").DPByHssDP("TEMPERATURE").Value();
dom.GetObject("T-AUS").State(T);
integer dt = t.ToTime().ToInteger() - dom.GetObject("t-ein").Value().ToTime().ToInteger();
real dT = T - dom.GetObject("T-EIN").Value();

! Gradient in s / K
real grad = (1.0 * dt) / dT;
dom.GetObject("t-Grad").State(grad);
4_motion hat geschrieben:Aus der Variablen "t-Grad" möchte ich dann die Vorlaufzeit für den nächsten Heizvorgang ("t-Vorlauf") ermitteln. Dazu benötige ich die programmierte Solltemperatur des Wandthermostaten, auf die ausgeheizt werden soll ("T-SOLL") und die aktuelle Temperatur des Wandthermostaten ("T-IST"). "t-Vorlauf" soll dann ("T-SOLL" - "T-IST") x "t-Grad" sein.

Code: Alles auswählen

real x = dom.GetObject("Name von Kanal 1 des WT").DPByHssDP("TEMPERATURE").Value();
! Ziel-Sollwert aus SV vom Typ Zahl (aktueller Sollwert im WT ist niedriger)
real w = dom.GetObject("T-SOLL").Value();
real grad = dom.GetObject("t-Grad").Value();
! Vorlaufdauer in s
dom.GetObject("t-Vorlauf").State((w - x) * grad);
Hast Du bedacht, dass die Temperatur nicht linear von der Zeit abhängt ?
Der Temperaturanstieg von 18 auf 19 °C erfolgt wesentlich schneller als der von 21 auf 22 °C.
Hallo Zusammen,
kann mir jemand helfen ?

Möchte eine Variable nach Ablauf einer Zeit ("t-Vorlauf") auf false schalten.
(systemzeit + "t-Votlauf " = Schaltzeit für dom.GetObject(ID_SYSTEM_VARIABLES).Get("xyz").State(false) )

Danke im vorraus
Joe

Blechsombrero
Beiträge: 4
Registriert: 04.11.2019, 20:01

Re: Fussbodenheizung Vorheizzeit automatisch lernen

Beitrag von Blechsombrero » 05.11.2019, 18:16

Hallo,
ich bin neu in diesem Forum, darum bitte ich um Verständnis bei Formfehlern...
Als ich vor ein paar Tagen selbst ein Optimum Start Stop programmiert habe (bis ich herausfand, das dies über ein Script in der Heizgruppe aktivierbar ist), stand ich vor dem selben Problem.
Entweder "merkst" du dir die Startzeit in einer Variable oder den Zeitpunkt, an dem deine Variable zurückgesetzt werden soll.
Bedingung ist die minütliche Bearbeitung des Codes
Lösung mit bekannter Startzeit:

Code: Alles auswählen

t-Systemzeit = system.Date("%H:%M");
t-Startzeit = dom.GetObject("Deine_Variable_mit_der_Startzeit").Value().ToTime().Format("%H:%M");
t-Vorlauf = ?? !Variable muss das Format HH:MM sein!
t-Schaltpunkt = (((("1970-01-01 " #t-Startzeit ).ToTime() - (("1970-01-01 " #t-Vorlauf).ToTime() + 3600))).Format("%H:%M"));
if ( t-Schaltpunkt == t-Systemzeit ) { dom.GetObject(ID_SYSTEM_VARIABLES).Get("xyz").State(false) }
Ich hoffe ich kann dir damit helfen.

Gleich hinterher eine Frage meinerseits, kann ich einzelne Parameter meiner Heizgruppe (Master) auslesen, bzw. gibt es eine Möglichkeit, das Ergebnis aus dieser Abfrage sinnvoll auszucodieren??

Code: Alles auswählen

object o2=dom.GetObject("Heizung_Wohnzimmer/Küche INT0000004:1"); ! Kanal holen
WriteLine (xmlrpc.GetParamset (o2.Interface (), o2.Address () , "MASTER" ));  ! Masterwerte ausgeben lassen
Falls Interesse besteht, kann ich auch meinen vorläufigen Optimum Start Code einstellen.

MfG

Antworten

Zurück zu „HomeMatic allgemein“