Fussbodenheizung mit PWM steuern

Begonnen von jamesgo, 24 September 2015, 08:28:49

Vorheriges Thema - Nächstes Thema

Skusi

Ich meine Pumpe zwar noch nicht über das Relais verdrahtet, aber was mir gerade durch den Kopf geht ist, das Du schreibst:

Zitatsobald kein Raum mehr "on" ist wird der actor auf "off" gesetzt

Da kann es natürlich zu unschönen on/Off Orgien kommen wenn die Pulse unglücklich zusammen kurz aus sind.
Wäre es nicht besser wenn man den PumpenSwitch abhängig vom pulseSum schaltet.

Das ist doch die Summe alle aktuell errechneten Pulse - oder ?

---Skusi
RPI3B, SIGNALduino, NanoCul868 (a-culfw), JeeLink Clone (LaCrosse), Firmata  für FB Heizung,Wasser+Gas+Klingel+Lux, Somfy Rolladen, Pollin Steckd.,TX29DTH,ESPEasy an S0 Stromz., MAX Fensterkontakte, IButton, SonOff Tasmota, ESP LED Controler

jamesgo

Hallo Skusi,

wäre auch eine Idee, dann bräuchte man noch eine Grenze (threshold) unter der auf "off" geschalten wird.
Abhängig von den Schwankungen bei der Temperatur Messung wird das aber auch springen. Die Frage ist wie stark.

Dummerweise hatte ich kein PulseSum in meinem Log :-( ... jetzt muss ich erst aufzeichnen.

Eine andere Idee wäre eine rückwirkende Betrachtung (z.B. erst wenn die letzten 5 Minuten kein Raum mehr "on").

Neben dem Verhalten beim Ausschalten muss man auch an das Einschalten denken.

Grüße
Andy

jamesgo

Nachtrag:

wenn ich meine Daten so anschaue dann wäre maxPulse (in Verbindung mit einem Grenzwert) am passendsten.

cobra112

Hi

Ich hab zwei Fehlermeldungen im Log gefunden.

PERL WARNING: Use of uninitialized value $ret in concatenation (.) or string at ./FHEM/93_PWMR.pm line 627.
PERL WARNING: Use of uninitialized value $FW_id in concatenation (.) or string at ./FHEM/01_FHEMWEB.pm line 745.


Der Actor Status wird auch nicht mehr ermittelt.
actorState: unknown

MFG
Cobra

jamesgo

Hallo Cobra,

Mein Post zu dem letzten Update war:

>93_PWMR.pm:
>
>eigenes reading für die Raumtemperatur um diese im thermostat widget von Tablet-UI zu verwenden
>reading energyusedp nun in Prozent. (könnte im Tablet-UI als Wert für "valve-position" verwendet werden)
>actorState ist nun ein Reading

Grüße
Andy

Skusi

Ich habe nun Gestern weiter 3 Räume und die Pumpemfreigabe verdrahtet und an Fhem gehängt. Nun experimetiere ich also mit 3 Heizkreisen und der Pumenfreigabe. Wobei die Freigabe des Kessels und der Pumpe noch paralell zu der vorhandenen Uponor Regelung läuft. Ich schreibe fleißig Plots, und schreube an den Einstellungen.

Kann man auch irgendwei erreichen das die Pulse nicht gleichzeitig paassieren. Irgendwie ist da doch die NoRoomsToStayOff usw für zuständig, aber ich hab das noch nicht wirklich durchschaut.

Mein Ziel ist bei der Sache natürlich eine möglichst lange Brennerlaufzeit, und wenig Takte. (Brennwert)
Schwierig ist bei meiner FB Heizung auch das ich ein riesen Wohnzimmer mit 3 Heizkreisen beheizen muß, dessen sehr großen Fenster aber viel Energie rauslassen. Also der größte Raum mit der schlechtesten Dämmung wird mit drei Ventilen gefahren. Mein Gedanke ist nun diese 3 Kreise nicht gleichzeitig sonder verstetzt reihum zu Pulsen. Dann wäre der Energiebedarf an die Therme nicht so sprunghaft.

Was genau kann ich da mit NoRoomsToStayOff usw erreichen ? Was genau passiert im Modul wenn ich da weas eintrage ?

Übrigens : Ich kann bei den TempRules keinen Mi definieren. Bug ???

Sonst alles Gut, super Arbeit, im Moment mein Lieblingsmodul :-)

