[gelöst] Plötzlich schließt die Jalousie ?

Begonnen von Thoffi1978, 17 Februar 2016, 15:11:56

Vorheriges Thema - Nächstes Thema

Ellert

Ich sehe am DOIF keinen Fehler.
Um festzustellen, ob das DOIF der Verursacher ist, könntest Du die Befehlszweige mitloggen:

(set Jalo_WZ_Seite 50, set zweite_Stunde 0,({Log 1, "DOIF Zweig 1}))
(set Jalo_WZ_Seite 50, set zweite_Stunde 0,({Log 1, "DOIF Zweig 2}))
(set Jalo_WZ_Seite off,({Log 1, "DOIF Zweig 3}))

Thoffi1978

Hallo.
Nun mit Ausug aus dem LOG.
Die Jalousie geht immer auf 50%, sobald eine Zeit vom DOIF durchlaufen wird.
6:50Uhr:
2016.02.26 06:50:00 5: CUL_HM Jalo_WZ_Seite protEvent:CMDs_pending pending:1
2016.02.26 06:50:00 3: CUL_HM set Jalo_WZ_Seite 50
2016.02.26 06:50:00 5: CUL_HM Jalo_WZ_Seite protEvent:CMDs_processing... pending:0
2016.02.26 06:50:00 1: DOIF Zweig 1
2016.02.26 06:50:00 5: CUL_HM Jalo_WZ_Seite protEvent:CMDs_done
2016.02.26 06:50:13 5: CUL_HM Jalo_WZ_Seite protEvent:CMDs_done
2016.02.26 06:50:13 5: CUL_HM Jalo_WZ_Seite sent ACK:2

7:35Uhr:
2016.02.26 07:35:00 5: CUL_HM Jalo_WZ_Seite protEvent:CMDs_pending pending:1
2016.02.26 07:35:00 3: CUL_HM set Jalo_WZ_Seite 50
2016.02.26 07:35:00 5: CUL_HM Jalo_WZ_Seite protEvent:CMDs_processing... pending:0
2016.02.26 07:35:00 1: DOIF Zweig 1
2016.02.26 07:35:00 5: CUL_HM Jalo_WZ_Seite protEvent:CMDs_done

15:00Uhr
2016.02.26 15:00:00 5: CUL_HM Jalo_WZ_Seite protEvent:CMDs_pending pending:1
2016.02.26 15:00:00 3: CUL_HM set Jalo_WZ_Seite 50
2016.02.26 15:00:00 5: CUL_HM Jalo_WZ_Seite protEvent:CMDs_processing... pending:0
2016.02.26 15:00:00 1: DOIF Zweig 1
2016.02.26 15:00:00 5: CUL_HM Jalo_WZ_Seite protEvent:CMDs_done
2016.02.26 15:00:13 5: CUL_HM Jalo_WZ_Seite protEvent:CMDs_done
2016.02.26 15:00:13 5: CUL_HM Jalo_WZ_Seite sent ACK:2


Ich hoffe, dass wir mit dem Auszug des Log´s, den Fehler eingrenzen können.

Hoffi

Ellert

#17
Mir gehen die Ideen aus, es ist kurios, dass immer nur der Zweig 1 schaltet, egal zu welcher Uhrzeit. Ich kann es mir nicht erklären.

Wenn ich merkwürdiges Verhalten feststelle und nicht weiter weiss, dann hilft manchmal:

update
warten bis das update vollständig durchgeführt wurde
shutdown restart oder shutdown und sudo reboot über die Konsole


wenn das nicht hilft

DOIF vom DEF-Editor in einen Texteditor kopieren.
DOIF löschen
Save config
ggf. shutdown restart
DOIF im DEF-Editor mit anderem Namen neu anlegen, mit dem vorher gespeicherten Text

Viel Erfolg.

Thoffi1978

Hallo Ellert,

ein Update von FHEM und des Raspi´s habe ich schon durchgeführt.
Führte leider zu keiner Änderung.

Ich lösche jetzt einmal den DOIF wie beschrieben,

Ich werde bereichten.


Vielen Dank und ein schönes WE.
Hoffi

Damian

#19
Das hängt mit dem Setzen von zweite_Stunde im Ausführungsteil und der neuen Version zusammen.

Durch das Setzen von zweite_Stunde wird während der Ausführung die Zeit des ausgelösten Timers verändert. Dadurch findet das Modul intern nicht die ursprüngliche Zeit des Timers, der getriggert hatte - das entsprechende Flag für den dazugehörigen Timer wird nicht zurück gesetzt.

Das kann ich an:

  Timer:
     0          1
     1          1
     2          0
     3          0

erkennen. Hier müssen nach der Ausführung aller Timer auf Null gesetzt sein, das ist bei dir nicht der Fall.

Ich habe das Problem mit der Version im Anhang korrigiert. Bitte testen.

Gruß

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

Thoffi1978

Hallo Damian,
ich benutze so ein ähnlichen Code auch bei der Jalousie im Bad.
Dort habe ich das Problem nicht.

Anbei die List des DOIF di_Bad:
Internals:
   DEF        ([([06:45] + [zweite_Stunde]*60)|12345] and [SH_Ferientag] eq "0" and [Jalousie_Automatik] eq "Auto" and [Helligkeit:state] < 200) (set Jalo_Bad 50)
DOELSEIF
([([06:45] + [zweite_Stunde]*60)|12345] and [SH_Ferientag] eq "0" and [Jalousie_Automatik] eq "Auto" and [Helligkeit:state] > 200) (set Jalo_Bad on)
DOELSEIF
([([07:30] + [zweite_Stunde]*60)|4] and [SH_Ferientag] eq "0" and [Jalousie_Automatik] eq "Auto" and [Helligkeit:state] > 200) (set Jalo_Bad 50)
DOELSEIF
([([07:30] + [zweite_Stunde]*60)|4] and [SH_Ferientag] eq "0" and [Jalousie_Automatik] eq "Auto" and [Helligkeit:state] < 200) (set Jalo_Bad on)
DOELSEIF
([15:00-22:00] and [Helligkeit:state] < 0.5) (set Jalo_Bad off)
DOELSE
()
   NAME       di_Bad
   NR         203
   NTFY_ORDER 50-di_Bad
   STATE      cmd_6
   TYPE       DOIF
   Readings:
     2016-02-27 16:01:47   Device          Helligkeit
     2016-02-26 22:00:00   cmd_event       timer_6
     2016-02-26 22:00:00   cmd_nr          6
     2016-02-27 16:01:47   e_Helligkeit_state 625.0
     2016-02-24 08:41:31   e_Jalousie_Automatik_STATE Auto
     2016-02-27 03:45:00   e_SH_Ferientag_STATE 0
     2016-02-26 22:00:00   state           cmd_6
     2016-02-27 06:45:00   timer_1_c1      28.02.2016 06:45:00|12345
     2016-02-27 06:45:00   timer_2_c2      28.02.2016 06:45:00|12345
     2016-02-27 07:30:00   timer_3_c3      28.02.2016 07:30:00|4
     2016-02-27 07:30:00   timer_4_c4      28.02.2016 07:30:00|4
     2016-02-26 22:00:00   timer_5_c5      27.02.2016 15:00:00
     2016-02-26 22:00:00   timer_6_c5      27.02.2016 22:00:00
   Condition:
     0          DOIF_time_once($hash,$hash->{timer}{0},$wday,"12345") and InternalDoIf($hash,'SH_Ferientag','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "0" and InternalDoIf($hash,'Jalousie_Automatik','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "Auto" and ReadingValDoIf($hash,'Helligkeit','state','','',AttrVal($hash->{NAME},'notexist',undef)) < 200
     1          DOIF_time_once($hash,$hash->{timer}{1},$wday,"12345") and InternalDoIf($hash,'SH_Ferientag','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "0" and InternalDoIf($hash,'Jalousie_Automatik','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "Auto" and ReadingValDoIf($hash,'Helligkeit','state','','',AttrVal($hash->{NAME},'notexist',undef)) > 200
     2          DOIF_time_once($hash,$hash->{timer}{2},$wday,"4") and InternalDoIf($hash,'SH_Ferientag','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "0" and InternalDoIf($hash,'Jalousie_Automatik','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "Auto" and ReadingValDoIf($hash,'Helligkeit','state','','',AttrVal($hash->{NAME},'notexist',undef)) > 200
     3          DOIF_time_once($hash,$hash->{timer}{3},$wday,"4") and InternalDoIf($hash,'SH_Ferientag','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "0" and InternalDoIf($hash,'Jalousie_Automatik','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "Auto" and ReadingValDoIf($hash,'Helligkeit','state','','',AttrVal($hash->{NAME},'notexist',undef)) < 200
     4          DOIF_time($hash,$hash->{realtime}{4},$hash->{realtime}{5},$wday,$hms,"") and ReadingValDoIf($hash,'Helligkeit','state','','',AttrVal($hash->{NAME},'notexist',undef)) < 0.5
   Days:
     0          12345
     1          12345
     2          4
     3          4
   Devices:
     0           SH_Ferientag Jalousie_Automatik Helligkeit
     1           SH_Ferientag Jalousie_Automatik Helligkeit
     2           SH_Ferientag Jalousie_Automatik Helligkeit
     3           SH_Ferientag Jalousie_Automatik Helligkeit
     4           Helligkeit
     all         SH_Ferientag Jalousie_Automatik Helligkeit
   Do:
     0:
       0          set Jalo_Bad 50
     1:
       0          set Jalo_Bad on
     2:
       0          set Jalo_Bad 50
     3:
       0          set Jalo_Bad on
     4:
       0          set Jalo_Bad off
     5:
       0
   Helper:
     event      625.0
     globalinit 1
     last_timer 6
     sleeptimer -1
     timerdev   Helligkeit
     timerevent 625.0
     triggerDev Helligkeit
     timerevents:
       625.0
     triggerEvents:
       625.0
   Internals:
     0           SH_Ferientag:STATE Jalousie_Automatik:STATE
     1           SH_Ferientag:STATE Jalousie_Automatik:STATE
     2           SH_Ferientag:STATE Jalousie_Automatik:STATE
     3           SH_Ferientag:STATE Jalousie_Automatik:STATE
     all         SH_Ferientag:STATE Jalousie_Automatik:STATE
   Interval:
     4          -1
     5          4
   Itimer:
     all         zweite_Stunde
   Localtime:
     0          1456638300
     1          1456638300
     2          1456641000
     3          1456641000
     4          1456581600
     5          1456606800
   Readings:
     0           Helligkeit:state
     1           Helligkeit:state
     2           Helligkeit:state
     3           Helligkeit:state
     4           Helligkeit:state
     all         Helligkeit:state
   Realtime:
     0          06:45:00
     1          06:45:00
     2          07:30:00
     3          07:30:00
     4          15:00:00
     5          22:00:00
   Regexp:
     0:
     1:
     2:
     3:
     4:
     All:
   State:
   Time:
     0          ([06:45]+[zweite_Stunde]*60)
     1          ([06:45]+[zweite_Stunde]*60)
     2          ([07:30]+[zweite_Stunde]*60)
     3          ([07:30]+[zweite_Stunde]*60)
     4          15:00:00
     5          22:00:00
   Timecond:
     0          0
     1          1
     2          2
     3          3
     4          4
     5          4
   Timer:
     0          0
     1          0
     2          0
     3          0
     4          0
     5          0
   Timers:
     0           0
     1           1
     2           2
     3           3
     4           4  5
   Trigger:
   Triggertime:
     1456606800:
       localtime  1456606800
       Hash:
     1456638300:
       localtime  1456638300
       Hash:
     1456641000:
       localtime  1456641000
       Hash:
Attributes:
   group      Jalousien_seite
   room       Bad,Jalousien

Die Datei werde ich ausprobieren und berichten.

Vielen Dank

Damian

Zitat von: Thoffi1978 am 27 Februar 2016, 16:05:25
Hallo Damian,
ich benutze so ein ähnlichen Code auch bei der Jalousie im Bad.
Dort habe ich das Problem nicht.

Ist auch ein anderer Fall, denn im Ausführungsteil wird zweite_Stunde in diesem Fall nicht gesetzt :)

Ich habe das Problem eindeutig identifizieren können.

Gruß

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

Damian

Aktuelle Version wurde eingecheckt und ist per Update verfügbar.

Gruß

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

Thoffi1978

Funktioniert wieder alles wie gewohnt.

Danke für die Unterstützung

Hoffi