FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Thoffi1978 am 03 Juli 2015, 07:52:04

Titel: Rolladen öffnen mal und mal nicht
Beitrag von: Thoffi1978 am 03 Juli 2015, 07:52:04
Hallo,
ich habe hier eine Rollade / Jalousie die sich mal öffnet und mal nicht.
Ich habe schon verucht den Loglevel auf 6 und verbose auf 5 zu stellen.
Ich bekomme aber keine Fehlermeldung, bzw. überhaupt eine Meldung. Wenn die Jalousie sich bewegt wird der Status angezeigt. Bleibt Diese jedoch untenerscheint keine Fehlermeldung.

Wie kann ich dem ganzen eine Fehlermeldung entlocken, oder ist in meinem DOIF was falsch? Doch dann sollte das ja nie auf fahren.
([{sunrise("CIVIL",0,"07:05","07:45")}|8] and [?Jalo_WZ_TV_vorne] ne "SH_Ferientag" and (Value("Jalousie_Automatik") eq "Auto")and [Helligkeit:state] < 200) (set Jalo_WZ_TV_vorne 50)
DOELSEIF
([{sunrise("CIVIL",0,"07:05","07:45")}|8] and [?Jalo_WZ_TV_vorne] ne "SH_Ferientag" and (Value("Jalousie_Automatik") eq "Auto")and [Helligkeit:state] > 200) (set Jalo_WZ_TV_vorne on)


Lieben Gruß
Hoffi
Titel: Antw:Rolladen öffnen mal und mal nicht
Beitrag von: rudolfkoenig am 03 Juli 2015, 09:17:32
Ich wuerde noch die passenden Events anschauen.
Ansonsten tippe ich auf einem Fehler im Ausdruck, das ist mAn komplex genug, dass etwas leicht uebersieht werden kann.
Titel: Antw:Rolladen öffnen mal und mal nicht
Beitrag von: Rince am 03 Juli 2015, 10:00:34
Zitat[?Jalo_WZ_TV_vorne] ne "SH_Ferientag"
Der Status kann SH_Ferientag sein?

Zitatsie_Automatik") eq "Auto")and [Hel
Evtl gehört nach der ) ein Leerzeichen?
Titel: Antw:Rolladen öffnen mal und mal nicht
Beitrag von: Thoffi1978 am 03 Juli 2015, 10:11:51
Hallo,

der Ferientag wird korrekt angezeigt.
Ich habe jetzt mal ein Leerzeichen mit eingefügt und werde beobachten.

Was mich halt wundert, ist, dass es mal geht und mal nicht.

Hoffi
Titel: Antw:Rolladen öffnen mal und mal nicht
Beitrag von: Rince am 03 Juli 2015, 11:26:05
Das meine ich nicht. Habe mich da wohl schlecht ausgedrückt.
Es wundert mich eher, dass eine Jalousie (darauf würde jedenfalls Jalo_WZ_TV_vorne hindeuten) einen Status im Sinne von "SH_Feiertag" bekommt.
Ich persönlich würde da eher was erwarten wie "auf" "zu" "50% auf" oder so in der Art.

Eine Arbeit/Feiertag/Wochenend/Feriensteuerung von Geräten würde imho mehr Sinn machen, wenn man da extra Dummies anlegt und diese dann entsprechende Zeit/Sollwerte haben. Dann muss sich da nicht immer extra drum kümmern.
Titel: Antw:Rolladen öffnen mal und mal nicht
Beitrag von: Thoffi1978 am 08 Juli 2015, 07:41:51
Hallo,
es hat etwas gedauert, doch nun weiß ich wann die Jalousien nicht reagieren.

Wenn das System neu startet, werden Die DOIF´s nicht ausgeführt.
Ein Tag später funktioniert dann alles prima.