---Skusi

RPI3B, SIGNALduino, NanoCul868 (a-culfw), JeeLink Clone (LaCrosse), Firmata  für FB Heizung,Wasser+Gas+Klingel+Lux, Somfy Rolladen, Pollin Steckd.,TX29DTH,ESPEasy an S0 Stromz., MAX Fensterkontakte, IButton, SonOff Tasmota, ESP LED Controler

Skusi

Hallo jamesgo,

ich nochmal...

Mir ist gerad enoch eine Erweiterung für Dein Monul eingefallen. Ich versuche gerade ein DOIF zu konstruieren mit dem ich einen Puls vermeiden kann wenn die Raumtemp in einer kurzen Zeit extrem abfällt. Also Erkennung Lüftung.

Leider bekomme ich den richtigen DOIF Code noch nicht hin, aber wäre das nicht ne tolle Funktion direkt im PWMR ?

Also Wunschmodus an:

wenn: [Einstellbares Zeitfenster in sekunden] die gemessene Raumtemperaut um [Einstellbarer delta T] abweicht, dann für [Zeit in sek] Puls auf X

Oder wenn das zu Aufwändig, einfach eine Feste erkennung von Temperaturstürzen und eine entsprechene Reaktion. Vielleicht per Def oder Attr aktivierbar.

Nur so eine Gedanke mit eigennützigem Hintergrund :-)
Nicht das Du Langeweile bekommst....

---Skusi
RPI3B, SIGNALduino, NanoCul868 (a-culfw), JeeLink Clone (LaCrosse), Firmata  für FB Heizung,Wasser+Gas+Klingel+Lux, Somfy Rolladen, Pollin Steckd.,TX29DTH,ESPEasy an S0 Stromz., MAX Fensterkontakte, IButton, SonOff Tasmota, ESP LED Controler

jamesgo

Hallo Skusi,

das mit dem Mittwoch ist ein Bug. (du hast ihn gefunden und darfst ihn behalten ;-) )

Du kannst das auf die Schnelle im Hash "dayno" selber fixen. Ich korregiere das in der nächsten Version.

NoOfRoomStayOff bedeutet, dass maximal (Anzahl Aktive Räume - NoOfRoomsStayOff) gleichzeitig "on" sein dürfen. Es verhindert, dass alle gleichzeit "on" sind (die Heizung kurzzeitig auf 100% läuft).

Das mit dem Lüften könntest du über ein "dummy Fenster", dass du auf "open" setzt integrieren. Dann wird die desired-temp auf frostProtect abgesenkt. Für das erkennen "für x Sekunden" habe ich aber auch keine Idee. Evt. "desired-temp" -2°.
Allerdings bin ich der Meinung dass wenn du ein Fenster 10 Minuten aufmachst es eher positiv sein wird, wenn die träge Fussbodenheizung schon mal anfängt zu heizen. In dieser kurzen Zeit hast du keine Energie verloren, die nicht schon im Boden war. Wenn dein Problem ist "ups ich habe das Fenster für 30 Minuten vergessen" dann doch über einen Fensterkontakt nachdenken.

Ich habe übrigens auch eine Brennwertheizung und das Wohnzimmer als zwei Räume mit demselben Sensor definiert. Die Zeitprogramme haben einen Zeitversatz von ein paar Minuten.

Über den Gasverbrauch kann man die verschiedenen Modulationstufen des Brenners sehr gut beobachten und ich versuche auch immer möglichst konstant in der niedrigsten Stufe zu bleiben.

Das Problem "alle gleichzeitg an/aus" habe ich schon mit verschiedenen Strategien versucht in den Griff zu bekommen. Das a und o ist es zu verhindern, dass ein Raum über einen längeren Zeitraum 100% an bleibt. In dieser Situation kann du nämlich nichts mehr regeln. Meine Definition sieht so aus: "60 900 120 0.85 1,1 3,1,0.25".

