Modul 39_ZHK.pm - Steuerung Zentralheizung (Heizkessel) mit FHEM v.0.9b

Begonnen von epsrw1, 27 Mai 2014, 12:38:51

Vorheriges Thema - Nächstes Thema

epsrw1

Aktuelle BETA-Version in der fußzeile dieses beitrages als download-link.
siehe auch: http://www.fhemwiki.de/wiki/ZHK

aktuelle version:

# $Id: 39_ZHK.pm 933 2014-06-17 18:03:00Z Florian Duesterwald $






Hallo zusammen,
ich habe mich entschlossen, die recht simple steuerung meiner steinzeit-zentralheizung etwas zu überarbeiten. hierzu soll ein neues modul entstehen. wer macht oder plant etwas ähnliches?
ich würde mich über mitstreiter ebenso freuen wie über feature-vorschläge :)

verschiedene steuerungen die tante gockel mir zum kauf vorgeschlagen hat haben nicht die features die ich mir so vorstelle. ganz zu schweigen von der kompatibilität mit sensoren,heizungsventilen,schaltaktoren...

meine aktuelle idee sieht vor, folgende punkte zu berücksichtigen:
außentemperatur (vorlauf-basiseinstellung)
vorlauf/rücklauf spreizung (zum nachjustieren)
holzofen (temperatursprung in vordefiniertem raum erkennen und vorlauf auf null drehen)
ventilpositionen: alle daten, 3 gewichtungsstufen (standard, ignore, priority) um einen "demand" wert zu ermitteln
brenner-taktung auswerten, threshold kesseltemp anpassen
warmwasser: tagesprogramm, erkennung temperatursturz (brenner sofort anfahren bei großer entnahme)
wer würde ein solches modul verwenden wollen, und was muß es dafür können? habt ihr irgendwelchen komplizierten speicher/zusatzpuffer oder zig-pumpen-installationen? wer kann mir sagen was ich vergessen bzw. nicht bedacht habe?
LG, florian

Ich habe keine Ahnung, aber davon wenigstens ganz viel

Thorsten Pferdekaemper

Hi,
ich muss ehrlich gestehen, dass ich mir Dein Coding nicht im Einzelnen betrachtet habe. Ich bin mir auch nicht ganz sicher, ob ich das per FHEM gesteuert haben möchte. Mein Ansatz ist eher der, dass ich einen Arduino in der Heizanlage habe, der die Auswertung der Temperaturfühler etc. macht und den Brenner etc. steuert. Das Teil bekommt dann seinen Input über FHEM.
Zitat von: epsrw1 am 27 Mai 2014, 12:38:51meine aktuelle idee sieht vor, folgende punkte zu berücksichtigen:
außentemperatur (vorlauf-basiseinstellung)
Ich glaube nicht, dass man den Vorlauf "heutzutage" noch über die Außentemperatur regeln sollte. Das geht IMHO besser durch Auswertung der Regelventile an den Heizkörpern.
Zitatvorlauf/rücklauf spreizung (zum nachjustieren)
Da gibt's ziemliche Unterschiede zwischen wirklich alten Anlagen und Brennwertkessel. Bei alten Anlagen muss der Rücklauf eine bestimmte Mindesttemperatur haben. Ansonsten kommt es zur Abgaskondensation, was aufs Material geht. Bei Brennwertkesseln will man gerade diese Kondensation, daher möglichst niedrige Rücklauftemperaturen. Daher ist bei Brennwertanlagen der Mischer auch nicht so wichtig (glaube ich).
Zitatholzofen (temperatursprung in vordefiniertem raum erkennen und vorlauf auf null drehen)
Wenn man die Vorlauftemperatur über die Heizkörperventile regelt, dann ergibt sich das von selbst. Wenn's sowieso warm genug ist, dann machen die Ventile zu.
Zitatventilpositionen: alle daten, 3 gewichtungsstufen (standard, ignore, priority) um einen "demand" wert zu ermitteln
Ist das nicht zu kompliziert gedacht?
Zitatbrenner-taktung auswerten, threshold kesseltemp anpassen
Ich bin mir nicht ganz sicher, was da gemeint ist. Wenn man keinen Brennwertkessel hat, dann sollte die Regelung sowieso über den Rücklauf gehen. Zu kalt ist schlecht und zu heiß auch. Die Rücklauftemperatur sollte wahrscheinlich nicht unter 55°C fallen. Da ist dann nach oben für den Vorlauf sowieso nicht mehr so viel Platz.
Bei Brennwert ohne Mischer (wie bei mir) ist die Kesseltemperatur sowieso so ziemlich dasselbe wie die Vorlauftemperatur.
Zitatwarmwasser: tagesprogramm, erkennung temperatursturz (brenner sofort anfahren bei großer entnahme)
Das kommt wieder ganz darauf an. Momentan ist mein Tagesablauf nicht sehr geregelt. Bei großer Entnahme bedeutet das wahrscheinlich, dass ich gerade dusche. Ich werde dann nicht gleich wieder duschen. Es wäre also eher sinnvoll, danach erstmal kein warmes Wasser zu machen.
Zitatwer würde ein solches modul verwenden wollen, und was muß es dafür können?
Ich fände die Idee einer "Open-Source Heizungsregelung" tatsächlich sehr interessant. Allerdings nicht als FHEM-Modul, sondern eher als Microcontroller-basierende Lösung (Arduino...).

Gruß,
   Thorsten
FUIP

epsrw1

#2
Hi,
Habe gerade Nachtdienst, daher nur kurze vorab antw. Von unterwegs, ausführlich folgt ggf nach.

Microcontroller oder Linux/fhem/Webserver ist eine wichtige Grundsatzfrage. Ich habe Erfahrung mit Linux und. Failsafe Installationen, falls Server 1 abkackt übernimmt Server 2 automatisch. Sowas schwebt mir auch vor für meine Heizung, sie soll schließlich nicht 99 sondern 100% zuverlässig laufen. Abgesehen davon daß ich sehr wenig Erfahrung mit arduinos habe, weiß ich nicht wie sich damit ein failover realisieren läßt. Gerne lasse ich mich eines besseren belehren!

VL außen temp Regelung brauch ich, um im Sommer Modus alle Ventile auf 100% zu stellen (Federn schonen) und den Vorlauf auf min, dafür ist die Ventil pos abhängige Std Steuerung zugunsten der Außentemp abgeschaltet.
Für Brennwert ohne Mischer muß man Mischer-Modul insgesamt abschalten können, das ist bereits vorgesehen.
Daß man die Steuerung dabei am RL orientieren muß hab ich bereits in die Optionen aufgenommen.
Die VL/RL Spreizung betrifft die tatsächliche Wärme Abnahme in der gesamt heizg, ich verwende sie um meinen berechneten Vorlauf dynamisch zu verbessern. Bin der Meinung daß voreingestellte (fantasie-)werte _immer_ falsch sind. Egal was ich vorher ausgerechnet habe, falls VL=RL (ungefähr) dann wurde null energie im ganzen haus abgenommen und ich muß meine formel/berechnungsgrundlagen für VL dynamisch verbessern (dito bei zuviel spreizung).
Holzofen Modul hat praktischen Hintergrund, der ist hier bei uns im EG und nachdem er an ist wird es ca 1h später im ganzen Haus viel zu warm. Daher will ich eine Regelung um den VL schon vorher runter zu drehen wenn die temp. Erkennen läßt daß der Ofen an ist, schon 1h bevor es überall zu warm wird und die Energie in Kessel und Leitungen verrottet.
Ventil pos hab ich komplett in den Daten, da sind Räume dabei die wärmer sein sollen und andere die ich niemals heize. Für denkbare Anwender die keinen hydraulischen Abgleich haben ist die hohe Abweichung zw den valve pos Standard.
Daher will ich eine dreistufige Gewichtung der valve pos durchrechnen bevor ich die Daten berücksichtige. Beispiel: WC neben Heizung ist immer warm genug und versaut im Winter den Durchschnitt der valve pos weil permanent null.
Die Brenner taktung geht in Richtung Verschleiß senken, jeder Start nimmt einen teil der Rest Lebensdauer weg. Soweit vermeidbar will ich das nicht. Den passenden Kompromiß für den attr wert muß jeder selbst entscheiden anhand ISO Qualität v Kessel u Pufferspeicher etc. . Bei mir erache ich min 5 minuten brenner ON und min 10 minuten OFF für sinnvoll, das sind aber im monent nur statistische erkenntnisse aus der "alten" steuerung. Es stört nicht wirklich diese Zeitspannen zu warten weil VL/RL/Ww gleich bleiben trotz künstlicher Wartezeiten.
Mein Warmwasser ist so eingestellt, daß es gerade so nicht reicht für die dusche. Es reicht die ersten zwei oder drei Minuten dann wird es knapp. A grundtemp permanent erhöhen oder B regeln. Da ich eher für b bin, erkenne ich arctan() der temp kurve des ww und setze frühzeitig <1min Kessel hoch und starte den Brenner. Das (teil)Modul dafür läuft schon.
das tagesprogramm bei mir ist nciht sonderlich restriktiv, aber ich unterstelle dass zb um 3 uhr morgens niemand im haus lust hat zu duschen, und mittags zb auch nicht. daher fahre ich zu diesen zeiten das WW noch weiter herunter. Ich habe eine art boost-knopf vorgesehen für spontane meinungsänderungen. (diff W/kessel erhöhen + WW pumpe an bringt ordentliche + meßbare resultate in <60sec.).

LG, florian
Ich habe keine Ahnung, aber davon wenigstens ganz viel

Thorsten Pferdekaemper

Zitat von: epsrw1 am 28 Mai 2014, 00:02:36Microcontroller oder Linux/fhem/Webserver ist eine wichtige Grundsatzfrage. Ich habe Erfahrung mit Linux und. Failsafe Installationen, falls Server 1 abkackt übernimmt Server 2 automatisch. Sowas schwebt mir auch vor für meine Heizung, sie soll schließlich nicht 99 sondern 100% zuverlässig laufen. Abgesehen davon daß ich sehr wenig Erfahrung mit arduinos habe, weiß ich nicht wie sich damit ein failover realisieren läßt. Gerne lasse ich mich eines besseren belehren!
Ich habe bereits etwas selbst gebasteltes auf Arduino-Basis in meine Heizanlage eingebaut. Das Ding hat ein Ethernet-Shield, mit dem es kommuniziert. Damit ist die Einbindung in FHEM recht einfach. Das nächste Mal würde ich es vielleicht per RS485 machen und das ganze dann vielleicht sogar Homematic-Wired kompatibel, aber das ist eine andere Geschichte.
Zur Zuverlässigkeit: Das ganze läuft jetzt seit ein paar Monaten. Es gab zwei Ausfälle: Einmal der Brenner und einmal das Netzwerk. Der Arduino ist so einfach gestrickt, dass ein Ausfall recht gering ist. Ich würde sogar davon ausgehen, dass ein "Failsafe-Mechanismus" selbst fehleranfälliger wäre als der Arduino. Ein Arduino hat kein Betriebssystem, keine Festplatte und man muss nicht dauernd auf irgendwelche Speichermedien schreiben, die das nur begrenzt lange aushalten.
Ich benutze sogar den Arduino, um die Heizanlage durchzustarten, wenn mal was hängt. (Das komplette Ding hängt an einem Relais, das vom Arduino gesteuert wird.)
Wenn das Netzwerk ausfällt, dann läuft die Regelung trotzdem weiter, da der Arduino das alleine kann. Er bekommt nur keinen neuen Soll-Vorlauf mehr. Momentan schalte ich da automatisch so um, dass der eigentliche Regler der Heizung wieder übernimmt, aber das baue ich gerade um.
ZitatVL außen temp Regelung brauch ich, um im Sommer Modus alle Ventile auf 100% zu stellen (Federn schonen) und den Vorlauf auf min, dafür ist die Ventil pos abhängige Std Steuerung zugunsten der Außentemp abgeschaltet.
Das mache ich momentan noch gar nicht, aber mein Plan dazu ist der: Wenn alle Ventile auf 0% sind und überall Ist >= Soll, dann geht die Pumpe aus, die Anlage schaltet auf "Sommer" und alle Ventile gehen auf 100%. Wenn irgendwo (für eine Weile) Ist < Soll wird, dann wird die Anlage wieder angefahren.
ZitatDie VL/RL Spreizung betrifft die tatsächliche Wärme Abnahme in der gesamt heizg, ich verwende sie um meinen berechneten Vorlauf dynamisch zu verbessern. Bin der Meinung daß voreingestellte (fantasie-)werte _immer_ falsch sind. Egal was ich vorher ausgerechnet habe, falls VL=RL (ungefähr) dann wurde null energie im ganzen haus abgenommen und ich muß meine formel/berechnungsgrundlagen für VL dynamisch verbessern (dito bei zuviel spreizung).
Bei mir läuft das momentan so: Wenn die Ventile weit offen sind, dann geht die Vorlauftemperatur hoch, wenn sie eher geschlossen sind, dann geht die Vorlauftemperatur runter. Dafür verwende ich ein PID20, welches als Istwert den Ventilöffnungsgrad des maximal geöffneten Ventils hat. Der Sollwert dafür ist 75%. Steuergröße ist die Soll-Vorlauftemperatur. Ich musste zwar ein bisschen mit dem Parametern spielen, aber das klappt ganz gut.
Im von Dir beschriebenen Fall wären alle Ventile zumindest relativ weit geschlossen. Dadurch schaltet sich bei mir die Heizung ab oder es geht zumindest die Vorlauftemperatur runter. 
ZitatHolzofen Modul hat praktischen Hintergrund, der ist hier bei uns im EG und nachdem er an ist wird es ca 1h später im ganzen Haus viel zu warm. Daher will ich eine Regelung um den VL schon vorher runter zu drehen
Ah jetzt ja. Sowas ähnliches könnte man auch mit der Außentemperatur oder dem Wetterbericht machen.
ZitatDaher will ich eine dreistufige Gewichtung der valve pos durchrechnen bevor ich die Daten berücksichtige. Beispiel: WC neben Heizung ist immer warm genug und versaut im Winter den Durchschnitt der valve pos weil permanent null.
Ich nehme daher die maximale Ventilposition über alle Ventile. Da fällt Dein WC dann automatisch raus.
ZitatDie Brenner taktung geht in Richtung Verschleiß senken, jeder Start nimmt einen teil der Rest Lebensdauer weg.
Das überlasse ich momentan noch der alten Regelung. Ich denke aber darüber nach, das zu ändern. Ich habe festgestellt, dass (selbst ohne Mischer) auch größere Schwankungen der Vorlauftemperatur nicht viel ausmachen. Das gleichen die Regelventile an den Heizkörpern locker aus, falls nötig.
Zitatdaher fahre ich zu diesen zeiten das WW noch weiter herunter. Ich habe eine art boost-knopf vorgesehen für spontane meinungsänderungen. (diff W/kessel erhöhen + WW pumpe an bringt ordentliche + meßbare resultate in <60sec.).
Ich überlege mir zurzeit, ob ich grundsätzlich so umstelle, dass man immer ein paar Minuten bevor man heißes Wasser braucht, auf einen Knopf drückt. ...oder zumindest die Temperatur soweit abfallen lässt, dass es innerhalb von ein paar Minuten auf "Duschtemperatur" ist.

Gruß,
    Thorsten
FUIP

epsrw1

#4
ZitatIch habe bereits etwas selbst gebasteltes auf Arduino-Basis in meine Heizanlage eingebaut. Das Ding hat ein Ethernet-Shield, mit dem es kommuniziert. Damit ist die Einbindung in FHEM recht einfach.
wo hast Du die grenze gesetzt zwischen entscheidungen die der arduino selbst trifft und die in fhem?
temp.fühler heizung am arduino, der dann brenner und pumpen an/aus schaltet, und fhem übermittelt nur die soll-werte? wenn ventile>x dann arduino solltemp plus 1?
bei mir hängen die temp.sensoren derzeit eh an einem arduino an der heizung. failsafe wäre der wohl schon, die idee gefällt mir mehr und mehr, und falls er wirklich mal abstürzt könnten sogar meine kinder die platine tauschen gegen einen bereitliegenden ersatz.
kannst Du mal deine arduino lösung verlinken? würde mich interessieren.
Zitatmein Plan dazu ist der: Wenn alle Ventile auf 0% sind und überall Ist >= Soll, dann geht die Pumpe aus, die Anlage schaltet auf "Sommer"
mein plan ist eher, grundsätzlich zu vermeiden dass viele ventile nahe 0 gehen sondern frühzeitig zuerst mit dem vorlauf immer weiter runter zu gehen, und dann die pumpe aus. wenn die vorlaufregelung gut funktioniert wird also ein ventil-null quasi nie erreicht werden weil schon vorher die energiezufuhr in den heizkreis gestoppt wird. ob man als kriterium wie Du soll>ist der räume ins modul füttert oder außen-t. oder kalender oder was auch immer sollte dem modul egal sein.
ZitatBei mir läuft das momentan so: Wenn die Ventile weit offen sind, dann geht die Vorlauftemperatur hoch
nur die ventilposition alleine sagt nicht aus wieviel wärme tatsächlich von den heizungen abgegeben wird. in einem einzelnen raum der ist=10° hat wird bei 100% ventil mehr energie abgenommen als bei ist=20°. mein bauchgefühl hält es für umständlich für jeden raum die diff. VL-t. und ist-t. durch irgendwelche berechnungen auszuwerten, ich würde daher eher den differenzwert aus VL und RL verwenden und mit einer einstellbaren gewichtung für die VL-soll-temp mit berücksichtigen.
stelle mir vor, daß zb. ein raum der eine zeitlang nicht genutzt wurde sehr kalt ist. wenn dieser dann aufgeheizt wird ist die ventilpos. bei 100%. statt abzuwarten daß die normale VL regelung in kleinen schritten langsam erhöht, erkenne ich daß der RL sehr kalt ist und mache einen größeren sprung nach oben bei der VL-temp. weiter kann man das auch noch verwenden um die durchflußmenge einer regelbaren heizkreispumpe dynamisch zu optimieren.
ZitatIch nehme daher die maximale Ventilposition über alle Ventile.
das würde ich als "confort" lösung betrachten. was ich suche ist ein mittelweg zwischen confort und energieverbrauch, daher der ansatz die daten aller ventile nach einstellbaren gewichtungen zu verwenden.
ZitatDie Brenner taktung ... ... Das überlasse ich momentan noch der alten Regelung.
die alte mechanische regelung hat eine fest eingestellte spreizung, d.h. zb. eingestellt 50° brenner startet bei 5° unterschreitung uns stoppt bei 5°überschreitung. wenn es sehr kalt ist bzw Du sehr viel heizt  geht der brenner dann ständig an und aus. soweit ich weiß ist die lebensdauer der hardware in zyklen angegeben, also wird dadurch der gesamt verfügbare verschleiß unnötig aufgebraucht (und auch unnötig strom für die starts verblasen). da ich sowieso schon mit einem relais das teil schalte, ist das feature schnell als code drin.
ZitatIch überlege mir zurzeit, ob ich grundsätzlich so umstelle, dass man immer ein paar Minuten bevor man heißes Wasser braucht, auf einen Knopf drückt. ...oder zumindest die Temperatur soweit abfallen lässt, dass es innerhalb von ein paar Minuten auf "Duschtemperatur" ist.
habe eine art winkelerkennung der temperaturkurve des warmwassers gerade in arbeit. mein WW ist so niedrig eingestellt, daß es gerade so nicht reicht für die gesamte dusche, dh. wenn ich den hahn aufdrehe und kaltes wasser nachströmt fällt die temp im speicher schnell ab. wenn frühzeitig nachgeheizt wird reicht es problemlos um die temp zu halten. das ist mir lieber als eine "knopf" lösung die ich unconfortabel finde.
sub WarmWasserRegler($){

return;
}