Wenn die Uhrzeit die Schaltzeit durchlaufen hat und man ändert die Zeit dann von
([{sunrise("CIVIL",0,"07:05","07:45")}|8]
auf
([{sunrise("CIVIL",0,"07:15","07:45")}|8]
fährt die Jalousie auch glaich hoch.

Es scheint so als ob was nicht richtig getriggert wird.
Die normalen at´s die ich habe funktionieren alle
z.B.:
*06:50 { if ( !($we) && !(Value("SH_Ferientag")) && (Value("Jalousie_Automatik") eq "Auto")) { fhem("set Jalo_WZ_Seite 65") }}

Lieben Gruß
Hoffi
Titel: Antw:Rolladen öffnen mal und mal nicht
Beitrag von: Damian am 08 Juli 2015, 09:44:05
Zitat von: Thoffi1978 am 08 Juli 2015, 07:41:51
Hallo,
es hat etwas gedauert, doch nun weiß ich wann die Jalousien nicht reagieren.

Wenn das System neu startet, werden Die DOIF´s nicht ausgeführt.
Ein Tag später funktioniert dann alles prima.

Wenn die Uhrzeit die Schaltzeit durchlaufen hat und man ändert die Zeit dann von
([{sunrise("CIVIL",0,"07:05","07:45")}|8]
auf
([{sunrise("CIVIL",0,"07:15","07:45")}|8]
fährt die Jalousie auch glaich hoch.

Es scheint so als ob was nicht richtig getriggert wird.
Die normalen at´s die ich habe funktionieren alle
z.B.:
*06:50 { if ( !($we) && !(Value("SH_Ferientag")) && (Value("Jalousie_Automatik") eq "Auto")) { fhem("set Jalo_WZ_Seite 65") }}

Lieben Gruß
Hoffi

Du musst mal list von deinem DOIF-Modul hier posten, dann kann man erst dazu etwas sagen.

Gruß

Damian
Titel: Antw:Rolladen öffnen mal und mal nicht
Beitrag von: Thoffi1978 am 08 Juli 2015, 12:56:36
Hallo, 
Anbei die List:
Internals:
   DEF        ([{sunrise("CIVIL",0,"07:00","07:45")}|8] and [?Jalo_WZ_TV_vorne] ne "SH_Ferientag" and (Value("Jalousie_Automatik") eq "Auto") and [Helligkeit:state] < 200) (set Jalo_WZ_TV_vorne 50)
DOELSEIF
([{sunrise("CIVIL",0,"07:00","07:45")}|8] and [?Jalo_WZ_TV_vorne] ne "SH_Ferientag" and (Value("Jalousie_Automatik") eq "Auto") and [Helligkeit:state] > 200) (set Jalo_WZ_TV_vorne on)
   NAME       vorne_hoch
   NR         193
   NTFY_ORDER 50-vorne_hoch
   STATE      cmd_2
   TYPE       DOIF
   Readings:
     2015-07-08 07:00:00   cmd_event       timer_2
     2015-07-08 07:00:00   cmd_nr          2
     2015-07-08 12:49:10   e_Helligkeit_state 1415.3
     2015-07-08 07:00:00   state           cmd_2
     2015-07-08 07:00:00   timer_1_c1      09.07.2015 07:00:00|8
     2015-07-08 07:00:00   timer_2_c2      09.07.2015 07:00:00|8
   Condition:
     0          DOIF_time_once($hash->{timer}{0},$wday,"8") and InternalDoIf('Jalo_WZ_TV_vorne','STATE','') ne "SH_Ferientag" and (Value("Jalousie_Automatik") eq "Auto") and ReadingValDoIf('Helligkeit','state','') < 200
     1          DOIF_time_once($hash->{timer}{1},$wday,"8") and InternalDoIf('Jalo_WZ_TV_vorne','STATE','') ne "SH_Ferientag" and (Value("Jalousie_Automatik") eq "Auto") and ReadingValDoIf('Helligkeit','state','') > 200
   Days:
     0          8
     1          8
   Devices:
     0           Helligkeit
     1           Helligkeit
     all         Helligkeit
   Do:
     0          set Jalo_WZ_TV_vorne 50
     1          set Jalo_WZ_TV_vorne on
   Helper:
     last_timer 2
     sleeptimer -1
   Internals:
   Itimer:
   Readings:
     0           Helligkeit:state
     1           Helligkeit:state
     all         Helligkeit:state
   Realtime:
     0          07:00:00
     1          07:00:00
   State:
   Time:
     0          {sunrise("CIVIL",0,"07:00","07:45")}
     1          {sunrise("CIVIL",0,"07:00","07:45")}
   Timecond:
     0          0
     1          1
   Timer:
     0          0
     1          0
   Timerfunc:
   Timers:
     0           0
     1           1
   Trigger:
Attributes:
   group      Jalousie_Vorne
   room       Jalousien,Wohnzimmer   


Titel: Antw:Rolladen öffnen mal und mal nicht
Beitrag von: Damian am 08 Juli 2015, 13:30:45
Zitat von: Thoffi1978 am 08 Juli 2015, 12:56:36
Hallo, 
Anbei die List:
Internals:
   DEF        ([{sunrise("CIVIL",0,"07:00","07:45")}|8] and [?Jalo_WZ_TV_vorne] ne "SH_Ferientag" and (Value("Jalousie_Automatik") eq "Auto") and [Helligkeit:state] < 200) (set Jalo_WZ_TV_vorne 50)
DOELSEIF
([{sunrise("CIVIL",0,"07:00","07:45")}|8] and [?Jalo_WZ_TV_vorne] ne "SH_Ferientag" and (Value("Jalousie_Automatik") eq "Auto") and [Helligkeit:state] > 200) (set Jalo_WZ_TV_vorne on)
   NAME       vorne_hoch
   NR         193
   NTFY_ORDER 50-vorne_hoch
   STATE      cmd_2
   TYPE       DOIF
   Readings:
     2015-07-08 07:00:00   cmd_event       timer_2
     2015-07-08 07:00:00   cmd_nr          2
     2015-07-08 12:49:10   e_Helligkeit_state 1415.3
     2015-07-08 07:00:00   state           cmd_2
     2015-07-08 07:00:00   timer_1_c1      09.07.2015 07:00:00|8
     2015-07-08 07:00:00   timer_2_c2      09.07.2015 07:00:00|8
   Condition:
     0          DOIF_time_once($hash->{timer}{0},$wday,"8") and InternalDoIf('Jalo_WZ_TV_vorne','STATE','') ne "SH_Ferientag" and (Value("Jalousie_Automatik") eq "Auto") and ReadingValDoIf('Helligkeit','state','') < 200
     1          DOIF_time_once($hash->{timer}{1},$wday,"8") and InternalDoIf('Jalo_WZ_TV_vorne','STATE','') ne "SH_Ferientag" and (Value("Jalousie_Automatik") eq "Auto") and ReadingValDoIf('Helligkeit','state','') > 200
   Days:
     0          8
     1          8
   Devices:
     0           Helligkeit
     1           Helligkeit
     all         Helligkeit
   Do:
     0          set Jalo_WZ_TV_vorne 50
     1          set Jalo_WZ_TV_vorne on
   Helper:
     last_timer 2
     sleeptimer -1
   Internals:
   Itimer:
   Readings:
     0           Helligkeit:state
     1           Helligkeit:state
     all         Helligkeit:state
   Realtime:
     0          07:00:00
     1          07:00:00
   State:
   Time:
     0          {sunrise("CIVIL",0,"07:00","07:45")}
     1          {sunrise("CIVIL",0,"07:00","07:45")}
   Timecond:
     0          0
     1          1
   Timer:
     0          0
     1          0
   Timerfunc:
   Timers:
     0           0
     1           1
   Trigger:
Attributes:
   group      Jalousie_Vorne
   room       Jalousien,Wohnzimmer   


Da es heute um 07:00 Uhr cmd1 nicht ausgeführt wurde, war eine oder mehrere der Bedingungen nicht wahr:  [?Jalo_WZ_TV_vorne] ne "SH_Ferientag" oder  (Value("Jalousie_Automatik") eq "Auto") oder [Helligkeit:state] < 200

Gruß

Damian
Titel: Antw:Rolladen öffnen mal und mal nicht
Beitrag von: Thoffi1978 am 09 Juli 2015, 07:22:59
Anbei eine List von heute bevor die Jalousie öffnen sollte, was sie dann NICHT tat.
Es kann eigentlich nur von der Helligkeit sein, denn ohne diesen Helligkeitswert und dann ohne den DOIF nur als at funktioniert das.
Internals:
   DEF        ([{sunrise("CIVIL",0,"07:00","07:45")}|8] and [?Jalo_WZ_TV_vorne] ne "SH_Ferientag" and (Value("Jalousie_Automatik") eq "Auto") and [Helligkeit:state] < 200) (set Jalo_WZ_TV_vorne 50)
DOELSEIF
([{sunrise("CIVIL",0,"07:00","07:45")}|8] and [?Jalo_WZ_TV_vorne] ne "SH_Ferientag" and (Value("Jalousie_Automatik") eq "Auto") and [Helligkeit:state] > 200) (set Jalo_WZ_TV_vorne on)
   NAME       vorne_hoch
   NR         193
   NTFY_ORDER 50-vorne_hoch
   STATE      cmd_2
   TYPE       DOIF
   Readings:
     2015-07-08 07:00:00   cmd_event       timer_2
     2015-07-08 07:00:00   cmd_nr          2
     2015-07-09 06:50:31   e_Helligkeit_state 639.5
     2015-07-08 07:00:00   state           cmd_2
     2015-07-08 22:46:28   timer_1_c1      09.07.2015 07:00:00|8
     2015-07-08 22:46:28   timer_2_c2      09.07.2015 07:00:00|8
   Condition:
     0          DOIF_time_once($hash->{timer}{0},$wday,"8") and InternalDoIf('Jalo_WZ_TV_vorne','STATE','') ne "SH_Ferientag" and (Value("Jalousie_Automatik") eq "Auto") and ReadingValDoIf('Helligkeit','state','') < 200
     1          DOIF_time_once($hash->{timer}{1},$wday,"8") and InternalDoIf('Jalo_WZ_TV_vorne','STATE','') ne "SH_Ferientag" and (Value("Jalousie_Automatik") eq "Auto") and ReadingValDoIf('Helligkeit','state','') > 200
   Days:
     0          8
     1          8
   Devices:
     0           Helligkeit
     1           Helligkeit
     all         Helligkeit
   Do:
     0          set Jalo_WZ_TV_vorne 50
     1          set Jalo_WZ_TV_vorne on
   Helper:
     last_timer 2
     sleeptimer -1
   Internals:
   Itimer:
   Readings:
     0           Helligkeit:state
     1           Helligkeit:state
     all         Helligkeit:state
   Realtime:
     0          07:00:00
     1          07:00:00
   State:
   Time:
     0          {sunrise("CIVIL",0,"07:00","07:45")}
     1          {sunrise("CIVIL",0,"07:00","07:45")}
   Timecond:
     0          0
     1          1
   Timer:
     0          0
     1          0
   Timerfunc:
   Timers:
     0           0
     1           1
   Trigger:
Attributes:
   group      Jalousie_Vorne
   room       Jalousien,Wohnzimmer


Ich sehe leider keinen Unterschied zwischen den List.
Woran kann dies "mal öffnen mal nicht" liegen?
Die anderen Jaloisien mit Ferientag und Wochenenend und Aute abfrage funktionieren. Deshalb müßten die states ja alle entsprechend "wahr" sein.
Titel: Antw:Rolladen öffnen mal und mal nicht
Beitrag von: Damian am 09 Juli 2015, 08:14:18
Zitat von: Thoffi1978 am 09 Juli 2015, 07:22:59
Anbei eine List von heute bevor die Jalousie öffnen sollte, was sie dann NICHT tat.
Es kann eigentlich nur von der Helligkeit sein, denn ohne diesen Helligkeitswert und dann ohne den DOIF nur als at funktioniert das.
Internals:
   DEF        ([{sunrise("CIVIL",0,"07:00","07:45")}|8] and [?Jalo_WZ_TV_vorne] ne "SH_Ferientag" and (Value("Jalousie_Automatik") eq "Auto") and [Helligkeit:state] < 200) (set Jalo_WZ_TV_vorne 50)
DOELSEIF
([{sunrise("CIVIL",0,"07:00","07:45")}|8] and [?Jalo_WZ_TV_vorne] ne "SH_Ferientag" and (Value("Jalousie_Automatik") eq "Auto") and [Helligkeit:state] > 200) (set Jalo_WZ_TV_vorne on)
   NAME       vorne_hoch
   NR         193
   NTFY_ORDER 50-vorne_hoch
   STATE      cmd_2
   TYPE       DOIF
   Readings:
     2015-07-08 07:00:00   cmd_event       timer_2
     2015-07-08 07:00:00   cmd_nr          2
     2015-07-09 06:50:31   e_Helligkeit_state 639.5
     2015-07-08 07:00:00   state           cmd_2
     2015-07-08 22:46:28   timer_1_c1      09.07.2015 07:00:00|8
     2015-07-08 22:46:28   timer_2_c2      09.07.2015 07:00:00|8
   Condition:
     0          DOIF_time_once($hash->{timer}{0},$wday,"8") and InternalDoIf('Jalo_WZ_TV_vorne','STATE','') ne "SH_Ferientag" and (Value("Jalousie_Automatik") eq "Auto") and ReadingValDoIf('Helligkeit','state','') < 200
     1          DOIF_time_once($hash->{timer}{1},$wday,"8") and InternalDoIf('Jalo_WZ_TV_vorne','STATE','') ne "SH_Ferientag" and (Value("Jalousie_Automatik") eq "Auto") and ReadingValDoIf('Helligkeit','state','') > 200
   Days:
     0          8
     1          8
   Devices:
     0           Helligkeit
     1           Helligkeit
     all         Helligkeit
   Do:
     0          set Jalo_WZ_TV_vorne 50
     1          set Jalo_WZ_TV_vorne on
   Helper:
     last_timer 2
     sleeptimer -1
   Internals:
   Itimer:
   Readings:
     0           Helligkeit:state
     1           Helligkeit:state
     all         Helligkeit:state
   Realtime:
     0          07:00:00
     1          07:00:00
   State:
   Time:
     0          {sunrise("CIVIL",0,"07:00","07:45")}
     1          {sunrise("CIVIL",0,"07:00","07:45")}
   Timecond:
     0          0
     1          1
   Timer:
     0          0
     1          0
   Timerfunc:
   Timers:
     0           0
     1           1
   Trigger:
Attributes:
   group      Jalousie_Vorne
   room       Jalousien,Wohnzimmer


Ich sehe leider keinen Unterschied zwischen den List.
Woran kann dies "mal öffnen mal nicht" liegen?
Die anderen Jaloisien mit Ferientag und Wochenenend und Aute abfrage funktionieren. Deshalb müßten die states ja alle entsprechend "wahr" sein.
At kennt keine Acht für Arbeitstage.
Du wohnst nicht zufällig in NRW und hast Ferien in deiner holiday-Datei eingetragen? Ansonsten musst du deine Abfrage abspecken und dein Problem einkreisen. Eine Fehlfunktion des Moduls würde ich ausschließen, denn dann müsste der Perlinterpreter kaputt sein, denn dieser ist für die Auswertung der Bedingung zuständig ;)

Gruß

Damian

Titel: Antw:Rolladen öffnen mal und mal nicht
Beitrag von: Thoffi1978 am 09 Juli 2015, 10:45:13
Ich wohne in S-H, da sind noch keine Ferien. Bei Ferien würden die anderen Jalousien sicht nicht bewegen.

Was ich bloß nicht richtig verstehe, warum wird es morgen gehen und nur nach einem Neustart nicht?

Vielen Dank schon mal
Hoffi
Titel: Antw:Rolladen öffnen mal und mal nicht
Beitrag von: Rince am 09 Juli 2015, 13:10:07
ZitatWas ich bloß nicht richtig verstehe, warum wird es morgen gehen und nur nach einem Neustart nicht?


Wenn ich was dummes schreibe, bitte mich korrigieren:

Das DOIF springt erst an, wenn es einmal getriggert worden ist. Es ist nicht sofort nach dem fhem-Start aktiv.

(Ist jedenfalls bei meiner Gesichtserkennung auch so. Muss 1x ein Gesicht erkannt haben, bevor es loslegt; sonst bleibt es inaktiv)
Titel: Antw:Rolladen öffnen mal und mal nicht
Beitrag von: Damian am 09 Juli 2015, 20:21:24
Zitat von: Rince am 09 Juli 2015, 13:10:07

Wenn ich was dummes schreibe, bitte mich korrigieren:

Das DOIF springt erst an, wenn es einmal getriggert worden ist. Es ist nicht sofort nach dem fhem-Start aktiv.

(Ist jedenfalls bei meiner Gesichtserkennung auch so. Muss 1x ein Gesicht erkannt haben, bevor es loslegt; sonst bleibt es inaktiv)

Das ist nicht richtig. Das Modul führt immer etwas aus, wenn ein Event eintritt und der Zustand des Moduls (State) sich ändert (ohne do always). Möchte man, dass nach dem Hochfahren des Systems immer beim ersten Event etwas passiert, so muss man den letzten Zustand des Moduls, der von FHEM beim Shutdown gespeichert wird, mit einem Wert überschreiben, der sonst nicht vorkommt (z. B. initialized). Damit wird auf jeden Fall ein Zustandswechsel provoziert. Das geschieht durch das Setzen des Attributs initialize (siehe Commandref zu DOIF).

Gruß

Damian
Titel: Antw:Rolladen öffnen mal und mal nicht
Beitrag von: Thoffi1978 am 10 Juli 2015, 18:13:57
Hallo,

Vielen Dank für die Antworten hier.
Ich probiere das mal mit dem Attribut initialized.

Vielen Dank
Hoffi