Hauptmenü

DOIF und Addlog ... Probleme

Begonnen von Rampler, 06 Dezember 2015, 09:00:24

Vorheriges Thema - Nächstes Thema

Rampler

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] 
.....






3 HMUART (2 via ESP8266), 1 DUOFERN, 12 ESP8266, SolvisBen, GoodWE WR, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

Ellert

Bei HM könntest Du das DOIF auf das Reading "contact" Triggern.

Rampler

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...
3 HMUART (2 via ESP8266), 1 DUOFERN, 12 ESP8266, SolvisBen, GoodWE WR, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

Damian

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
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Rampler

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
3 HMUART (2 via ESP8266), 1 DUOFERN, 12 ESP8266, SolvisBen, GoodWE WR, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

Rampler

#5
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") ... ?   

3 HMUART (2 via ESP8266), 1 DUOFERN, 12 ESP8266, SolvisBen, GoodWE WR, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!