DOIF neue Features (Sleep-Alternative)

Begonnen von Damian, 12 Juli 2015, 21:17:52

Vorheriges Thema - Nächstes Thema

RoBra81


moonsorrox

Zitat von: RoBra81 am 07 August 2015, 14:14:40
3,,4,0,4:,4,1

ist das gleiche wie

3,0,4,0,4:0,4,1

OK, dass verstehe ich aber für mich fehlt hier, dass Komma
Zitatattr di wait 0,1:2,3

also so:
attr di wait 0,1:,2,3
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

RoBra81

Zitat von: moonsorrox am 07 August 2015, 14:19:38
also so:
attr di wait 0,1:,2,3

Das wäre das gleiche wie

attr di wait 0,1:0,2,3

Du hast also 3 Aktionen von denen die erste nicht verzögert wird.

Bei

attr di wait 0,1:2,3

hast du zwei Aktionen bei denen die erste um 2 Sekunden verzögert wird...

Damian

#93
Zitat von: RoBra81 am 07 August 2015, 14:22:17
Das wäre das gleiche wie

attr di wait 0,1:0,2,3

Du hast also 3 Aktionen von denen die erste nicht verzögert wird.

Bei

attr di wait 0,1:2,3

hast du zwei Aktionen bei denen die erste um 2 Sekunden verzögert wird...

Man kann sagen, wenn irgendetwas zwischen Doppelpunkten, Kommas oder beiden fehlt, ist es immer eine Null (also keine Verzögerung).

z. B. wait ::::3 ist einfach nur kürzer als 0:0:0:3

Was so etwas wie:  ,4,,,5::,,,3 bedeutet, dürfte inzwischen der aufmerksame Leser selbst herausfinden. Wem die abkürzende Schreibweise nicht gefällt, der kann gerne immer Nullen verwenden.

Nullen am Ende können dagegen inklusive Trennzeichen immer weggelassen werden:

3:2:0:0 ist das gleich wie 3:2

oder

3,2,0:2,0,0:0 ist das Gleiche wie 3,2:2

Gruß

Damian

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

Damian

#94
Version 0.8 mit aktualisierter Doku zu den neuen Features im ersten Post.

Ich bin mit der Generalisierung des Moduls, wegen anderer Projekte, nicht weiter gekommen.

Auch das Belegen des neuen Readings "Event" gefällt mir noch nicht. Es werden dort nämlich alle Event-Angaben des Triggers abgelegt. Das kann je nach Device sehr viel sein. Das bläht die Detailsanzeige des Moduls unnötig auf. Auch das Auswerten des Event-Readings mit allen Angaben würde Perl-Kenntnisse erfordern und das widerspricht dem Konzept des Moduls - ohne Perl-Programmierung bei typischen Aufgaben auszukommen. Ich habe das Belegen des Event-Readings zunächst auskommentiert. Ich werde mir da noch etwas einfallen lassen müssen.

Leider ruft jetzt erstmal die richtige Arbeit - also erst einmal Entwicklungspause.

Die 0.8 Version werde ich in den nächsten Tagen einchecken. Es kann nicht schaden einen Zwischenzustand einzuchecken, bevor man 
das Modul noch mehr auf den Kopf stellt.

Gruß

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

mfeske

Hallo Damian,