(http://screenshot.png)
gruß florian
Ich habe keine Ahnung, aber davon wenigstens ganz viel

Thorsten Pferdekaemper

Zitat von: epsrw1 am 28 Mai 2014, 14:24:32wo hast Du die grenze gesetzt zwischen entscheidungen die der arduino selbst trifft und die in fhem?
temp.fühler heizung am arduino, der dann brenner und pumpen an/aus schaltet, und fhem übermittelt nur die soll-werte?
Ich habe jetzt ein wenig vermischt, was ich schon habe und was ich momentan am überlegen/entwickeln bin. Momentan ist meine Lösung etwas speziell, da ich mich (noch) nicht traue die alte Regelung meiner Anlage komplett zu ersetzen. FHEM berechnet eine Soll-Vorlauftemperatur und daraus eine Außentemperatur, die dem alten Regler über ein digitales Poti vorgegaukelt wird. Wenn eine Weile von FHEM keine Befehle kommen, dann schaltet der Arduino in einen "autarken" Modus und gibt dem Regler die tatsächliche Außentemperatur weiter (oder so ungefähr).
In der Zukunft will ich es so machen, dass FHEM die Soll-Vorlauftemperatur, die Soll-Wassertemperatur und ob Heizbedarf besteht vorgibt. Alles weitere soll der Arduino machen.
Zitatwenn ventile>x dann arduino solltemp plus 1?
Wie gesagt, das geht über das Modul PID20 in FHEM. Das Ding versucht sozusagen einen Ventilöffnungsgrad von 75% hinzubekommen. Das ist wahrscheinlich nicht optimal, aber es war relativ einfach und es ist wirkungsvoll.
Zitatkannst Du mal deine arduino lösung verlinken?
Wie gesagt, ist bei mir etwas speziell...
Zitatmein plan ist eher, grundsätzlich zu vermeiden dass viele ventile nahe 0 gehen sondern frühzeitig zuerst mit dem vorlauf immer weiter runter zu gehen, und dann die pumpe aus.
Meine Ventile gehen zu, wenn die Solltemperatur erreicht ist (vielleicht nicht ganz sofort, aber im Prinzip schon). Da ich mit dem PID20 die Ventile auf 75% regle, geht die Vorlauftemperatur schon langsam runter, sobald das "maximale" Ventil auch nur ein bisschen unter 75% steht. Das geht dann so weit, bis Soll-Vorlauf unter 25° fällt, dann gaukle ich der Heizung "Sommer" vor.
Zitatnur die ventilposition alleine sagt nicht aus wieviel wärme tatsächlich von den heizungen abgegeben wird. in einem einzelnen raum der ist=10° hat wird bei 100% ventil mehr energie abgenommen als bei ist=20°.
Das stimmt, aber warum sollte das interessieren? Ich weiß, dass wenn die Ventilposition eine Weile lang (I-Anteil des PID20) auf 100% steht, dann muss mehr Energie her. Wie viel das absolut ist, interessiert mich nicht.
Zitatmein bauchgefühl hält es für umständlich für jeden raum die diff. VL-t. und ist-t. durch irgendwelche berechnungen auszuwerten, ich würde daher eher den differenzwert aus VL und RL verwenden und mit einer einstellbaren gewichtung für die VL-soll-temp mit berücksichtigen.
Das mit der Differenz zwischen VL und RL habe ich mir auch schon überlegt. Es wäre für mich aber schwieriger, da ich  noch keine direkte Kontrolle über die Pumpe habe.
Zitatstelle mir vor, daß zb. ein raum der eine zeitlang nicht genutzt wurde sehr kalt ist. wenn dieser dann aufgeheizt wird ist die ventilpos. bei 100%. statt abzuwarten daß die normale VL regelung in kleinen schritten langsam erhöht, erkenne ich daß der RL sehr kalt ist und mache einen größeren sprung nach oben bei der VL-temp.
Tatsächlich ist das Aufheizen bei mir etwas langsam. Es dauert ungefähr eine Stunde, bis der Vorlauf wesentlich angestiegen ist. Da wäre ein Vergleich von VL und RL wahrscheinlich wirklich sinnvoll.

Ich denke, dass es da ziemlich viel Möglichkeiten gibt und man wahrscheinlich die perfekte Lösung für alle nie hinbekommt.

Gruß,
    Thorsten
FUIP

Thorsten Pferdekaemper

Hi,
Mal eine ganz andere Frage: Wie hast Du die Brennersteuerung ("Feuerungsautomat") angeschlossen?
Gruß,
Thorsten
FUIP

epsrw1

#7
der ursprüngliche status bei mir war (feste gleichbleibende) kesseltemperatur mit poti an der heizung einstellbar, warmwasser über poti (auch fix) um die ladepumpe zu starten, und mischer über mechanische zeitschaltuhr für den VL.

status quo:
Kessel:
überhitzungssicherung und poti sind weiter angeschlossen. leitung ausgang poti zum brenner aufgetrennt und ein relais so eingeschleift daß es im ruhezustand durchleitet. ist der pi aktiv, klinkt er sich ein und schaltet ab bevor die mechanische überhitzungssicherung oder der poti greift. stürzt er mal ab, wird halt der kessel sehr warm.
es gibt noch einen mechanischen abschalter für das relais damit der schonsteinfegermeister seine messung machen kann (brenner-dauerbetrieb).

welche leitungen das sind, ergibt sich aus dem handbuch des brenners oder ist dort innendrin aufgedruckt. vorsicht da ist überall saft drauf! bei mir zb hat der brenner dauerstrom (braucht er für vor und nachlauf des lüfters) und schickt dann nochmal 230 zurück durch die temperatur poti und überhitzungsschutz. bekommt er von da strom zurück leitet die brennerinterne steuerung die startsequenz ein, kommt keiner mehr zurück gehts in die stopsequenz. an dieser stelle kann man auch die leitung brennerstörung abgreifen um sich zb von fhem benachrichtigen zu lassen bei mir sind da auch 230v drauf sobald der brenner rot zeigt.

warmwasser:
mechanischer poti in reihe mit relais, ähnlich wie beim brenner mit ruhezustand leitend (falls der pi mal aussteigt). die ladepumpe kann so ebenfalls mit dem pi abgeschaltet werden. zweites relais deaktiviert den mechanischen poti damit ich per zeitplan 1* im monat den wassertank kochen kann.

vorlauf:
alte mischer steuerung komplett entsorgt, viessmann platine abgeklemmt, direktanschluß an den eingängen des mischermotors (N und jeweils phase 230v für rechts und linkslauf). in die phasen R+L sind noch mechanische endschalter eingeschleift. position und ansteuerung macht mein modul 98_VORLAUFMISCHER mit lastrelais die am PiFace hängen. zusätzlich habe ich mit dem zahnriemen einer alten elektrischen schreibmaschine einen winkelgeber (Grayhill 25L) mit dem modul FRM_ROTENC für die ausgabe in fhem dran.

temperaturen:
1W sensoren (über arduino) in der hülse im kessel und im warmwasser, VL+RL+2.VL zwischen rohr und isolierung, außentemp an der unterseite des balkons, und noch einen in der nähe des holzofens

wenn der tag gekommen ist an dem ich den kessel austausche, wird die steuerung erhalten bleiben. da die zukünftige konfiguration unbekannt ist, versuche ich alles modular aufzubauen. zb läßt sich dann jederzeit ladung diverser pufferspeicher etc, solar, wassertaschen-ofen, oder was auch immer für wärmequellen nachrüsten. alles was ich an "von der stange" steuerungen kenne ist irgendwie limitiert und kommt für mich nicht wirklich in frage.

bild ist nicht ganz aktuell, zeigt aber en gros wie es hier funktioniert.
pi.JPG
gruß, florian
Ich habe keine Ahnung, aber davon wenigstens ganz viel

Thorsten Pferdekaemper

Aha, Du benutzt also zumindest noch die sicherheitsrelevanten Teile der alten Regelung. Damit sind wir ja gar nicht so weit auseinander. 
Wie behandelst Du die 230V-Rückmeldungen,  wie z.B. die Brennerstörung? Ich habe dazu folgende Schaltung gefinden: http://www.mikrocontroller.net/wikifiles/4/47/230V_am_uC_Port-Pin.png
Gruß,
Thorsten
FUIP

epsrw1

da ich nicht so sehr der lötkolben spezialist bin habe ich ein eltako 230v schaltrelais aus meiner wühlkiste verwendet, und schalte 5V damit
Ich habe keine Ahnung, aber davon wenigstens ganz viel

Thorsten Pferdekaemper

Das ist zumindest eine sichere Lösung. Allerdings habe ich mal gelesen, dass Relais schnell verschleißen, wenn man am Ausgang zu wenig Strom zieht. Möglicherweise ist das bei den verhältnismäßig seltenen Schaltvorgängen aber egal.
FUIP

epsrw1

#11
hier der aktuelle stand der heizungssteuerung. hat noch jemand wünsche oder gute ideen?
gruß, florian

sub AussentempRegler($){
sub HolzofenRegler($){
sub WarmWasserRegler($){
sub WwPumpStopStart($$){
sub WwBoostStartStop($$){
sub BrennerStopStart($$){
sub ZHK_Set($@){
sub ZHK_Get($@){


Readings:
   
     2014-06-01 13:35:57   zhkWwSollTemp   30


Attr:

"zhkBrennerTaktMinOnSec"=>"300",

Ich habe keine Ahnung, aber davon wenigstens ganz viel

epsrw1

hallo zusammen,
hier eine erste beta release mit den ersten 1000 zeilen code .... alles soweit lauffähig. wünsche und/oder fehlerhinweise wären sehr willkommen :)
LG, florian

# $Id: 99_ZHK.pm 5251 2014-06-03 17:12:00Z Florian Duesterwald $
####################################################################################################



Ich habe keine Ahnung, aber davon wenigstens ganz viel

epsrw1

teil 2 - datenlänge posting leider limitiert:
Internals:
e
Ich habe keine Ahnung, aber davon wenigstens ganz viel

epsrw1

in arbeit: http://www.fhemwiki.de/wiki/Zhk

und update:
# $Id: 99_ZHK.pm 5251 2014-06-03 21:55:00Z Florian Duesterwald $
####################################################################################################
Ich habe keine Ahnung, aber davon wenigstens ganz viel

epsrw1

update:


Internals:
   DEF        30
   NAME       zhk4
   NOTIFYDEV  global
   NR         181
   NTFY_ORDER 50-zhk4
   STATE      active
   TYPE       ZHK
   Readings:
     2014-06-04 07:03:53   autocontrol     30
     2014-06-04 07:03:53   firstload       1401858233.91879
     2014-06-04 07:04:55   looptime        1401858295.63006
     2014-06-04 07:03:53   state           active
     2014-06-04 07:04:55   zhkAussenTempActualVal 11.3125
     2014-06-04 07:04:55   zhkAussenTempAlarmTempLimit 16
     2014-06-04 07:04:55   zhkAussenTempAlarmThreshold 1
     2014-06-03 13:31:21   zhkAussenTempDelayCache 0=1401795081.46363
     2014-06-04 07:03:59   zhkAussenTempIsWarmState 0
     2014-06-03 13:31:21   zhkAussenTempTodayMax 14.5625
     2014-06-04 07:04:15   zhkAussenTempYesterday 2014-6-3
     2014-06-04 07:04:15   zhkAussenTempYesterdayMax 14.5625
     2014-06-04 07:04:15   zhkAussenTempYesterdayMin 0
     2014-06-03 13:33:01   zhkBrennerActualState 0
     2014-06-03 13:33:01   zhkBrennerLaststart 0
     2014-06-04 07:04:15   zhkHolzofenAlphaActualVal -0.00451527452869134
     2014-06-04 07:04:15   zhkHolzofenResetLowTemp 18
     2014-06-03 13:49:16   zhkHolzofenState 0
     2014-06-04 07:04:15   zhkHolzofenTempHistoryCache 18.25=1401800113 17.375=1401858249
     2014-06-04 07:04:15   zhkHolzofenTempSensorActValue 17.375
     2014-06-04 07:04:15   zhkHolzofenTempSensorTimestamp 1401858249
     2014-06-04 07:04:55   zhkVorlaufActualTempRL 23.0625
     2014-06-04 07:04:55   zhkVorlaufActualTempVL 24.0625
     2014-06-04 07:04:24   zhkVorlaufDesiredTemp 23
     2014-06-04 07:04:55   zhkVorlaufMischerPosActualPosition 0
     2014-06-04 07:04:24   zhkVorlaufState Auto 23 &deg;C
     2014-06-04 07:04:55   zhkVorlaufTimerTempAdjust 0
     2014-06-03 13:31:07   zhkVorlaufTotalOnOffState 1
     2014-06-04 07:04:15   zhkWwAlphaActualVal -0.0283564914952166
     2014-06-03 13:33:01   zhkWwBoostStatus off
     2014-06-04 07:04:53   zhkWwIstLastReading 42.6875=1401858287
     2014-06-04 07:04:55   zhkWwIstTempTimestamp 1401858287
     2014-06-04 07:04:55   zhkWwIstTempVal 42.6875
     2014-06-04 07:04:53   zhkWwPriorityOn 0
     2014-06-03 15:00:55   zhkWwPumpLaststart 1401800455.18465
     2014-06-03 13:31:21   zhkWwPumpStopStatus off
     2014-06-04 07:03:59   zhkWwSollTemp   0
     2014-06-04 07:04:55   zhkWwTimerLastSetValue 0
Attributes:
   zhkAussenTempAlarmDelay 600
   zhkAussenTempAlarmTempLimit 16
   zhkAussenTempAlarmThreshold 1
   zhkAussenTempFhemDev 81_Aussen_D745CE040000
   zhkAussenTempFhemDevFallback dummyOnlineWeatherTemp
   zhkAussenTempFhemDevReading temperature
   zhkAussenTempFhemDevReadingFallback state
   zhkAussenTempIgnoreIfFhemDev dummyDisableAussentemp
   zhkAussenTempIsWarmState 0
   zhkAussenTempMaxAge 1200
   zhkBrennerFhemDev P3_BrennerStop
   zhkBrennerLogLastStateChange 0
   zhkBrennerTaktMinOffSec 30
   zhkBrennerTaktMinOnSec 300
   zhkGlobalIncludeAussentemp 1
   zhkGlobalIncludeHolzofen 1
   zhkGlobalIncludeKessel 1
   zhkGlobalIncludeValvePositions 1
   zhkGlobalIncludeVorlauf 1
   zhkGlobalIncludeVorlaufZeischaltplan 1
   zhkGlobalIncludeWarmwasser 1
   zhkGlobalIncludeWwZeischaltplan 1
   zhkGlobalPollInterval 10
   zhkHolzofenAlphaThreshold 0.07
   zhkHolzofenAlphaUpAlarmDiffDeg 3
   zhkHolzofenIgnoreTempIfFhemDev dummyDisableHolzofen
   zhkHolzofenResetLowFhemDev Heizg_Wohnzimmer1
   zhkHolzofenResetLowFhemDevreading desiredTemperature
   zhkHolzofenResetLowTemp 18
   zhkHolzofenTempSensorDefaultOnFailure 20
   zhkHolzofenTempSensorFhemDev 83_WohnZi_9554CD040000
   zhkHolzofenTempSensorMinAge 300
   zhkHolzofenTempSensorReading temperature
   zhkKesselAbsoluteMaxTemp 70
   zhkKesselAbsoluteMinTemp 30
   zhkKesselMinDiffVorlauf 10
   zhkKesselMinDiffWw 8
   zhkKesselMischerErhFaktor 0
   zhkKesselTempFhemDev 4_14_Kessel_E3CD97050000
   zhkKesselTempFhemDevReading temperature
   zhkKesselTempMaxReadingAge 600
   zhkKesselTempSecondFhemDev 0
   zhkKesselTempSecondFhemDevReading temperature
   zhkKesselThreshold 5
   zhkKesselVLRLdiffErhFaktor 0
   zhkVorlaufHkurveAussenMax_TH 15
   zhkVorlaufHkurveAussenMin_TL -20
   zhkVorlaufHkurveVorlaufMax_TH 50
   zhkVorlaufHkurveVorlaufMin_TL 20
   zhkVorlaufIgnoreIfFhemDev dummyDisableVorlauf
   zhkVorlaufMischerFhemDev VorlaufMischer
   zhkVorlaufMischerPosFhemDev MischerPosition
   zhkVorlaufMischerPosFhemDevReading position
   zhkVorlaufPumpOffFhemDev P6_PumpOff
   zhkVorlaufRLTempFhemDev 2_12_Ruecklauf_56B897050000
   zhkVorlaufRLTempFhemDevReading temperature
   zhkVorlaufTempTriggerFhemDev VorlaufRegler
   zhkVorlaufTempTriggerFhemDevReading desired
   zhkVorlaufTempTriggerFhemDevSetting desired
   zhkVorlaufTimerScheduleDi 0
   zhkVorlaufTimerScheduleDo 0
   zhkVorlaufTimerScheduleFr 0
   zhkVorlaufTimerScheduleMi 0
   zhkVorlaufTimerScheduleMo 0
   zhkVorlaufTimerScheduleSa 0
   zhkVorlaufTimerScheduleSo 0
   zhkVorlaufTotalOnOffMischerDelay 150
   zhkVorlaufVLTempFhemDev 1_17_Vorlauf_D1F798050000
   zhkVorlaufVLTempFhemDevReading temperature
   zhkWwAlphaDownAlarmDiffDeg 0.8
   zhkWwAlphaThreshold 0.42
   zhkWwAlphaUpAlarmDiffDeg 5
   zhkWwBoostFhemDev P2_WwBoost
   zhkWwBoostStartTemp 45
   zhkWwConfortTemp 31
   zhkWwEcoTemp 37
   zhkWwPumpFhemDev P7_WwStop
   zhkWwTaktMinOnSec 60
   zhkWwTempSensorDefaultOnFailure 70
   zhkWwTempSensorFhemDev 5_15_WarmWasser_EB6F98050000
   zhkWwTempSensorMaxAge 300
   zhkWwTempSensorReading temperature
   zhkWwTimerScheduleDi 0
   zhkWwTimerScheduleDo 0
   zhkWwTimerScheduleFr 0
   zhkWwTimerScheduleMi 0
   zhkWwTimerScheduleMo 0
   zhkWwTimerScheduleSa 0
   zhkWwTimerScheduleSo 0
Ich habe keine Ahnung, aber davon wenigstens ganz viel

ph1959de

Würdest Du bitte das aktuelle Modul immer in den ersten Beitrag dieses Threads stellen (und alte Versionen entsprechend kennzeichnen oder entfernen)? Als Thread-Eröffner solltest Du das dürfen und es erspart die zwangsläufig sonst über kurz oder lang auftretende Frage "Welches / Wo ist die aktuelle Version des Moduls". Außerdem kommen auf die Art und Weise nicht permanent noch alte Versionen in Umlauf.

Gruß, Peter
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

epsrw1

ZitatWürdest Du bitte das aktuelle Modul immer in den ersten Beitrag dieses Threads stellen
erledigt  :)

Zitat(und alte Versionen entsprechend kennzeichnen oder entfernen)?  Als Thread-Eröffner solltest Du das dürfen und es erspart die zwangsläufig sonst über kurz oder lang auftretende Frage "Welches / Wo ist die aktuelle Version des Moduls". Außerdem kommen auf die Art und Weise nicht permanent noch alte Versionen in Umlauf.
bin ich eh' schon ständig am weglöschen...

gruß, florian
Ich habe keine Ahnung, aber davon wenigstens ganz viel

epsrw1

update:
get <name> attrHelp <attr-name>
gibt eine kurzbeschreibung des wertes bzw seiner verwendung aus.

download im ersten beitrag des themas.


# $Id: 98_ZHK.pm 5251 2014-06-04 08:48:00Z Florian Duesterwald $
####################################################################################################
#
# 99_ZHK.pm
Ich habe keine Ahnung, aber davon wenigstens ganz viel

cwagner

Zitat von: Thorsten Pferdekaemper am 28 Mai 2014, 09:39:46
Bei mir läuft das momentan so: Wenn die Ventile weit offen sind, dann geht die Vorlauftemperatur hoch, wenn sie eher geschlossen sind, dann geht die Vorlauftemperatur runter. Dafür verwende ich ein PID20, welches als Istwert den Ventilöffnungsgrad des maximal geöffneten Ventils hat. Der Sollwert dafür ist 75%. Steuergröße ist die Soll-Vorlauftemperatur. Ich musste zwar ein bisschen mit dem Parametern spielen, aber das klappt ganz gut.

Hallo Thorsten,

das finde ich einen interessanten Ansatz, PID20 zur Regelung der Vorlauf-/Rücklauftemperatur zu verwenden. Wie Du auch bin ich von einer Außentemperatursteuerung abgekommen und steuere derzeit den konkreten Vorlauf mit einer einfach Heizkurve nach der Stellung des jeweils am weitesten geöffneten Heizkörperventils (8 STück im Haus).

Das mache ich mit einem kleinen Codeschnipsel, der immer dann aktiv ist, wenn HCS mit "demand" meldet. Wenn HCS (in Valve-Steuerung) keinen Bedarf meldet, wird zugleich die Umwälzpumpe gestoppt.

Ist es möglich, dass Du mal Deine Parameter postest und: Wie ermittelst Du das am weitesten geöffnete Ventil?

Herzliche Grüße

Christian
PI 2B+/3B+ Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

cwagner

Zitat von: epsrw1 am 27 Mai 2014, 12:38:51

wer würde ein solches modul verwenden wollen, und was muß es dafür können? habt ihr irgendwelchen komplizierten speicher/zusatzpuffer oder zig-pumpen-installationen? wer kann mir sagen was ich vergessen bzw. nicht bedacht habe?

Hallo Florian,

das ist ein ehrgeiziges Projekt, das Du da gestartet hast und es wird den Heizungsoptimierern in der FHEM-Gemeinde sicher viel Diskussionsstoff und Anregung bieten. Für mich war schon Dein Modul MIschersteuerung eine Bereicherung und ich werde Dein Projekt sehr aufmerksam verfolgen. Derzeit regele ich den Brenner meiner Uralt-Ölheizung über ein THRESHOLD, dessen Vorgabewert (desired) über eine Heizkurve in Abhängigkeit zur größten Öffnung der 8 Funkheizkörperthermostate geregelt wird.
Warmwasser wird über heating_control im Winter vorrangig frühmorgens und am Abend (wenn größter Heizbedarf ist) erzeugt, um möglichst lange Brennerlaufzeiten hinzubekommen.

Im Sommer lasse ich das frühe Nachheizen weg, weil an den allermeisten Tagen die Solaranlage im Laufe des Tages den beim morgendlichen Duschen verbrauchten Warmwasserteil wieder nachheizt. Wir nehmen Warmwasser auch für Waschmaschine und Geschirrspüler, die konsequenterweise nur nachmittags/abends laufen (geplant: Steuerung in Abhängigkeit zur mit Umweltsensor gemessenen solaren Einstrahlung, um den Strom aus den Solarpanels möglichst optimal selbst zu verbrauchen).

Überschüssige Wärme aus dem Solarkollektor benutze ich, um den Rücklauf meiner Heizungsanlage vor dem Mischer anzuheben und somit Brennerstarts zu vermeiden. Beispiel Rücklauf ist 30 Grad. Heizung würde anspringen, da aber mit der Wärme aus der Solaranlage der Rücklauf auf 40 Grad angehoben wird, springt der Kessel-THRESHOLD nicht an. Ein extern getriggerter THRESHOLD regelt das. Die Bude kriegt 40 Grad Vorlauf.

Habe ich im Sommer völligen Überschuss an Solarwärme, pumpe ich die ab 80 Grad (gesteuert über einen weiteren THRESHOLD) geradewegs im Keller in die Waschküche, die auf diese Weise durch die "Hitze" trockner wird bzw. Wäsche auch im Sommer dort schneller trocknet (ist zwar schon komisch, eine Waschküche von 23 Grad, aber kostet ja nur 7 W-Hocheffizienz-Pumpe pro Stunde).

Grüße

Christian


PI 2B+/3B+ Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

epsrw1

hallo christian,

ZitatWarmwasser wird über heating_control im Winter vorrangig frühmorgens und am Abend (wenn größter Heizbedarf ist) erzeugt, um möglichst lange Brennerlaufzeiten hinzubekommen.
die idee ist nicht schlecht, da werde ich gleich mal einen extra schalter einbauen, um das warmwasser an die brennerstarts selektiv mit dranzuhängen.

ZitatDerzeit regele ich den Brenner meiner Uralt-Ölheizung über ein THRESHOLD, dessen Vorgabewert (desired) über eine Heizkurve in Abhängigkeit zur größten Öffnung der 8 Funkheizkörperthermostate geregelt wird.
das habe ich auch vorgesehen, allerdings als kombi, man kann valveposition/vl-Rl-differenz/aussentemp mit einstellbarer gewichtung kombinieren, und zum schluß wird noch der zeitplan draufgerechnet(oder abgezogen) wür die desired-temp.

die brennerlaufzeit optimiere ich durch auswertung der on/off dauer des brenners über ein extra untermodul, welches dann den threshold wert dynamisch nachregelt um das takten aufs absolute minimum zu bringen.

ZitatIm Sommer lasse ich das frühe Nachheizen weg, weil an den allermeisten Tagen die Solaranlage...
im augenblick ist das bei mir noch nicht gut gelöst, man kann zusätzliche energiequelle (noch) nicht gewichten, schon gar nicht nach zeitplan unterschiedlich bevorzugen. ist eine menge arbeit.... kommt aber irgendwann auch noch ;)

ZitatÜberschüssige Wärme aus dem Solarkollektor benutze ich, um den Rücklauf meiner Heizungsanlage vor dem Mischer anzuheben und somit Brennerstarts zu vermeiden. Beispiel Rücklauf ist 30 Grad. Heizung würde anspringen, da aber mit der Wärme aus der Solaranlage der Rücklauf auf 40 Grad angehoben wird, springt der Kessel-THRESHOLD nicht an. Ein extern getriggerter THRESHOLD regelt das. Die Bude kriegt 40 Grad Vorlauf.
auch eine gute idee, hab ich sofort in die todo liste aufgenommen.

grüße, florian
Ich habe keine Ahnung, aber davon wenigstens ganz viel

epsrw1

update:

(download im ersten beitrag des themas)

Internals:
   DEF        30
   NAME       zhk4
   NOTIFYDEV  global
   NR         182
   NTFY_ORDER 50-zhk4
   STATE      active
   TYPE       ZHK
   Readings:
     2014-06-04 18:26:58   autocontrol     30
     2014-06-05 00:00:30   looptime        1401919230.95335
     2014-06-04 18:26:58   state           active
     2014-06-05 00:00:30   zhkAussenTempActualVal 12.25
     2014-06-05 00:00:30   zhkAussenTempAlarmTempLimit 16
     2014-06-05 00:00:30   zhkAussenTempAlarmThreshold 1
     2014-06-03 13:31:21   zhkAussenTempDelayCache 0=1401795081.46363
     2014-06-04 18:27:05   zhkAussenTempIsWarmState 0
     2014-06-04 13:02:40   zhkAussenTempTodayMax 15.75
     2014-06-05 00:00:00   zhkAussenTempYesterday 2014-6-4
     2014-06-05 00:00:00   zhkAussenTempYesterdayMax 15.75
     2014-06-05 00:00:00   zhkAussenTempYesterdayMin 0
     2014-06-04 21:45:21   zhkBrennerActualState 1
     2014-06-04 21:45:21   zhkBrennerLaststart 1401911121.42217
     2014-06-04 21:45:21   zhkBrennerLogLastStartDauer 512.056618928909
     2014-06-04 21:45:21   zhkBrennerLogLastStateChange 1401911121.42217
     2014-06-04 21:36:49   zhkBrennerLogLastStopDauer 8642.77262306213
     2014-06-04 23:45:13   zhkHolzofenAlphaActualVal -0.0519390581717451
     2014-06-04 23:57:18   zhkHolzofenResetLowTemp 18
     2014-06-03 13:49:16   zhkHolzofenState 0
     2014-06-04 23:57:18   zhkHolzofenTempHistoryCache 18.3125=1401918672 18.3125=1401919032
     2014-06-04 23:57:18   zhkHolzofenTempSensorActValue 18.3125
     2014-06-04 23:57:18   zhkHolzofenTempSensorTimestamp 1401919032
     2014-06-05 00:00:30   zhkKesselActualMischerAnhebung 0
     2014-06-05 00:00:30   zhkKesselActualTemp 42.0625
     2014-06-05 00:00:30   zhkKesselActualVLRLAnhebung 0
     2014-06-05 00:00:30   zhkKesselActualVLRLdiff 0.8125
     2014-06-05 00:00:30   zhkKesselDesiredTemp 39
     2014-06-05 00:00:30   zhkKesselState  hot 42.0625 °C
     2014-06-05 00:00:30   zhkVorlaufActualTempRL 22.75
     2014-06-05 00:00:30   zhkVorlaufActualTempVL 23.5625
     2014-06-04 21:57:21   zhkVorlaufDesiredTemp 22
     2014-06-05 00:00:30   zhkVorlaufMischerPosActualPosition 0
     2014-06-04 21:57:21   zhkVorlaufState Auto 22 °C
     2014-06-05 00:00:30   zhkVorlaufTimerTempAdjust 0
     2014-06-04 18:26:59   zhkVorlaufTotalOnOffState 1
     2014-06-04 23:52:46   zhkWwAlphaActualVal -0.375
     2014-06-04 19:18:09   zhkWwBetriebsmodus Manual 31 °C
     2014-06-04 18:26:58   zhkWwBoostStatus off
     2014-06-05 00:00:29   zhkWwIstLastReading 35.6875=1401919225
     2014-06-05 00:00:30   zhkWwIstTempTimestamp 1401919225
     2014-06-05 00:00:30   zhkWwIstTempVal 35.6875
     2014-06-05 00:00:29   zhkWwPriorityOn 0
     2014-06-04 21:49:49   zhkWwPumpLaststart 1401911389.15886
     2014-06-04 21:49:49   zhkWwPumpStopStatus on
     2014-06-04 19:18:09   zhkWwSollTemp   31
     2014-06-04 12:09:28   zhkWwTimerLastSetValue -1
Attributes:
   autocontrol 30
   room       OWX,Unsorted,Z_PiFace
   zhkAussenTempAlarmDelay 600
   zhkAussenTempAlarmTempLimit 16
   zhkAussenTempAlarmThreshold 1
   zhkAussenTempFhemDev 81_Aussen_D745CE040000
   zhkAussenTempFhemDevFallback dummyOnlineWeatherTemp
   zhkAussenTempFhemDevReading temperature
   zhkAussenTempFhemDevReadingFallback state
   zhkAussenTempIgnoreIfFhemDev dummyDisableAussentemp
   zhkAussenTempIsWarmState 0
   zhkAussenTempMaxAge 1200
   zhkBrennerFhemDev P3_BrennerStop
   zhkBrennerTaktMinOffSec 30
   zhkBrennerTaktMinOnSec 300
   zhkGlobalIncludeAussentemp 1
   zhkGlobalIncludeHolzofen 1
   zhkGlobalIncludeKessel 1
   zhkGlobalIncludeValvePositions 1
   zhkGlobalIncludeVorlauf 1
   zhkGlobalIncludeVorlaufZeischaltplan 1
   zhkGlobalIncludeWarmwasser 1
   zhkGlobalIncludeWwZeischaltplan 1
   zhkGlobalPollInterval 10
   zhkHolzofenAlphaThreshold 0.07
   zhkHolzofenAlphaUpAlarmDiffDeg 3
   zhkHolzofenIgnoreTempIfFhemDev dummyDisableHolzofen
   zhkHolzofenResetLowFhemDev Heizg_Wohnzimmer1
   zhkHolzofenResetLowFhemDevreading desiredTemperature
   zhkHolzofenResetLowTemp 18
   zhkHolzofenTempSensorDefaultOnFailure 20
   zhkHolzofenTempSensorFhemDev 83_WohnZi_9554CD040000
   zhkHolzofenTempSensorMinAge 300
   zhkHolzofenTempSensorReading temperature
   zhkKesselAbsoluteMaxTemp 70
   zhkKesselAbsoluteMinTemp 30
   zhkKesselMinDiffVorlauf 10
   zhkKesselMinDiffWw 8
   zhkKesselMischerErhFaktor 0
   zhkKesselTempFhemDev 4_14_Kessel_E3CD97050000
   zhkKesselTempFhemDevReading temperature
   zhkKesselTempMaxReadingAge 600
   zhkKesselTempSecondFhemDev 0
   zhkKesselTempSecondFhemDevReading temperature
   zhkKesselThreshold 5
   zhkKesselVLRLdiffErhFaktor 0
   zhkVorlaufHkurveAussenMax_TH 15
   zhkVorlaufHkurveAussenMin_TL -20
   zhkVorlaufHkurveVorlaufMax_TH 50
   zhkVorlaufHkurveVorlaufMin_TL 20
   zhkVorlaufIgnoreIfFhemDev dummyDisableVorlauf
   zhkVorlaufMischerFhemDev VorlaufMischer
   zhkVorlaufMischerPosFhemDev MischerPosition
   zhkVorlaufMischerPosFhemDevReading position
   zhkVorlaufPumpOffFhemDev P6_PumpOff
   zhkVorlaufRLTempFhemDev 2_12_Ruecklauf_56B897050000
   zhkVorlaufRLTempFhemDevReading temperature
   zhkVorlaufTempTriggerFhemDev VorlaufRegler
   zhkVorlaufTempTriggerFhemDevReading desired
   zhkVorlaufTempTriggerFhemDevSetting desired
   zhkVorlaufTimerScheduleDi 0
   zhkVorlaufTimerScheduleDo 0
   zhkVorlaufTimerScheduleFr 0
   zhkVorlaufTimerScheduleMi 0
   zhkVorlaufTimerScheduleMo 0
   zhkVorlaufTimerScheduleSa 0
   zhkVorlaufTimerScheduleSo 0
   zhkVorlaufTotalOnOffMischerDelay 150
   zhkVorlaufVLTempFhemDev 1_17_Vorlauf_D1F798050000
   zhkVorlaufVLTempFhemDevReading temperature
   zhkWwAlphaDownAlarmDiffDeg 0.8
   zhkWwAlphaThreshold 0.42
   zhkWwAlphaUpAlarmDiffDeg 5
   zhkWwBoostFhemDev P2_WwBoost
   zhkWwBoostStartTemp 45
   zhkWwConfortTemp 31
   zhkWwEcoTemp 37
   zhkWwPumpFhemDev P7_WwStop
   zhkWwTaktMinOnSec 60
   zhkWwTempSensorDefaultOnFailure 70
   zhkWwTempSensorFhemDev 5_15_WarmWasser_EB6F98050000
   zhkWwTempSensorMaxAge 300
   zhkWwTempSensorReading temperature
   zhkWwTimerScheduleDi 0
   zhkWwTimerScheduleDo 0
   zhkWwTimerScheduleFr 0
   zhkWwTimerScheduleMi 0
   zhkWwTimerScheduleMo 0
   zhkWwTimerScheduleSa 0
   zhkWwTimerScheduleSo 0
Ich habe keine Ahnung, aber davon wenigstens ganz viel

Thorsten Pferdekaemper

Zitat von: cwagner am 04 Juni 2014, 14:27:06Ist es möglich, dass Du mal Deine Parameter postest
Hier ist ein list von meinem Regler:

Internals:
   DEF        HeizRegler:valveMax HeizRegler:dummy
   NAME       HeizRegler
   NR         79
   NTFY_ORDER 50-HeizRegler
   STATE      processing
   TYPE       PID20
   Readings:
     2014-06-05 10:50:17   actuation       24
     2014-06-05 10:50:17   actuationCalc   9.61900000000185
     2014-06-05 10:50:17   delta           74.9
     2014-06-05 10:50:17   desired         75
     2014-06-05 08:41:17   lastNonzero     2014-06-05 08:41:17
     2014-06-05 10:50:17   measured        0.1
     2014-06-05 10:50:17   p_d             0
     2014-06-05 10:50:17   p_i             47.0690000000018
     2014-06-05 10:50:17   p_p             -37.45
     2014-06-05 10:50:17   state           processing
     2014-06-05 10:50:17   valveMax        0.1
   Helper:
     actor      HeizRegler
     actorCommand dummy
     actorErrorAction freeze
     actorErrorPos 0
     actorInterval 60
     actorKeepAlive 60
     actorLimitLower 24
     actorLimitUpper 75
     actorThreshold 1
     actorTimestamp 2014-06-05 10:50:17
     actorValueDecPlaces 0
     adjust     
     calcInterval 60
     deltaTreshold 0
     desiredName desired
     disable    0
     factor_D   0
     factor_I   0.02
     factor_P   0.5
     isWindUP   1
     measuredName measured
     reading    valveMax
     regexp     ^([\+,\-]?\d+\.?\d*$)
     reverseAction 1
     sensor     HeizRegler
     sensorTimeout 3600
     sensorTsOld
     stopped    0
     updateInterval 600
Attributes:
   disable    1
   group      HeizraumSonstiges
   pidActorInterval 60
   pidActorKeepAlive 60
   pidActorLimitLower 24
   pidActorLimitUpper 75
   pidCalcInterval 60
   pidFactor_I 0.02
   pidFactor_P 0.5
   pidReverseAction 1
   room       Heizraum

Das ganze ist aber mit Vorsicht zu genießen. Ich steuere das ganze über den Außentemperatur-Eingang meiner Anlage. Das Ding mittelt das aber nochmal über 2 Stunden. (Ganz abschalten kann man das nicht.) Wenn man das ganze direkt weitergeben kann und die Anlage dann sofort reagiert, dann muss man wahrscheinlich den I-Faktor verkleinern.

Zitatund: Wie ermittelst Du das am weitesten geöffnete Ventil?
Ganz genau genommen gar nicht. Ich ermittle nur den Ventilstellungsgrad des am weitesten geöffnete Ventil. Das läuft über ein at, das jede Minute läuft:

Internals:
   DEF        +*00:01:00 {myUtils_maxValve()}
   NAME       MaxValveUpdate
   NR         80
   NTM        10:56:17
   REP        -1
   STATE      Next: 10:56:17
   TRIGGERTIME 1401958577.37978
   TRIGGERTIME_FMT 2014-06-05 10:56:17
   TYPE       at
Attributes:
   group      HeizraumSonstiges
   room       Heizraum

Die myUtils_maxValve() sieht so aus:

sub myUtils_maxValve(){

# groesster Ventiloeffnungsgrad ermitteln
# PID20 bug (?), deshalb nicht genau 0
  my $ventilMax = 0.1;
  my @names = sort keys %defs;  # sort benoetigt?
  foreach my $d (@names) {
    if(AttrVal($d, "model", "none") ne "HM-CC-RT-DN"){ next; };
    my $ventil = ReadingsVal($d, "actuator", 0);
#   remove "%" 
    $ventil =~ s/%| //g;   
    if($ventil > $ventilMax){ $ventilMax = $ventil; };
  }
  readingsSingleUpdate($defs{"HeizRegler"},"valveMax", $ventilMax, 1);
}

Das geht natürlich nur, wenn man die Homematic-Ventile HM-CC-RT-DN hat. Die Funktion setzt direkt das Reading "valveMax" des HeizRegler-Device. Damit kann der PID20 leicht darauf zugreifen.
In der anderen Richtung geht's dann ähnlich: Der PID20 setzt nicht direkt die Vorlauftemperatur, sondern ein weiterer at holt sich alle 2,5 Minuten den "actuation" Wert vom HeizRegler ab und schickt das dann der Anlage.

Gruß,
  Thorsten
FUIP

epsrw1

ZitatDas geht natürlich nur, wenn man die Homematic-Ventile HM-CC-RT-DN
ich meine im wiki unter development gibt es vorgaben welches reading überall vorhanden ist (sein sollte) bei device type thermostat. theoretisch sollte es einfacher bzw schneller sein sich am device type zu orientieren statt alle @names durchzunudeln.
list type=HeatingThermostat [valveposition]
(oder so ähnlich)


so ähnlich hatte ich auch mal eine lösung, mit lauter dummies, at, notify devices. es ist schön und funktioniert auch, aber mir war es auf die dauer zu unübersichtlich.
mir persönlich geht es so daß ich dann irgendwann vergessen habe welcher dummy nochmal für was war, und ständig nachforschen muß.


Thorsten,
kannst Du mir mal ein listing von irgendeinem Deiner :
"model" "HM-CC-RT-DN"
posten? vllt kann ich das gleich von vorneherein dynamisieren und die HM mit auslesen bei valvePos regler
danke !

und noch eine frage:
warum steuert der pid20 bei Dir einen dummy, und dann ein verzögertes at erst den poti an der heizung? kann nicht der pid20 direkt den poti regeln?

grüße, florian
Ich habe keine Ahnung, aber davon wenigstens ganz viel

Thorsten Pferdekaemper

Zitat von: epsrw1 am 05 Juni 2014, 11:27:59theoretisch sollte es einfacher bzw schneller sein sich am device type zu orientieren statt alle @names durchzunudeln.
Das ist gut möglich, aber das war die Möglichkeit, die ich als erstes gefunden habe bzw. die als erstes funktioniert hat. Ich habe mir danach keine Gedanken mehr darüber gemacht.

Zitatso ähnlich hatte ich auch mal eine lösung, mit lauter dummies, at, notify devices. es ist schön und funktioniert auch, aber mir war es auf die dauer zu unübersichtlich.
mir persönlich geht es so daß ich dann irgendwann vergessen habe welcher dummy nochmal für was war, und ständig nachforschen muß.
Bei mir ist das (momentan noch) einfach gehalten. Allerdings bin ich momentan ganz stark an der Planung einer Arduino-basierten Steuerung, die meine Giematic-Regelung vollständig ersetzen soll. Dann muss ich das ganze sowieso ändern.

Zitatkannst Du mir mal ein listing von irgendeinem Deiner :
"model" "HM-CC-RT-DN"
posten?
Hier ist das Listing von einem Device:

Internals:
   DEF        21FBB2
   HMLAN1_MSGCNT 9918
   HMLAN1_RAWMSG E21FBB2,0000,083493A8,FF,FFD6,16861021FBB20000000AB0DF0D0020
   HMLAN1_RSSI -42
   HMLAN1_TIME 2014-06-05 11:39:16
   IODev      HMLAN1
   LASTInputDev HMLAN1
   MSGCNT     9918
   NAME       og_ku_Heizung
   NR         24
   STATE      CMDs_done
   TYPE       CUL_HM
   channel_01 og_ku_Heizung_Weather
   channel_02 og_ku_Heizung_Climate
   channel_03 og_ku_Heizung_WindowRec
   channel_04 og_ku_HeizungOp
   channel_05 og_ku_Heizung_ClimaTeam
   channel_06 og_ku_Heizung_Remote
   lastMsg    No:16 - t:10 s:21FBB2 d:000000 0AB0DF0D0020
   protLastRcv 2014-06-05 11:39:16
   protSnd    19 last_at:2014-06-04 19:44:54
   protState  CMDs_done
   rssi_HMLAN1 avg:-44 min:-44 max:-44 lst:-44 cnt:1
   rssi_at_HMLAN1 avg:-49.79 min:-87 max:-41 lst:-42 cnt:9918
   Readings:
     2014-05-18 22:27:23   Activity        alive
     2014-05-28 12:17:11   CommandAccepted yes
     2014-03-04 19:41:28   D-firmware      1.2
     2014-03-04 19:41:28   D-serialNr      KEQ0508161
     2014-03-04 19:42:58   PairedTo        0x23A3F4
     2013-12-28 19:42:59   R-backOnTime    10 s
     2014-03-04 19:42:58   R-btnLock       lock
     2014-03-04 19:28:32   R-burstRx       on
     2014-03-04 19:28:32   R-cyclicInfoMsg on
     2014-03-04 19:28:32   R-cyclicInfoMsgDis 0
     2014-03-04 19:28:32   R-globalBtnLock off
     2014-03-04 19:28:32   R-localResDis   off
     2013-12-28 19:42:59   R-lowBatLimitRT 2.1 V
     2014-03-04 19:28:32   R-modusBtnLock  off
     2014-03-04 19:28:32   R-pairCentral   0x23A3F4
     2014-03-04 19:42:58   RegL_00:        01:01 02:01 09:01 0A:23 0B:A3 0C:F4 0E:0A 0F:01  11:00 12:15 16:00 18:00 19:00 1A:00 00:00
     2014-04-10 22:18:40   RegL_07:        0
     2014-06-05 11:39:16   actuator        0
     2014-06-05 11:39:16   battery         ok
     2014-06-05 11:39:16   batteryLevel    2.8
     2014-06-05 11:39:16   desired-temp    22.0
     2014-06-05 11:39:16   measured-temp   22.3
     2013-12-28 19:41:39   noReceiver      src:21FBB2 8610 0AB0DC104518
     2014-03-04 19:26:18   powerOn         -
     2014-03-04 19:26:18   recentStateType info
     2014-01-22 21:42:15   smoothActuator  46.5553288735172
     2014-06-04 19:44:54   state           CMDs_done
     2014-01-21 19:40:01   test            22
     2014-06-04 19:44:54   time-request    -
   Helper:
     cSnd       1123A3F421FBB2820422201C0E14040E56
     mId        0095
     rxType     140
     Io:
       newChn     +21FBB2,00,01,1E
       nextSend   1401961156.67742
     Prt:
       bErr       0
       sProc      0
       sleeping   1
       Rspwait:
     Q:
       qReqConf   
       qReqStat   
     Role:
       dev        1
     Rssi:
       Hmlan1:
         avg        -44
         cnt        1
         lst        -44
         max        -44
         min        -44
       At_hmlan1:
         avg        -49.7934059286146
         cnt        9918
         lst        -42
         max        -41
         min        -87
     Shregw:
       07         04
Attributes:
   IODev      HMLAN1
   actCycle   000:10
   actStatus  alive
   autoReadReg 4_reqStatus
   expert     2_full
   firmware   1.2
   group      og_Kueche
   model      HM-CC-RT-DN
   peerIDs   
   room       og_Kueche
   serialNr   KEQ0508161
   subType    thermostat
   webCmd     getConfig:burstXmit

...aber normalerweise arbeitet man nicht mit dem Device selbst, sondern mit Channel 04:

Internals:
   DEF        21FBB204
   HMLAN1_MSGCNT 9887
   HMLAN1_RAWMSG E21FBB2,0000,0836D6D8,FF,FFD6,17861021FBB20000000AB0DF0D0020
   HMLAN1_RSSI -42
   HMLAN1_TIME 2014-06-05 11:41:44
   LASTInputDev HMLAN1
   MSGCNT     9887
   NAME       og_ku_HeizungOp
   NR         28
   STATE      T: 22.3 desired: 22.0 valve: 0
   TYPE       CUL_HM
   chanNo     04
   device     og_ku_Heizung
   Readings:
     2014-05-28 12:17:12   CommandAccepted yes
     2014-01-02 14:13:46   R-boostPeriod   5 min
     2014-01-02 14:13:46   R-boostPos      80 %
     2014-04-10 09:53:55   R-btnNoBckLight off
     2014-01-02 14:13:46   R-dayTemp       22 C
     2014-04-10 09:53:55   R-daylightSaveTime on
     2014-04-10 09:53:55   R-decalcTime    11:00
     2014-04-10 09:53:55   R-decalcWeekday Sat
     2014-04-10 09:53:55   R-modePrioManu  all
     2014-04-10 09:53:55   R-modePrioParty all
     2014-01-02 14:13:46   R-nightTemp     17 C
     2014-04-10 09:53:55   R-noMinMax4Manu off
     2014-04-10 09:53:55   R-regAdaptive   on
     2014-04-10 09:53:55   R-reguExtI      18
     2014-04-10 09:53:55   R-reguExtP      33
     2014-04-10 09:53:55   R-reguExtPstart 45
     2014-04-10 09:53:55   R-reguIntI      15
     2014-04-10 09:53:55   R-reguIntP      30
     2014-04-10 09:53:55   R-reguIntPstart 30
     2014-04-10 09:53:55   R-showInfo      time
     2014-04-10 09:53:55   R-showWeekday   off
     2014-04-10 09:53:50   R-sign          off
     2014-01-02 14:13:46   R-tempMax       30.5 C
     2014-01-02 14:13:46   R-tempMin       4.5 C
     2014-04-10 09:53:55   R-tempOffset    0.0K
     2014-01-02 14:13:46   R-valveErrPos   15 %
     2014-01-02 14:13:46   R-valveMaxPos   100 %
     2014-02-08 17:40:56   R-valveOffsetRt 0 %
     2014-04-10 09:53:55   R-winOpnBoost   off
     2014-01-02 14:13:46   R-winOpnDetFall 1.4 K
     2014-04-10 09:53:55   R-winOpnMode    on
     2014-01-02 14:13:46   R-winOpnPeriod  15 min
     2014-01-02 14:13:46   R-winOpnTemp    12 C
     2014-04-10 09:53:55   R_0_tempListSat 05:30 22.0 24:00 22.0
     2014-04-10 09:53:55   R_1_tempListSun 05:30 22.0 24:00 22.0
     2014-04-10 09:53:55   R_2_tempListMon 05:30 22.0 24:00 22.0
     2014-04-10 09:53:55   R_3_tempListTue 05:30 22.0 24:00 22.0
     2014-04-10 09:53:55   R_4_tempListWed 05:30 22.0 24:00 22.0
     2014-04-10 09:53:55   R_5_tempListThu 05:30 22.0 24:00 22.0
     2014-04-10 09:53:55   R_6_tempListFri 05:30 22.0 24:00 22.0
     2014-04-10 09:53:55   R_tempList_State verified
     2014-06-05 11:41:44   ValvePosition   0
     2014-06-05 11:41:44   desired-temp    22.0
     2014-06-05 11:41:44   measured-temp   22.3
     2014-06-05 11:41:44   mode            auto
     2014-06-05 11:41:44   motorErr        ok
     2014-05-28 12:17:12   recentStateType ack
     2014-03-05 10:08:05   smoothActuator  69.9556851076422
     2014-06-05 11:41:44   state           T: 22.3 desired: 22.0 valve: 0
     2014-03-20 20:32:23   tempList_State  verified
   Helper:
     Role:
       chn        1
     Shregr:
       07         00
Attributes:
   expert     1
   group      og_Kueche
   model      HM-CC-RT-DN
   peerIDs    00000000,
   room       og_Kueche


Zitatwarum steuert der pid20 bei Dir einen dummy, und dann ein verzögertes at erst den poti an der heizung? kann nicht der pid20 direkt den poti regeln?
Da ist kein Dummy, ich benutze einfach das actuator-Reading.
Soweit ich mich erinnere, will der PID20 sowas machen wie "set <device> <name> <actuator>" Dazu müsste ich aber etwas haben, was darauf reagiert. Meine Heizanlage ist aber selbst nicht wirklich ein FHEM-Device (zum Abfragen der Werte benutze ich ein HTTPMOD). Stattdessen ruft das at eine Funktion auf, die aus dem Soll-Vorlauf die "Fake-Außentemperatur" berechnet und das dann per HttpUtils_NonblockingGet an den Arduino schickt, der wiederum die Digitalpotis bedient.
Ich bin mir sicher, dass das auch eleganter geht...
Wie schon gesagt, soll das in Zukunft anders werden, so dass der Arduino komplett die Brennersteuerung übernimmt und ich dem Arduino nur noch Vorlauf-Soll, Warmwasser-Soll und Heizbedarf (ja/nein) übermittle.
Gruß,
   Thorsten

FUIP

epsrw1

danke.
auch bei HM ist das passende kompatible reading vorhanden:
2014-06-05 11:41:44   ValvePosition   0
(würde bei Dir die regex die das % abschneidet einsparen)
Ich habe keine Ahnung, aber davon wenigstens ganz viel

Thorsten Pferdekaemper

Zitat von: epsrw1 am 05 Juni 2014, 12:43:36
auch bei HM ist das passende kompatible reading vorhanden:
2014-06-05 11:41:44   ValvePosition   0
(würde bei Dir die regex die das % abschneidet einsparen)
Jetzt schon, aber das war früher mal anders.
Gruß,
  Thorsten
FUIP

epsrw1

ZitatWarmwasser wird über heating_control im Winter vorrangig frühmorgens und am Abend (wenn größter Heizbedarf ist) erzeugt, um möglichst lange Brennerlaufzeiten hinzubekommen.

der schalter ist eingebaut, und über attr zu bedienen.
Ich habe keine Ahnung, aber davon wenigstens ganz viel

epsrw1

aktueller plot mit temp.kessel und warmwasser, noch etwas testen dann kommt version 1.0 nebst etwas doku.
LG, florian


PS: möchte sich vielleicht jemand an der doku beteiligen? ich kann das nicht so besonders gut...
Ich habe keine Ahnung, aber davon wenigstens ganz viel

Roaster

Hi,

ich habe eine etwas "modernere" Heizung, ein Vitodens 300, Gasbrennwertgerät. Dazu gibt es ja das OpenV Projekt um die Daten der Anlage per Adapter direkt anzuzapfen. Ich weiß momentan noch nicht, ob dies für mein Gerät auch funktionieren würde, der Adapter dazu müsste in Eigenbauweise hergestellt oder ziehmlich teuer beschafft werden. Momentan jedoch noch nicht so wichtig für mich.

Was mich aber, und damit zurück zum Thread, interresieren würde. Wie greifst du die Werte der verschiedenen Temperaturfühler ab? Ich frage deshalb, da bei mir im Warmwasserspeicher und auch an den Vorlaufrohren und möglicherweise woanders ebenfalls diverse Fühler, ob direkt verbaut oder nur per Halterung an die Rohre geklemmt, vorhanden sind.

Ich würde gerne diese Temperaturen abfragen. D.h. im Keller die Werte ermitteln und per Funk (WLAN) oder was auch immer, die Daten dann fhem zur Verfügung stellen.

Ist es einfach möglich, die Kabel, die ja offensichtlich jetzt schon bereits im Steuergerät der Heizung verklemmt sind zu missbrauchen, also zu verwenden, um damit eine Hardwarelösung zu füttern, die mir dann die Daten ans Fhem bringt?

Du hast ja dies offensichtlich auch irgendwie gelöst. Wie ist das bei dir? Hat dein Warmwasserspeicher auch integrierte Temperaturfühler, die die weiterverwendest, wie auch immer?

Grüße,
Michael

epsrw1

hallo michael,
ich habe die temperaturen nochmal extra verkabelt und überall (günstige) 1wire fühler angebracht.
viele hülsen (zB kessel) bieten platz für mehr als einen sensor, andernfalls kannst Du sie hintereinander einführen und einmal kurz hin und her wechseln um die temperaturdifferenz zwischen innerer und äußerer position zu ermitteln. Dein eigener fühler wird dann einfach mit einem offset eingerichtet, und schon hast Du halbwegs vernünftige daten.
LG, florian

Ich habe keine Ahnung, aber davon wenigstens ganz viel

Bennemannc

Hallo,

also an einen vorhandenen Fühler würde ich nicht gehen. Das sind meist Wärmeabhängige Widerstände und wenn Du hier etwas parallel legst, bekommt die Originalsteuerung andere Werte. Auf jeden Fall eigene Fühler verbauen.

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

oviwan

hi,
ich krame das hier nochmal raus, einfach weil ich denke das hier ganz gut rein passt. hatte ich irgendwann mal im netz, mehr durch zufall, gefunden: http://www.farago.info/job/Heizungsanlage/FuenfteVorlesung.htm

geht um das taktverhalten des brenners und ein paar berechnungsgrundlagen dazu. interessant finde ich die aussage zu der modernisierung von alt-kesseln. vielleicht interessiert es ja jemanden der auch die kontrolle über seinen brenner übernommen hat. gibt es auch als pdf, einfach über die hauptseite gehen.

gruss,
harry
--------------------------------------------------------------------
- fhem & fhz1300 & hm lan an raspberry an fritzbox 5140 an whs2011
- 5 fht; 2 HM-TC-IT-WM-W-EU 3, 1 x fs20 funkdosen; 3 hm funkdosen
- heizungsteuerung mit c-control station & fht8w
- rolladensteuerung phc 950 jr (voll doof)

John

Hallo Harry,

mit diesem Thema habe ich mich in folgende Beitrag auch beschäftigt
http://forum.fhem.de/index.php/topic,31586.msg246024.html#msg246024

Mit Erhöhung der Schalthysterese und der Verwendung des Brauchwasserspeichers als "Pufferspeicher"
konnte ich die Taktzahl auf weniger als 1/3 reduzieren. (vorher 70/Tag nun  weniger als 20/Tag)

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

MichlB

hallo epsrw1

ich bin durch zufall auf dein modul gestossen, ich versuche ebenfall eine etwas in die jahre gekommene Heizanlage mittels rpi zu steuern. leider bin ich nicht so der regeltechniker noch der programmierer (aber ich geb mir mühe das alles zu verstehen)...aber ich würde gerne mitmachen bei dem...
was ich aber vorweg fragen wollte, ich habe bei mir 4 Mischer-Ventil (motorgesteuert), dann noch 4 Umwälzpumpen, 1 Rauchfang-umschaltklappe weil Gas und Holzkessel, dann habe ich noch ca. 6 Stellmotoren für die FBH - kann ich mit deinem modul das alles steuern?

ach ja, jede Menge DA18B20 an den Vorlauf-/Rücklauf-Leitungen und in den Zimmern DHT11 und aussen einen DHT22 sensor (die DHTs sind über MYSENSORS verbunden).

in späterer Folge sollen dann noch Somfy-Aussenrollos kommen und eine Wetterstation... also ich hab viel vor.. ;-)

aber zurück zur Heizung..
Würde die Steuerung mit deinem Tool funktionieren?

lg
Michl
1x PI 2B+ FHEM - Heizung
1x Pi 3b+ - FHEM - Haussteuerung
1x Pi 3 - MagicMirror
2x Pi B - Musicbox

epsrw1

Zitat von: Michl1003! am 29 Februar 2016, 16:16:23
hallo epsrw1
ich versuche ebenfall eine etwas in die jahre gekommene Heizanlage mittels rpi zu steuern.
sollte möglich sein, was für eine heizung, was für eine steuerung?
Zitat von: Michl1003! am 29 Februar 2016, 16:16:23
was ich aber vorweg fragen wollte, ich habe bei mir 4 Mischer-Ventil (motorgesteuert), dann noch 4 Umwälzpumpen,
für die mischer hab ich noch ein anderes modul geschrieben: STELLMOTOR
Zitat von: Michl1003! am 29 Februar 2016, 16:16:23
1 Rauchfang-umschaltklappe weil Gas und Holzkessel,
habe keine ahnung was das ding machen soll, wozu braucht man das? wenn es sicherheitsrelevant ist würde ich es nicht mit fhem steuern, sonst hängt sich das mal auf und Dein haus wird zur gaskammer....
Zitat von: Michl1003! am 29 Februar 2016, 16:16:23
dann habe ich noch ca. 6 Stellmotoren für die FBH - kann ich mit deinem modul das alles steuern?
dito, das ist auch mit dem STELLMOTOR modul machbar
Zitat von: Michl1003! am 29 Februar 2016, 16:16:23
ach ja, jede Menge DA18B20 an den Vorlauf-/Rücklauf-Leitungen und in den Zimmern DHT11 und aussen einen DHT22 sensor (die DHTs sind über MYSENSORS verbunden).
temp.daten kann man nie genug haben ;)
Ich habe keine Ahnung, aber davon wenigstens ganz viel

MichlB

hallo
also die heizung is etwas älter,eine  vaillant gas therme und ein holzofen, die werdenaber im sleben kamin eingeleitet, deshalb die umschaltklappe.

wie steuere ich mehrere heizkreise?
also hitze wird mitden beiden thermen erzeugt (logisch) und dann hab ich die mischerpumen boiler,fuszbodenheizung,radiato eg und zu letzt radiator kg.
die fhb wird dann noch mal aufgeteilt wz, bad, küche, og....

das ist mal grob derüberblich..
lg
1x PI 2B+ FHEM - Heizung
1x Pi 3b+ - FHEM - Haussteuerung
1x Pi 3 - MagicMirror
2x Pi B - Musicbox

epsrw1

heizkreise würde ich mit kurve machen, d.h. je kälter außen desto höher gewünschte VL-temperatur. dann steuert jeder mischer einzeln je nach bedarf.
alternativ kannst Du dei VL/RL differenz als maßstab nehmen, ist aber fehleranfällig. bei erreichen einer gewissen temp. in allen räumen eines kreises würde ich dann die jeweilige pumpe abschalten.

die einzelnen räume lassen sich ganz easy in FHEM mit dem modul PID20 steuern. würde ich eher auch einzeln machen um komfortabel die räume unabhängig einstellen zu können.

die gastherme würde ich öffnen und einen temp.sensor an den kessel bauen, sowie einen unterbrecher in stromkreis des brenners. dann kannst Du wenn alle pumpen aus sind (oder holz gerade warm ist) den brennerstart verhindern und gas sparen.

für die umschaltklappe würde ich eher eine mechanische lösung nehmen, oder eine von FHEM unabhängige redundante elektronische lösung, um doppelt sicherzugehen dass die therme keinesfalls starten kann wenn die klappe auf holz steht.

wie sind Deine beiden kessel denn hydraulisch verbunden? wir wird die abgasklappe denn aktuell bedient?
Ich habe keine Ahnung, aber davon wenigstens ganz viel

MichlB

Guten morgen.

also der gaskessel und der holzofen sind an der selben leitung, die wird durch ein ventil umgeswitcht, d.h. is die anlage auf holzbetrieb, so wird die abgasklappe (motorisch) umgelegt und ein motorventil verschließt die wasserzuleitung zum gasbrenner - wenn auf gas umgestellt wird natürlich anders herum.
ich pack dann nachher noch fotos rein.

was is pid29?
1x PI 2B+ FHEM - Heizung
1x Pi 3b+ - FHEM - Haussteuerung
1x Pi 3 - MagicMirror
2x Pi B - Musicbox

epsrw1

Zitat von: Michl1003! am 06 März 2016, 07:26:28
also der gaskessel und der holzofen sind an der selben leitung, die wird durch ein ventil umgeswitcht, d.h. is die anlage auf holzbetrieb, so wird die abgasklappe (motorisch) umgelegt und ein motorventil verschließt die wasserzuleitung zum gasbrenner - wenn auf gas umgestellt wird natürlich anders herum.
auf dem Foto würde ich meinen die Klappe stellt nicht um sondern verringert nur den querschnitt. ist unter dem Motor im Abgasstrang ein T-Stück oder Y-Stück?

Zitat von: Michl1003! am 06 März 2016, 07:26:28
was is pid29?
ein Tippfehler. PID20 :)

LG, Florian

PS: Deine Umwälzpumpe könnte ein Upgrade vertragen um weniger Strom zu fressen
Ich habe keine Ahnung, aber davon wenigstens ganz viel

stephan-221

Hallo Florian,

ich plane eine Heizungssteuerung von Buderus durch FHEM / HZK zu ersetzen.
Die Möglichkeiten und Einstellungen mit dem Modul HZK sind wirklich sehr ausgiebig.
Jetzt will ich erstmal einfach anfangen. Gibt es dazu irgendwo ein Beispiel?

Die Wiki Seite beschreibt alles komplett. Mir fehlt da ein einfacher Anfang.
Ich habe am Raspberry eine Relaisplatine und 6 Temperatursensoren angeschlossen.

Folgende Attribute sind gesetzt:
zhkAussenTempFhemDev   OW_SENSOR_4
zhkBrennerFhemDev           GPIO18_Brenner
zhkGlobalIncludeAussentemp 1
zhkGlobalIncludeHolzofen       0
zhkGlobalIncludeWarmwasser 1
zhkKesselTempFhemDev         OW_SENSOR_2
zhkVorlaufPumpOffFhemDev    GPIO24_UP
zhkVorlaufRLTempFhemDev     OW_SENSOR_4
zhkVorlaufVLTempFhemDev     OW_SENSOR_3
zhkWwPumpFhemDev              GPIO23_LP
zhkWwTempSensorFhemDev    OW_SENSOR_1


Was ist sonst noch notwendig für eine Heizung für "dummies"?

Viele Grüße
Stephan

osid-timo

Hallo Florian,
auch mich interessiert das Modul nun schon zum 2. Mal (auch mein erster Versuch endete in vielen Fehlermeldungen)
und bin auch gerne bereit an einem Installationguide mitzuarbeiten.

Meine Konfiguration ist etwas komplexer:
Resol Solaranlage mit VBus
Homematic Differenztemperatursensoren für HZ-Kreis und WW-Kreis
Homematic Aktoren zum Steuern der Pumpen und Brenner

mein Konfigversuch sieht so aus:
define MyHeizung ZHK 120
attr MyHeizung room Test
attr MyHeizung verbose 5
attr MyHeizung zhkBrennerFhemDev HZ_HeizenAbsenkenOut1
attr MyHeizung zhkGlobalIncludeAussentemp 0
attr MyHeizung zhkGlobalIncludeHolzofen 0
attr MyHeizung zhkGlobalIncludeKessel 1
attr MyHeizung zhkGlobalIncludeValvePositions 1
attr MyHeizung zhkGlobalIncludeVorlauf 1
attr MyHeizung zhkGlobalIncludeWarmwasser 1
attr MyHeizung zhkKesselTempFhemDevReading KesselTemp:state
attr MyHeizung zhkVorlaufPumpOffFhemDev HZ_PumpePWMOut4
attr MyHeizung zhkVorlaufRLTempFhemDev Temp_HZ_RL
attr MyHeizung zhkVorlaufRLTempFhemDevReading Temp_HZ_RL:temperature
attr MyHeizung zhkVorlaufTempTriggerFhemDevSetting HZPumpe:actuation
attr MyHeizung zhkVorlaufVLTempFhemDev Temp_HZ_VL
attr MyHeizung zhkVorlaufVLTempFhemDevReading Temp_HZ_VL:temperature
attr MyHeizung zhkWwPumpFhemDev HZ_SpeicherLadepumpeOut2
attr MyHeizung zhkWwTempSensorFhemDev Solarthermie:SpeichertemperaturOben_T03:d


Daher meine Frage wie muss die Konfiguration angepasst werden

ich freue mich auf deinen Input

Gruß Oswald
FHEM Pi3: 1* CUL, 30* Homematic, 10* EnOcean
FHEM Pi3: IR-Lesekopf, BT->SMA
FHEM Pi3: ZHK, 1-wire, 1* VBus   Resol DeltaSol BS

stephan-221

#43
Hi Oswald,

wo bekommst du haufenweise Fehlermeldungen?

Also ich habe jetzt die Steuerung an meine Temp Sensoren angebunden und beobachte, wie sie die Heizung regeln würde. Die Äusgänge für Pumpen und Brenner sind lediglich dummies.

Obwohl ich eine Kesseltemperatur habe und diese auch ausgewertet wird, steht bei FHEM in der Titelzeile: Kesselthermometer-Stö(rung).

Weiterhin habe ich die WWSollTemp gesetzt über "set zhkWwSollTemp". Trotzdem bekomme ich immer "zhkWwSollTemp were missing and have been autogenerated" angezeigt.

Im Logfile von FHEM sehe ich sehr viel davon:

2016.10.20 19:44:45 3: ZHK zhk4: debug line, 995fhem set P2_WwBoost 1
2016.10.20 19:44:45 3: ZHK DeDietrich WwBoostStartStop: 1
2016.10.20 19:44:55 3: ZHK zhk4: debug line, 995fhem set P2_WwBoost 1
2016.10.20 19:44:55 3: ZHK DeDietrich WwBoostStartStop: 1
2016.10.20 19:45:05 3: ZHK zhk4: debug line, 995fhem set P2_WwBoost 1
2016.10.20 19:45:05 3: ZHK DeDietrich WwBoostStartStop: 1


Wie kann ich den Boost Modus deaktivieren? 

1000 Fragen zu einem klasse Modul... ;-)

Grundsätzlich sehe ich, dass Brenner und Pumpen an/aus geschaltet werden. Mir ist es aber noch zu riskant, mal meine Heizung umzuschalten :-D

osid-timo

Hallo Stephan,
nachdem ich jetzt einen neuen Raspi für die ZHK in Betrieb genommen habe und vorallem

die attr richtig gestellt sind (Dev und Reading getrennt)

attr MyHeizung zhkVorlaufPumpOffFhemDev HZ_PumpePWMOut4
attr MyHeizung zhkVorlaufRLTempFhemDev SolarTemperatur_Remote
attr MyHeizung zhkVorlaufRLTempFhemDevReading SpeichertemperaturUnten_T02 (nur der Readingname ist nötig!)

sind die Fehlermeldungen im Log deutlich weniger, aber fhem:Kesselthermometer-Stö(rung) bleibt auch bei mir

die nächsten Versuche unternehme ich, wenn die bestellten 1-wire Temperatursensoren eingetroffen sind

Gruß Oswald
FHEM Pi3: 1* CUL, 30* Homematic, 10* EnOcean
FHEM Pi3: IR-Lesekopf, BT->SMA
FHEM Pi3: ZHK, 1-wire, 1* VBus   Resol DeltaSol BS

stephan-221

Hallo Oswald,

das mit den Readings und Attributen muss ich mir am Wochenende in Ruhe angucken.
Der Kesseltemp-Störungsalarm wird einmalig gesetzt. Ich habe mir mal das Modul von innen angeschaut.
Wenn du unter FHEM global suchst, gibt es dort ein Attribut für title o.ä. Dieses kannst du löschen.
Wahrscheinlich wird der Alarm direkt ausgelöst, wenn man ZHK in die Konfig einbindet. Da sind am Anfang ja keine Sensoren verknüpft.
Es gibt aktuell keine Logik, die den Alarm wieder zurücksetzt.

Ich habe auch die Debuglines auskommentiert. Damit sieht das Logfile schonmal sauberer aus.
Debug und Logging wird beides mit verbose 3 gesetzt. Dadurch kann man über verbose als Attribut nicht eines von beidem Ausfiltern.

Viele Grüße
Stephan

osid-timo

Hallo,
mit den neuen 1-wire Sensoren und verbesserter Konfiguration, gibt es keine Fehlermeldungen, hier meine aktuelle Info:
Internals:
   CFGFN      FHEM/fhemOda.cfg
   DEF        120
   NAME       MyHeizung
   NOTIFYDEV  global
   NR         231
   NTFY_ORDER 50-MyHeizung
   STATE      Kessel: idle 45 �C KesselSollT:43 Vorlauf: Auto 33 �C
   TYPE       ZHK
   Readings:
     2016-11-05 09:56:19   autocontrol     120
     2016-11-05 10:07:36   looptime        1478336856.41254
     2016-11-05 09:56:19   state           active
     2016-11-03 21:46:06   zhkAussenTempIsWarmState 0
     2016-11-05 10:05:43   zhkBrennerActualState 1
     2016-11-05 10:05:43   zhkBrennerLaststart 1478336743.21643
     2016-11-05 10:05:43   zhkBrennerLogLastStartDauer 364.567343950272
     2016-11-05 10:05:43   zhkBrennerLogLastStateChange 1478336743.21643
     2016-11-05 09:59:38   zhkBrennerLogLastStopDauer 78.6487679481506
     2016-11-05 10:07:36   zhkKesselActualMischerAnhebung 0
     2016-11-05 10:07:36   zhkKesselActualTemp 45
     2016-11-05 10:07:36   zhkKesselActualVLRLAnhebung 0
     2016-11-05 10:07:36   zhkKesselActualVLRLdiff -0.25
     2016-11-05 10:07:36   zhkKesselDesiredTemp 43
     2016-11-05 10:07:36   zhkKesselState  idle 45 �C
     2016-11-05 10:07:36   zhkVorlaufActualTempRL 37.875
     2016-11-05 10:07:36   zhkVorlaufActualTempVL 37.625
     2016-10-22 13:41:38   zhkVorlaufDesiredTemp 33
     2016-11-05 10:07:36   zhkVorlaufMischerPosActualPosition unknown
     2016-10-22 13:41:38   zhkVorlaufState Auto 33 �C
     2016-11-05 10:07:36   zhkVorlaufTimerTempAdjust 0
     2016-10-22 13:41:38   zhkVorlaufTotalOnOffState 1
     2016-11-05 09:59:38   zhkWwAlphaActualVal -12.396694214876
     2016-11-05 10:07:36   zhkWwBoostStatus off
     2016-11-05 10:07:36   zhkWwIstLastReading 45=1478336852
     2016-11-05 10:07:36   zhkWwIstTempTimestamp 1478336852
     2016-11-05 10:07:36   zhkWwIstTempVal 45
     2016-11-05 10:07:36   zhkWwPriorityOn 0
     2016-11-05 10:07:36   zhkWwPumpLaststart 1478336856.28292
     2016-11-05 10:07:36   zhkWwPumpStopStatus on
     2016-10-22 13:41:37   zhkWwSollTemp   30
Attributes:
   room       Heizung
   stateFormat Kessel: zhkKesselState KesselSollT:zhkKesselDesiredTemp Vorlauf: zhkVorlaufState
   verbose    2
   zhkAussenTempFhemDev Aussentemperatur_Remote
   zhkAussenTempFhemDevReading state
   zhkBrennerFhemDev Brenner1
   zhkGlobalIncludeAussentemp 0
   zhkGlobalIncludeHolzofen 0
   zhkGlobalIncludeKessel 1
   zhkGlobalIncludeValvePositions 1
   zhkGlobalIncludeVorlauf 1
   zhkGlobalIncludeWarmwasser 1
   zhkKesselTempFhemDev Temp_Kessel5
   zhkKesselTempFhemDevReading temperature
   zhkKesselTempSecondFhemDev Temp_Kessel6
   zhkKesselTempSecondFhemDevReading temperature
   zhkVorlaufPumpOffFhemDev HZ_HeizenAbsenkenOut5
   zhkVorlaufRLTempFhemDev Temp_HZ_RL
   zhkVorlaufRLTempFhemDevReading temperature
   zhkVorlaufTempTriggerFhemDevSetting HZPumpeOutput
   zhkVorlaufVLTempFhemDev Temp_HZ_VL
   zhkVorlaufVLTempFhemDevReading temperature
   zhkWwPumpFhemDev HZ_SpeicherLadepumpeOut3
   zhkWwTempSensorFhemDev SolarTemperatur_Remote
   zhkWwTempSensorReading SpeichertemperaturOben_T03


Aber es bleiben Fragen:
Ich verwende die Version vom 2014-06-17 gibt es was neueres?
1. ZHK meldet im Log:2016.11.05 09:43:46 3: ZHK zhk4: debug line, 945fhem set Brenner1 1
, aber der GPIO/das Relais für den  Brenner wird nicht geschaltet, was sollt ich tun?
2. die Vorlaufpumpe steuere ich heute schon mit den Ventilstellungen der HM-Ventile, wollte ich so lassen, ist das gut so oder kann es der Regler besser?
2. ich wollte keine Aussentemperatur verwenden -> wie muß ich die vorhandene Ventilstellung in den Regler schleusen um mit dieser Info die Kesseltemperatur zu berechnen?, in meiner Version kann ich die Programmzeilen nicht verstehen (zum Test habe ich von Openweather den Temperaturwert verwendet)
3. ich habe eine Solaranlage zur Warmwasserbereitung, scheint zu klappen, aber auch hier wird der GPIO/Relais für die Pumpe nicht geschaltet
(alle GPIO funktionieren im Handbetrieb)

ein paar Tipps sind dringend nötig, ansonsten ist das ein sehr interessantes Modul

Gruß Oswald
FHEM Pi3: 1* CUL, 30* Homematic, 10* EnOcean
FHEM Pi3: IR-Lesekopf, BT->SMA
FHEM Pi3: ZHK, 1-wire, 1* VBus   Resol DeltaSol BS

osid-timo

Hallo,
meine neueste Erkenntnis die GPIO/Relais benötigen:

# Pin40 GPIO21 Relais1
define Brenner1 RPI_GPIO 21
attr Brenner1 direction output
attr Brenner1 eventMap on:1 off:0
attr Brenner1 poll_interval 5
attr Brenner1 room Heizung
#attr Brenner1 verbose 5

damit die Ausgaben aus ZHK set Brenner 1 oder 0 auch von den GPIO in on und off umgesetzt werden

Gruß Oswald
FHEM Pi3: 1* CUL, 30* Homematic, 10* EnOcean
FHEM Pi3: IR-Lesekopf, BT->SMA
FHEM Pi3: ZHK, 1-wire, 1* VBus   Resol DeltaSol BS

stephan-221


Die Ausgänge werden 1 und 0 statt on und off gesetzt. Das hast du inzwischen ja auch selbst herausgefunden.

Es gibt keine neuere Version. Ich habe in der bestehenden Datei lediglich die Windows Zeilenumbrüche in Linux verändert und die Debuglines auskommentiert. Also nur optische Kosmetik.

Welcher Befehlt gibt die komplette Config der ZHK so schön aus wie bei dir?
Dann poste ich auch mal meinen Testaufbau.

Viele Grüße
Stephan

epsrw1

Hallo zusammen,

ich komme leider seit geraumer Zeit aus Zeitmangel nicht dazu das zhk4 zu verschönern. Ich versuche mal zu beantworten was ich beim überfliegen so gesehen habe:

-FHEM in der Titelzeile: Kesselthermometer-Stö(rung).
wird einmalig über attr global gesetzt und kann nur manuell entfernt werden. habe ich bei mir so gemacht dass ich nicht vergesse zu prüfen woher der fehler kam und die meldung nicht von selbt wieder verschwindet.

-WW Boost modus kann man getrost ignoriren
das war bei mir mal ein zusätzlicher ausgang um einen analogen übertemperaturschalter zu übergehen und wurde verwendet um das WW turnusmäßig "abzukochen"

-attr Brenner1 eventMap on:1 off:0
sieht nach einer guten Lösung aus

kann ich noch tipps geben oder unklare sachen erklären?
LG, florian







Ich habe keine Ahnung, aber davon wenigstens ganz viel

osid-timo

Hallo Zusammen,
ZHK ist jetzt bei mir auf einem extra Raspi produktiv, steuert Brenner und Speicherladen
ich verwende kein Zeitprogramm und steuere über meinen Homestatus die Temperaturen und damit auch die Vorlauf und Zirkulationspumpe incl. einer Legionellenbekämpfung 1* die Woche
jetzt werde ich mal versuchen ob ich die Speichertemperatur so hinbekomme, dass nicht Nachts aufgeheizt wird

was ich noch nicht durchschaue ist die ausgeregelte Kesseltemperatur, Soll=48, aber manchmal geht es bis 65 manchmal nur bis 55 hoch?

PS. meine Konfig hole ich über den im Bild ZHK gezeigten link

Gruß Oswald
FHEM Pi3: 1* CUL, 30* Homematic, 10* EnOcean
FHEM Pi3: IR-Lesekopf, BT->SMA
FHEM Pi3: ZHK, 1-wire, 1* VBus   Resol DeltaSol BS

epsrw1

Zitat von: osid-timo am 07 November 2016, 21:45:46
was ich noch nicht durchschaue ist die ausgeregelte Kesseltemperatur, Soll=48, aber manchmal geht es bis 65 manchmal nur bis 55 hoch?
schau Dir mal die beiden attr:

zhkBrennerTaktMinOffSec
zhkBrennerTaktMinOnSec


die sind dazu da den brennerverschleiß gering zu halten indem die anzahl starts begrenzt wird. angabe in sekunden die der brenner mind. an bzw aus sein muss bevor die temperatursteuerung einen zustandswechsel machen darf

bsp.: minOn großer wert = brenner läuft noch etwas weiter auch wenn soll temp bereits erreicht ist und heizt etwas weiter auf
bsp.: minOn großer wert = brenner bleibt aus obwohl temp. bereits gesunken ist
kleine werte bei den beiden sind in der praxis wirkungslos.

mfG florian
Ich habe keine Ahnung, aber davon wenigstens ganz viel

Martin Quinke

Hallo zusammen,

ich bin auf der Suche nach einem Ersatz für zwei ältere Heizungssteuerungen und bin auf dieses Projekt gestoßen. Testweise habe ich auch schon den Respberry mit ein paar 1-Wire Temperatursensoren bestückt und an den Vorlauf und den Brenner der ersten Heizung angeschlossen. Das funktioniert soweit. Jetzt wollte ich an die Steuerung des Brenners und der Pumpen gehen. Leider sind mir ein paar Funktionen und Einstellungen nicht klar. Daher hier meine Fragen:

1. Gibt es eine Vorrangschaltung für Warmwasser? D.h. beim Aufheizen des Kessels für Warmwasser Ausschalten der Pumpe für den Vorlauf? Diese Funktion habe ich nicht gefunden.
2. Wie funktioniert das mit dem Mischer? Heizung A hat einen 3-Wege Mischer an einer Fußbodenheizung. Dieser Mischer hat einen Eingang "Auf" und einen "Zu". Wie steuere ich den an?
3. Heizung B hat einen manuellen Mischer. Was muss ich da einstellen?

Hier meine Test-Konfiguration:

Internals:
   DEF        120
   NAME       LindisHeizung
   NOTIFYDEV  global
   NR         34
   NTFY_ORDER 50-LindisHeizung
   STATE      active
   TYPE       ZHK
   Readings:
     2016-11-06 18:16:39   autocontrol     120
     2016-11-08 20:22:02   looptime        1478632922.66183
     2016-11-06 18:16:39   state           active
     2016-11-08 20:22:02   zhkAussenTempActualVal 3.5
     2016-11-08 20:22:02   zhkAussenTempAlarmTempLimit 16
     2016-11-08 20:22:02   zhkAussenTempAlarmThreshold 1
     2016-11-07 20:47:15   zhkAussenTempDelayCache 0=1478548035.5337
     2016-11-07 20:47:15   zhkAussenTempIsWarmState 0
     2016-11-07 20:30:06   zhkAussenTempTodayMax 46.562
     2016-11-08 00:00:06   zhkAussenTempYesterday 2016-11-7
     2016-11-08 00:00:06   zhkAussenTempYesterdayMax 46.562
     2016-11-08 00:00:06   zhkAussenTempYesterdayMin 0
     2016-11-08 20:22:02   zhkBrennerActualState 0
     2016-11-08 20:22:02   zhkBrennerLaststart 1478632922.56174
     2016-11-08 19:31:50   zhkBrennerLogLastStartDauer 304.192912101746
     2016-11-08 20:22:02   zhkBrennerLogLastStateChange 1478632922.56174
     2016-11-08 20:22:02   zhkBrennerLogLastStopDauer 30.0165870189667
     2016-11-08 20:22:02   zhkKesselActualMischerAnhebung 0
     2016-11-08 20:22:02   zhkKesselActualTemp 39.375
     2016-11-08 20:22:02   zhkKesselActualVLRLAnhebung 0
     2016-11-08 20:22:02   zhkKesselActualVLRLdiff 4.563
     2016-11-08 20:22:02   zhkKesselDesiredTemp 48
     2016-11-08 20:22:02   zhkKesselState  BURN 39.375 �C
     2016-11-08 20:22:02   zhkVorlaufActualTempRL 47.187
     2016-11-08 20:22:02   zhkVorlaufActualTempVL 51.75
     2016-11-08 20:22:02   zhkVorlaufDesiredTemp 30
     2016-11-08 20:22:02   zhkVorlaufMischerPosActualPosition unknown
     2016-11-08 20:22:02   zhkVorlaufState Auto 30 �C
     2016-11-08 20:22:02   zhkVorlaufTimerTempAdjust 0
     2016-11-07 19:59:09   zhkVorlaufTotalOnOffReqTimeOff 1478545299.71553
     2016-11-07 20:47:21   zhkVorlaufTotalOnOffState 1
     2016-11-07 21:35:01   zhkWwAlphaActualVal 36.2068965517241
     2016-11-07 21:54:57   zhkWwBetriebsmodus Manual 40 �C
     2016-11-07 21:55:00   zhkWwBoostStatus off
     2016-11-07 21:35:01   zhkWwIstLastReading 55=1478550898
     2016-11-08 20:22:02   zhkWwIstTempTimestamp 1478550898
     2016-11-08 20:22:02   zhkWwIstTempVal 55
     2016-11-07 21:35:01   zhkWwPriorityOn 0
     2016-11-07 21:34:05   zhkWwPumpLaststart 1478550845.14748
     2016-11-07 21:34:05   zhkWwPumpStopStatus off
     2016-11-07 21:54:57   zhkWwSollTemp   40
Attributes:
   autocontrol 30
   room       Heizung
   zhkAussenTempAlarmDelay 600
   zhkAussenTempAlarmTempLimit 16
   zhkAussenTempAlarmThreshold 1
   zhkAussenTempFhemDev wetter_Niedernberg
   zhkAussenTempFhemDevFallback dummyOnlineWeatherTemp
   zhkAussenTempFhemDevReading temperature
   zhkAussenTempFhemDevReadingFallback state
   zhkAussenTempIgnoreIfFhemDev dummyDisableAussentemp
   zhkAussenTempIsWarmState 0
   zhkAussenTempMaxAge 1200
   zhkBrennerAlwaysTriggerWw 0
   zhkBrennerFhemDev zhkBrennerFhemDev
   zhkBrennerTaktMinOffSec 30
   zhkBrennerTaktMinOnSec 300
   zhkGlobalIncludeAussentemp 1
   zhkGlobalIncludeHolzofen 0
   zhkGlobalIncludeKessel 1
   zhkGlobalIncludeTaktOpt 1
   zhkGlobalIncludeValvePositions 0
   zhkGlobalIncludeVorlauf 1
   zhkGlobalIncludeVorlaufZeischaltplan 1
   zhkGlobalIncludeWarmwasser 1
   zhkGlobalIncludeWwZeischaltplan 1
   zhkGlobalPollInterval 10
   zhkHolzofenAlphaThreshold 0.07
   zhkHolzofenAlphaUpAlarmDiffDeg 3
   zhkHolzofenIgnoreTempIfFhemDev dummyDisableHolzofen
   zhkHolzofenResetLowFhemDev Heizg_Wohnzimmer1
   zhkHolzofenResetLowFhemDevreading desiredTemperature
   zhkHolzofenResetLowTemp 18
   zhkHolzofenTempSensorDefaultOnFailure 20
   zhkHolzofenTempSensorFhemDev 83_WohnZi_9554CD040000
   zhkHolzofenTempSensorMinAge 300
   zhkHolzofenTempSensorReading temperature
   zhkKesselAbsoluteMaxTemp 70
   zhkKesselAbsoluteMinTemp 30
   zhkKesselMinDiffVorlauf 10
   zhkKesselMinDiffWw 8
   zhkKesselMischerErhFaktor 0
   zhkKesselTempFhemDev GPIO4_DS1820_000802dd0035
   zhkKesselTempFhemDevReading temperature
   zhkKesselTempMaxReadingAge 600
   zhkKesselTempSecondFhemDev 0
   zhkKesselTempSecondFhemDevReading temperature
   zhkKesselThreshold 5
   zhkKesselVLRLdiffErhFaktor 0
   zhkTaktOptAbsoluteMaxOffSec 10800
   zhkTaktOptAbsoluteMaxOnSec 1200
   zhkTaktOptAbsoluteMinOffSec 1200
   zhkTaktOptAbsoluteMinOnSec 600
   zhkTaktOptCalcInterval 3600
   zhkVorlaufHkurveAussenMax_TH 15
   zhkVorlaufHkurveAussenMin_TL -20
   zhkVorlaufHkurveVorlaufMax_TH 50
   zhkVorlaufHkurveVorlaufMin_TL 20
   zhkVorlaufIgnoreIfFhemDev dummyDisableVorlauf
   zhkVorlaufMischerFhemDev VorlaufMischer
   zhkVorlaufMischerPosFhemDev MischerPosition
   zhkVorlaufMischerPosFhemDevReading position
   zhkVorlaufPumpOffFhemDev zhkVorlaufPumpOffFhemDev
   zhkVorlaufRLTempFhemDev GPIO4_DS18B20_021600bd97ff
   zhkVorlaufRLTempFhemDevReading temperature
   zhkVorlaufTempTriggerFhemDev VorlaufRegler
   zhkVorlaufTempTriggerFhemDevReading desired
   zhkVorlaufTempTriggerFhemDevSetting desired
   zhkVorlaufTimerScheduleDi 0
   zhkVorlaufTimerScheduleDo 0
   zhkVorlaufTimerScheduleFr 0
   zhkVorlaufTimerScheduleMi 0
   zhkVorlaufTimerScheduleMo 0
   zhkVorlaufTimerScheduleSa 0
   zhkVorlaufTimerScheduleSo 01:00=-3|04:00=2|07:00=-1|17:00=1|22:00=-1|23:00=-2
   zhkVorlaufTotalOnOffMischerDelay 150
   zhkVorlaufVLTempFhemDev GPIO4_DS18B20_04168094b3ff
   zhkVorlaufVLTempFhemDevReading temperature
   zhkWwAlphaDownAlarmDiffDeg 0.8
   zhkWwAlphaThreshold 0.42
   zhkWwAlphaUpAlarmDiffDeg 5
   zhkWwBoostFhemDev zhkWwBoostFhemDev
   zhkWwBoostStartTemp 45
   zhkWwConfortTemp 31
   zhkWwEcoTemp 37
   zhkWwPumpFhemDev zhkWwPumpFhemDev
   zhkWwTaktMinOnSec 60
   zhkWwTempSensorDefaultOnFailure 70
   zhkWwTempSensorFhemDev zhkWwTempSensorFhemDev
   zhkWwTempSensorMaxAge 300
   zhkWwTempSensorReading state
   zhkWwTimerScheduleDi 0
   zhkWwTimerScheduleDo 0
   zhkWwTimerScheduleFr 0
   zhkWwTimerScheduleMi 0
   zhkWwTimerScheduleMo 0
   zhkWwTimerScheduleSa 0
   zhkWwTimerScheduleSo 0


Vielen Dank
Gruß
Martin

epsrw1

Zitat von: Martin-Nbg am 08 November 2016, 21:25:00
1. Gibt es eine Vorrangschaltung für Warmwasser? D.h. beim Aufheizen des Kessels für Warmwasser Ausschalten der Pumpe für den Vorlauf?
eine Vorrangsteuerung gibt es derzeit nicht im Modul

Zitat von: Martin-Nbg am 08 November 2016, 21:25:00
2. Wie funktioniert das mit dem Mischer? Heizung A hat einen 3-Wege Mischer an einer Fußbodenheizung. Dieser Mischer hat einen Eingang "Auf" und einen "Zu". Wie steuere ich den an?
am einfachsten mit dem STELLMOTOR Modul: https://forum.fhem.de/index.php/topic,23933.0.html

Zitat von: Martin-Nbg am 08 November 2016, 21:25:00
3. Heizung B hat einen manuellen Mischer. Was muss ich da einstellen?
Das hängt sehr von Deiner Anlage ab. Um zu vermeiden dass der Brenner zu sehr taktet würde ich mit Mischerstellung zwischen 1/3 und 2/3 etwas experimentieren und die VL-temperatur jeweils anpassen bis das gewünschte Ergebnis anm Heizkreis anliegt.
Besser noch, einfach bei eBay einen günstigen Stellmotor für den Mischer besorgen und wie Heizung A von FHEM steuern lassen ;)

Gruß Florian
Ich habe keine Ahnung, aber davon wenigstens ganz viel

stephan-221

Hallo Florian, Hallo Oswald,

ich muss die Heizungssteuerung bei meiner Mutter austauschen. Da das nicht gerade um die Ecke ist, experimentiere ich zu Hause parallel an meiner Heizung. Ich finde aber auch schon gefallen und plane jetzt dort ebenfalls das Modul einzusetzen. Auch ich will dafür einen separaten Raspberry einsetzen.

Florian, ich habe den Code so erweitert, dass alle debug Ausgaben erst bei verbose 4 mitgeloggt werden. Die "normalen" Meldungen bleiben bei 3.

Sofern Interesse besteht, kann ich den Code gern posten. Ansonsten habe ich keine Änderung gemacht.

Ich habe mir nur noch keine Gedanken gemacht, wie ich von außen die Heizung quasi fernsteuern kann. (Also Familientauglich) ;-)