- Maximaler Puls 0.85 ... damit stelle ich sicher dass auch ein Raum mit 100% Energiebedarf immer wieder auf "off" geht
- 1,1 ... in einem Zyklus nur einen Raum (maximaler Puls) ein und einen aus schalten. (es können also nicht alle gleichzeitig an gehen. Aber alle 60 Sekunden einer an geht schon.)
- 3,1,0.25 ... falls 3 Räume im Schnitt einen Puls von 0.25 brauchen dann nicht unter eine Grundlast für die Heizung regeln. Die können dann tatsächlich 100% an bleiben bis es warm geworden ist.
(und von meinen 11 Heizkreisen sind maximal 10 gleichzeitig auf "on").

Räume die auf das Einschalten warten müssen bekommen pro Wartezyklus einen "Bonus". Damit kommen auch die mit einem geringeren Bedarf irgendwann dran.

(es passiert also doch was wenn alle 60 Sekunden dieselben Eingansparameter verarbeitet werden)

Bin schon gespannt auf deine "Endlösung" bzw. Ideen.

Grüße Andy



jamesgo

#68
Hallo Cobra112,

das von dir beschriebene Warning aus 93_PWMR ist in der nächsten Version gefixt (schon hochgeladen)

Zu dem anderen Warning:

PERL WARNING: Use of uninitialized value $FW_id in concatenation (.) or string at ./FHEM/01_FHEMWEB.pm line 745.

kann ich nichts sagen.

Falls das mit meinen Modulen zu tun hat dann bräuchte ich ein bisschen mehr Infos wann und wie oft das auftritt. (Aufruf von ...,
Ändern von einem Attribut? ...)

Danke
Andy

cobra112

Hi

Der Fehler ist weg seit den Update.

MFG
Cobra

Zitat von: jamesgo am 22 November 2015, 09:30:52
Hallo Cobra112,

das von dir beschriebene Warning aus 93_PWMR ist in der nächsten Version gefixt (schon hochgeladen)

Zu dem anderen Warning:

PERL WARNING: Use of uninitialized value $FW_id in concatenation (.) or string at ./FHEM/01_FHEMWEB.pm line 745.

kann ich nichts sagen.

Falls das mit meinen Modulen zu tun hat dann bräuchte ich ein bisschen mehr Infos wann und wie oft das auftritt. (Aufruf von ...,
Ändern von einem Attribut? ...)

Danke
Andy

Skusi

Hallo jamesgo,

ZitatDas mit dem Lüften könntest du über ein "dummy Fenster", dass du auf "open" setzt integrieren. Dann wird die desired-temp auf frostProtect abgesenkt. Für das erkennen "für x Sekunden" habe ich aber auch keine Idee. Evt. "desired-temp" -2°.
Allerdings bin ich der Meinung dass wenn du ein Fenster 10 Minuten aufmachst es eher positiv sein wird, wenn die träge Fussbodenheizung schon mal anfängt zu heizen. In dieser kurzen Zeit hast du keine Energie verloren, die nicht schon im Boden war. Wenn dein Problem ist "ups ich habe das Fenster für 30 Minuten vergessen" dann doch über einen Fensterkontakt nachdenken.

So ich hab nun erstmal tatsächlich eine Dummy angelegt, den ich mit einem DOIF Zeitlich einschalte für die Dauer der Täglichen Stoßlüftung. Das Problem ist das der Schnelle Luftaustausch meine Sensoren sofort in den Keller drücken und das PWM Modul natürlich sofort eine langen Puls erzeugt. Ich bin der Meinung das die frische Luft sich auch ohne übermäßig viel zusätzliche Energie im Fußboden, langsam an den warmen Möbeln,Wänden,Fußboden... wieder aufheizt. Natürlich ist eine Temperaturverlust da, aber er erfordert nicht das sofortige gewaltheizen mit langel Puls.

Da meine Fensterkontakte noch nicht da sind, mache ich das jetzt erstmal mit einem festen Zeitfenster.