danke dafür das es weiter geht. Ich muss aber wohl irgendwas falsch machen :-(
Ich habe FHEM angehalten, 98_DOIF.pm runtergeladen und installiert. Folgendes DOIF funktioniert dann nicht mehr:
([Poolpumpe_Schalter] eq "on") (set Poolpumpe on) DOELSEIF ([9:00 -17:00] and [+:15] and ([Poolpumpe_Schalter] eq "intervall")) (set Poolpumpe on-for-timer 120, define Poolpumpe_Schalter_off at +00:02:00 set Poolpumpe off, attr Poolpumpe_Schalter_off room Garten, attr Poolpumpe_Schalter_off icon hourglass) DOELSEIF (([Poolpumpe_Schalter] eq "countdown")) (set Poolpumpe on-for-timer 300, define Poolpumpe_Schalter_off at +00:05:00 set Poolpumpe_Schalter off, attr Poolpumpe_Schalter_off room Garten, attr Poolpumpe_Schalter_off icon hourglass) DOELSEIF ([Poolpumpe_Schalter] eq "off") (set Poolpumpe off)

Wenn ich die alte Version wieder installiere funktioniert es wieder.

Bei dem anderen DOIF habe ich wohl was kaputt gespielt, es funktioniert in beiden Versionen nicht mehr:

([taster_rolladen_down:?on]) (set gong_MP3 playTone 008, set Rolladen01 on, sleep 6; set Rolladen01 on, set Rolladen02 on, sleep 5; set Rolladen02 on)

Gruß
Micha
Hardware:
1 x Raspberry Pi Mod. B 512 MB
eq-3 2 x MAX! eTRV Heizungssteller, 1 x MAX! Fensterkontakt, 1 x MAX! Cube - LAN Gateway (ausser Betrieb)
Intertechno 1x ITZ-500, 3x ITT-1500, 9x ITR-1500, 3 x ITDL-1000, 2 x ITL-500
1 x CC1101-USB-Lite 433MHz (CUL433)  V3 1 x CC1101-USB-Lite 868MHz (CUL868)

Damian

Zitat von: mfeske am 10 August 2015, 19:30:36
Hallo Damian,

danke dafür das es weiter geht. Ich muss aber wohl irgendwas falsch machen :-(
Ich habe FHEM angehalten, 98_DOIF.pm runtergeladen und installiert. Folgendes DOIF funktioniert dann nicht mehr:
([Poolpumpe_Schalter] eq "on") (set Poolpumpe on) DOELSEIF ([9:00 -17:00] and [+:15] and ([Poolpumpe_Schalter] eq "intervall")) (set Poolpumpe on-for-timer 120, define Poolpumpe_Schalter_off at +00:02:00 set Poolpumpe off, attr Poolpumpe_Schalter_off room Garten, attr Poolpumpe_Schalter_off icon hourglass) DOELSEIF (([Poolpumpe_Schalter] eq "countdown")) (set Poolpumpe on-for-timer 300, define Poolpumpe_Schalter_off at +00:05:00 set Poolpumpe_Schalter off, attr Poolpumpe_Schalter_off room Garten, attr Poolpumpe_Schalter_off icon hourglass) DOELSEIF ([Poolpumpe_Schalter] eq "off") (set Poolpumpe off)

Wenn ich die alte Version wieder installiere funktioniert es wieder.

Bei dem anderen DOIF habe ich wohl was kaputt gespielt, es funktioniert in beiden Versionen nicht mehr:

([taster_rolladen_down:?on]) (set gong_MP3 playTone 008, set Rolladen01 on, sleep 6; set Rolladen01 on, set Rolladen02 on, sleep 5; set Rolladen02 on)

Gruß
Micha

Was geht nicht? Du musst deine Aussage konkretisieren und am besten ein Fehlverhalten mit einem list deines Moduls belegen, sonst kann ich mit der Aussage "geht nicht" nichts anfangen.

Gruß

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

antonwinden

Danke für die neuen Features - spart mir viel Arbeit :-)
habs installiert und schon getestet mit meiner bewässerungssteuerung.
danke anton
KNX, Raspberry, Denon 3313, Philips TV, Xtrend9X00 und viel Optimismus...

Damian

Version 0.9

Negative Zeitangaben in der Zeitberechnung sind jetzt möglich, solange man nicht in der Vergangenheit landet ;)

siehe http://forum.fhem.de/index.php/topic,39911.msg321604.html#msg321604

Gruß

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

Ellert

Bei der Verwendung der 98_DOIF.pm von gestern wurde die folgende bereits bestehende zweizeilige Definition nicht ausgeführt:
define VolTV_di DOIF ([osmc] eq "opened")({system "irsend SEND_ONCE receiver d-tv/cbl_alternative"},{system "irsend -#12 SEND_ONCE receiver KEY_VOLUMEUP"},set UE40D7090 connect)\
DOELSEIF ([osmc] eq "disconnected") (set UE40D7090 connect,{system "irsend -#12 SEND_ONCE receiver KEY_VOLUMEDOWN"})


Mit der gleichen einzeilig geschriebenen Definition gibt es keine Fehlermeldung und das DOIF wird korrekt ausgeführt.
define VolTV_di DOIF ([osmc] eq "opened")({system "irsend SEND_ONCE receiver d-tv/cbl_alternative"},{system "irsend -#12 SEND_ONCE receiver KEY_VOLUMEUP"},set UE40D7090 connect) DOELSEIF ([osmc] eq "disconnected") (set UE40D7090 connect,{system "irsend -#12 SEND_ONCE receiver KEY_VOLUMEDOWN"})

