Zurück zu vorheriger option

Begonnen von abc2006, 20 Juni 2016, 18:28:57

Vorheriges Thema - Nächstes Thema

abc2006

Hallo, ich habe ein DOIF, welches mir die Heizung steuern soll. Dies funktioniert über einen Dummy, an (CMD1) oder aus(CMD2).
Wenn die Sonne scheint, erzeugt die Solaranlage viel Energie, die abgeführt werden soll, unabhängig davon, ob winter oder sommer sei (an oder aus).
Dafür ist dann CMD3.
Nachdem die Temperatur die Bedingungswerte unterschritten hat, bleibt das DOIF im CMD3, klar, weil der Dummy nicht erneut getriggert wird.
Eine Möglichkeit, die mir nach ein bisschen Recherche im Forum zugeflogen ist, wäre selftrigger. Damit sollte es den Status des Dummy's neu einlesen.

Für mich sieht diese Lösung etwas "mit der Kirche ums Dorf" aus, eine bessere Idee hab ich aber nicht.
Deswegen wollte ich von euch wissen, ob das die "beste" Lösung ist, oder ob ich einfach was triviales übersehen hab.
Danke!

([D_Heizschleifenbetrieb] eq "an") (
set FS20_Pumpe_HZG_EG on,
set FS20_Pumpe_HZG_main on,
attr N_changeVL disable 0,
attr N_calcVLSoll disable 0,
set PID.FUBO start,
set Firmata_Mischer_6_kalt on-for-timer 150,
set remotebot message "DF_Heizschleifenbetrieb _an_"

)
DOELSEIF
([D_Heizschleifenbetrieb] eq "aus") (
set FS20_Pumpe_HZG_EG off,
set FS20_Pumpe_HZG_main off,
attr N_changeVL disable 1,
attr N_calcVLSoll disable 1,
set PID.FUBO stop,
set Firmata_Mischer_6_kalt on-for-timer 150,
set remotebot message "DF_Heizschleifenbetrieb _aus_"

)
DOELSEIF
([RE_TEMP_Speicher_unten:temperature] > 67 and [RE_TEMP_Speicher_mitte:temperature] > 74)(
set FS20_Pumpe_HZG_EG on,
set FS20_Pumpe_HZG_main on,
attr N_changeVL disable 0,
attr N_calcVLSoll disable 1,
set PID.FUBO start,
set PID.FUBO desired 35,
set remotebot message "DF_Heizschleifenbetrieb _antistagnation_\nTemperatur oben:[RE_TEMP_Speicher_oben]\nTemperatur Mitte:[RE_TEMP_Speicher_mitte]\nTemperatur unten:[RE_TEMP_Speicher_unten]"
)
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

Per

Du musst die Ausschaltbedingung in CMD1 UND CMD2 mit eintragen. Evtl. ist das sogar von Vorteil, weil du dann im Winter und im Sommer mit unterschiedlichen Werten arbeiten kannst.


([D_Heizschleifenbetrieb] eq "an" and ([RE_TEMP_Speicher_unten:temperature] < 60 or [RE_TEMP_Speicher_mitte:temperature] < 70)) (
set FS20_Pumpe_HZG_EG on,
set FS20_Pumpe_HZG_main on,
attr N_changeVL disable 0,
attr N_calcVLSoll disable 0,
set PID.FUBO start,
set Firmata_Mischer_6_kalt on-for-timer 150,
set remotebot message "DF_Heizschleifenbetrieb _an_"

)
DOELSEIF
([D_Heizschleifenbetrieb] eq "aus" and ([RE_TEMP_Speicher_unten:temperature] < 55 or [RE_TEMP_Speicher_mitte:temperature] < 65)) (
set FS20_Pumpe_HZG_EG off,
set FS20_Pumpe_HZG_main off,
attr N_changeVL disable 1,
attr N_calcVLSoll disable 1,
set PID.FUBO stop,
set Firmata_Mischer_6_kalt on-for-timer 150,
set remotebot message "DF_Heizschleifenbetrieb _aus_"

)
DOELSEIF
([RE_TEMP_Speicher_unten:temperature] > 67 and [RE_TEMP_Speicher_mitte:temperature] > 74)(
set FS20_Pumpe_HZG_EG on,
set FS20_Pumpe_HZG_main on,
attr N_changeVL disable 0,
attr N_calcVLSoll disable 1,
set PID.FUBO start,
set PID.FUBO desired 35,
set remotebot message "DF_Heizschleifenbetrieb _antistagnation_\nTemperatur oben:[RE_TEMP_Speicher_oben]\nTemperatur Mitte:[RE_TEMP_Speicher_mitte]\nTemperatur unten:[RE_TEMP_Speicher_unten]"
)

Die Hysterese habe ich jetzt mal freihand eingetragen.
Weglassen kannst du die Speichertemperaturen eh nicht, weil du sonst keinen Trigger hast.

abc2006

Hi,
darüber habe ich auch schon nachgedacht.
Was mache ich aber, wenn mein Heizkessel im Winter Wasser mit einer Temperatur  von mehr als 70 ° einbläst?
Dann geht die Heizung aus.... das darf nicht passieren  :o
Oder wenn an zwei Sonnigen Tagen die Solaranlage Amok läuft? Gerade im Winter will ich das warme Wasser dann ja nicht sinnlos verplempern ...

