Hi,
kann mir bitte jemand erklären wie man die UND Verknüpfung richtig macht???
Ich möchte einen Logeintrag und Pin22 auf on setzen, sobald Pin 15 off ist und $val kleiner 10 ist.
Die Abfrage als solche funktioniert dank John schon, ich muss aber leider noch die Pin Abfrage mit reinnehmen.
define ALARM.EVENTPS notify CN.PUMPE:pulseTimeIncrement.* {my $val=%EVTPART1;; Log(3," PUMPE SHORT value out range with name:%NAME attribute:%EVTPART0 value:%EVTPART1") if ($val <10 xxxxAND xxxxx Pin15 off);;{fhem ("set Pin22 on")};;}
Danke !!!
bb10
Hi,
ist die Fragestellung schlecht formuliert oder unklar oder blödsinnig ??
mfg
bb10
Hallo,
anstelle von AND kommt ein &&
Werte kannst du mit ReadingsVal abfragen und Stati mit Value.
Oder hab ich was falsch verstanden?
Grüße
Google perl and
Hi,
ist NICHT so einfach für mich :'(
define ALARM.EVENTPS notify CN.PUMPE:pulseTimeIncrement.* {my $val=%EVTPART1;; Log(3," PUMPE SHORT value out range with name:%NAME attribute:%EVTPART0 value:%EVTPART1") if ($val < 10 && Value("PUMPE") eq "off");;{fhem ("set Pin22 on")};;}
attr ALARM.EVENTPS verbose 5
define ALARM.EVENTPL notify CN.PUMPE:pulseTimeIncrement.* {my $val=%EVTPART1;; Log(3," PUMPE LONG value out range with name:%NAME attribute:%EVTPART0 value:%EVTPART1") if ($val > 900 && Value("PUMPE") eq "on");;{fhem ("set Pin22 on")};;}
bringt folgenden Log, wenn ich Pin 15 deaktiviere, d.h. wenn der Counter wieder stoppt (und setzt Pin 22 on)
2014.03.23 19:37:55 5: Triggering ALARM.EVENTPL
2014.03.23 19:37:55 4: ALARM.EVENTPL exec {my $val=39;; Log(3," PUMPE LONGvalue out range with name:CN.PUMPE attribute:pulseTimeIncrement: value:39") if ($val >900 && Value("PUMPE") eq "on");;{fhem ("set Pin22 on")};;}
2014.03.23 19:37:56 5: Triggering ALARM.EVENTPS
2014.03.23 19:37:56 4: ALARM.EVENTPS exec {my $val=39;; Log(3," PUMPE SHORT value out range with name:CN.PUMPE attribute:pulseTimeIncrement: value:39") if ($val <10 && Value("PUMPE") eq "off");;{fhem ("set Pin22 on")};;}
Da ist was falsch, sonst würden nicht beide Alarme gleichzeitig getriggert
Nur leider komm ich nicht dahinter.
Die Kriterien für den Alarm LONG sind : Pin 15 (PUMPE) on und läuft schon seit über 900 Sekunden
für Kurz : PUMPE ist off (Pin15) und die Einschaltzeit CN.PUMPE attribute:pulseTimeIncrement war unter 10 Sekunden.
Hat wer eine Idee ??
DANKE
BB10
Zitat von: backbone10 am 23 März 2014, 20:45:04
Hi,
ist NICHT so einfach für mich :'(
define ALARM.EVENTPS notify CN.PUMPE:pulseTimeIncrement.* {my $val=%EVTPART1;; Log(3," PUMPE SHORT value out range with name:%NAME attribute:%EVTPART0 value:%EVTPART1") if ($val < 10 && Value("PUMPE") eq "off");;{fhem ("set Pin22 on")};;}
define ALARM.EVENTPS notify CN.PUMPE:pulseTimeIncrement.* IF (%EVTPART1 < 10 and [PUMPE] eq "off") ({Log(3," PUMPE SHORT value out range with name:%NAME attribute:%EVTPART0 value:%EVTPART1")},set Pin22 on)
dürfte etwas kürzer und weniger kryptisch für dich sein.
Der IF-Befehl ist seit heute per FHEM-Update verfügbar. Doku dazu siehe: http://fhem.de/commandref_DE.html#IF
Den zweiten Befehl bekommst du dann schon alleine hin ;)
Gruß
Damian
Hi,
ja danke. Genau die Lösung für mein Problem 8)
Das 2. Statement hab ich wirklich alleine geschafft ;)
Gruß
bb10