Hallo zusammen,
dank eurer Hilfe habe ich mir letztes Jahr drei doifs gebaut, die meine Beschattung steuern. Das hat auc geklappt, aber dieses Jahr läuft das ganze nicht mehr - warum? Keine Ahnung!
Ich wäre euch sehr dankbar wenn ihr den Fehler findet, oder auch geren eine Alternative aufzeigt.
Das erste Doif ist eigentlich nur dafür da die Beschattung zu "aktivieren" - das scheint auch der Fall zu sein.
DEF ([Aussentemperatur:temperature] > 25)
NAME di_Beschattung
NR 493
NTFY_ORDER 50-di_Beschattung
STATE on|off
TYPE DOIF
Readings:
2017-05-30 06:33:13 Device Aussentemperatur
2017-05-29 22:37:04 cmd 2
2017-05-29 22:37:04 cmd_event Aussentemperatur
2017-05-29 22:37:04 cmd_nr 2
2017-05-30 06:33:13 e_Aussentemperatur_temperature 20.2
2017-05-29 22:37:04 state on|off
denn gestern um 22:37 war dann die Temperatur wieder unter 25 - oder lese ich das falsch?
dann habe ich noch:
([di_Beschattung] eq "on" and [10:00-16:45] and [FS20.Rollladen.Kueche] eq "on") (set FS20.Rollladen.Kueche off; sleep 20; set FS20.Rollladen.Kueche off)
der Rollladen ist aber gestern nicht runtergefahren :-(
und zu guter letzt noch das dritte doif:
([di_Beschattung] eq "on" and [12:00-20:00] and [FS20.RollladenBad.E] eq "on") (set FS20.RollladenBad.E off; set FS20.RollladenKZ.E off; set FS20.Rollladen.EZ off)
habt ihr eine Idee?
Gruß
H-Man
STATE on|off
ist wohl nicht das, was du haben wolltest. Du hast offenbar statt cmdState on|off das Attribut state gesetzt ;) Das kann letztes Jahr so nicht gewesen sein, wenn es funktioniert hatte.
hmmmm. da muss ich wohl an der falschen Stelle eine Änderung gemacht haben.
Ich hab das jetzt mal rausgenommen und bei cmdState eingetragen. Jetzt muss e nur noch warm werden :-)
Auf jeden Fall schonmal DANKE!
tja.... das war nix.
inzwischen sind es über 26° und es ist einfach nichts passiert
Internals:
DEF ([Aussentemperatur:temperature] > 25)
NAME di_Beschattung
NR 493
NTFY_ORDER 50-di_Beschattung
STATE off
TYPE DOIF
Readings:
2017-05-30 11:06:05 Device Aussentemperatur
2017-05-30 11:15:11 cmd 1
2017-05-30 11:15:11 cmd_event set_cmd_1
2017-05-30 11:15:11 cmd_nr 1
2017-05-30 11:06:05 e_Aussentemperatur_temperature 26.2
2017-05-30 11:17:09 mode enable
2017-05-30 11:15:11 state off
Condition:
0 ReadingValDoIf($hash,'Aussentemperatur','temperature') > 25
Devices:
0 Aussentemperatur
all Aussentemperatur
das state bleibt aber bei off :-(
habe das doif gelöscht und neu angelegt, mit set cmd1 ist es dann auf on gesprungen. Was aber dennoch nicht geklappt hat ist dass meine Rollläden runterlaufen.
Hat noch jemadn eine idee?
Vielen Dank!
@Damian: ich she gerade, dass du mir letztes Jahr auf die Sprünge geholfen hattest und dass der Hinweis mit dem falschen state von dir war ;-)
https://forum.fhem.de/index.php/topic,54923.15.html (https://forum.fhem.de/index.php/topic,54923.15.html)
War wohl so, dass es über meinen dummy 2 Wochen lief und als ich dann auf deinen Tip umgesattelt habe ist es nicht mehr warm geworden.....
Bleibt also jetzt die abzuwarten was passiert, wenn die Temperatur wieder unter 25° geht und dann wieder hoch.
Zwischenstand:
dieses doif hat funktioniert:
([di_Beschattung] eq "on" and [15:00-20:00]) (set FS20.VentilatorSZ.E on)
um 15:00 steht im Log, dass der Ventilator angeschaltet werden soll
das hier nicht:
([di_Beschattung] eq "on" and [17:00-19:45] and [FS20.RollladenWohnzimmer.E] eq "on") (set FS20.RollladenWohnzimmer.E off; sleep 25; set FS20.RollladenWohnzimmer.E off)
um 17:00 steht genau NICHTS im Log :-(
Kann mir das jemand erklären?
Danke und Gruß
H-Man
Poste mal ein Listing.
Aber gerne doch.
Funktioniert:
Internals:
CFGFN
DEF ([di_Beschattung] eq "on" and [15:00-20:00]) (set FS20.VentilatorSZ.E on)
NAME di_Ventilator.SZ
NR 1603
NTFY_ORDER 50-di_Ventilator.SZ
STATE cmd_2
TYPE DOIF
Readings:
2017-05-30 20:33:12 Device di_Beschattung
2017-05-30 20:00:01 cmd 2
2017-05-30 20:00:01 cmd_event timer_2
2017-05-30 20:00:01 cmd_nr 2
2017-05-30 20:33:12 e_di_Beschattung_STATE off
2017-05-30 20:00:01 state cmd_2
2017-05-30 20:00:01 timer_01_c01 31.05.2017 15:00:00
2017-05-30 20:00:01 timer_02_c01 31.05.2017 20:00:00
Condition:
0 InternalDoIf($hash,'di_Beschattung','STATE') eq "on" and DOIF_time($hash,0,1,$wday,$hms)
Days:
Devices:
0 di_Beschattung
all di_Beschattung
Do:
0:
0 set FS20.VentilatorSZ.E on
1:
Helper:
event cmd_nr: 2,cmd: 2,cmd_event: Aussentemperatur,off
globalinit 1
last_timer 2
sleeptimer -1
timerdev di_Beschattung
timerevent cmd_nr: 2,cmd: 2,cmd_event: Aussentemperatur,off
triggerDev di_Beschattung
timerevents:
cmd_nr: 2
cmd: 2
cmd_event: Aussentemperatur
off
timereventsState:
cmd_nr: 2
cmd: 2
cmd_event: Aussentemperatur
state: off
triggerEvents:
cmd_nr: 2
cmd: 2
cmd_event: Aussentemperatur
off
triggerEventsState:
cmd_nr: 2
cmd: 2
cmd_event: Aussentemperatur
state: off
Internals:
0 di_Beschattung:STATE
all di_Beschattung:STATE
Interval:
0 -1
1 0
Itimer:
Localtime:
0 1496235600
1 1496253600
Readings:
Realtime:
0 15:00:00
1 20:00:00
Regexp:
0:
All:
State:
State:
Time:
0 15:00:00
1 20:00:00
Timecond:
0 0
1 0
Timer:
0 0
1 0
Timers:
0 0 1
Trigger:
Triggertime:
1496235600:
localtime 1496235600
Hash:
1496253600:
localtime 1496253600
Hash:
Attributes:
group Klima
room _doif
Funktioniert nicht:
Internals:
DEF ([di_Beschattung] eq "on" and [17:00-19:45]) (set FS20.RollladenWohnzimmer.E off; sleep 25; set FS20.RollladenWohnzimmer.E off)
NAME di_Beschattung.WZ
NR 1041
NTFY_ORDER 50-di_Beschattung.WZ
STATE initialized
TYPE DOIF
Readings:
2017-05-31 06:30:10 cmd 0
2017-05-31 06:30:10 state initialized
2017-05-31 06:30:10 timer_01_c01 31.05.2017 17:00:00
2017-05-31 06:30:10 timer_02_c01 31.05.2017 19:45:00
Condition:
0 InternalDoIf($hash,'di_Beschattung','STATE') eq "on" and DOIF_time($hash,0,1,$wday,$hms)
Days:
Devices:
0 di_Beschattung
all di_Beschattung
Do:
0:
0 set FS20.RollladenWohnzimmer.E off; sleep 25; set FS20.RollladenWohnzimmer.E off
1:
Helper:
globalinit 1
last_timer 2
sleeptimer -1
Internals:
0 di_Beschattung:STATE
all di_Beschattung:STATE
Interval:
0 -1
1 0
Itimer:
Localtime:
0 1496242800
1 1496252700
Realtime:
0 17:00:00
1 19:45:00
Regexp:
All:
State:
State:
Time:
0 17:00:00
1 19:45:00
Timecond:
0 0
1 0
Timer:
0 0
1 0
Timers:
0 0 1
Triggertime:
1496242800:
localtime 1496242800
Hash:
1496252700:
localtime 1496252700
Hash:
Attributes:
group Klima
room _doif
verbose 5
Zitat von: h-man-kl am 31 Mai 2017, 06:21:23
um 17:00 steht genau NICHTS im Log :-(
Naheliegenden Vermutung: Um 15:00 Uhr war es noch >25°, um 17:00 Uhr war es <25°, deshalb hat das eine DOIF getriggert und das andere nicht.
Lässt sich aber aus Deinen lists so nicht ablesen. Du müsstest das list mal in der Situation machen, wo es nicht wie gewünscht funktioniert. Also beispielsweise kurz nach 17:00 Uhr, wenn um 17:00 Uhr das Rolle hätte gefahren werden sollen.
hmmmm... 100% Kann ich das nicht sagen. Meine Wetterstation sagt, dass es 28,3° war, aber die steht zu dem Zeitpunkt in der Sonne. Der Fühler, der für die Beschattung genommen wird ist im Schatten.
Mal abwarten was passiert wenn es wieder warm ist.
Zitat von: h-man-kl am 31 Mai 2017, 08:40:07
Meine Wetterstation sagt, dass es 28,3° war, aber die steht zu dem Zeitpunkt in der Sonne. Der Fühler, der für die Beschattung genommen wird ist im Schatten.
Schau Dir mal DOIFtools an. Damit kannst Du recht einfach ein FileLog definieren, dass Dir alle relevanten Events zu Deinem DOIF aufzeichnet.
Damit kannst Du jede fragliche Situation auch nachträglich rekonstruieren.
dein list past aber nicht zu dem was du vorher gepostet hast:
([di_Beschattung] eq "on" and [17:00-19:45] and [FS20.RollladenWohnzimmer.E] eq "on") (set FS20.RollladenWohnzimmer.E off; sleep 25; set FS20.RollladenWohnzimmer.E off)
Internals:
DEF ([di_Beschattung] eq "on" and [17:00-19:45]) (set FS20.RollladenWohnzimmer.E off; sleep 25; set FS20.RollladenWohnzimmer.E off)
das fehlt eine bedingung. has du die zwischendurch entfernt??
die könnte zumindest die ausführung verhindert haben, nämlich wenn dein FS20.RollladenWohnzimmer.E nicht "on" war.
oh sorry. Die Bedingung, dass der Rollladen on sein muss habe ich heute morgen nach dem ersten Post rausgenommen um zu sehen was passiert. Nicht dass da der Fehler herkommt.
Zitat von: h-man-kl am 31 Mai 2017, 09:10:33
oh sorry. Die Bedingung, dass der Rollladen on sein muss habe ich heute morgen nach dem ersten Post rausgenommen um zu sehen was passiert. Nicht dass da der Fehler herkommt.
ok wollte nur nachfragen ;)
d.h. dein "test" läuft noch?
noch 6,2° und ich weiß mehr.....
Zitat von: h-man-kl am 30 Mai 2017, 06:51:03
Das erste Doif ist eigentlich nur dafür da die Beschattung zu "aktivieren" - das scheint auch der Fall zu sein.
DEF ([Aussentemperatur:temperature] > 25)
Um, ich sehe hier nur einen "Einschalter". Das hat er gemacht (nach der cmdState-Reparatur). Aber wie oder wann soll er denn in den nicht vorhandenen Off-Fall schalten? Wo ist denn das
DOELSE?
26,4° => Rollläden laufen runter!
Jetzt muss ich mal noch testen was passiert wenn ich die zweite bedingung reinnehme.
Auf jeden Fall Danke für die Hilfe!
Gruß
H-Man