Viele Grüße
Stephan

epsrw1

Zitat von: stephan-221 am 11 November 2016, 20:02:51
ich muss die Heizungssteuerung bei meiner Mutter austauschen. Da das nicht gerade um die Ecke ist,
Ich empfehle einen cron-job für einen automatischen reboot einzubauen ..... bei mir läuft nach einigen Monaten immer mal wieder die SSD des Pi voll, und ich habe noch nicht herausgefunden warum ...... maschine schmiert dann ab, aber ein simpler reboot hilft

Zitat von: stephan-221 am 11 November 2016, 20:02:51
Florian, ich habe den Code so erweitert, dass alle debug Ausgaben erst bei verbose 4 mitgeloggt werden. Die "normalen" Meldungen bleiben bei 3.
Sofern Interesse besteht, kann ich den Code gern posten. Ansonsten habe ich keine Änderung gemacht.
Ja sehr gerne !!


Zitat von: stephan-221 am 11 November 2016, 20:02:51
Ich habe mir nur noch keine Gedanken gemacht, wie ich von außen die Heizung quasi fernsteuern kann. (Also Familientauglich) ;-)

Stabile Beispiel-Lösung ohne irgendwelche windigen Dyn-IP-Anbieter: https://forum.fhem.de/index.php/topic,25007.msg180628.html#msg180628