Der Fehler lässt sich mit dem Versuch nachstellen, im DEF-Editor die folgende Definition auf zwei Zeilen umzubrechen:
define m_di DOIF ([m] == 1) (set m #a) DOELSEIF ([m] == 2) (set m #b)

Es erscheint dann die Fehlermeldung:
Zitatm_di DOIF: no right bracket: (set m DOELSEIF ([m] == 2) (set m #b)

Ich vermute es liegt an der Raute (#),  die evtl. als Kommentar interpretiert wird.

Eine mehrzeile Definition wäre für mich weiterhin wünschenswert, da die Übersichtlichkeit erhöht wird.

Verdoppeln ## oder \# hilft nicht.

Ich würde mich freuen, wenn ich einen Tip bekommen könnte, wie ich die Raute auch in mehrzeiligen Definitionen verwenden kann.

Damian

#100
Zitat von: Ellert am 12 August 2015, 16:25:14
Bei der Verwendung der 98_DOIF.pm von gestern wurde die folgende bereits bestehende zweizeilige Definition nicht ausgeführt:
define VolTV_di DOIF ([osmc] eq "opened")({system "irsend SEND_ONCE receiver d-tv/cbl_alternative"},{system "irsend -#12 SEND_ONCE receiver KEY_VOLUMEUP"},set UE40D7090 connect)\
DOELSEIF ([osmc] eq "disconnected") (set UE40D7090 connect,{system "irsend -#12 SEND_ONCE receiver KEY_VOLUMEDOWN"})


Mit der gleichen einzeilig geschriebenen Definition gibt es keine Fehlermeldung und das DOIF wird korrekt ausgeführt.
define VolTV_di DOIF ([osmc] eq "opened")({system "irsend SEND_ONCE receiver d-tv/cbl_alternative"},{system "irsend -#12 SEND_ONCE receiver KEY_VOLUMEUP"},set UE40D7090 connect) DOELSEIF ([osmc] eq "disconnected") (set UE40D7090 connect,{system "irsend -#12 SEND_ONCE receiver KEY_VOLUMEDOWN"})

Der Fehler lässt sich mit dem Versuch nachstellen, im DEF-Editor die folgende Definition auf zwei Zeilen umzubrechen:
define m_di DOIF ([m] == 1) (set m #a) DOELSEIF ([m] == 2) (set m #b)

Es erscheint dann die Fehlermeldung:
Ich vermute es liegt an der Raute (#),  die evtl. als Kommentar interpretiert wird.

Eine mehrzeile Definition wäre für mich weiterhin wünschenswert, da die Übersichtlichkeit erhöht wird.

Verdoppeln ## oder \# hilft nicht.

Ich würde mich freuen, wenn ich einen Tip bekommen könnte, wie ich die Raute auch in mehrzeiligen Definitionen verwenden kann.

ja, es liegt an dem neuen Feature # als Kommentarzeichen zu benutzen. Da muss ich mir noch etwas einfallen lassen.

Gruß

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

inesa394

Nachdem ich das hier mit den neuen Features hier gelesen hatte habe ich einige
Doif neu angepaßt.
Mein Problem ist das nun beide DOIF ständig zwischen cmd 1 und cmd 2 springen was zur Folge hat
das das Licht immer an und aus geht.
nternals:
   DEF        ([?{sunset(-600,"17:00","22:30")}-01:00] and [rr_fernseher] eq "home") ((set BogenlampeFarbe HSV 0,0,80))DOELSEIF ([?{sunset(-3000,"18:00","22:00")}-01:00] and [mytwilight:twilight_weather] < 35 and ([rr_inesaS4] eq "home" or [rr_andreLG2] eq "home")) ((set BogenlampeFarbe HSV 184,100,80))DOELSE (set BogenlampeFarbe off)
   NAME       bogenlampe_abends
   NR         683
   NTFY_ORDER 50-bogenlampe_abends
   STATE      0
   TYPE       DOIF
   Readings:
     2015-08-13 12:43:30   Device          rr_fernseher
     2015-08-13 01:00:50   cmd_event       rr_fernseher
     2015-08-13 01:00:50   cmd_nr          3
     2015-08-13 12:36:32   e_mytwilight_twilight_weather 100
     2015-08-13 12:43:30   e_rr_andreLG2_STATE home
     2015-08-13 12:43:30   e_rr_fernseher_STATE home
     2015-08-13 12:43:30   e_rr_inesaS4_STATE absent
     2015-08-13 01:00:50   state           0
     2015-08-13 12:41:28   timer_1_c1      13.08.2015 20:58:59
     2015-08-13 12:41:28   timer_2_c1      14.08.2015 01:00:00
     2015-08-13 12:41:28   timer_3_c2      13.08.2015 20:18:59
     2015-08-13 12:41:28   timer_4_c2      14.08.2015 01:00:00
     2015-08-13 12:43:36   wait_timer      no timer
   Condition:
     0          DOIF_time($hash,$hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"") and InternalDoIf('rr_fernseher','STATE','') eq "home"
     1          DOIF_time($hash,$hash->{realtime}{2},$hash->{realtime}{3},$wday,$hms,"") and ReadingValDoIf('mytwilight','twilight_weather','') < 35 and (InternalDoIf('rr_inesaS4','STATE','') eq "home" or InternalDoIf('rr_andreLG2','STATE','') eq "home")
   Days:
   Devices:
     0           rr_fernseher
     1           mytwilight rr_inesaS4 rr_andreLG2
     all         rr_fernseher mytwilight rr_inesaS4 rr_andreLG2
   Do:
     0:
       0          (set BogenlampeFarbe HSV 0,0,80)
     1:
       0          (set BogenlampeFarbe HSV 184,100,80)
     2:
       0          set BogenlampeFarbe off
   Helper:
     globalinit 1
     last_timer 4
     sleeptimer -1
   Internals:
     0           rr_fernseher:STATE
     1           rr_inesaS4:STATE rr_andreLG2:STATE
     all         rr_fernseher:STATE rr_inesaS4:STATE rr_andreLG2:STATE
   Itimer:
   Readings:
     1           mytwilight:twilight_weather
     all         mytwilight:twilight_weather
   Realtime:
     0          20:58:59
     1          01:00:00
     2          20:18:59
     3          01:00:00
   State:
   Time:
     0          {sunset(-600,"17:00","22:30")}
     1          01:00:00
     2          {sunset(-3000,"18:00","22:00")}
     3          01:00:00
   Timecond:
     0          0
     1          0
     2          1
     3          1
   Timer:
     0          0
     1          0
     2          0
     3          0
   Timerfunc:
   Trigger:
Attributes:
   cmdState   on|off
   group      licht
   icon       light_floor_lamp
   room       wohnzimmer
   wait       0:2:2

Internals:
   DEF        ([?{sunset(-3000,"18:00","22:00")}-01:00] and [rr_fernseher] eq "home") (set Tuer.GongMP3 playTone 047)(set RemotePI cmd set Beleuchtung_Fernseher on)(set RemotePI cmd set Wohnzimmer_Stehlampe on)DOELSEIF ([?{sunset(-1800,"18:00","22:00")}-22:30] and [mytwilight:twilight_weather] < 30 and ([rr_inesaS4] eq "home" or [rr_andreLG2] eq "home"))(set Tuer.GongMP3 playTone 047)(set RemotePI cmd set Beleuchtung_Fernseher on) (set RemotePI cmd set Wohnzimmer_Stehlampe on)
DOELSE (set Tuer.GongMP3 playTone 048)(set RemotePI cmd set Beleuchtung_Fernseher off) (set RemotePI cmd set Wohnzimmer_Stehlampe off)



   NAME       licht_beleuchtung
   NR         401
   NTFY_ORDER 50-licht_beleuchtung
   STATE      initialized
   TYPE       DOIF
   Readings:
     2015-08-13 12:48:38   state           initialized
     2015-08-13 12:48:38   timer_1_c1      13.08.2015 20:18:59
     2015-08-13 12:48:38   timer_2_c1      14.08.2015 01:00:00
     2015-08-13 12:48:38   timer_3_c2      13.08.2015 20:38:59
     2015-08-13 12:48:38   timer_4_c2      13.08.2015 22:30:00
   Condition:
     0          DOIF_time($hash,$hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"") and InternalDoIf('rr_fernseher','STATE','') eq "home"
     1          DOIF_time($hash,$hash->{realtime}{2},$hash->{realtime}{3},$wday,$hms,"") and ReadingValDoIf('mytwilight','twilight_weather','') < 30 and (InternalDoIf('rr_inesaS4','STATE','') eq "home" or InternalDoIf('rr_andreLG2','STATE','') eq "home")
   Days:
   Devices:
     0           rr_fernseher
     1           mytwilight rr_inesaS4 rr_andreLG2
     all         rr_fernseher mytwilight rr_inesaS4 rr_andreLG2
   Do:
     0:
       0          set Tuer.GongMP3 playTone 047
       1          set RemotePI cmd set Beleuchtung_Fernseher on
       2          set RemotePI cmd set Wohnzimmer_Stehlampe on
     1:
       0          set Tuer.GongMP3 playTone 047
       1          set RemotePI cmd set Beleuchtung_Fernseher on
       2          set RemotePI cmd set Wohnzimmer_Stehlampe on
     2:
       0          set Tuer.GongMP3 playTone 048
       1          set RemotePI cmd set Beleuchtung_Fernseher off
       2          set RemotePI cmd set Wohnzimmer_Stehlampe off
   Helper:
     globalinit 1
     last_timer 4
     sleeptimer -1
   Internals:
     0           rr_fernseher:STATE
     1           rr_inesaS4:STATE rr_andreLG2:STATE
     all         rr_fernseher:STATE rr_inesaS4:STATE rr_andreLG2:STATE
   Itimer:
   Readings:
     1           mytwilight:twilight_weather
     all         mytwilight:twilight_weather
   Realtime:
     0          20:18:59
     1          01:00:00
     2          20:38:59
     3          22:30:00
   State:
   Time:
     0          {sunset(-3000,"18:00","22:00")}
     1          01:00:00
     2          {sunset(-1800,"18:00","22:00")}
     3          22:30:00
   Timecond:
     0          0
     1          0
     2          1
     3          1
   Timer:
     0          0
     1          0
     2          0
     3          0
   Timerfunc:
Attributes:
   group      licht
   icon       it_television
   room       Doif,wohnzimmer
   wait       0,2,2:6,6,2:6,6,2


Damian

Zitat von: inesa394 am 13 August 2015, 12:55:07
Nachdem ich das hier mit den neuen Features hier gelesen hatte habe ich einige
Doif neu angepaßt.
Mein Problem ist das nun beide DOIF ständig zwischen cmd 1 und cmd 2 springen was zur Folge hat
das das Licht immer an und aus geht.
nternals:
   DEF        ([?{sunset(-600,"17:00","22:30")}-01:00] and [rr_fernseher] eq "home") ((set BogenlampeFarbe HSV 0,0,80))DOELSEIF ([?{sunset(-3000,"18:00","22:00")}-01:00] and [mytwilight:twilight_weather] < 35 and ([rr_inesaS4] eq "home" or [rr_andreLG2] eq "home")) ((set BogenlampeFarbe HSV 184,100,80))DOELSE (set BogenlampeFarbe off)
   NAME       bogenlampe_abends
   NR         683
   NTFY_ORDER 50-bogenlampe_abends
   STATE      0
   TYPE       DOIF
   Readings:
     2015-08-13 12:43:30   Device          rr_fernseher
     2015-08-13 01:00:50   cmd_event       rr_fernseher
     2015-08-13 01:00:50   cmd_nr          3
     2015-08-13 12:36:32   e_mytwilight_twilight_weather 100
     2015-08-13 12:43:30   e_rr_andreLG2_STATE home
     2015-08-13 12:43:30   e_rr_fernseher_STATE home
     2015-08-13 12:43:30   e_rr_inesaS4_STATE absent
     2015-08-13 01:00:50   state           0
     2015-08-13 12:41:28   timer_1_c1      13.08.2015 20:58:59
     2015-08-13 12:41:28   timer_2_c1      14.08.2015 01:00:00
     2015-08-13 12:41:28   timer_3_c2      13.08.2015 20:18:59
     2015-08-13 12:41:28   timer_4_c2      14.08.2015 01:00:00
     2015-08-13 12:43:36   wait_timer      no timer
   Condition:
     0          DOIF_time($hash,$hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"") and InternalDoIf('rr_fernseher','STATE','') eq "home"
     1          DOIF_time($hash,$hash->{realtime}{2},$hash->{realtime}{3},$wday,$hms,"") and ReadingValDoIf('mytwilight','twilight_weather','') < 35 and (InternalDoIf('rr_inesaS4','STATE','') eq "home" or InternalDoIf('rr_andreLG2','STATE','') eq "home")
   Days:
   Devices:
     0           rr_fernseher
     1           mytwilight rr_inesaS4 rr_andreLG2
     all         rr_fernseher mytwilight rr_inesaS4 rr_andreLG2
   Do:
     0:
       0          (set BogenlampeFarbe HSV 0,0,80)
     1:
       0          (set BogenlampeFarbe HSV 184,100,80)
     2:
       0          set BogenlampeFarbe off
   Helper:
     globalinit 1
     last_timer 4
     sleeptimer -1
   Internals:
     0           rr_fernseher:STATE
     1           rr_inesaS4:STATE rr_andreLG2:STATE
     all         rr_fernseher:STATE rr_inesaS4:STATE rr_andreLG2:STATE
   Itimer:
   Readings:
     1           mytwilight:twilight_weather
     all         mytwilight:twilight_weather
   Realtime:
     0          20:58:59
     1          01:00:00
     2          20:18:59
     3          01:00:00
   State:
   Time:
     0          {sunset(-600,"17:00","22:30")}
     1          01:00:00
     2          {sunset(-3000,"18:00","22:00")}
     3          01:00:00
   Timecond:
     0          0
     1          0
     2          1
     3          1
   Timer:
     0          0
     1          0
     2          0
     3          0
   Timerfunc:
   Trigger:
Attributes:
   cmdState   on|off
   group      licht
   icon       light_floor_lamp
   room       wohnzimmer
   wait       0:2:2

Internals:
   DEF        ([?{sunset(-3000,"18:00","22:00")}-01:00] and [rr_fernseher] eq "home") (set Tuer.GongMP3 playTone 047)(set RemotePI cmd set Beleuchtung_Fernseher on)(set RemotePI cmd set Wohnzimmer_Stehlampe on)DOELSEIF ([?{sunset(-1800,"18:00","22:00")}-22:30] and [mytwilight:twilight_weather] < 30 and ([rr_inesaS4] eq "home" or [rr_andreLG2] eq "home"))(set Tuer.GongMP3 playTone 047)(set RemotePI cmd set Beleuchtung_Fernseher on) (set RemotePI cmd set Wohnzimmer_Stehlampe on)
DOELSE (set Tuer.GongMP3 playTone 048)(set RemotePI cmd set Beleuchtung_Fernseher off) (set RemotePI cmd set Wohnzimmer_Stehlampe off)



   NAME       licht_beleuchtung
   NR         401
   NTFY_ORDER 50-licht_beleuchtung
   STATE      initialized
   TYPE       DOIF
   Readings:
     2015-08-13 12:48:38   state           initialized
     2015-08-13 12:48:38   timer_1_c1      13.08.2015 20:18:59
     2015-08-13 12:48:38   timer_2_c1      14.08.2015 01:00:00
     2015-08-13 12:48:38   timer_3_c2      13.08.2015 20:38:59
     2015-08-13 12:48:38   timer_4_c2      13.08.2015 22:30:00
   Condition:
     0          DOIF_time($hash,$hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"") and InternalDoIf('rr_fernseher','STATE','') eq "home"
     1          DOIF_time($hash,$hash->{realtime}{2},$hash->{realtime}{3},$wday,$hms,"") and ReadingValDoIf('mytwilight','twilight_weather','') < 30 and (InternalDoIf('rr_inesaS4','STATE','') eq "home" or InternalDoIf('rr_andreLG2','STATE','') eq "home")
   Days:
   Devices:
     0           rr_fernseher
     1           mytwilight rr_inesaS4 rr_andreLG2
     all         rr_fernseher mytwilight rr_inesaS4 rr_andreLG2
   Do:
     0:
       0          set Tuer.GongMP3 playTone 047
       1          set RemotePI cmd set Beleuchtung_Fernseher on
       2          set RemotePI cmd set Wohnzimmer_Stehlampe on
     1:
       0          set Tuer.GongMP3 playTone 047
       1          set RemotePI cmd set Beleuchtung_Fernseher on
       2          set RemotePI cmd set Wohnzimmer_Stehlampe on
     2:
       0          set Tuer.GongMP3 playTone 048
       1          set RemotePI cmd set Beleuchtung_Fernseher off
       2          set RemotePI cmd set Wohnzimmer_Stehlampe off
   Helper:
     globalinit 1
     last_timer 4
     sleeptimer -1
   Internals:
     0           rr_fernseher:STATE
     1           rr_inesaS4:STATE rr_andreLG2:STATE
     all         rr_fernseher:STATE rr_inesaS4:STATE rr_andreLG2:STATE
   Itimer:
   Readings:
     1           mytwilight:twilight_weather
     all         mytwilight:twilight_weather
   Realtime:
     0          20:18:59
     1          01:00:00
     2          20:38:59
     3          22:30:00
   State:
   Time:
     0          {sunset(-3000,"18:00","22:00")}
     1          01:00:00
     2          {sunset(-1800,"18:00","22:00")}
     3          22:30:00
   Timecond:
     0          0
     1          0
     2          1
     3          1
   Timer:
     0          0
     1          0
     2          0
     3          0
   Timerfunc:
Attributes:
   group      licht
   icon       it_television
   room       Doif,wohnzimmer
   wait       0,2,2:6,6,2:6,6,2


Dann müsstest du versuchen das Verhalten einzugrenzen. Aus den Lists kann ich nichts erkennen, der eine steht auf cmd_3 und der andere hat noch gar nicht geschaltet.

Gruß

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

inesa394

#103
Ein neues list eigentlich müßte es jetzt auf cmd 1( da ich TV schaue )stehen tut es aber nicht.
Ich möchte wenn der Fernseher an ist die Beleuchtung an geht außerdem soll
bei Anwesenheit zusätzlich die Beleuchtung angehen  cmd 2
Warum ist es jetzt aus?

Internals:
   DEF        ([?{sunset(-3000,"18:00","22:00")}-01:00] and [rr_fernseher] eq "home") (set Tuer.GongMP3 playTone 047)(set RemotePI cmd set Beleuchtung_Fernseher on)(set RemotePI cmd set Wohnzimmer_Stehlampe on)DOELSEIF ([?{sunset(-1800,"18:00","22:00")}-22:30] and [mytwilight:twilight_weather] < 30 and ([rr_inesaS4] eq "home" or [rr_andreLG2] eq "home"))(set Tuer.GongMP3 playTone 047)(set RemotePI cmd set Beleuchtung_Fernseher on) (set RemotePI cmd set Wohnzimmer_Stehlampe on)
DOELSE (set Tuer.GongMP3 playTone 048)(set RemotePI cmd set Beleuchtung_Fernseher off) (set RemotePI cmd set Wohnzimmer_Stehlampe off)



   NAME       licht_beleuchtung
   NR         401
   NTFY_ORDER 50-licht_beleuchtung
   STATE      initialized
   TYPE       DOIF
   Readings:
     2015-08-13 23:21:52   state           initialized
     2015-08-13 23:21:52   timer_1_c1      14.08.2015 20:17:04
     2015-08-13 23:21:52   timer_2_c1      14.08.2015 01:00:00
     2015-08-13 23:21:52   timer_3_c2      14.08.2015 20:37:04
     2015-08-13 23:21:52   timer_4_c2      14.08.2015 22:30:00
   Condition:
     0          DOIF_time($hash,$hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"") and InternalDoIf('rr_fernseher','STATE','') eq "home"
     1          DOIF_time($hash,$hash->{realtime}{2},$hash->{realtime}{3},$wday,$hms,"") and ReadingValDoIf('mytwilight','twilight_weather','') < 30 and (InternalDoIf('rr_inesaS4','STATE','') eq "home" or InternalDoIf('rr_andreLG2','STATE','') eq "home")
   Days:
   Devices:
     0           rr_fernseher
     1           mytwilight rr_inesaS4 rr_andreLG2
     all         rr_fernseher mytwilight rr_inesaS4 rr_andreLG2
   Do:
     0:
       0          set Tuer.GongMP3 playTone 047
       1          set RemotePI cmd set Beleuchtung_Fernseher on
       2          set RemotePI cmd set Wohnzimmer_Stehlampe on
     1:
       0          set Tuer.GongMP3 playTone 047
       1          set RemotePI cmd set Beleuchtung_Fernseher on
       2          set RemotePI cmd set Wohnzimmer_Stehlampe on
     2:
       0          set Tuer.GongMP3 playTone 048
       1          set RemotePI cmd set Beleuchtung_Fernseher off
       2          set RemotePI cmd set Wohnzimmer_Stehlampe off
   Helper:
     globalinit 1
     last_timer 4
     sleeptimer -1
   Internals:
     0           rr_fernseher:STATE
     1           rr_inesaS4:STATE rr_andreLG2:STATE
     all         rr_fernseher:STATE rr_inesaS4:STATE rr_andreLG2:STATE
   Itimer:
   Readings:
     1           mytwilight:twilight_weather
     all         mytwilight:twilight_weather
   Realtime:
     0          20:17:04
     1          01:00:00
     2          20:37:04
     3          22:30:00
   State:
   Time:
     0          {sunset(-3000,"18:00","22:00")}
     1          01:00:00
     2          {sunset(-1800,"18:00","22:00")}
     3          22:30:00
   Timecond:
     0          0
     1          0
     2          1
     3          1
   Timer:
     0          0
     1          0
     2          0
     3          0
   Timerfunc:
Attributes:
   group      licht
   icon       it_television
   room       Doif,wohnzimmer
   wait       10,2,2:60,60,2:60,60,2



Dieses hier wechselt ständig zwischen cmd 1 und cmd 2
zur Zeit
Internals:
   DEF        ([?{sunset(-600,"17:00","22:30")}-01:00] and [rr_fernseher] eq "home") ((set BogenlampeFarbe HSV 0,0,80))DOELSEIF ([?{sunset(-3000,"18:00","22:00")}-01:00] and [mytwilight:twilight_weather] < 35 and ([rr_inesaS4] eq "home" or [rr_andreLG2] eq "home")) ((set BogenlampeFarbe HSV 184,100,80))DOELSE (set BogenlampeFarbe off)
   NAME       bogenlampe_abends
   NR         683
   NTFY_ORDER 50-bogenlampe_abends
   STATE      on
   TYPE       DOIF
   Readings:
     2015-08-13 23:31:54   Device          rr_andreLG2
     2015-08-13 23:31:54   cmd_event       rr_fernseher
     2015-08-13 23:31:54   cmd_nr          1
     2015-08-13 23:28:58   e_mytwilight_twilight_weather 0
     2015-08-13 23:31:54   e_rr_andreLG2_STATE home
     2015-08-13 23:31:54   e_rr_fernseher_STATE home
     2015-08-13 23:31:54   e_rr_inesaS4_STATE home
     2015-08-13 23:31:54   state           on
     2015-08-13 20:58:59   timer_1_c1      14.08.2015 20:57:04
     2015-08-13 19:30:36   timer_2_c1      14.08.2015 01:00:00
     2015-08-13 20:18:59   timer_3_c2      14.08.2015 20:17:04
     2015-08-13 19:30:36   timer_4_c2      14.08.2015 01:00:00
     2015-08-13 23:31:54   wait_timer      13.08.2015 23:32:54 cmd_2 rr_andreLG2
   Condition:
     0          DOIF_time($hash,$hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"") and InternalDoIf('rr_fernseher','STATE','') eq "home"
     1          DOIF_time($hash,$hash->{realtime}{2},$hash->{realtime}{3},$wday,$hms,"") and ReadingValDoIf('mytwilight','twilight_weather','') < 35 and (InternalDoIf('rr_inesaS4','STATE','') eq "home" or InternalDoIf('rr_andreLG2','STATE','') eq "home")
   Days:
   Devices:
     0           rr_fernseher
     1           mytwilight rr_inesaS4 rr_andreLG2
     all         rr_fernseher mytwilight rr_inesaS4 rr_andreLG2
   Do:
     0:
       0          (set BogenlampeFarbe HSV 0,0,80)
     1:
       0          (set BogenlampeFarbe HSV 184,100,80)
     2:
       0          set BogenlampeFarbe off
   Helper:
     globalinit 1
     last_timer 4
     sleepdevice rr_andreLG2
     sleepsubtimer 0
     sleeptimer 1
   Internals:
     0           rr_fernseher:STATE
     1           rr_inesaS4:STATE rr_andreLG2:STATE
     all         rr_fernseher:STATE rr_inesaS4:STATE rr_andreLG2:STATE
   Itimer:
   Readings:
     1           mytwilight:twilight_weather
     all         mytwilight:twilight_weather
   Realtime:
     0          20:57:04
     1          01:00:00
     2          20:17:04
     3          01:00:00
   State:
   Time:
     0          {sunset(-600,"17:00","22:30")}
     1          01:00:00
     2          {sunset(-3000,"18:00","22:00")}
     3          01:00:00
   Timecond:
     0          0
     1          0
     2          1
     3          1
   Timer:
     0          0
     1          0
     2          0
     3          0
   Timerfunc:
   Timers:
   Trigger:
Attributes:
   cmdState   on|off
   group      licht
   icon       light_floor_lamp
   room       wohnzimmer
   wait       0:60:90

Dieses hier funktioniert wie es soll
   
([?{sunset(-3000,"17:00","22:00")}-01:30] and [rr_fernseher] eq "home") (set Tuer.GongMP3 playTone 047,set RemotePI cmd set Beleuchtung_Fernseher on, define at_sleep1 at +00:00:10 set RemotePI cmd set Wohnzimmer_Stehlampe on) DOELSE (set Tuer.GongMP3 playTone 048,set RemotePI cmd set Beleuchtung_Fernseher off , define at_sleep at +00:00:12 set RemotePI cmd set Wohnzimmer_Stehlampe off)


inesa394

#104
Habe das DOIF nochmal umgeändert so das direkt das Presence abgefragt wird und nicht Residents
Vieleicht klappt es ja damit heute abend

([?{sunset(-3000,"17:00","22:00")}-01:30] and [lgtv:state] eq "present")(set Tuer.GongMP3 playTone 047) (set RemotePI cmd set Beleuchtung_Fernseher on)(set RemotePI cmd set Wohnzimmer_Stehlampe on)DOELSEIF ([?{sunset(-1900,"18:00","22:00")}-22:30] and ([inesa:state] eq "present" or [andre:state] eq "present"))(set Tuer.GongMP3 playTone 047)(set RemotePI cmd set Beleuchtung_Fernseher on) (set RemotePI cmd set Wohnzimmer_Stehlampe on) DOELSE (set Tuer.GongMP3 playTone 048)(set RemotePI cmd set Beleuchtung_Fernseher off) (set RemotePI cmd set Wohnzimmer_Stehlampe off)


Meinen Status in Residents habe ich bei Abwesenheit so realisiert vorher habe ich das mit zwei Watchdog gemacht
Internals:
   DEF        ([inesa:state] eq "present") (set rr_inesaS4 home) DOELSE (set rr_inesaS4 absent)
   NAME       anwesenheit_inesa
   NR         671
   NTFY_ORDER 50-anwesenheit_inesa
   STATE      initialized
   TYPE       DOIF
   Readings:
     2015-08-14 11:49:37   state           initialized
   Condition:
     0          ReadingValDoIf('inesa','state','') eq "present"
   Devices:
     0           inesa
     all         inesa
   Do:
     0:
       0          set rr_inesaS4 home
     1:
       0          set rr_inesaS4 absent
   Helper:
     globalinit 1
     last_timer 0
     sleeptimer -1
   Itimer:
   Readings:
     0           inesa:state
     all         inesa:state
   State:
   Timerfunc:
Attributes:
   event-on-change-reading state
   room       Residents
   wait       :400 

Vieleicht liegt dort ja das Problem?