From 2cc60609d62264fe8ce8beb60f0fa7862a2592d9 Mon Sep 17 00:00:00 2001
From: damian-s <>
Date: Sat, 1 Nov 2014 19:12:51 +0000
Subject: [PATCH] 98_IF.pm: changed docu
git-svn-id: https://svn.fhem.de/fhem/trunk@6855 2b470e98-0d58-463d-a4d8-8e2adae1ed80
---
fhem/FHEM/98_IF.pm | 103 +++++++++++++++------------------------------
1 file changed, 35 insertions(+), 68 deletions(-)
diff --git a/fhem/FHEM/98_IF.pm b/fhem/FHEM/98_IF.pm
index 20c0ede56..8147b0e48 100644
--- a/fhem/FHEM/98_IF.pm
+++ b/fhem/FHEM/98_IF.pm
@@ -452,76 +452,19 @@ CommandIF($$)
Es werden <FHEM-Kommandos1>
ausgeführt, wenn <Bedingung>
erfüllt ist, sonst werden <FHEM-Kommanodos2>
ausgeführt.
- Beim IF-Befehl handelt es sich um einen FHEM-Befehl. Der Befehl kann überall dort genutzt werden, wo FHEM-Befehle vorkommen dürfen.
- Im Gegensatz zu Perl-if bleibt man auf der FHEM-Ebene und muss nicht auf die Perl-Ebene, um FHEM-Befehle mit Hilfe der fhem-Funktion auszuführen.
+ Beim IF-Befehl (IF in Großbuchstaben) handelt es sich um einen FHEM-Befehl. Der Befehl kann überall dort genutzt werden, wo FHEM-Befehle vorkommen dürfen.
+ Im Gegensatz zu Perl-if (if in Kleinbuchstaben) bleibt man auf der FHEM-Ebene und muss nicht auf die Perl-Ebene, um FHEM-Befehle mit Hilfe der fhem-Funktion auszuführen.
- IF ist kein eigenständig arbeitendes Modul, sondern ein FHEM-Befehl, der nur in Kombination mit anderen Modulen, wie z. B. notify oder at, sinnvoll eingesetzt werden kann.
+ IF ist kein eigenständig arbeitendes Modul, sondern ein FHEM-Befehl, der nur in Kombination mit anderen Modulen, wie z. B. notify oder at, sinnvoll eingesetzt werden kann.
Es gibt inzwischen ein neueres DOIF-Modul, welches auf der Syntax vom IF-Befehl aufbaut.
Es arbeitet im Gegensatz zu IF als Modul selbstständig ereignis- und zeitgesteuert ohne notify bzw. at. Damit lassen sich viele Problemlösungen eleganter, jeweils mit einem einzigen Modul, realisieren.
- In der Bedingung des IF-Befehls wird die vollständige Syntax des Perl-if unterstützt. Mögliche Operatoren sind u. a.:
+ In der Bedingung des IF-Befehls wird die vollständige Syntax des Perl-if unterstützt. Stati und Readings von Devices werden in eckigen Klammern angegeben.
-
[<device>:<reading>:<format>|[<regulärer Ausdruck>]]
- bzw. [<device>:&<internal>:<format>|[<regulärer Ausdruck>]]
- <format>
und [<regulärer Ausdruck>]
sind Filteroptionen, sie können optional genutzt werden.<format>
sind:'d'
zum Filtern von positiven und negatien Dezimalzahlen. [<device>:<reading>:d]
entspricht [<device>:<reading>:[(-?\d+(\.\d+)?)]]
- [<device>]
entspricht [<device>:&STATE]
define check at +00:10 IF ([outdoor:humidity] > 70) (set switch1 off) ELSE (set switch1 on)
define check at +00:10 IF ([outdoor] eq "open") (set switch1 on)
define check at +00:10 IF ([outdoor:&STATE] eq "open") (set switch1 on)
define test notify lamp
IF ([lamp] eq "on") (
@@ -577,7 +520,6 @@ CommandIF($$)
(set switch on)
-
Filtern nach Zahlen im Reading "temperature":define settemp at 22:00 IF ([tempsens:temperature:d] >= 10) (set heating on)
@@ -586,9 +528,9 @@ CommandIF($$)
define activity notify move IF ([move:&STATE:[(on|off)]] eq "on" and $we) (set lamp off)
define temp at 18:00 IF ([outdoor:temperature] > 10) (set lampe [dummy])
+ define temp at 18:00 IF ([outdoor:temperature] > 10) (set lamp1 [lamp2])
define mail notify door:open IF ([alarm] eq "on")({system("wmail $NAME:$EVENT")},set alarm_signal on)
-
+ IF ([switch] eq "off") (set lamp on)
{if (Value('switch') eq "off"){fhem('set lamp on')}}
IF ([living_room:temperature] > 12) (set lamp on, set lamp2 off)
{if (ReadingVal('living_room','temperature','') > 12) {fhem('set lamp on');;fhem('set lamp2 off')}}
IF ([bathroom:humidity] > 70) (set led red) ELSE (set led green)
{if (ReadingsVal('bathroom','humidity','') > 70) {fhem('set led red')} else {fhem('set led green')}}