LG, Florian
Ich habe keine Ahnung, aber davon wenigstens ganz viel

stephan-221

Hallo Florian,

anliegend meine Fassung. Ich habe die Meldung für BoostStartStop zuletzt auskommentiert, da diese mein Logfile vollmüllt.

Zitat
Stabile Beispiel-Lösung ohne irgendwelche windigen Dyn-IP-Anbieter: https://forum.fhem.de/index.php/topic,25007.msg180628.html#msg180628

Ich meinte eher die lokale Fernsteuerung im Wohnzimmer. "Tag/Nacht/Urlaub/wärmer/kälter"
Zugriff ins Netzwerk habe ich. Das ist zum Glück kein Problem.


Viele Grüße
Stephan


osid-timo

Hallo Stephan,
um mein System stabil zu machen, habe ich an jedem Raspi einen 4GB USB Stick auf dem alle Logfiles landen (fhem log tägliche files, alle anderen Monatsfiles), dann werden alle 1* die Woche Logfiles die älter als x Tage sind gelöscht. Seit ich das mache und keine Schreibzugriffe mehr auf die Raspi SD Card habe sind meine 3 produktiven Raspi sehr stabil. Zusätzlich erzeuge ich 1* die Woche noch ein Image von jedem Raspi auf einem NAS. (Seit ich das Mache und Dank  Murphy nutze ich die Image nur noch um schnell mal einen Clone zu haben)

