Hauptmenü

DOIF Schaltproblem

Begonnen von Spartacus, 13 Juni 2017, 12:16:18

Vorheriges Thema - Nächstes Thema

Damian

So, ich habe mir das Problem genauer angeschaut. Ergebnis: it´s not a feature it´s a bug ;)

resetwait sollte wie always eine Wiederholung des selben Befehls erlauben - tut es auch, aber nur bei Events, bei Timern nicht.

Dieses Verhalten war offenbar vom Anfang an so - es ist wohl bisher nicht aufgefallen.

Dass es hier "immer" funktionierte, bedeutet nur dass "immer" die anderen Zustände zwischendurch kamen und damit ein Zustandswechsel garantiert war.

Hat es hier eine Bedeutung, dass du resetwait statt always nimmst? Wenn nicht, dann setze do always und es wird funktionieren.

Morgen gibt´s dann trotzdem ein Bugfix ;)

P.S. es ist durchaus ok Zustände ohne Ausführungsteil zu definieren, um verschiedene Zustände zu provozieren, wenn es vom Anwender so gewollt ist.



Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Spartacus

Hallo Damian,
danke für die schnelle Antwort. Prima, das das Problem lokalisiert ist. Ich habe es jetzt auf "do always" stehen und teste es heute Abend.
Komischerweise hat das Konstrukt in der letzten Woche sauber gelaufen. Nur seit Sonntag 2300 klemmt es und das Schließen der Rollade um 2300 verweigert.


Besten dank für Deinen Einsatz,
bis bald,
Christian
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

amenomade

M.A. ist do resetwait nötig, um in der 2. Bedingung das Timer zurückzusetzen falls die gleiche Bedingung wiederholt wird.
ZitatWird das Licht innerhalb dieser 120s wieder eingeschaltet (z.B. über den mech. Schalter, da ich noch keinen Bock habe ins Bett zu gehen) wird das "wait" im DOIF zurückgesetzt und die Rolladen schließen nicht
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Spartacus

Hallo zusammen,
das Thema ist noch nicht erledigt. "Do resetwait" funktioniert nach dem Update nur bedingt.

Bis letzten Donnerstag wurde über die Uhrzeit getriggert, Freitag und Samstag über das Gartenlicht. Soweit funzte alles mit "resetwait"

Am Sonntag hätte wieder über die Uhrzeit getriggert werden müssen, doch es passierte nichts. Am Montag auch nicht. Daher habe ich am  Dienstag das DOIF auf "DO always" umgestellt.Dienstag Abend fuhr der Rolladen korrekt um 23:00 herunter. Am Mittwoch habe ich dann um ca. 22:30 Uhr das Licht manuell ein- und wieder ausgeschaltet. Der Verzögerungstimer startete wie gewünscht, und wurde auch nach dem erneuten Einschalten des Lichtes zurückgesetzt. Nach dem erneuten Ausschalten des Lichtes schlossen die Rolladen 2min zeitverzögert, wie gewünscht.

Auch heute (am Donnerstag) lief alles nach Plan. Um 23:00 (kein Licht) fuhr der Rolladen hinunter.

Fazit:
Mit dem "DO always" funktioniert bislang alles wie es soll. Das "Do resetwait" hat noch eine Macke.

Hier noch mal ein Listing des aktuellen codes:

Internals:
   CFGFN      Config/01-Wohnzimmer.cfg
   DEF        ([23:00] and [?GA.ss.SA.Licht] eq "off" and [?switch.di.02.EG.wz.RO.dum] eq "on")
(set EG.wz.RO.* closes)
DOELSEIF
([GA.ss.SA.Licht] eq "off" and [?help.Tageslicht.dum] eq "dunkel" and [?switch.di.02.EG.wz.RO.dum] eq "on")
(set EG.wz.RO.* closes)
DOELSEIF
([switch.di.02.EG.wz.RO.dum] eq "off")
DOELSE
   NAME       di.01.EG.wz.RO
   NR         141
   NTFY_ORDER 50-di.01.EG.wz.RO
   STATE      on
   TYPE       DOIF
   Readings:
     2017-06-28 22:33:01   Device          GA.ss.SA.Licht
     2017-06-29 23:00:00   cmd             1
     2017-06-29 23:00:00   cmd_event       timer_1
     2017-06-29 23:00:00   cmd_nr          1
     2017-06-28 22:33:01   e_GA.ss.SA.Licht_STATE off
     2017-06-22 10:42:55   e_switch.di.02.EG.wz.RO.dum_STATE on
     2017-06-29 23:00:00   state           on
     2017-06-29 23:00:00   timer_01_c01    30.06.2017 23:00:00
     2017-06-28 22:35:01   wait_timer      no timer
   Condition:
     0          DOIF_time_once($hash,0,$wday) and InternalDoIf($hash,'GA.ss.SA.Licht','STATE') eq "off" and InternalDoIf($hash,'switch.di.02.EG.wz.RO.dum','STATE') eq "on"
     1          InternalDoIf($hash,'GA.ss.SA.Licht','STATE') eq "off" and InternalDoIf($hash,'help.Tageslicht.dum','STATE') eq "dunkel" and InternalDoIf($hash,'switch.di.02.EG.wz.RO.dum','STATE') eq "on"
     2          InternalDoIf($hash,'switch.di.02.EG.wz.RO.dum','STATE') eq "off"
   Days:
   Devices:
     1           GA.ss.SA.Licht
     2           switch.di.02.EG.wz.RO.dum
     all         GA.ss.SA.Licht switch.di.02.EG.wz.RO.dum
   Do:
     0:
       0          set EG.wz.RO.* closes
     1:
       0          set EG.wz.RO.* closes
     2:
       0
     3:
       0
   Helper:
     event      timer_1
     globalinit 1
     last_timer 1
     sleepdevice GA.ss.SA.Licht
     sleepsubtimer -1
     sleeptimer -1
     timerdev
     timerevent timer_1
     triggerDev
     timerevents:
       timer_1
     timereventsState:
       state: off
     triggerEvents:
       timer_1
     triggerEventsState:
       state: off
   Internals:
     0           GA.ss.SA.Licht:STATE switch.di.02.EG.wz.RO.dum:STATE
     1           GA.ss.SA.Licht:STATE help.Tageslicht.dum:STATE switch.di.02.EG.wz.RO.dum:STATE
     2           switch.di.02.EG.wz.RO.dum:STATE
     all         GA.ss.SA.Licht:STATE switch.di.02.EG.wz.RO.dum:STATE help.Tageslicht.dum:STATE
   Interval:
   Itimer:
   Localtime:
     0          1498856400
   Readings:
   Realtime:
     0          23:00:00
   Regexp:
     0:
     1:
     2:
     All:
   State:
     State:
   Time:
     0          23:00:00
   Timecond:
     0          0
   Timer:
     0          0
   Timers:
     0           0  0
   Trigger:
   Triggertime:
     1498856400:
       localtime  1498856400
       Hash:
Attributes:
   alias      autom. Rolladen schließen
   cmdState   on|on|deaktiv|on
   devStateIcon .*on:general_an@lightgreen .*on:general_an@lightgreen .*off:general_aus@red .*deaktiv:general_aus@grey
   disable    0
   do         always
   group      Scripte
   icon       fts_shutter_down
   room       01-Wohnzimmer
   wait       0:120:0:0


Gruß,
Christian
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

Damian

#34
Poste mal deine aktuelle DOIF-Version.

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Spartacus

Hallo,
anbei die Version.
Gruß,
Christian
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R