FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: fhem_raspi_user am 03 Dezember 2013, 06:01:30

Titel: If Bedingung
Beitrag von: fhem_raspi_user am 03 Dezember 2013, 06:01:30
Hallo zusammen,
ich mache gerade meine ersten Gehversuche mit meiner fhem Installation auf meinem Raspberry.
Mit dem anlernen der Homematic Komponenten hat es soweit geklappt und meine Rolladen fahren bereits Sonnenuntergangsabhängig herunter.
Nun dachte ich, die Rolladen könnten doch später runterfahren, wenn ich daheim bin. Mein Handy meldet mich jetzt also brav beim FHEM Server an ABER...
Weil so ziemlich nichts funktioniert hat, habe ich einen Code kopiert und meinen Türschalter und meine Zwischensteckdose eingetragen, um eine If Bedingung auszuprobieren.
Bei der Eingabe in fhem.cfg ist mir aufgefallen, dass ich diesen Befehl komplett über die Befehlszeile eingeben muss. In fhem.cfg kopiert klappt schon das nicht.
Nun steht es, so in der fhem.cfg und ich kann meine Steckdose ausschalten aber nicht einschalten (Einschalten geht nur händisch). 
Kann mir bitte  jemand auf die Sprünge helfen?

define test notify (WZ_Tuer_Terasse|WZ_Tuer_Terasse|WZ_Tuer_Terasse) { my $r1 == $value{"WZ_Tuer_Terasse"};; my $r2 == $value{"WZ_Tuer_Terasse"};; my $r3 == $value{"WZ_Tuer_Terasse"};;  if ($r1 eq "open" && $r2 eq "open" && $r3 eq "open") {    fhem "set all_Zwischenstecker on"  } else {    fhem "set all_Zwischenstecker off"  } }

Titel: Antw:If Bedingung
Beitrag von: hckoe am 03 Dezember 2013, 09:24:17
Hallo fhem_raspi_user,

auf den ersten Blick ist mir aufgefallen, daß Zuweisungen zu Variablen mit "=" gemacht werden, "==" wird nur in Bedingungen benutzt:
my $r1 = $value{"WZ_Tuer_Terasse"};;

Außerdem verstehe ich das "(WZ_Tuer_Terasse|WZ_Tuer_Terasse|WZ_Tuer_Terasse)" nicht. Wenn Du nur auf die Events von einem Device reagieren willst,
reicht "WZ_Tuer_Terasse".

Vielleicht hilft das fürs erste.

Gruß
Helmut
Titel: Antw:If Bedingung
Beitrag von: fhem_raspi_user am 03 Dezember 2013, 15:55:44
Hallo hckoe,
vielen vielen Dank.
das zweite = war in der Tat zu viel.
Die dreifache Abfrage des gleichen Schalters ist natürlich Unsinn, aber da ich die Abfrage nicht hinbekommen habe, wollte ich die Fehlerquellen so weit als möglich einschränken und habe die drei Abfragen gleich gemacht. Jetzt wo dies funktioniert, tausche ich eine  Bedingung nach der anderen aus und kombiniere am Ende mit einem at.
Auf dem Weg dahin lande ich bestimmt noch einmal hier mit einer neuen Frage.