zur Frage Tag, Nacht, Urlaub: ich nutze die Anwesenheitserkennung und zusätzlich einen "Wecker" für wecken und schlafengehen, der die Gewohnheiten der Bewohner nachbildet.
zur Frage wärmer,kälter: nimm einen Enocean,Homematic,... 2-fach Taster einmal betätigt +1°C .... anderer Taster -1°C....

meine Heizung läuft jetzt seit 1 Woche produktiv und stabil

lediglich an dem Tipp mit zur Veränderung der
attr MyHeizung zhkBrennerTaktMinOffSec 300
attr MyHeizung zhkBrennerTaktMinOnSec 200

hatte ich Probleme, das System kam komplett ausser Tritt und nicht mehr geheizt, da muß ich noch suchen

Gruß Oswald
FHEM Pi3: 1* CUL, 30* Homematic, 10* EnOcean
FHEM Pi3: IR-Lesekopf, BT->SMA
FHEM Pi3: ZHK, 1-wire, 1* VBus   Resol DeltaSol BS

stephan-221

Hallo Oswald,

mein produktiver FHEM läuft mit HDD. Dadurch ist dieser auch sehr stabil. Ein anderer Raspi läuft mit SD Karte, welche aber nur Read Only gemounted wird. Das klappt auch prima, wenn man ein statisches System hat, welches keine Änderungen bedarf. Für FHEM natürlich nicht so praktikabel.

