From f190b545385d12fad13d472247312bb081a5a3fa Mon Sep 17 00:00:00 2001
From: Damian <>
Date: Sat, 23 Feb 2019 21:48:22 +0000
Subject: [PATCH] 98_DOIF.pm: new internal VERSION, fixed commandref for
event_Readings
git-svn-id: https://svn.fhem.de/fhem/trunk@18706 2b470e98-0d58-463d-a4d8-8e2adae1ed80
---
fhem/FHEM/98_DOIF.pm | 20 +++++++++++++++-----
1 file changed, 15 insertions(+), 5 deletions(-)
diff --git a/fhem/FHEM/98_DOIF.pm b/fhem/FHEM/98_DOIF.pm
index 08abf13cb..ac29f45da 100644
--- a/fhem/FHEM/98_DOIF.pm
+++ b/fhem/FHEM/98_DOIF.pm
@@ -2369,7 +2369,7 @@ DOIF_Notify($$)
if ($dev->{NAME} eq "global" and (EventCheckDoif($dev->{NAME},"global",$eventa,'^INITIALIZED$') or EventCheckDoif($dev->{NAME},"global",$eventa,'^REREADCFG$')))
{
$hash->{helper}{globalinit}=1;
- # delete old timer-readings
+ # delete old timer-readings
foreach my $key (keys %{$defs{$hash->{NAME}}{READINGS}}) {
delete $defs{$hash->{NAME}}{READINGS}{$key} if ($key =~ "^timer_");
}
@@ -3139,6 +3139,9 @@ DOIF_Define($$$)
my $err;
my $msg;
$hs=$hash;
+ if (AnalyzeCommandChain(undef,"version 98_DOIF.pm noheader") =~ "^98_DOIF.pm (.*)Z") {
+ $hash->{VERSION}=$1;
+ }
if (!$cmd) {
$cmd="";
@@ -3149,7 +3152,7 @@ DOIF_Define($$$)
}
if ($cmd =~ /^\s*(\(|$)/) {
- $hash->{MODEL}="FHEM";
+ $hash->{MODEL}="FHEM";
($msg,$err)=CmdDoIf($hash,$cmd);
#delete $defs{$hash->{NAME}}{".AttrList"};
setDevAttrList($hash->{NAME});
@@ -4095,6 +4098,7 @@ Funktion: med
Bsp.:
define di_frost DOIF ([$SELF:outTempMed] < 0) (set warning frost)
+
attr di_frost event_Readings outTempMed:[outdoor:temperature:med]
Die Definition über das Attribut event_Readings hat den Vorteil, dass der bereinigte Wert im definierten Reading visualisiert und geloggt werden kann (med entspricht med3).
@@ -4107,9 +4111,9 @@ Funktion: diff
Bsp.:
-define temp_abfall ([outdoor:temperature:diff5] > 3) (set temp fall in temperature)
+define temp_abfall DOIF ([outdoor:temperature:diff5] < -3) (set temp fall in temperature)
-Wenn die Temperaturdifferenz zwischen dem letzten und dem fünftletzten Wert um drei Grad fällt, dann Anweisung ausführen.
+Wenn die Temperaturdifferenz zwischen dem letzten und dem fünftletzten Wert um mindestens drei Grad fällt, dann Anweisung ausführen.
anteiliger Anstieg
@@ -5376,9 +5380,15 @@ Hierbei wird der aufwändig berechnete Durchschnittswert nur einmal berechnet, s
Erzeugen berechneter Readings mit Events back
-Dieses Atrribut hat die gleiche Syntax wie DOIF_Readings. Der Unterschied besteht darin, dass event_Readings im Gegensatz zu DOIF_Readings beim Setzen der definierten Readings jedes mal Events produziert.
+Mit Hilfe des Attributes event_Readings können eigene Readings innerhalb des DOIF definiert werden. Dieses Atrribut hat die gleiche Syntax wie DOIF_Readings. Der Unterschied besteht darin, dass event_Readings im Gegensatz zu DOIF_Readings beim Setzen der definierten Readings jedes mal Events produziert.
Die Nutzung von event_Readings ist insb. dann sinnvoll, wenn man eventgesteuert außerhalb des Moduls auf die definierten Readings zugreifen möchte.
+Syntax
+
+attr <DOIF-Modul> event_Readings <readingname1>:<definiton>, <readingname2>:<definition>,...
+
+<definition>
: Beliebiger Perlausdruck ergänzt um DOIF-Syntax in eckigen Klammern. Angaben in eckigen Klammern wirken triggernd und aktualisieren das definierte Reading.
+
Bsp.:
define outdoor DOIF ##