Mir ist aufgefallen, das man schlecht erkennen kann ob nun die Window Funktion aktiv ist oder nicht. Man erkennt es nur an PWMPulse = 0. Ich würde mir einen Hinweis wünschen der klar ausdrückt das der derzeitige Betrieb durch ein Open window beeinflußt wird. Vielleicht als Internal oder so.

Hier mal ein SVG von Heute. Da sieht man schön den morgentlichen Lüftungseinbruch und die Reaktionen.

Ach, übrigens ist mir nochwas aufgefallen: Wenn man in der Def was ändert, werden in den Internals wieder die Standardwerte angzeigt. Ich setzte dann immer alle Attr neu um die Einstellungen wieder so zu haben wie vorher...

---Skusi
RPI3B, SIGNALduino, NanoCul868 (a-culfw), JeeLink Clone (LaCrosse), Firmata  für FB Heizung,Wasser+Gas+Klingel+Lux, Somfy Rolladen, Pollin Steckd.,TX29DTH,ESPEasy an S0 Stromz., MAX Fensterkontakte, IButton, SonOff Tasmota, ESP LED Controler

jamesgo

Hallo Skusi,

ein offenes Fenster drückt dir die desired-temp auf "c_tempFrostProtect" (ist bei mir 6 Grad).
Wenn du also die desired-temp mit in den Chart aufnimmst dann siehst du ob ein Fenster offen ist.

Das mit dem "DEF" ist mir schon aufgefallen. Beim Starten von FHEM stehen die attribute nach dem define in der fhem.cfg.
Die "PWMR_Define" funktion setzt die default Werte und danach werden deine Werte beim ab-arbeiten der fhem.cfg mit "PWMR_Attr" gesetzt.
Änderst du etwas mit "DEF" dann wir nur die "PWMR_Define" Funktion aufgerufen. Ich rufe dann immer "shutdown -r" über das Web auf aber das könne man natürlich auch im "PWMR_Define" behandeln.

Viele Grüße
Andy

Skusi

Hallo,
ich werd hier gerade irre.
Nun hab ich dieses Dummy mit den States Open und Close definiert. Nun schalten dei zugeordneten PWM´s auf Frostprotect wenn ich das Dummy auf Open setzte. Aber nun schalte ich das Dummy auf Close, und alle Heizkreise stehen immernoch auf Frost.

Was mach ich falsch ?

Nebenbei: Wie bekommt man eine Manuell gewählte Desired Temp wieder in den Auto Modus ?

---Skusi
RPI3B, SIGNALduino, NanoCul868 (a-culfw), JeeLink Clone (LaCrosse), Firmata  für FB Heizung,Wasser+Gas+Klingel+Lux, Somfy Rolladen, Pollin Steckd.,TX29DTH,ESPEasy an S0 Stromz., MAX Fensterkontakte, IButton, SonOff Tasmota, ESP LED Controler

Skusi

Ich nochmal,

ZitatNun hab ich dieses Dummy mit den States Open und Close definiert. Nun schalten dei zugeordneten PWM´s auf Frostprotect wenn ich das Dummy auf Open setzte. Aber nun schalte ich das Dummy auf Close, und alle Heizkreise stehen immernoch auf Frost.

Eigentor !!!

Ich hatte die ganze Zeit das FrostProtect Attr auf 1.  :P ::)

Aber die desired-temp ändert sich bei aktivierung des Windows bei mir nicht. Der Puls wird auf 0% gesetzt, aber desired-temp ist unverändert ?
Bug oder Fature ???

---Skusi
RPI3B, SIGNALduino, NanoCul868 (a-culfw), JeeLink Clone (LaCrosse), Firmata  für FB Heizung,Wasser+Gas+Klingel+Lux, Somfy Rolladen, Pollin Steckd.,TX29DTH,ESPEasy an S0 Stromz., MAX Fensterkontakte, IButton, SonOff Tasmota, ESP LED Controler

jamesgo

Hmm, das muss ich mir anschaun. Morgen!

Gesendet von meinem Nexus 7 mit Tapatalk