Hauptmenü

DOIF aktualisiert nicht mehr

Begonnen von hermann1514, 01 Juni 2016, 08:31:53

Vorheriges Thema - Nächstes Thema

hermann1514

Hallo zusammen,

ich habe letzte Woche mal mein FHEM auf einem neuen RPi3 installiert und neu konfiguriert. Dort habe ich dann auch einen DOIF Schalter eingebaut der bis  gestern einwandfrei funktionierte. Heute morgen wurde das Licht dann aber nicht eingeschaltet, weil das Datum des DOIF noch auf dem 30.5 stand.

Ich habe dann heute mal den DOIF neu initialisiert und das Datum steht nun auf morgen.

Gibt es ein Problem mit dem 31. Mai - Oder 1.6 ?

Der DOIF Befehl lautet:

([06:25|12345] and [Schulfrei] eq "off" )
(set structure_lichter_morgens on; set HomeStatus home)


Gruß
Hermann

CoolTux

Welches Datum zeigt denn Dein Pi an?

in der Bash ein date ein geben.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

hermann1514

Dachte ich auch erst, aber das Datum ist in Ordnung.

In FHEM werden die LOG Einträge auch mit dem aktuellen Datum/Uhrzeit geschrieben.


Damian

Zitat von: hermann1514 am 01 Juni 2016, 10:01:15
Dachte ich auch erst, aber das Datum ist in Ordnung.

In FHEM werden die LOG Einträge auch mit dem aktuellen Datum/Uhrzeit geschrieben.

Wenn du den Verdacht hast, dass etwas nicht richtig funktioniert, musst du immer von dem betroffenen DOIF-Modul von diesem Zustand in der Kommandozeile ein list <DOIF-Modul> ausführen und die Ausgabe hier posten. Mit den bisherigen Informationen ist keine Fehleranalyse möglich.

Gruß

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

hermann1514

Danke. OK. Mache ich beim nächsten Auftreten des Fehlers.

Gruß
Hermann

hermann1514

So nun ist es soweit,

DOIF hat heute morgen nicht geschaltet.
Der nächste Schaltpunkt steht nun aber auf morgen.
Im LOG nicht zu sehen.

Hiermal die Ausgabe von list....


Internals:
   DEF        ([06:25|12345] and [Schulfrei] eq "off" )
(set structure_lichter_morgens on; set HomeStatus home)

   NAME       di_clock_morgens
   NR         101
   NTFY_ORDER 50-di_clock_morgens
   STATE      cmd_1
   TYPE       DOIF
   Readings:
     2016-06-02 06:25:01   cmd             1
     2016-06-02 06:25:01   cmd_event       timer_1
     2016-06-02 06:25:01   cmd_nr          1
     2016-06-02 06:25:01   state           cmd_1
     2016-06-03 06:25:01   timer_1_c1      04.06.2016 06:25:00|12345
   Condition:
     0          DOIF_time_once($hash,$hash->{timer}{0},$wday,"12345") and InternalDoIf($hash,'Schulfrei','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "off"
   Days:
     0          12345
   Devices:
     0           Schulfrei
     all         Schulfrei
   Do:
     0:
       0          set structure_lichter_morgens on; set HomeStatus home
   Helper:
     event      timer_1
     globalinit 1
     last_timer 1
     sleeptimer -1
     timerdev
     timerevent timer_1
     timereventsState
     triggerDev
     timerevents:
       timer_1
     triggerEvents:
       timer_1
   Internals:
     0           Schulfrei:STATE
     all         Schulfrei:STATE
   Interval:
   Itimer:
   Localtime:
     0          1465014300
   Readings:
   Realtime:
     0          06:25:00
   Regexp:
     All:
   State:
   Time:
     0          06:25:00
   Timecond:
     0          0
   Timer:
     0          0
   Timers:
     0           0
   Triggertime:
     1465014300:
       localtime  1465014300
       Hash:
Attributes:
   room       Schalter


Gruß
Hermann

Ellert

Zum wiederholten Auslösen durch einen Zeitpunkt ist "do always" erforderlich, s. http://fhem.de/commandref_DE.html#DOIF_do_always

hermann1514

Verstehe ich nicht.

Das DOIF ([06:25|12345] and [Schulfrei] eq "off" ) (set structure_lichter_morgens on; set HomeStatus home) sagt doch nur, das jeden Tag um 6:25 und wenn der Dummy Schulfrei auf OFF ist die Licher angeschaltet werden. Das sollte doch immer so ausgeführt werden - hat es ja auch bis letzer Woche.
Der Status der Struktur structure_lichter_morgens ist ja um diese Zeit auf OFF geschaltet. Also sollt das DOIF ausgeführt werden.

Gruß
Hermann

automatisierer

Wie viele Tage hat es denn bisher Funktioniert, ohne das du etwas daran geändert oder FHEM neu gestartet hast?

Wenn dein DOIF bereits auf cmd1 steht, dann wird der Ausführungsteil beim wiederholten 'wahr' werden der Bedingungen nicht nocheinmal ausgeführt, es sei denn du hast das 'attr ... do always' gesetzt.


Damian

Zitat von: hermann1514 am 03 Juni 2016, 08:58:04
Verstehe ich nicht.

Das DOIF ([06:25|12345] and [Schulfrei] eq "off" ) (set structure_lichter_morgens on; set HomeStatus home) sagt doch nur, das jeden Tag um 6:25 und wenn der Dummy Schulfrei auf OFF ist die Licher angeschaltet werden. Das sollte doch immer so ausgeführt werden - hat es ja auch bis letzer Woche.
Der Status der Struktur structure_lichter_morgens ist ja um diese Zeit auf OFF geschaltet. Also sollt das DOIF ausgeführt werden.

Gruß
Hermann

Zitat aus der Commandref:

Zitat
Das DOIF-Modul arbeitet mit Zuständen. Jeder Ausführungszweig DOIF/DOELSEIF..DOELSEIF/DOELSE stellt einen eigenen Zustand dar (cmd_1, cmd_2, usw.). Das Modul merkt sich den zuletzt ausgeführten Ausführungszweig und wiederholt diesen standardmäßig nicht. Ein Ausführungszweig wird erst dann wieder ausgeführt, wenn zwischenzeitlich ein anderer Ausführungszweig ausgeführt wurde, also ein Zustandswechsel stattgefunden hat. Dieses Verhalten ist sinnvoll, um zu verhindern, dass zyklisch sendende Sensoren (Temperatur, Feuchtigkeit, Helligkeit, usw.) zu ständiger Wiederholung des selben Befehls oder Befehlsabfolge führen.

Gruß

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

hermann1514

Ich meine es hat schon einmal über eine Woche lang funktioniert. Nun, ich werde das attribut mal setzten. Mal sehen ob es dann besser geht.

Danke.
Gruß
Hermann

Damian

Zitat von: hermann1514 am 03 Juni 2016, 09:34:35
Ich meine es hat schon einmal über eine Woche lang funktioniert.

Durch Ändern der Definition wird das Modul neu initialisiert und schaltet dann am nächsten Tag erst mal. ;)

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

hermann1514

Hey,

nachdem ich das Attribut gesetzt habe funktioniert alles wieder tadellos.

Zitat von: Ellert am 03 Juni 2016, 08:30:51
Zum wiederholten Auslösen durch einen Zeitpunkt ist "do always" erforderlich, s. http://fhem.de/commandref_DE.html#DOIF_do_always

Danke.

Gruß
Hermann