Für die Heizung habe ich aber vielleicht ähnliches vor. Da erwarte ich quasi keine Änderungen, wenn das System mal läuft.

Und was bzw. welchen Wert steuerst du mit der Anwesenheitserkennung im ZHK Modul ? Also wo greifst du dort ein? 
Wärmer kälter ist erstmal kein Thema, da ich noch klassische Ventile nutze. Aber da ist der Zwei Taster Ansatz eine gute Idee.
Dann könnte man alle Thermostate rauf bzw. runterregeln.

Wenn ich die Heizkurve modifizieren will, gibt es dazu einige Attribute. Zumindest vermute ich, dass ich damit
diese verändern kann. Sofern man das überhaupt benötigt.

Viele Grüße
Stephan

osid-timo

Hallo Stephan,
meine Anwesenheitserkennung steuert ua.:

  • die einzelnen Raumtemperaturen und damit geht es über die Valveposition in die Vorlaufberechnung ein
  • benötigte Speichertemperatur

alles weitere kann ich immer nur am Wochenende testen, da sonst der WAF bei kalter Heizung komplett verloren geht

Gruß Oswald
FHEM Pi3: 1* CUL, 30* Homematic, 10* EnOcean
FHEM Pi3: IR-Lesekopf, BT->SMA
FHEM Pi3: ZHK, 1-wire, 1* VBus   Resol DeltaSol BS

