FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: PatrickB am 11 Juni 2013, 18:16:13

Titel: Notify wo hin damit ??
Beitrag von: PatrickB am 11 Juni 2013, 18:16:13
Hallo,

mal vlt. eine ganz blöde Frage, aber ich hab mir aus dem Wiki einen Notify gebastelt.. ich frage mich nur wie und wo ich diesen in FHEM unterbringe? in der fhem.cfg oder vlt. 99_Utils.pm .

define nt.allefensterzu (MeldeKontakt_WC|MeldeKontakt_Buero|MeldeKontakt_Eingangstuer) {
my $r1 = $value{"MeldeKontakt_WC"};;
my $r2 = $value{"MeldeKontakt_Buero"};;
my $r3 = $value{"MeldeKontakt_Eingangstuer"};;
 if ($r1 eq "on" && $r2 eq "on" && $r3 eq "on") {
   fhem "set Lampe_Buero on"
 } else {
   fhem "set Lampe_Buero off"
 }
}



ich stehe gerade auf dem Schlauch.. und warum wird notify mit nt. abgekürzt ?...

Gruss Patrick
Titel: Aw: Notify wo hin damit ??
Beitrag von: PatrickB am 11 Juni 2013, 22:34:31
Hallo,

ok ich hab gemerkt das im WIKI ein Fehler ist

ist falsch

