FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: yokoyoko am 13 Januar 2016, 02:02:39

Titel: state-Änderung zeitlich erfassen
Beitrag von: yokoyoko am 13 Januar 2016, 02:02:39
Nach längerer Zeit als stiller Mitleser, nun mein erster Beitrag hier im Forum...
Ich beschäftige mich aktiv seit ca. 2Wochen mit Fhem und habe es schonmal geschafft meine Viessmann Gastherme über VCONTROL einzubinden.
Das ganze läuft über Fhem2Fhem welches die Readings als Dummy in meinem "Haupt"Fhem darstellt. Ich habe allerdings ein Problem, bei welchem ich etwas auf dem Schlauch stehe und via CommandRef und Wiki nicht weiterkomme.

Ich würde gerne den state des Brenners (on, off) zeitlich auswerten und wenn der Brenner innerhalb von 300sec zweimal den state auf on wechselt die Therme für einen Zeitraum von ca. 30-60min in den Warmwasser Modus setzen und erst danach wieder auf Heizen+Warmwasser.

Hintergrund ist, dass wir aufgrund von etlichen Maßnahmen (Dämmung, Türen, Fenster...) nun eine leicht überdimensionierte Heizung haben, welche nicht weit genug heruntermoduliert und so zahlreiche Brennerstarts an den Tag legt.

Habe es mit DOIF probiert bekomme es aber nicht hin... Ich scheitere an der Auswertung der zeitlichen Abfolge der state-Änderung. 
Dachte erst an sowas:
define Heizung_Optimierung DOIF ([Brenner_Therme:state:sec] < 300)(set VDens WW)
Funktioniert aber nicht.

Gruß Mirco
Titel: Antw:state-Änderung zeitlich erfassen
Beitrag von: Amenophis86 am 13 Januar 2016, 03:23:58
Schaltet der Brenner immer wieder auf off zwischen drin?

Zum einen kannst du dir mal das wait attribut bei Doif anschauen, zum anderen kannst du die Uhrzeit in einem Dummy speichern und so vergleichen.
Titel: Antw:state-Änderung zeitlich erfassen
Beitrag von: Ellert am 13 Januar 2016, 10:21:13
ZitatIch würde gerne den state des Brenners (on, off) zeitlich auswerten und wenn der Brenner innerhalb von 300sec zweimal den state auf on wechselt die Therme für einen Zeitraum von ca. 30-60min in den Warmwasser Modus setzen und erst danach wieder auf Heizen+Warmwasser.
Versuche es mal so:
define Heizung_Optimierung DOIF ([Brenner_Therme] eq "on") (set VDens WW) (set VDens HWW)



attr Heizung_Optimierung waitsame 300
attr Heizung_Optimierung wait 0,3600
attr Heizung_Optimierung do always


waitsame lässt das DOIF 300 Sekunden auf das ein weiteres Zutreffen der Bedingung warten
wait 0,3600 lässt (set VDens WW) sofort ausführen und (set VDens HWW) 3600 Sekunden später
do always erlaubt das wiederholte Ausführen

Ich kenne VCONTROL nicht, "HWW" ist eine Annahme von mir, das müsstest Du anpassen.
Titel: Antw:state-Änderung zeitlich erfassen
Beitrag von: yokoyoko am 14 Januar 2016, 00:27:37
Vielen Dank Ellert! Deine Lösung "auf dem Silbertablett" funktioniert genau wie erhofft bzw. gesucht habe. Auch spitze mit der Erklärung dazu.