Martin Quinke

Hallo Florian,

danke für Deine Erklärungen. Beim mir läuft immer noch der Testbetrieb mit Sensoren, die Aktoren sind noch nicht scharf. Ich beobachte zurzeit, was die alte Steuerung macht und wie die neue reagieren würde. Dabei ist mir aufgefallen, dass die Kesseltemperatur immer um zhkKesselMinDiffWw über der WW-Solltemperatur liegt, auch wenn die WW-Ladepumpe überhaupt nicht an ist. Bei einer WW-Solltemperatur von 50°C liegt die Kesseltemperatur also immer bei 58°C, egal wie die Aussentemperatur ist. Das ist natürlich ziemlich viel und nicht ganz das, was ich mir vorstellen würde. Die alte Steuerung passt nur dann die Kesseltemperatur an das WW an, wenn auch die WW-Ladepumpe läuft. Verstehe ich das irgendwie falsch? Falls nicht, was ist der Hintergrund dafür?

Zitat von: epsrw1 am 10 November 2016, 08:54:15
Besser noch, einfach bei eBay einen günstigen Stellmotor für den Mischer besorgen und wie Heizung A von FHEM steuern lassen ;)
Das werde ich wahrscheinlich machen. Ich habe einen Centra ZRA Mischer.

Danke + Gruß
Martin

epsrw1

Zitat von: Martin-Nbg am 18 November 2016, 13:20:29
Dabei ist mir aufgefallen, dass die Kesseltemperatur immer um zhkKesselMinDiffWw über der WW-Solltemperatur liegt, auch wenn die WW-Ladepumpe überhaupt nicht an ist.
ein sinnvoller Ansatz für eine sinnvolle Erweiterung.....

Bei mir hat sich diese Frage nicht gestellt da die WwSollTemp ziemlich niedrig ist und der Kessel da nur im Notfall eingreift wenn Solar es nicht packt. (ich habe 35° eingestellt, dann geht der brauchwassermischer automatisch auf vollgas und die 35 kommen auch am Wasserhahn an. zu 99% ist die Ww Temp sowieso deutlich höher durch die Sonnenkollektoren.)
dass ZHK warmwasser nachheizt bei Bedarf ist eigentlich nur dem WAF geschuldet.

Welche Logik würde in Deiner Konstellation Sinn machen? Wenn der Kessel komplett kalt ist und erst startet wenn WW benötigt wird ist die Ansprechzeit mE zu lang

Ich habe keine Ahnung, aber davon wenigstens ganz viel

Martin Quinke

Zitat von: epsrw1 am 22 November 2016, 00:51:33
Welche Logik würde in Deiner Konstellation Sinn machen? Wenn der Kessel komplett kalt ist und erst startet wenn WW benötigt wird ist die Ansprechzeit mE zu lang
Also zumindest im Winter ist die Logik der alten Steuerung (Viessmann Unomatik) und - soweit ich das in Erinnerung habe - ähnlich bei den anderen mir bekannten Steuerungen, dass die Kesseltemperatur im Heizbetrieb zunächst nur über die Außentemperatur geregelt wird (bzw. ggf. in Abhängigkeit von der Vorlauftemperatur). Also beispielsweise 40°. Wenn die Temperatur der WW-Speichers unter den Sollwert fällt, wird die Heizkreispumpe abgeschaltet (WW-Vorrangschaltung, ist aber abschaltbar und bei Mischersteuerung wahrscheinlich nicht notwendig) und die Kesseltemperatur erhöht, bis diese um 7K über der Speicher-Isttemperatur liegt. Dann wird die WW-Speicherpumpe eingeschaltet und das WW aufgeheizt. Dazu sind ggf. mehrere Brenner-Zyklen notwendig, wenn die maximale Brennertemperatur zwischendurch erreicht wird (bei mir typischerweise zwei, das ist etwas unschön). Nach Erreichen der Speicher-Solltemperatur schaltet der Brenner ab und die WW-Pumpe läuft so lange nach, bis Temperaturdifferenz zwischen Kessel- und Speicherwasser kleiner als 7K ist oder bis die Kesselwassertemperatur den eingestellten Sollwert (bzw. gemäß Vorlauf / Außentemperatur) erreicht hat. Die Maximale Nachlaufzeit beträgt 12 Minuten.

Das habe ich jetzt mehr oder weniger aus Anleitung der Unomatik zitiert. Erscheint mir aber im Groben recht sinnvoll zu sein. Im Sommer gilt wahrscheinlich die gleiche Logik, d.h. es würde tatsächlich mit kaltem Kessel angefangen. Dazu sehe ich aber keine Alternative.

Typischerweise sollte die Temperatur vom WW-Speicher bei 55° bis 60° liegen (wegen Legionellen).

Danke + Gruß
Martin

osid-timo

Hallo,
zur Legionellenvorbeugung genügt es wenn 1* pro Woche/Monat die Temperatur auf 55-60°C steigt, sonst ist die Temperatur, zur Energieeinsparung,  so niedrig (40°C) wie möglich zu halten und nur zur Brennerlaufzeitoptimierung höher zu gehen.
Gruß Oswald
FHEM Pi3: 1* CUL, 30* Homematic, 10* EnOcean
FHEM Pi3: IR-Lesekopf, BT->SMA
FHEM Pi3: ZHK, 1-wire, 1* VBus   Resol DeltaSol BS

arnoL

@ osid-timo:
ich bin ähnlicher Ansicht.

Bei mir ist 40° eher ein bisschen zu wenig. Das Brauchwasser zirkuliert bei mir nicht.
In einem Reihenhaus dauert das dann im Bad (1.Stock!) schon etwas lange bis warm kommt.
Auch ist die Speichermenge nicht allzu groß. Wenn Einer duscht/badet hat der Nächste schon kalt.

Ich werde in meinem Fall jetzt erst mal hergehn und eine Pi mit FHEM parallel die Aktionen der jetzigen Steuerung
mitschreiben lassen

  • wann schaltet Ladepumpe
  • wann schaltet Heizwasserpumpe
  • wann läuft der Brenner
  • wie ist die Kesseltemperatur
  • wie ist die Außentemperatur (geholt aus dem Internet!!)
  • Vorlauf-/Rücklauftemperatur wird zusätzlich installiert

ich bin (in meinem Fall!) immer noch davon überzeugt, dass die Außentemperatur bei mir nicht
die Kesseltemperatur anhebt/senkt sondern nur die Hysterese für das Wiedereinschalten beeinflusst.

Entsprechende Plots werden da dann genaueren Aufschluss geben.
Ich melde auf jeden Fall den weiteren Verlauf.


Gruß
Arno

Martin Quinke

Hallo zusammen,

ok, das wöchentliche Aufheizen auf 55° bis 60° ist wahrscheinlich die bessere Option, sehe ich ein. Aber auch bei 45° Warmwassertemperatur und einer Mindestdifferenz von sagen wir mal 8° (zhkKesselMinDiffWw) kommt man auf eine minimale Kesseltemperatur von 53°. Was ich bei geringen Aussentemperaturen immern noch als zu hoch empfinde.

Bei mir ist der Stand inzwischen folgender: Ich habe einen Mischermotor an den vormals manuellen Mischer gebaut und steuere diesen jetzt mit den Modulen Stellmotor und PID20 an. Das funktioniert soweit ganz gut. Mit den Regelparametern bin ich jetzt noch etwas experimentieren bei P=1, I=0.6 und D=7 gelandet. Manchmal gib es aber noch ein paar böse Überschwinger. Hat jemand eventuell andere (bessere) Werte gefunden?

Die Brennersteuerung läut jetzt noch im Mischbetrieb mit alter und neuer Steuerung parallel. Die alte habe ich auf den minimalen unteren Wert gestellt (ca. 42°). Die ZHK Steuerung habe ich über einen vorhandenen Schalteingang für einen Uhrenthermostat angeschlossen. Der Brenner geht also an, wenn ein Ein-Signal von einer der beiden Steuerungen kommt. Das Aufheizen vom Warmwasser macht noch die alte Steuerung (aus den oben genannten Gründen).

Die Ausgänge steuere ich über GPIO an. Dabei hatte ich das Problem, dass die folgende Zeile im sub BrennerStartStop
my $zhkBrennerActualState = ReadingsVal($name,$zhkBrennerFhemDev,2);
immer eine 2 zurück gibt. Ich kenne mich jetzt mit Perl nicht so gut aus, aber das Problem scheint mir zu sein, dass trotz EventMap On:0 off:1 entweder "on" oder "off" zurück gelesen wird (und nicht 0 oder 1, wie es vom Programm erwartet wird) und die Syntax etwas anders sein muss. Ich habe das versucht mit folgendem Konstrukt zu lösen:

       
if(ReadingsVal($zhkBrennerFhemDev,"state",2) eq "on"){
                $zhkBrennerActualState = 0;}
else {
                $zhkBrennerActualState = 1;}


Gerne Kommentare dazu, ob das Sinn macht. Scheint auf jeden Fall zu funktionieren. Analog müsste ich das jetzt noch für die anderen Outputs machen.

Ich schalte den Brenner ein mit dem "on" State, nicht mit dem "off" state (wegen dem oben beschriebenen Eingang der alten Steuerung).

