Hauptmenü

Notify wo hin damit ??

Begonnen von PatrickB, 11 Juni 2013, 18:16:13

Vorheriges Thema - Nächstes Thema

PatrickB

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

PatrickB

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







Puschel74

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
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Zrrronggg!

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") }}


FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

PatrickB

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.

Puschel74

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
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

PatrickB

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?

Puschel74

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
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Icebear

Moinsen,

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

Grüsse aus Wesel
Icebear
Raspberry PI mod B (Wheezy), Fhem 5.4, CUL868, CUL433 , RfxTrx, HM-USB-CFG2, Wlan, HomeEasy, IT, FS20, TFA, HomeMatic, Oregon Scientific, HMLand auf Fritzbox
Raspberry PI mod B (RaspBMC)

PatrickB

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?

Puschel74

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
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

PatrickB

Hi,

was ist FHTTK ? ich hab einen KNX Bus und nur EIB Gruppenadressen im FHEM.

Puschel74

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
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.