FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: backbone10 am 19 März 2014, 23:00:21

Titel: Bitte um Hilfe bei "UND Verknüpfung" von Wert und Pinstatus (GPIO)
Beitrag von: backbone10 am 19 März 2014, 23:00:21
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                                                                                                                                                                                         
Titel: Antw:Bitte um Hilfe bei "UND Verknüpfung" von Wert und Pinstatus (GPIO)
Beitrag von: backbone10 am 22 März 2014, 09:58:12
Hi,
ist die Fragestellung schlecht formuliert oder unklar oder blödsinnig ??

mfg

bb10
Titel: Antw:Bitte um Hilfe bei "UND Verknüpfung" von Wert und Pinstatus (GPIO)
Beitrag von: Puschel74 am 22 März 2014, 10:01:36
Hallo,

anstelle von AND kommt ein &&
Werte kannst du mit ReadingsVal abfragen und Stati mit Value.
Oder hab ich was falsch verstanden?

Grüße
Titel: Antw:Bitte um Hilfe bei "UND Verknüpfung" von Wert und Pinstatus (GPIO)
Beitrag von: UliM am 22 März 2014, 12:46:35
Google perl and
Titel: Antw:Bitte um Hilfe bei "UND Verknüpfung" von Wert und Pinstatus (GPIO)
Beitrag 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")};;}
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
Titel: Antw:Bitte um Hilfe bei "UND Verknüpfung" von Wert und Pinstatus (GPIO)
Beitrag von: Damian am 23 März 2014, 21:34:27
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
Titel: Antw:Bitte um Hilfe bei "UND Verknüpfung" von Wert und Pinstatus (GPIO)
Beitrag von: backbone10 am 24 März 2014, 22:15:32
Hi,
ja danke. Genau die Lösung für mein Problem  8)

Das 2. Statement hab ich wirklich alleine geschafft  ;)

Gruß

bb10