Hauptmenü

DOIF schaltet am Montag nicht

Begonnen von cheanrod, 28 Dezember 2015, 10:43:59

Vorheriges Thema - Nächstes Thema

cheanrod

Hallo zusammen,

ich habe ein DOIF definiert, dass meine Beleuchtung an Arbeitstagen um kurz nach Mitternacht und am Wochenende eine Stunde später ausschalten soll.

Internals:
   DEF        ([00:05|8] or [01:05|7]) (set wz_StehlampeEsstisch off,set wz_StehlampeFernseher off,set fl_StehlampeFlur off)
   NAME       LichtAlleAus
   NR         74
   NTFY_ORDER 50-LichtAlleAus
   STATE      cmd_2
   TYPE       DOIF
   Readings:
     2015-12-28 01:05:00   cmd_event       timer_2
     2015-12-28 01:05:00   cmd_nr          2
     2015-12-28 01:05:00   state           cmd_2
     2015-12-28 00:48:40   timer_1_c1      29.12.2015 00:05:00|8
     2015-12-28 01:05:00   timer_2_c1      29.12.2015 01:05:00|7
   Condition:
     0          DOIF_time_once($hash,$hash->{timer}{0},$wday,"8") or DOIF_time_once($hash,$hash->{timer}{1},$wday,"7")
   Days:
     0          8
     1          7
   Devices:
   Do:
     0:
       0          set wz_StehlampeEsstisch off,set wz_StehlampeFernseher off,set fl_StehlampeFlur off
     1:
   Helper:
     globalinit 1
     last_timer 2
     sleeptimer -1
   Internals:
   Itimer:
   Readings:
   Realtime:
     0          00:05:00
     1          01:05:00
   State:
   Time:
     0          00:05:00
     1          01:05:00
   Timecond:
     0          0
     1          0
   Timer:
     0          0
     1          0
   Timerfunc:
   Timers:
     0           0  1
Attributes:
   group      Timer
   room       Wohnzimmer


Es funktioniert auch an allen Tagen außer dem Montag korrekt. Montags triggert offensichtlich weder die erste noch die zweite Bedingung und das Licht bleibt an. Ich habe zunächst vermutet, dass die $we-Variable so kurz nach Mitternacht noch nicht auf den korrekten Wert aktualisiert ist. Daher habe ich den Schalttermin auch schon auf 00:05 Uhr verschoben. Interessant ist, dass der Samstag korrekt später geschaltet wird, obwohl dort ja auch ein Wechsel der Variable stattfindet.

Ich denke nicht, dass ich hier noch einen Denkfehler habe, da die Definition ja mehr oder weniger direkt aus der Commandref übernommen ist. Gibt es hier also noch einen Fehler im Modul?

Gruß
cheanrod

Damian

Zitat von: cheanrod am 28 Dezember 2015, 10:43:59
Hallo zusammen,

ich habe ein DOIF definiert, dass meine Beleuchtung an Arbeitstagen um kurz nach Mitternacht und am Wochenende eine Stunde später ausschalten soll.

Internals:
   DEF        ([00:05|8] or [01:05|7]) (set wz_StehlampeEsstisch off,set wz_StehlampeFernseher off,set fl_StehlampeFlur off)
   NAME       LichtAlleAus
   NR         74
   NTFY_ORDER 50-LichtAlleAus
   STATE      cmd_2
   TYPE       DOIF
   Readings:
     2015-12-28 01:05:00   cmd_event       timer_2
     2015-12-28 01:05:00   cmd_nr          2
     2015-12-28 01:05:00   state           cmd_2
     2015-12-28 00:48:40   timer_1_c1      29.12.2015 00:05:00|8
     2015-12-28 01:05:00   timer_2_c1      29.12.2015 01:05:00|7
   Condition:
     0          DOIF_time_once($hash,$hash->{timer}{0},$wday,"8") or DOIF_time_once($hash,$hash->{timer}{1},$wday,"7")
   Days:
     0          8
     1          7
   Devices:
   Do:
     0:
       0          set wz_StehlampeEsstisch off,set wz_StehlampeFernseher off,set fl_StehlampeFlur off
     1:
   Helper:
     globalinit 1
     last_timer 2
     sleeptimer -1
   Internals:
   Itimer:
   Readings:
   Realtime:
     0          00:05:00
     1          01:05:00
   State:
   Time:
     0          00:05:00
     1          01:05:00
   Timecond:
     0          0
     1          0
   Timer:
     0          0
     1          0
   Timerfunc:
   Timers:
     0           0  1
Attributes:
   group      Timer
   room       Wohnzimmer


Es funktioniert auch an allen Tagen außer dem Montag korrekt. Montags triggert offensichtlich weder die erste noch die zweite Bedingung und das Licht bleibt an. Ich habe zunächst vermutet, dass die $we-Variable so kurz nach Mitternacht noch nicht auf den korrekten Wert aktualisiert ist. Daher habe ich den Schalttermin auch schon auf 00:05 Uhr verschoben. Interessant ist, dass der Samstag korrekt später geschaltet wird, obwohl dort ja auch ein Wechsel der Variable stattfindet.

Ich denke nicht, dass ich hier noch einen Denkfehler habe, da die Definition ja mehr oder weniger direkt aus der Commandref übernommen ist. Gibt es hier also noch einen Fehler im Modul?

Gruß
cheanrod

aktuelles DOIF-Modul?

Gruß

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

cheanrod

Hallo Damian,

Zitataktuelles DOIF-Modul?

Ich denke, da ich immer recht zeitnah alle Updates mache.

Meine Version ist folgende:

$Id: 98_DOIF.pm 10071 2015-12-02 12:37:35Z damian-s $

Gruß
cheanrod

Damian

Zitat von: cheanrod am 28 Dezember 2015, 13:23:07
Hallo Damian,

Ich denke, da ich immer recht zeitnah alle Updates mache.

Meine Version ist folgende:

$Id: 98_DOIF.pm 10071 2015-12-02 12:37:35Z damian-s $

Gruß
cheanrod

Du musst do always setzen, damit es immer funktioniert.

Gruß

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

cheanrod

Hallo Damian,

Danke für den Hinweis. Ich denke, ich habe nun verstanden, warum das "do always" notwendig ist.

Ich werde es am nächsten Montag prüfen und dann Rückmeldung geben.

Gruß
Sven

cheanrod

Hallo,

es hat geklappt. Danke für die schnelle Hilfe!

Gruß
cheanrod