Hier noch meine aktuelle "Wunschliste" an das Projekt:

  • Verbeserung der Warmwasser-Steuerung (siehe meine Kommentare)
  • Einstellung der Commands und Logik (Brenner Ein mit "on" bzw. 1) für die GPIO Outputs (wie beim Modul "Stellmotor" da ist das gut gelöst

Danke + viele Grüße
Martin

epsrw1

Zitat von: Martin-Nbg am 28 November 2016, 22:36:14
....... mit den Modulen Stellmotor und PID20 an. Das funktioniert soweit ganz gut. Mit den Regelparametern bin ich jetzt noch etwas experimentieren bei P=1, I=0.6 und D=7 gelandet. Manchmal gib es aber noch ein paar böse Überschwinger. Hat jemand eventuell andere (bessere) Werte gefunden?
bei mir läuft es sauber mit:
P_d:
         Mydblog:
           TIME       1480333311.7497
           VALUE      0
       P_i:
         Mydblog:
           TIME       1480333311.7497
           VALUE      40.578125
       P_p:
         Mydblog:
           TIME       1480333311.7497
           VALUE      3.125


Zitat von: Martin-Nbg am 28 November 2016, 22:36:14
Die Ausgänge steuere ich über GPIO an. Dabei hatte ich das Problem, dass die folgende Zeile im sub BrennerStartStop
my $zhkBrennerActualState = ReadingsVal($name,$zhkBrennerFhemDev,2);
immer eine 2 zurück gibt. Ich kenne mich jetzt mit Perl nicht so gut aus, aber das Problem scheint mir zu sein, dass trotz EventMap On:0 off:1 entweder "on" oder "off" zurück gelesen wird (und nicht 0 oder 1, wie es vom Programm erwartet wird) und die Syntax etwas anders sein muss. Ich habe das versucht mit folgendem Konstrukt zu lösen:

der wert 2 spricht eher dafür dass Dein reading nicht gelesen werden kann. stimmt die device config auch?


Zitat von: Martin-Nbg am 28 November 2016, 22:36:14
Hier noch meine aktuelle "Wunschliste" an das Projekt:

  • Verbeserung der Warmwasser-Steuerung (siehe meine Kommentare)
  • Einstellung der Commands und Logik (Brenner Ein mit "on" bzw. 1) für die GPIO Outputs (wie beim Modul "Stellmotor" da ist das gut gelöst

mit der Wunschliste bin ich einig, macht Sinn. Ich will aber nichts versprechen was sich dann als heiße Luft erweist und daher nciht spekulieren wann ich das mal zusammenbasteln werde.

LG Florian
Ich habe keine Ahnung, aber davon wenigstens ganz viel

Martin Quinke

Zitat von: epsrw1 am 29 November 2016, 22:19:58
der wert 2 spricht eher dafür dass Dein reading nicht gelesen werden kann. stimmt die device config auch?

So sieht die Config vom GPIO aus:

define GPIO_BrennerAus RPI_GPIO 22
attr GPIO_BrennerAus active_low yes
attr GPIO_BrennerAus direction output
attr GPIO_BrennerAus eventMap on:0 off:1
attr GPIO_BrennerAus room Heizung


Hier die Config vom ZHK:

Internals:
   DEF        120
   NAME       LindisHeizung
   NOTIFYDEV  global
   NR         34
   NTFY_ORDER 50-LindisHeizung
   STATE      Kessel: hot 57.812 �C KesselSollT:51 Vorlauf: Auto 41 �C
   TYPE       ZHK
   Readings:
     2016-11-30 18:36:55   autocontrol     120
     2016-12-04 18:40:27   looptime        1480873227.60121
     2016-11-30 18:36:55   state           active
     2016-12-04 18:40:27   zhkAussenTempActualVal 0
     2016-12-04 18:40:27   zhkAussenTempAlarmTempLimit 16
     2016-12-04 18:40:27   zhkAussenTempAlarmThreshold 1
     2016-11-07 20:47:15   zhkAussenTempDelayCache 0=1478548035.5337
     2016-11-30 18:36:55   zhkAussenTempIsWarmState 0
     2016-11-07 20:30:06   zhkAussenTempTodayMax 46.562
     2016-12-04 05:40:34   zhkAussenTempTodayMin -7
     2016-12-04 00:00:02   zhkAussenTempYesterday 2016-12-3
     2016-12-04 00:00:02   zhkAussenTempYesterdayMax 46.562
     2016-12-04 00:00:02   zhkAussenTempYesterdayMin -6
     2016-12-04 18:17:08   zhkBrennerActualState 1
     2016-12-04 18:17:08   zhkBrennerLaststart 1480871828.0497
     2016-12-04 18:17:08   zhkBrennerLogLastStartDauer 304.21969294548
     2016-12-04 18:17:08   zhkBrennerLogLastStateChange 1480871828.0497
     2016-12-04 18:12:03   zhkBrennerLogLastStopDauer 3045.23125886917
     2016-12-04 18:40:27   zhkKesselActualMischerAnhebung 0
     2016-12-04 18:40:27   zhkKesselActualTemp 57.812
     2016-12-04 18:40:27   zhkKesselActualVLRLAnhebung 0
     2016-12-04 18:40:27   zhkKesselActualVLRLdiff 22.875
     2016-12-04 18:40:27   zhkKesselDesiredTemp 51
     2016-12-04 18:40:27   zhkKesselState  hot 57.812 �C
     2016-12-04 18:40:27   zhkVorlaufActualTempRL 21.437
     2016-12-04 18:40:27   zhkVorlaufActualTempVL 44.312
     2016-12-04 17:44:09   zhkVorlaufDesiredTemp 41
     2016-11-28 20:27:05   zhkVorlaufHkurveCalcFaktor 1.4
     2016-12-04 18:40:27   zhkVorlaufMischerPosActualPosition 25
     2016-12-04 17:44:09   zhkVorlaufState Auto 41 �C
     2016-12-04 18:40:27   zhkVorlaufTimerTempAdjust 0
     2016-11-07 19:59:09   zhkVorlaufTotalOnOffReqTimeOff 1478545299.71553
     2016-11-30 18:36:55   zhkVorlaufTotalOnOffState 1
     2016-11-25 17:27:59   zhkWwAlphaActualVal -0.0630000000000024
     2016-11-18 07:53:53   zhkWwBetriebsmodus Manual 50 �C
     2016-11-25 16:34:50   zhkWwBoostStatus off
     2016-11-25 17:29:00   zhkWwIstLastReading 54.812=1480091339
     2016-11-25 17:29:10   zhkWwIstTempTimestamp 1480091339
     2016-11-25 17:29:10   zhkWwIstTempVal 54.812
     2016-11-25 17:29:00   zhkWwPriorityOn 0
     2016-11-25 17:29:00   zhkWwPumpLaststart 1480091340.55513
     2016-11-25 17:29:00   zhkWwPumpStopStatus on
     2016-11-25 16:34:50   zhkWwSollTemp   30
Attributes:
   autocontrol 30
   room       Heizung
   stateFormat Kessel: zhkKesselState KesselSollT:zhkKesselDesiredTemp Vorlauf: zhkVorlaufState
   zhkAussenTempAlarmDelay 600
   zhkAussenTempAlarmTempLimit 16
   zhkAussenTempAlarmThreshold 1
   zhkAussenTempFhemDev YahooWetter
   zhkAussenTempFhemDevFallback dummyOnlineWeatherTemp
   zhkAussenTempFhemDevReading temp_c
   zhkAussenTempFhemDevReadingFallback state
   zhkAussenTempIgnoreIfFhemDev dummyDisableAussentemp
   zhkAussenTempIsWarmState 0
   zhkAussenTempMaxAge 3600
   zhkBrennerAlwaysTriggerWw 0
   zhkBrennerFhemDev GPIO_BrennerAus
   zhkBrennerTaktMinOffSec 480
   zhkBrennerTaktMinOnSec 240
   zhkGlobalIncludeAussentemp 1
   zhkGlobalIncludeHolzofen 0
   zhkGlobalIncludeKessel 1
   zhkGlobalIncludeTaktOpt 1
   zhkGlobalIncludeValvePositions 0
   zhkGlobalIncludeVorlauf 1
   zhkGlobalIncludeVorlaufZeischaltplan 1
   zhkGlobalIncludeWarmwasser 0
   zhkGlobalIncludeWwZeischaltplan 1
   zhkGlobalPollInterval 10
   zhkHolzofenAlphaThreshold 0.07
   zhkHolzofenAlphaUpAlarmDiffDeg 3
   zhkHolzofenIgnoreTempIfFhemDev dummyDisableHolzofen
   zhkHolzofenResetLowFhemDev Heizg_Wohnzimmer1
   zhkHolzofenResetLowFhemDevreading desiredTemperature
   zhkHolzofenResetLowTemp 18
   zhkHolzofenTempSensorDefaultOnFailure 20
   zhkHolzofenTempSensorFhemDev 83_WohnZi_9554CD040000
   zhkHolzofenTempSensorMinAge 300
   zhkHolzofenTempSensorReading temperature
   zhkKesselAbsoluteMaxTemp 75
   zhkKesselAbsoluteMinTemp 42
   zhkKesselMinDiffVorlauf 10
   zhkKesselMinDiffWw 8
   zhkKesselMischerErhFaktor 0
   zhkKesselTempFhemDev GPIO4_DS18B20_05168036f7ff
   zhkKesselTempFhemDevReading temperature
   zhkKesselTempMaxReadingAge 600
   zhkKesselTempSecondFhemDev GPIO4_DS1820_000802dd0035
   zhkKesselTempSecondFhemDevReading temperature
   zhkKesselThreshold 12
   zhkKesselVLRLdiffErhFaktor 0
   zhkTaktOptAbsoluteMaxOffSec 10800
   zhkTaktOptAbsoluteMaxOnSec 1200
   zhkTaktOptAbsoluteMinOffSec 300
   zhkTaktOptAbsoluteMinOnSec 210
   zhkTaktOptCalcInterval 10
   zhkVorlaufHkurveAussenMax_TH 15
   zhkVorlaufHkurveAussenMin_TL -20
   zhkVorlaufHkurveVorlaufMax_TH 55
   zhkVorlaufHkurveVorlaufMin_TL 30
   zhkVorlaufIgnoreIfFhemDev dummyDisableVorlauf
   zhkVorlaufMischerFhemDev HeizungsMischer
   zhkVorlaufMischerPosFhemDev HeizungsMischer
   zhkVorlaufMischerPosFhemDevReading position
   zhkVorlaufPumpOffFhemDev GPIO_VLPumpeAus
   zhkVorlaufRLTempFhemDev GPIO4_DS18B20_0516803658ff
   zhkVorlaufRLTempFhemDevReading temperature
   zhkVorlaufTempTriggerFhemDev VorlaufRegler
   zhkVorlaufTempTriggerFhemDevReading desired
   zhkVorlaufTempTriggerFhemDevSetting desired
   zhkVorlaufTimerScheduleDi 01:00=-5|05:45=0|07:00=-2|17:00=0|22:00=-2|23:00=-5
   zhkVorlaufTimerScheduleDo 01:00=-5|05:45=0|07:00=-2|17:00=0|22:00=-2|23:00=-5
   zhkVorlaufTimerScheduleFr 01:00=-5|05:45=0|07:00=-2|17:00=0|22:00=-2|23:00=-5
   zhkVorlaufTimerScheduleMi 01:00=-5|05:45=0|07:00=-2|17:00=0|22:00=-2|23:00=-5
   zhkVorlaufTimerScheduleMo 04:00=-3|05:45=0|07:00=-2|17:00=0|22:00=-2|23:00=-5
   zhkVorlaufTimerScheduleSa 01:00=-5|07:00=0|10:00=-1|17:00=0|22:00=-2|23:00=-5
   zhkVorlaufTimerScheduleSo 01:00=-5|07:00=0|10:00=-1|17:00=0|22:00=-3|23:00=-8
   zhkVorlaufTotalOnOffMischerDelay 150
   zhkVorlaufVLTempFhemDev GPIO4_DS18B20_04168094b3ff
   zhkVorlaufVLTempFhemDevReading temperature
   zhkWwAlphaDownAlarmDiffDeg 0.8
   zhkWwAlphaThreshold 0.42
   zhkWwAlphaUpAlarmDiffDeg 5
   zhkWwBoostFhemDev zhkWwBoostFhemDev
   zhkWwBoostStartTemp 70
   zhkWwConfortTemp 31
   zhkWwEcoTemp 37
   zhkWwPumpFhemDev GPIO_WWLadePumpeAus
   zhkWwTaktMinOnSec 60
   zhkWwTempSensorDefaultOnFailure 70
   zhkWwTempSensorFhemDev GPIO4_DS18B20_04168077b7ff
   zhkWwTempSensorMaxAge 300
   zhkWwTempSensorReading temperature
   zhkWwTimerScheduleDi 0
   zhkWwTimerScheduleDo 0
   zhkWwTimerScheduleFr 0
   zhkWwTimerScheduleMi 0
   zhkWwTimerScheduleMo 0
   zhkWwTimerScheduleSa 0
   zhkWwTimerScheduleSo 0


Wie gesagt, mit mit meiner Anpassung

if(ReadingsVal($zhkBrennerFhemDev,"state",2) eq "on"){
                $zhkBrennerActualState = 0;}
else {
                $zhkBrennerActualState = 1;}


funktioniert es ja. So bekommen ich immer ein "on" oder "off" zurück und kann das entsprechend auswerten. Oder verstehe ich hier etwas falsch? (Hinweis: Der Ausgang heißt bei mir noch "BrennerAus". Aber tatsächlich schalte ich ihn jetzt mit "on" ein. Den Namen muss ich noch ändern.)

Danke + Gruß
Martin

epsrw1

es sieht für mich so aus als würde eventMap nicht STATE ersetzen sondern nur die anzeige im GUI
da der Wert nicht lesbar ist.
ReadingsVal liest STATE aus und nicht state kleingeschrieben, andernfalls kommt der fallback-wert 2 raus.

Deine og lösung funktioniert natürlich, sauberer wäre es das reading von gpio zu fixen dass es On/Off korrekt wiedergibt. ich würde mal beobachten was gpio beim startup anzeigt und nach dem ersten schaltvorgang, evtl taucht Dein problem auch nur beim startup auf

denkbar wäre auch eine art mapping wie zB im modul STELLMOTOR, das würde allerdings ZHK noch mehr aufblähen....

LG, florian
Ich habe keine Ahnung, aber davon wenigstens ganz viel

Martin Quinke

#69
Zitat von: epsrw1 am 05 Dezember 2016, 08:36:13
ReadingsVal liest STATE aus und nicht state kleingeschrieben, andernfalls kommt der fallback-wert 2 raus.

Ich habe den Eindruck, dass die beiden Zeilen

my $zhkBrennerFhemDev = AttrVal($name, "zhkBrennerFhemDev", "P3_BrennerStop");
my $zhkBrennerActualState = ReadingsVal($name,$zhkBrennerFhemDev,2);

nicht das gewünschte Ergebnis liefern, da der zweite Parameter vom ReadingsVal doch ein Reading sein soll, aber $zhkBrennerFhemDev ein Device ist, aber kein Reading. Müsste hier nicht eher zhkBrennerActualState stehen (also ein Reading vom ZHK)?

LG
Martin

Update 06.12.:

}elsif($ZHKcmd eq "vorlauf"){
#set vorlauf manual
if(AttrVal($name,"zhkGlobalIncludeVorlauf",0) eq "0"){
#set vorlauf desired - return error if disabled=0
Log3($name, 3, "ZHK $name Attr zhkGlobalIncludeVorlauf is not present or set to 0, set vorlauf command is ignored");
return "Attr zhkGlobalIncludeVorlauf is not present or set to 0, set vorlauf command is ignored";
}
if( (lc($args[2]) eq "off") or (lc($args[2]) eq "auto") ){
$args[2] = 0;
}
if((!($args[2]=~/^\d+$/)) or ($args[2] < $zhkVorlaufHkurveVorlaufMin_TL) or ($args[2] > $zhkVorlaufHkurveVorlaufMax_TH)){
#invalid value, return min max temp
return "Error: invalid value, usage: set vorlauf [auto | ".$zhkVorlaufHkurveVorlaufMin_TL."..".$zhkVorlaufHkurveVorlaufMax_TH."]";
}else{
$args[2] = AttrVal($name, "zhkWwConfortTemp", 37);
readingsSingleUpdate($hash, "zhkVorlaufManual", $args[2], 1);
}

Gestern ist mir noch was anderes aufgefallen: Bei "set <name> vorlauf auto" bekomme ich eine Fehlermeldung. Der Grund scheint mir zu sein, dass bei "auto" im obigen code der Parameter 2 auf "0" gesetzt wird und dann im folgenden if ein Fehler ausgegeben wird, wenn der Wert kleiner zhkVorlaufHkurveVorlaufMin_TL ist. Falls man einen anderen Wert eingibt (z.B. 50), wird dieser WErt in der vorletzten Zeile mit zhkWwConfortTemp (!) überschrieben.

arnoL

hat es eigentlich einen besonderen Grund das
NOTIFYDEV  global
ist?
Das fhem-log wird damit doch sehr unübersichtlich.

Gruß
Arno

krueuw

Hallo, ich bin dabei meine Heizung von einer reinen SPS-Steuerung auf FHEM + SPS S5 mit Hilfe des S7-Moduls umzustellen. Bisher funktioniert die Einzelraumregelung der FBH per FHEM-PWM-Modul mittels 1-Wire-Temperatursensoren und per SPS geschalteten Thermoantrieben. Für die Vorlauftemperaturregelung auf einen bisher konstanten Wert benutze ich das FHEM-PID20-Modul, welches den Stellbefehl über die SPS als 0..10 V Signal an ein Siemens MXG461.25-8.0 Mischventil sendet.
define fh PWM
define EG.ku.PWMR PWMR fh 1,0 EG.ku.DS1820.TF EG.ku.M713.TAku

define PID.Test PID20 OG.hr.DS1820.Hz_VL:temperature OG.hr.MW130.Mischventil:
attr PID.Test group FBH-Mischer
attr PID.Test pidActorErrorPos 0
attr PID.Test pidActorInterval 1
attr PID.Test pidCalcInterval 20
attr PID.Test pidReverseAction 1

define OG.hr.MW130.Mischventil S7_AWrite flags 0 130 u16
attr OG.hr.MW130.Mischventil IODev s5test


Nun soll die Vorlauftemperatur in Abhängigkeit von der Außentemperatur  geregelt werden. Dazu würde ich gerne ZHK verwenden. Allerdings verwirrt und erschlägt mich die bisherige Dokumentation ;-) hier und im Wiki. Ich würde an der Überarbeitung des Wikis mitarbeiten, müsste aber erstmal einen Anfang finden :-)  Schön wäre es also, wenn ihr hier (möglichst knappe) Konfigurationsbeispiele mit etwas erklärendem Text eurer funktionierenden Implementierung   bzw. einen Realisierungsvorschlag meines Vorhabens posten könntet.

osid-timo

Hallo,
nachdem ich nun seit Monaten ZHK im Produktivbetrieb nutze und damit sehr zufrieden bin, ist die Heizperiode nun zu Ende.
jetzt kommt die Frage auf: wie kann ich ZHK so konfigurieren, damit nicht mehr geheizt wird?

aktuell wird jeden Tag 1-3* der Brenner gestartet, obwohl die Solaranlage für ausreichen warmes Wasser >45°C und auch der Heizkreis wird damit noch nachgeheizt

Auf einen Tipp freue ich mich

Gruß Osid-timo
FHEM Pi3: 1* CUL, 30* Homematic, 10* EnOcean
FHEM Pi3: IR-Lesekopf, BT->SMA
FHEM Pi3: ZHK, 1-wire, 1* VBus   Resol DeltaSol BS

epsrw1

Zitat von: osid-timo am 22 Mai 2017, 19:26:58
Hallo,
nachdem ich nun seit Monaten ZHK im Produktivbetrieb nutze und damit sehr zufrieden bin, ist die Heizperiode nun zu Ende.
jetzt kommt die Frage auf: wie kann ich ZHK so konfigurieren, damit nicht mehr geheizt wird?
aktuell wird jeden Tag 1-3* der Brenner gestartet, obwohl die Solaranlage für ausreichen warmes Wasser >45°C und auch der Heizkreis wird damit noch nachgeheizt
Auf einen Tipp freue ich mich
Gruß Osid-timo
Hallo :-) ich mache das manuell, d.h. Vorlauf und WwSollTemp beide händisch auf 1°C dann bleibt der Brenner aus. Nachteil, wenn das Wetter kippt muss man auch manuell wieder einschalten.
Eine Sommer-/Winter-Funktion ist eigentlich geplant aber ich kam noch nicht dazu.
Gruß Florian
Ich habe keine Ahnung, aber davon wenigstens ganz viel

osid-timo

Hallo Florian,
danke für den Tipp
WwSollTemp hatte ich schon mit meinem Homestate manipuliert
Vorlauf noch nicht, aber daran arbeite ich. wobei ein set MyHeizung vorlauf 1 anscheinend nur den Wertebereich [20..50] erlaubt?
Gruß Oswald
FHEM Pi3: 1* CUL, 30* Homematic, 10* EnOcean
FHEM Pi3: IR-Lesekopf, BT->SMA
FHEM Pi3: ZHK, 1-wire, 1* VBus   Resol DeltaSol BS

epsrw1

Ich habe keine Ahnung, aber davon wenigstens ganz viel

osid-timo

Hallo,
ein toller Tipp!

Im Winterbetrieb schalte ich mit setreading MyHeizung zhkVorlaufManual 0 den Automatik Mode wieder ein
Im Sommer setreading MyHeizung zhkVorlaufManual 1 aus

welche geheimen Features sind denn noch eingebaut?
Gruß Osid-timo
FHEM Pi3: 1* CUL, 30* Homematic, 10* EnOcean
FHEM Pi3: IR-Lesekopf, BT->SMA
FHEM Pi3: ZHK, 1-wire, 1* VBus   Resol DeltaSol BS

noname41

Hallo zusammen,

ich bin gerade dabei mich in ZHK einzulesen. folgende Frage ist jetzt aufgetaucht. Wie kann ich aktuelle Valveposition in die Vorlaufregelung einbinden?

Vielen Dank

John7

Hallo,

kann mir jemand erklären wie ich z.B. dem Reading "zhkKesselActualTemp" meinen Sensor "ESPEasy_Heizung.Kes:.*" zuweise, oder habe ich etwas überlesen?

Danke!

Gruß
John

epsrw1

Zitat von: John7 am 19 November 2017, 18:31:22
Hallo,

kann mir jemand erklären wie ich z.B. dem Reading "zhkKesselActualTemp" meinen Sensor "ESPEasy_Heizung.Kes:.*" zuweise, oder habe ich etwas überlesen?

Danke!

Gruß
John

attr:

zhkKesselTempFhemDev
zhkKesselTempFhemDevReading
Ich habe keine Ahnung, aber davon wenigstens ganz viel

John7

Hallo Florian,
vielen Dank für die schnelle antwort, leider komme ich immer noch nicht weiter :( In welcher Form muß ich das Gerät eingeben? Habe es probiert wie es gelogt wird (Regexp parts) und auch wie es bei "list" aufgelistet wird, keine reaktion.
Kannst du mir bitte nochmal auf die Sprünge helfen?
Danke!
Sorry, ich bin noch neu in Fhem deswegen solche Fragen :-[

Gruß
John

osid-timo

Hallo John7

ich nutze one-wire Sensoren und binde Sie so ein:
attr MyHeizung zhkKesselTempFhemDev Temp_Kessel5
attr MyHeizung zhkKesselTempFhemDevReading temperature
attr MyHeizung zhkKesselTempSecondFhemDev Temp_Kessel6
attr MyHeizung zhkKesselTempSecondFhemDevReading temperature

Temp_Kessel5: ist der Name des 1-wire device
temperature: ist das Reading

Gruß Osid-timo
FHEM Pi3: 1* CUL, 30* Homematic, 10* EnOcean
FHEM Pi3: IR-Lesekopf, BT->SMA
FHEM Pi3: ZHK, 1-wire, 1* VBus   Resol DeltaSol BS