Hallo Gemeinde,
ich habe da ein Problem welches ich schon ca. 2 Stunden lang googel.
Und zwar funktionieren meine DOIF´s für die Regelung von meinem Heizkessel nur sporadisch.
Mal schaltet er den Brenner nicht ein und ein anderes mal vergisst er die Brauchwasserpumpe zu steuern.
Wenn ich es manuell anstoße, also in der Timer Zeit den Brenner anschalte läuft alles einwandfrei aber das ist ja fern des Begriffs "Automation"
Hier meine fhem.cfg:
define Brauchwasser DOIF ([GPIO4_DS1820_000802e71903:temperature] > 55 and [Schalter_Brauchwasser] eq "on")(set Relais_Badheizung on)DOELSE (set Relais_Badheizung off)
attr Brauchwasser devStateIcon cmd_2:FS20.off cmd_1:FS20.on
attr Brauchwasser room DELETE
define Brenner_Brauchwasser DOIF ([GPIO4_DS1820_000802e71903:temperature] > 70)(set Test2 off)\
DOELSEIF ([GPIO4_DS1820_000802e71903:temperature] < 60)(set Test2 on)
attr Brenner_Brauchwasser devStateIcon disabled:taster_ch_aus_rot cmd_1:FS20.off cmd_2:FS20.on
attr Brenner_Brauchwasser room DELETE
define Schalter_Brauchwasser dummy
attr Schalter_Brauchwasser room Ölheizung
attr Schalter_Brauchwasser webCmd on:off
define Brauchwasser_uhr DOIF ([Schalter_Brauchwasser:state] eq "on" and [Warmwasser:temperature] < 60)(set Brenner_Brauchwasser enable)DOELSE (set Test2 off)
attr Brauchwasser_uhr room DELETE
define Abschalten DOIF ([Schalter_Brauchwasser:state] eq "off")(set Brenner_Brauchwasser disable)DOELSE (set Brenner_Brauchwasser enable)
attr Abschalten room DELETE
define Brauchwasser_abschalten DOIF ([Warmwasser:temperature] > 60)(set Schalter_Brauchwasser off)
attr Brauchwasser_abschalten room DELETE
define Brauchwasser_Steuerung DOIF ([Schalter_Brauchwasser:state] eq "on" and [Warmwasser:temperature] < 60)(set BW_Brenner_Steuerung enable)DOELSE(set BW_Brenner_Steuerung disable)\
DOELSEIF\
([GPIO4_DS1820_000802e71903:temperature] > 55 and [Schalter_Brauchwasser] eq "on")(set Relais_Badheizung on)DOELSE(set Relais_Badheizung off)\
DOELSEIF\
([Warmwasser:temperature] > 60)(set Schalter_Brauchwasser off)
attr Brauchwasser_Steuerung room Ölheizung
define Zeitschaltuhr_BWasser DOIF (([21:35-22:00]) and [Warmwasser:temperature] < 60)(set Brauchwasser_Steuerung enable, set Schalter_Brauchwasser on)DOELSE(set Brauchwasser_Steuerung disable, set Schalter_Brauchwasser off)
attr Zeitschaltuhr_BWasser room Ölheizung
define BW_Brenner_Steuerung DOIF ([GPIO4_DS1820_000802e71903:temperature] < 60)(set Test2 on)DOELSE(set Test2 off)
attr BW_Brenner_Steuerung room Ölheizung
- GPIO4_DS1820_000802e71903 ist der Kessel
- Relais_Badheizung ist die Brauchwasser Ladepumpe
Vielleicht entdeckt ihr ja einen Fehler den ich übersehen habe. Im Logfile steht nichts drin außer das FHEM gestartet ist.
Vielen Dank für eure Hilfe.
Gruß Micha
Am besten postet Du mal ein List des DOIF vom Fehlerfall.
Daran sieht man deutlich mehr als an den defines...
Gesendet von meinem Doogee S60 mit Tapatalk
Hallo,
hier die Ausgabe von List für die Brenner Steuerung.
Internals:
DEF ([Schalter_Brauchwasser] eq "on" and [GPIO4_DS1820_000802e71903:temperature] < 70)(set Test2 on)DOELSE(set Test2 off)
NAME BW_Brenner_Steuerung
NR 52
NTFY_ORDER 50-BW_Brenner_Steuerung
STATE disabled
TYPE DOIF
Readings:
2018-09-14 22:51:53 Device GPIO4_DS1820_000802e71903
2018-09-14 22:47:50 cmd 2
2018-09-14 22:47:50 cmd_event GPIO4_DS1820_000802e71903
2018-09-14 22:47:50 cmd_nr 2
2018-09-14 22:51:53 e_GPIO4_DS1820_000802e71903_temperature 73.25
2018-09-15 21:00:00 mode enable
2018-09-15 21:00:00 state disabled
Condition:
0 InternalDoIf($hash,'Schalter_Brauchwasser','STATE') eq "on" and ReadingValDoIf($hash,'GPIO4_DS1820_000802e71903','temperature') < 70
Devices:
0 Schalter_Brauchwasser GPIO4_DS1820_000802e71903
all Schalter_Brauchwasser GPIO4_DS1820_000802e71903
Do:
0:
0 set Test2 on
1:
0 set Test2 off
Helper:
event T: 73.25,temperature: 73.25
globalinit 1
last_timer 0
sleeptimer -1
timerdev GPIO4_DS1820_000802e71903
timerevent T: 73.25,temperature: 73.25
triggerDev GPIO4_DS1820_000802e71903
timerevents:
T: 73.25
temperature: 73.25
timereventsState:
state: T: 73.25
temperature: 73.25
triggerEvents:
T: 73.25
temperature: 73.25
triggerEventsState:
state: T: 73.25
temperature: 73.25
Internals:
0 Schalter_Brauchwasser:STATE
all Schalter_Brauchwasser:STATE
Itimer:
Readings:
0 GPIO4_DS1820_000802e71903:temperature
all GPIO4_DS1820_000802e71903:temperature
Regexp:
0:
All:
State:
Trigger:
Attributes:
room Ölheizung
Hier die Ausgabe von List für die Brauchwasser Steuerung
Internals:
DEF ([Schalter_Brauchwasser:state] eq "on" and [Warmwasser:temperature] < 60)(set BW_Brenner_Steuerung enable)DOELSE(set BW_Brenner_Steuerung disable)
DOELSEIF
([GPIO4_DS1820_000802e71903:temperature] > 55 and [Schalter_Brauchwasser] eq "on")(set Relais_Badheizung on)DOELSE(set Relais_Badheizung off)
DOELSEIF
([Warmwasser:temperature] > 60)(set Schalter_Brauchwasser off)
NAME Brauchwasser_Steuerung
NR 50
NTFY_ORDER 50-Brauchwasser_Steuerung
STATE cmd_1
TYPE DOIF
Readings:
2018-09-15 21:02:02 Device Warmwasser
2018-09-15 21:00:00 cmd 1
2018-09-15 21:00:00 cmd_event Schalter_Brauchwasser
2018-09-15 21:00:00 cmd_nr 1
2018-09-15 21:00:00 e_Schalter_Brauchwasser_state on
2018-09-15 21:02:02 e_Warmwasser_temperature 55.125
2018-09-15 21:00:00 mode enable
2018-09-15 21:00:00 state cmd_1
Condition:
0 ReadingValDoIf($hash,'Schalter_Brauchwasser','state') eq "on" and ReadingValDoIf($hash,'Warmwasser','temperature') < 60
Devices:
0 Schalter_Brauchwasser Warmwasser
all Schalter_Brauchwasser Warmwasser
Do:
0:
0 set BW_Brenner_Steuerung enable
1:
0 set BW_Brenner_Steuerung disable
Helper:
event T: 55.125,temperature: 55.125
globalinit 1
last_timer 0
sleeptimer -1
timerdev Warmwasser
timerevent T: 55.125,temperature: 55.125
triggerDev Warmwasser
timerevents:
T: 55.125
temperature: 55.125
timereventsState:
state: T: 55.125
temperature: 55.125
triggerEvents:
T: 55.125
temperature: 55.125
triggerEventsState:
state: T: 55.125
temperature: 55.125
Internals:
Itimer:
Readings:
0 Schalter_Brauchwasser:state Warmwasser:temperature
all Schalter_Brauchwasser:state Warmwasser:temperature
Regexp:
0:
All:
State:
Trigger:
Attributes:
disable 0
room Ölheizung
Hier die Ausgabe von List für "Zeitschaltuhr"
Internals:
DEF (([21:00-22:00]) and [Warmwasser:temperature] < 60)(set Brauchwasser_Steuerung enable, set Schalter_Brauchwasser on, set BW_Brenner_Steuerung enable)DOELSE(set Brauchwasser_Steuerung disable, set Schalter_Brauchwasser off, set BW_Brenner_Steuerung disable, set Relais_Badheizung off)
NAME Zeitschaltuhr_BWasser
NR 51
NTFY_ORDER 50-Zeitschaltuhr_BWasser
STATE cmd_1
TYPE DOIF
Readings:
2018-09-15 21:03:03 Device Warmwasser
2018-09-15 21:00:00 cmd 1
2018-09-15 21:00:00 cmd_event Warmwasser
2018-09-15 21:00:00 cmd_nr 1
2018-09-15 21:03:03 e_Warmwasser_temperature 55.062
2018-09-15 21:00:00 state cmd_1
2018-09-14 22:59:20 timer_01_c01 15.09.2018 21:00:00
2018-09-14 22:59:20 timer_02_c01 15.09.2018 22:00:00
Condition:
0 (DOIF_time($hash,0,1,$wday,$hms)) and ReadingValDoIf($hash,'Warmwasser','temperature') < 60
Days:
Devices:
0 Warmwasser
all Warmwasser
Do:
0:
0 set Brauchwasser_Steuerung enable, set Schalter_Brauchwasser on, set BW_Brenner_Steuerung enable
1:
0 set Brauchwasser_Steuerung disable, set Schalter_Brauchwasser off, set BW_Brenner_Steuerung disable, set Relais_Badheizung off
Helper:
event T: 55.062,temperature: 55.062
globalinit 1
last_timer 2
sleeptimer -1
timerdev Warmwasser
timerevent T: 55.062,temperature: 55.062
triggerDev Warmwasser
timerevents:
T: 55.062
temperature: 55.062
timereventsState:
state: T: 55.062
temperature: 55.062
triggerEvents:
T: 55.062
temperature: 55.062
triggerEventsState:
state: T: 55.062
temperature: 55.062
Internals:
Interval:
0 -1
1 0
Itimer:
Localtime:
0 1537038000
1 1537041600
Readings:
0 Warmwasser:temperature
all Warmwasser:temperature
Realtime:
0 21:00:00
1 22:00:00
Regexp:
0:
All:
State:
Time:
0 21:00:00
1 22:00:00
Timecond:
0 0
1 0
Timer:
0 0
1 0
Timers:
0 0 1
Trigger:
Triggertime:
1537041600:
localtime 1537041600
Hash:
Attributes:
room Ölheizung
Heute hat das DOIF "Brauchwasser_Steuerung" die Brauchwasserpumpe nicht eingeschalten bei einer Kesseltemperatur von 55 °C,es bleibt auf cmd_1 stehen :-(
Vielen Dank für eure Hilfe.
Gruß Micha
Brauchwasser Steuerung: DOIF... DOELSE... DOELSEIF... DOELSE... DOELSEIF kann nicht gehen.
Guten Morgen,
also benötige ich noch ein DOIF so zu sagen.....
Gruß Micha
-EDIT-
Habe jetzt ein weiteres DOIF "BW_Pumpe" erstellt mit folgendem Befehl
([Schalter_Brauchwasser] eq "on" and [GPIO4_DS1820_000802e71903:temperature] > 55 and [Schalter_Brauchwasser] eq "on")(set Relais_Badheizung on)DOELSE(set Relais_Badheizung off)
Jetzt läuft es einwandfrei auf dem ersten Blick. Vielen Dank
Jetzt habe ich aber noch eine Frage. Kann man das ganze irgendwie "Schlanker" gestalten?
Grüße