FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Rampler am 06 Dezember 2015, 09:00:24

Titel: DOIF und Addlog ... Probleme
Beitrag von: Rampler am 06 Dezember 2015, 09:00:24
Hallo zusammen,
um div. Plotabrisse zu vermeiden, verwende ich AddLog. Ich setzte also stündlich einen "Trigger device state << addlog" ab.
Sieht bei mir im Detail also so aus:
2015-12-03_20:20:19 WF.tuerkontakt closed
2015-12-03_21:00:00 WF.tuerkontakt closed   << addLog
2015-12-03_22:00:00 WF.tuerkontakt closed   << addLog

Damit meine notifys nicht ständig anspringen konnte ich mir so helfen:
WF.tuerkontakt.closed {   , anstatt GA.tuerkontakt.closed.* {

Beim DOIF habe ich leider noch nichts gefunden.
Der DOIF sieht so aus:
([WF.tuerkontakt:?closed]     

Wie kann ich nun vermeiden, dass der DOIF nicht durch
WF.tuerkontakt closed   << addLog
anspringt ??

So funktioniert es zwar, ist aber alles andere als elegant:
([WF.tuerkontakt:?closed   << addLog])()     ## Mache nichts bei Trigger WF.tuerkontakt closed   << addLog
DOELSEIF
([WF.tuerkontakt:?closed] 
.....






Titel: Antw:DOIF und Addlog ... Probleme
Beitrag von: Ellert am 06 Dezember 2015, 14:42:12
Bei HM könntest Du das DOIF auf das Reading "contact" Triggern.
Titel: Antw:DOIF und Addlog ... Probleme
Beitrag von: Rampler am 06 Dezember 2015, 20:02:31
Ich will mal versuchen, meine Frage verständlicher zu fomulieren ...
Ich such den Perl Code der bei einem "closed  << addlog" unwahr setzt, und bei einem "closed" wahr setzt...
Titel: Antw:DOIF und Addlog ... Probleme
Beitrag von: Damian am 06 Dezember 2015, 21:31:47
Zitat von: Rampler am 06 Dezember 2015, 20:02:31
Ich will mal versuchen, meine Frage verständlicher zu fomulieren ...
Ich such den Perl Code der bei einem "closed  << addlog" unwahr setzt, und bei einem "closed" wahr setzt...

DOIF ([WF.tuerkontakt:?closed$]) (tue, was du willst)

Gruß

Damian
Titel: Antw:DOIF und Addlog ... Probleme
Beitrag von: Rampler am 07 Dezember 2015, 15:00:38
Zitat von: Damian am 06 Dezember 2015, 21:31:47
DOIF ([WF.tuerkontakt:?closed$]) (tue, was du willst)

Hallo Damian,
habe ich gerae getestet, funktioniert leider nicht:
Internals:
   DEF        ([WF.tuerkontakt:?closed$]  and
[WF.keymatic] eq "locked")
(set FL.EG.anzeige.led04 led green)
DOELSEIF
([WF.tuerkontakt:?closed$]  and
[WF.keymatic] eq "unlocked")
(set FL.EG.anzeige.led04 led orange)
DOELSEIF
([WF.tuerkontakt:?open$])
(set FL.EG.anzeige.led04 led red)





   NAME       WF.ledcontrol
   NR         310
   NTFY_ORDER 50-WF.ledcontrol
   STATE      initialized
   TYPE       DOIF
   Readings:
     2015-12-07 14:57:10   Device          WF.tuerkontakt
     2015-12-07 14:57:10   e_WF.tuerkontakt_events closed   << addLog
     2015-12-07 14:57:01   state           initialized
   Condition:
     0          EventDoIf('WF.tuerkontakt',$hash->{helper}{triggerDev},$hash->{helper}{triggerEvents},'closed$')  and  InternalDoIf('WF.keymatic','STATE','') eq "locked"
     1          EventDoIf('WF.tuerkontakt',$hash->{helper}{triggerDev},$hash->{helper}{triggerEvents},'closed$')  and  InternalDoIf('WF.keymatic','STATE','') eq "unlocked"
     2          EventDoIf('WF.tuerkontakt',$hash->{helper}{triggerDev},$hash->{helper}{triggerEvents},'open$')
   Devices:
     0           WF.tuerkontakt WF.keymatic
     1           WF.tuerkontakt WF.keymatic
     2           WF.tuerkontakt
     all         WF.tuerkontakt WF.keymatic
   Do:
     0:
       0          set FL.EG.anzeige.led04 led green
     1:
       0          set FL.EG.anzeige.led04 led orange
     2:
       0          set FL.EG.anzeige.led04 led red
     3:
   Helper:
     globalinit 1
     last_timer 0
     sleeptimer -1
     triggerDev WF.tuerkontakt
     triggerEvents:
       closed   << addLog
   Internals:
     0           WF.keymatic:STATE
     1           WF.keymatic:STATE
     all         WF.keymatic:STATE
   Itimer:
   Readings:
   State:
   Timerfunc:
   Trigger:
     all         WF.tuerkontakt
Attributes:
   cmdState   green|orange|red
   do         always
   event-on-change-reading no
   icon       message_attention
   room       Windfang
   wait       1:0:0
Titel: Antw:DOIF und Addlog ... Probleme
Beitrag von: Rampler am 07 Dezember 2015, 15:04:23
Sorry, funktioniert doch, mich hat nur die Zeile
2015-12-07 14:57:10   e_WF.tuerkontakt_events closed   << addLog
irretiert...

DANKE nochmal !!

Gruß
Klaus

PS: Gibt es auch eine Lösung, wenn ich nicht das EVENT sondern das Reading Abfrage, also:
([WF.tuerkontakt] eq "closed") ... ?