define nt.allerolloszu (R1ZU|R2ZU|R6ZU) {


ist richtig:

define nt.allerolloszu notify (R1ZU|R2ZU|R6ZU) {


leider geht mein notify immer noch nicht im WEB FHEM bei DEF hab ich eingetragen:


(MeldeKontakt_WC|MeldeKontakt_Buero|MeldeKontakt_Eingangstuer)
{
my $r1 = $value{"MeldeKontakt_WC"};
my $r2 = $value{"MeldeKontakt_Buero"};
my $r3 = $value{"MeldeKontakt_Eingangstuer"};
if ($r1 eq "off" && $r2 eq "off" && $r3 eq "off") {
 fhem "set Lampe_Buero on"  
 } else {    
 fhem "set Lampe_Buero off"  
 }
}


wo ist mein Fehler? kann man das irgendwie debuggen wie zb. der Status der Variablen ist? Die Lampe wird auf jedenfall nicht geschaltet.

Gruss Patrick






Titel: Aw: Notify wo hin damit ??
Beitrag von: Puschel74 am 11 Juni 2013, 22:41:08
Hallo,

so wie in allen anderen Beiträgen hier (nicht böse sein) aber ...
was steht im LogFile von fhem?
Fehlermeldungen sind nicht nur da um zu nerven sondern auch um Fehler aufzuzeigen - also bitte posten.
Weiters - welche FHEM-Version auf welcher Plattform?
Um weitere Fragen dieser Art vorab zu beantworten bitte die Signatur sinnvoll füllen.

Grüße

Edith:
Evtl. hilft dir das weiter:

MeldeKontakt.* {
my $r1 = Value{"MeldeKontakt_WC"};
my $r2 = Value{"MeldeKontakt_Buero"};
my $r3 = Value{"MeldeKontakt_Eingangstuer"};
Log 3,("WC: ".$r1." Buero: ".$r2." Eingangstuer: ".$r3);
if (($r1 eq "off") && ($r2 eq "off") && ($r3 eq "off")) {
  fhem "set Lampe_Buero on"
  } else {
    fhem "set Lampe_Buero off"
  }
}


MeldeKontakt.* matcht auf alles was mit MeldeKontakt anfängt
$value wird nichtmehr unterstützt daher Value
Log um zu sehen was im Logfile erscheint
Value frägt STATE ab - wenn das nicht off ist ist die Abfrage immer false daher die Log-Zeile um zu sehen was tatsächlich in der Variable landet.

Grüße
Titel: Aw: Notify wo hin damit ??
Beitrag von: Zrrronggg! am 12 Juni 2013, 13:27:18
Zusätzlich die Frage:  Wou die ganze Arie mit
my $r1 = $value{"MeldeKontakt_WC"}
um dann
if (($r1 eq "off")
abzufragen?

Das baut hier eigentlich nur mehr Komplexität und mögliche Fehlerquellen ein. Sicher gibt's dafür einen Grund, aber welchen?


Ich als alter "oneliner" würde wie folgt vereinfache:



MeldeKontakt.* { if (Value("MeldeKontakt_WC") eq "off" && Value("MeldeKontakt_Buero") eq "off" && Value("MeldeKontakt_Eingangstuer") eq "off") {fhem ("set Lampe_Buero on") } else { fhem ("set Lampe_Buero off") }}


Titel: Aw: Notify wo hin damit ??
Beitrag von: PatrickB am 12 Juni 2013, 13:37:19
Hi,

es sind real eine ganze mMenge mehr an Kontakte und die Routine soll prüfen ob einer davon auf ist. Wenn ja wird ein Ereignis ausgelöst. Die "Lampe_Buero on" ist nur ein Platzhalt um das zu testen, dass könnte dann zb. der Auslöser einer Alarmfunktion sein.
Titel: Aw: Notify wo hin damit ??
Beitrag von: Puschel74 am 12 Juni 2013, 14:20:20
Hallo,

ich weiß ja nicht ob das mit FHTTK auch geht (mit fhts funktioniert das - kopiert aus Heizungssteuerung Einfach und auf gut Glück abgewandelt).

...
my @@fhttks=devspec2array("TYPE=FHTTK");
foreach(@@fhttks) {
  my $Status=Value($_);
  if ($Status eq "off") {
    fhem("set Lampe_Buero on");
  } else {
    fhem("set Lampe_Buero off");
  }
}
...


Zitates sind real eine ganze mMenge mehr an Kontakte und die Routine soll prüfen ob einer davon auf ist.
Zumindest würde ich dann versuchen diese in einer Schleife abzufragen (das kann Perl ;-) ) als jeden einzeln.

Ich weiß aber jetzt nicht ob der Syntax so richtig ist.
Evtl. müsste der Status jedes einzelnen erst zwischengespeichert werden und am Schluss die Abfrage ob mindestens einer auf ist rein.

Grüße

Edith: offensichtlichen Fehler ausgebessert
Titel: Aw: Notify wo hin damit ??
Beitrag von: PatrickB am 12 Juni 2013, 19:21:39
Hallo,

also so geht es :


(MeldeKontakt_WC|MeldeKontakt_Buero|MeldeKontakt_Eingangstuer) {
my $r1 = $value{"MeldeKontakt_WC"};
my $r2 = $value{"MeldeKontakt_Buero"};
my $r3 = $value{"MeldeKontakt_Eingangstuer"};
Log 1,("WC: ".$r1." Buero: ".$r2." Eingangstuer: ".$r3);
if (($r1 eq "off") && ($r2 eq "off") && ($r3 eq "off")) {
  fhem "set Lampe_Buero on"
  } else {
    fhem "set Lampe_Buero off"
  }


man beachte das ich aber das $value verwenden muss da ansonst eine Fehlermeldung kommt? kann das an meiner Perl Version des Raspi liegen?
Titel: Aw: Notify wo hin damit ??
Beitrag von: Puschel74 am 12 Juni 2013, 19:35:27
Hallo,

$value wird nichtmehr unterstützt - bitte auf Value umstellen.

Die Perl-Installation am RasPi kannst du easy updaten
sudo apt-get update
sudo apt-get upgrade

und du hast die aktuellsten Pakete installiert.

Ich verwende auf meinen RasPi`s nur Value und habe mit $value schon lange aufgehört (@ und % kommen jetzt dran zum umstellen).

Ich würde dir aber dennoch vorschlagen auf eine Schleife zu setzen.

Vorteil: Du brauchst einen zusätzlichen FHTTK nur ins System einbinden (einfach anbringen und Batterie rein) - er wird automatisch in die Abfage mit ein bezogen.
Egal wieviel FHTTK du hast, es werden alle abgefragt.
Nachteil: Ausser das du dir die Schleife bauen musst sehe ich keinen (ausser vielleicht wenn einer nicht abgefragt werden soll - das ist aber schneller nachprogrammiert als jeden einzelnen in die Abfrage rein zu programmieren).

Aber wie so alles in FHEM - es steht jedem selbst frei sein System zu gestalten wie man möchte.

Grüße
Titel: Aw: Notify wo hin damit ??
Beitrag von: Icebear am 12 Juni 2013, 19:53:15
Moinsen,

ich würde das ganze über eine Structure machen (siehe diverse Beispiele z.b. Fensterkontakte)

Grüsse aus Wesel
Icebear
Titel: Aw: Notify wo hin damit ??
Beitrag von: PatrickB am 12 Juni 2013, 20:49:08
Zitat von: Icebear schrieb am Mi, 12 Juni 2013 19:53Moinsen,

ich würde das ganze über eine Structure machen (siehe diverse Beispiele z.b. Fensterkontakte)

Grüsse aus Wesel
Icebear

Hi Icebear,

Structure wäre mir auch lieber, hast du mal einen Vorschlag für mein og. Beispiel?
Titel: Aw: Notify wo hin damit ??
Beitrag von: Puschel74 am 12 Juni 2013, 23:47:22
Hallo,

Structure geht natürlich auch aber es bedingt das der Sensor in FHEM eingebunden wird.

Ok, das muss bei der Schleife auch erfolgen aber der Unterschied ist das bei einer foreach-Abfrage der Sensor nicht unbedingt "Namentlich" eingebunden werden muss da der TYPE des Sensors schon FHTTK ist.
Und dieser TYPE wird in der Schleife abgefragt und ausgewertet.
Egal ob der Sensor Gartenhütte_Tür oder Keller_Fenster_Nord_1 heisst oder was auch immer. Der TYPE ist FHTTK - und das wertet die Schleifenabfrage aus.

Aber wie schon gesagt:
ZitatAber wie so alles in FHEM - es steht jedem selbst frei sein System zu gestalten wie man möchte.

Grüße
Titel: Aw: Notify wo hin damit ??
Beitrag von: PatrickB am 13 Juni 2013, 10:27:51
Hi,

was ist FHTTK ? ich hab einen KNX Bus und nur EIB Gruppenadressen im FHEM.
Titel: Aw: Notify wo hin damit ??
Beitrag von: Puschel74 am 13 Juni 2013, 11:19:45
Hallo,

ups. Das hab ich wohl überlesen.
Dann kannst du mit FHTTK natürlich nichts programmieren und musst die Abfragen evtl. per Namensgebung lösen.

Grüße