Hi, ich verwende folgendes DOIF Statement. Welches er allerdings heute morgen und gestern morgen nicht (d.h. gar nicht) ausgeführt. Hat Es hat aber schon mal funktioniert.
([{sunrise("HORIZON=-0.8",0,"05:00","07:30")}] and (Value("HomeStatus") ne "away")) 
(set Rolladentuer position 0; set Rolladenfenster position 0) 
DOELSE (set Rolladentuer position 100; set Rolladenfenster position 25)
Aus den Readings (siehe Anhang) erkennt man, dass das Kommando zuletzt am 30.01.17 um 7:30 ausgeführt wurde und das er es wohl das nächste mal am 2.1.17 ausführen möchte. 
Wie bekomme ich raus, warum es gestern und heute nicht ausgeführt wurde?
Vielen Dank schon mal für die Hinweise.
Ah ja im fhem.log steht zum fraglichen Zeitpunkt nix drin (weder gestern 31.1. noch heute).
2017.01.31 07:11:44 2: CUL1: unknown message A069F329DBF0C65
2017.01.31 07:12:46 2: CUL1: unknown message A064000EBBF0C65
2017.01.31 07:17:32 2: CUL1: unknown message A067670B0BF0C65
2017.01.31 07:17:33 2: CUL1: unknown message A067670B0BF0C65
2017.01.31 07:25:54 2: CUL1: unknown message A0645C45ABF0C65
2017.01.31 07:25:55 2: CUL1: unknown message A06BF0C6545C45A
2017.01.31 07:31:21 2: CUL1: unknown message A0645C45ABF0C65
2017.01.31 07:35:30 2: CUL1: unknown message A0655B4DCBF0C65
			
			
			
				(Irgend)welche Attribute gesetzt ? z.B. do always ?
Befehlstrennung mit Komma statt Semikolon, aber das ist nicht die Ursache.
Am Besten bitte eine list vom DOIF posten.
list Sonnenaufgang_Rolladen
			
			
			
				Hi Kumue,
hier ist ein List Sonnenaufgang_Rolladen. Keine Attribute gesetzt.
Internals: 
   DEF        ([{sunrise("HORIZON=-0.8",0,"05:00","07:30")}] and (Value("HomeStatus") ne "away")) 
(set Rolladentuer position 0; set Rolladenfenster position 0) 
DOELSE (set Rolladentuer position 100; set Rolladenfenster position 25) 
   NAME       Sonnenaufgang_Rolladen 
   NR         158 
   NTFY_ORDER 50-Sonnenaufgang_Rolladen 
   STATE      cmd_1 
   TYPE       DOIF 
   Readings: 
     2017-01-30 07:30:00   cmd             1 
     2017-01-30 07:30:00   cmd_event       timer_1 
     2017-01-30 07:30:00   cmd_nr          1 
     2017-01-30 07:30:00   state           cmd_1 
     2017-02-01 13:42:29   timer_01_c01    02.02.2017 07:30:00 
   Condition: 
     0          DOIF_time_once($hash,0,$wday) and (Value("HomeStatus") ne "away") 
   Days: 
   Devices: 
   Do: 
     0: 
       0          set Rolladentuer position 0; set Rolladenfenster position 0 
     1: 
       0          set Rolladentuer position 100; set Rolladenfenster position 25 
   Helper: 
     globalinit 1 
     last_timer 1 
     sleeptimer -1 
   Itimer: 
   Localtime: 
     0          1486017000 
   Realtime: 
     0          07:30:00 
   Regexp: 
   State: 
   Time: 
     0          {sunrise("HORIZON=-0.8",0,"05:00","07:30")} 
   Timecond: 
     0          0 
   Timer: 
     0          0 
   Timers: 
     0           0 
   Triggertime: 
     1486017000: 
       localtime  1486017000 
       Hash: 
Attributes:
			
			
				die sunrise Funktion gibt mir 31:07:28 zurück wenn ich {sunrise("HORIZON=-0.8",0,"05:00","07:30")} in der FHEM Befehlszeile eingebe. Erscheint mir etwas "spät" für einen Tag...
			
			
			
				sunrise / sunset geben die absolute Zeit des nächsten Sonnenauf- bzw. -untergangs zurück, wobei 24 Stunden addiert werden, sofern das entsprechende Ereignis am nächsten Tag stattfindet
(Quelle: Wiki (https://wiki.fhem.de/wiki/SUNRISE_EL)) das ist nicht das Problem.
Was ist denn der Wert von HomeStatus?
Grüße,
Oli
			
			
			
				homestatus ist auf "home"
			
			
			
				1. Mir fällt gerade noch auf, dass du die einzelnen set Befehle mit Semikolon getrennt hast, DOIF will da eigentlich ein Komma. 
2. Hast du seit 3 Tagen das Haus nicht verlassen? Dein DOIF steht auf CMD_1 und du hast kein do always gesetzt, d.h. das Dingens muss erstmal in den ELSE-Zweig kommen, bevor es wieder CMD_1 ausführt
Grüße,
Oli
			
			
			
				morgen um 7:30Uhr wird nichts passieren, da das DOIF immer noch auf cmd_1 steht.
Ein Zustandswechsel auf cmd_2 (DOELSE-Zweig) ist bisher noch nicht erfolgt.
			
			
			
				Zitat von: KernSani am 01 Februar 2017, 21:03:16
1. Mir fällt gerade noch auf, dass du die einzelnen set Befehle mit Semikolon getrennt hast, DOIF will da eigentlich ein Komma. 
2. Hast du seit 3 Tagen das Haus nicht verlassen? Dein DOIF steht auf CMD_1 und du hast kein do always gesetzt, d.h. das Dingens muss erstmal in den ELSE-Zweig kommen, bevor es wieder CMD_1 ausführt
Grüße,
Oli
Komma ist zwar beim DOIF Standard, Semikolon funktioniert aber auch. Das Problem ist eben das nicht gesetzte do always - ohne Zustandswechsel keine Wiederholung.
Zudem hat man bei DOIF die vereinfachte Syntax für Statusabfragen: [HomeStatus] ne "away", ohne Fragezeichen würde sie sogar triggern, wenn sich der Status von HomeStatus ändert und in den cmd_2 Zustand führen.
Mein Tipp: einfach noch mal genauer die Commandref zu DOIF durchlesen.