(Gelöst) zu doof für doif?

Begonnen von mg64, 23 April 2016, 19:35:07

Vorheriges Thema - Nächstes Thema

mg64

hab mal folgendes getestet:

define di_window_open_EG_Buero DOIF (([":indow] eq "Open") and [Meik_Handy] eq "present") (set fhem_mg64_bot message $DEVICE ist $EVENT)

keine Meldung

Ellert

Wo ist das rechte Anführungszeichen?

mg64

berechtigter Einwand  ;D jetzt hab ich auch:

matched_event_c1_1 +
e_Meik_Handy_STATE present
aber keine Meldung

Ellert

Git es Fehlermeldungen im Log?
Poste mal ein Listing des DOIF mit list <DOIFname>

mg64

Internals:
   DEF        (([":indow"] eq "Open") and [Meik_Handy] eq "present") (set fhem_mg64_bot message $DEVICE ist $EVENT)
   NAME       di_window_open_EG_Buero
   NR         122
   NTFY_ORDER 50-di_window_open_EG_Buero
   STATE      cmd_2
   TYPE       DOIF
   Readings:
     2016-04-24 17:26:26   Device          OG_Sabrina_Balkontuer
     2016-04-24 15:21:37   cmd_event       EG_Buero_Fenster
     2016-04-24 15:21:37   cmd_nr          2
     2016-04-24 17:00:02   e_EG_Buero_Fenster_Window Closed
     2016-04-24 15:13:50   e_Meik_Handy_STATE present
     2016-04-24 17:26:26   matched_event_c1_1 Window: Closed
     2016-04-24 15:21:37   state           cmd_2
     2016-04-24 17:07:18   timer_1_c1      error: Wrong timespec ":indow: either HH:MM:SS or {perlcode}
   Condition:
     0          (EventDoIf('',$hash,'indow',0) eq "Open") and InternalDoIf($hash,'Meik_Handy','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "present"
   Devices:
     0           Meik_Handy
     all         Meik_Handy
   Do:
     0:
       0          set fhem_mg64_bot message $DEVICE ist $EVENT
     1:
   Helper:
     event      Window: Closed
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   OG_Sabrina_Balkontuer
     timerevent Window: Closed
     triggerDev OG_Sabrina_Balkontuer
     timerevents:
       Window: Closed
       Reliability: ok
       Battery: ok
       Closed
     triggerEvents:
       Window: Closed
       Reliability: ok
       Battery: ok
       Closed
   Internals:
     0           Meik_Handy:STATE
     all         Meik_Handy:STATE
   Itimer:
   Readings:
   Regexp:
     0:
       0          :indow
     All:
       0          :indow
   State:
   Trigger:
Attributes:
   room       DOIF,Zentral


sieht für mich wirr aus, sorry

Trotzdem vielen Dank für Deine Geduld

Ellert

([":indow"] eq "Open") ist falsch, da Du auf Events triggerst, ein Event ist nur wahr oder falsch, also [":indow: Open"]

mg64

hat 1x funktioniert: "EG_Buero_Fenster ist Window: Open"

Jetzt sehe ich in den Readings auch den Presence Status nicht mehr...

Ellert

Schau mal hier: http://fhem.de/commandref_DE.html#DOIF_Ereignissteuerung

ZitatJetzt sehe ich in den Readings auch den Presence Status nicht mehr...
Hat sich wohl noch nicht wieder gemeldet ;)

mg64

das Handy wird "present" angezeigt taucht aber im doif nicht mehr auf,
das Fenster wurde geschlossen und wieder geöffnet - die Readings und Statusänderungen hab ich im Event Monitor beobachtet,
für mein Verständnis müßte jetzt ja auch eine Meldung "EG_Buero_Fenster ist Window: Closed" kommen.

Ellert

poste ein Listing des DOIF

mg64

Ich will dir ja nicht den ganzen Sonntag versauen  ;)

ich hab jetzt mal folgendes Coding probiert:
define di_window_open_EG_Buero DOIF (([":indow: Open"]) and [Meik_Handy] eq "present") (set fhem_mg64_bot message $DEVICE ist $EVENT)
attr di_window_open_EG_Buero do always


= funktioniert soweit, daß jetzt verschiedene Fenster gemeldet haben - halt bei jeder Statusabfrage

ein DOELSE am Ende hat nicht funktioniert

Ellert

#26
ggf. das Triggern für [Meik_Handy] eq "present" ausschalten, sonst gibt es auch eine Meldung für die Statusaktualisierung des Telefons.

[?Meik_Handy] eq "present"

http://fhem.de/commandref_DE.html#DOIF_Zeitintervalle_Readings_und_Stati_ohne_Trigger

und ggf. bei den Fenstern das Attribut event-on-change-reading setzen.

mg64

fürs Handy kommen keine Meldungen, aber jedes offene Fenster halt alle 3 Minuten... nervt schon ein bißchen  ;)

Ellert

Wegen der Überschneidung, hier noch mal:


und ggf. bei den Fenstern das Attribut event-on-change-reading setzen.

mg64

wenn ich das richtig verstanden habe muß ich die readings die triggern sollen kommagetrennt hinzufügen - korrekt?