Es muss also eine unterscheidung geben zwischen Sommerbetrieb und Winterbetrieb...  und danach dürfen erst die Temperaturen beachtet werden.

Heisst das, ich komme um mehrere DOIFS und Dummies nicht drumrum?

Ich habe das zur Zeit ziemlich kompliziert aufgebaut und wollte das gerne deutlich vereinfachen ...
scheint nicht trivial zu sein ;-)

Danke
Stephan





DF1: ([D_Heizschleifenbetrieb] eq "an") (set DF_Winter initialize, set DF_Sommer disable)
DOELSEIF  ([D_Heizschleifenbetrieb] eq "aus") (set DF_Winter disable, set DF_Sommer initialize)


DF_Sommer ([RE_TEMP_Speicher_unten:temperature] > 67 and [RE_TEMP_Speicher_mitte:temperature] > 74)(
set FS20_Pumpe_HZG_EG on,
set FS20_Pumpe_HZG_main on,
attr N_changeVL disable 0,
attr N_calcVLSoll disable 1,
set PID.FUBO start,
set PID.FUBO desired 35,
set remotebot message "DF_Heizschleifenbetrieb _antistagnation_\nTemperatur oben:[RE_TEMP_Speicher_oben]\nTemperatur Mitte:[RE_TEMP_Speicher_mitte]\nTemperatur unten:[RE_TEMP_Speicher_unten]"
) DOELSE
(
set FS20_Pumpe_HZG_EG off,
set FS20_Pumpe_HZG_main off,
attr N_changeVL disable 1,
attr N_calcVLSoll disable 1,
set PID.FUBO stop,
set Firmata_Mischer_6_kalt on-for-timer 150,
set remotebot message "DF_Heizschleifenbetrieb _aus_"

)

DF_Winter ([RE_TEMP_Speicher_unten:temperature] > 67 and [RE_TEMP_Speicher_mitte:temperature] > 74)(
set FS20_Pumpe_HZG_EG on,
set FS20_Pumpe_HZG_main on,
attr N_changeVL disable 0,
attr N_calcVLSoll disable 1,
set PID.FUBO start,
set PID.FUBO desired 35,
set remotebot message "DF_Heizschleifenbetrieb _antistagnation_\nTemperatur oben:[RE_TEMP_Speicher_oben]\nTemperatur Mitte:[RE_TEMP_Speicher_mitte]\nTemperatur unten:[RE_TEMP_Speicher_unten]"
) DOELSE (
set FS20_Pumpe_HZG_EG on,
set FS20_Pumpe_HZG_main on,
attr N_changeVL disable 0,
attr N_calcVLSoll disable 0,
set PID.FUBO start,
set Firmata_Mischer_6_kalt on-for-timer 150,
set remotebot message "DF_Heizschleifenbetrieb _an_"

)
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

Per

Zitat von: abc2006 am 21 Juni 2016, 10:46:50Was mache ich aber, wenn mein Heizkessel im Winter Wasser mit einer Temperatur  von mehr als 70 ° einbläst?
Nun, dass war nicht Bedingung:
Zitat von: abc2006 am 20 Juni 2016, 18:28:57Wenn die Sonne scheint, erzeugt die Solaranlage viel Energie, die abgeführt werden soll, unabhängig davon, ob winter oder sommer sei (an oder aus).
Zwischendurch die Wünsche zu ändern kann weder ich noch FHEM erahnen.

Was du machen kannst: statt statischer Werte kannst du z.B. die Kesseltemperaturen und Außentemperatur addieren und diesen Wert nutzen. Dann müsstest du im Winter schon recht hohe Kesselwerte haben, um von Überschuss auszugehen.

Mehrere DOIF mit den selben Variablen und Commandos durch de-/aktivieren umzuschalten halte ich für wenig zielführend. Änderungen müssen dann immer mehrfach eingepflegt werden.

abc2006

Zitat von: Per am 21 Juni 2016, 15:26:42
Nun, dass war nicht Bedingung:Zwischendurch die Wünsche zu ändern kann weder ich noch FHEM erahnen.

Hi Per,

tut mir leid, da hast du natürlich recht.

Meine Programmierung ist noch nicht fertig, und wenn ich einen Teil habe, der läuft, fallen mir gelegentlich (manchmal auch zu spät, dann muss ich kalt duschen) Nebenbedingungen ein, die besser berücksichtigt werden sollten ...
Dass weder du noch fhem das erraten können, ist mir klar  :-[

btw: ursprünglich war aber die Frage "Wie komme ich zurück zu der vorherigen Option" :-)
Kann und will euch ja auch nicht die komplette Programmierung meiner Anlage überlassen :P

ZitatMehrere DOIF mit den selben Variablen und Commandos durch de-/aktivieren umzuschalten halte ich für wenig zielführend. Änderungen müssen dann immer mehrfach eingepflegt werden.
Änderungen sind das eine Problem, die Übersicht das andere.
Teilweise weiss ich nicht mal mehr, was von was abhängt und wo was geschaltet wird... das war ursprünglich der Hintergrund meiner Frage.


Danke für die Hilfe
Stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

Per

Für das Testen ist es natürlich ok, verschiedene DOIF zu nehmen. Oder auch Bedingungen auszulagern (Dummy), zumal ich dann auch deren Zustand einfacher sehen oder ändern kann.

Später würde ich (!) sie aber zusammenfassen.