Hauptmenü

DOIF Vergleich zweier Readings

Begonnen von F.R., 01 Juli 2016, 20:33:15

Vorheriges Thema - Nächstes Thema

F.R.

Hallo,

ich möchte mir bedarfsweise eine Benachrichtigung senden lassen, wenn die Außentemperatur auf den Wert der Innentemperatur fällt. Dazu habe ich ein dummy angelegt, mit dem sich die Abfrage an und ausschalten lässt:

define lueften dummy
attr lueften webCmd on:off


Dann habe ich folgendes DOIF definiert:
define doif_lueften DOIF (([aussentemperatur:temperatur] <= [?MYSENSOR_101:temperature]) and ([?lueften] eq "on")) (set telegram send @1111111 Fenster auf)(set lueften off)
attr doif_lueften do always


Ich möchte, dass nur auf die Außentemperatur getriggert wird, da sich diese der Innentemperatur annähert. Zusätzlich soll das DOIF nur ausgeführt werden, wenn der dummy aktiviert wurde.

Jedoch wird DOIF jedes Mal ausgelöst, wenn das Reading "aussentemperatur:temperatur" aktualisiert wird. Was muss ich tun, dass DOIF nur auslöst, wenn die Bedingung Aussentemperatur <= Innentemperatur erfüllt ist?


automatisierer


F.R.

Hallo,
Hier die Ausgabe von list:

Internals:
   DEF        (([aussentemperatur:temperatur] <= [?MYSENSOR_101:temperature]) and ([?lueften] eq "on")) (set telegram send @145746591 Fenster auf)(set lueften off)
   NAME       doif_lueften
   NR         132
   NTFY_ORDER 50-doif_lueften
   STATE      cmd_1
   TYPE       DOIF
   Readings:
     2016-07-01 22:52:16   Device          aussentemperatur
     2016-07-01 21:02:16   cmd             1.2
     2016-07-01 21:02:16   cmd_event       aussentemperatur
     2016-07-01 21:02:16   cmd_nr          1
     2016-07-01 21:02:16   cmd_seqnr       2
     2016-07-01 20:35:57   e_MYSENSOR_101_temperature 24.2
     2016-07-01 22:52:16   e_aussentemperatur_temperatur 0
     2016-07-01 19:45:56   e_lueften_STATE on
     2016-07-01 21:02:16   state           cmd_1
   Condition:
     0          (ReadingValDoIf($hash,'aussentemperatur','temperatur','','',AttrVal($hash->{NAME},'notexist',undef)) <= ReadingValDoIf($hash,'MYSENSOR_101','temperature','','',AttrVal($hash->{NAME},'notexist',undef))) and (InternalDoIf($hash,'lueften','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "on")
   Devices:
     0           aussentemperatur
     all         aussentemperatur
   Do:
     0:
       0          set telegram send @1111112 Fenster auf
       1          set lueften off
     1:
   Helper:
     event      humidity: 63
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   aussentemperatur
     timerevent humidity: 55
     triggerDev aussentemperatur
     timerevents:
       humidity: 55
     timereventsState:
       humidity: 55
     triggerEvents:
       humidity: 63
     triggerEventsState:
       humidity: 63
   Internals:
     0           lueften:STATE
     all         lueften:STATE
   Itimer:
   Readings:
     0           aussentemperatur:temperatur MYSENSOR_101:temperature
     all         aussentemperatur:temperatur MYSENSOR_101:temperature
   Regexp:
     0:
     All:
   State:
   Trigger:
Attributes:
   do         always

igami


[aussentemperatur:temperatur]

fehlt da nicht ein e am Ende von temperatur? Im List wird der Wert auch mit 0 angezeigt.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

F.R.

Hallo,

Oh das stimmt, wie peinlich  :o
Manchmal sieht man den Wald vor lauter Bäumen nicht..
Vielen Dank für die Hilfe!