FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: mele am 03 März 2015, 19:19:59

Titel: 99_myUtils if-Problem
Beitrag von: mele am 03 März 2015, 19:19:59
Hallo,

ich versuche gerade für meinen Floorplan eine ttsSay-Ansage der offenen Fenster (HM) zu realisieren.

Die Verkettung von Strings zur Ausgabe habe ich schon üner die 99_myUtils ausprobieren können. Folgendes Läuft also:

sub
test1() {
my $test = "Kueche";
my $test = $test."Büro";
fhem "set androidTablet ttsSay $test";
}


Was nicht funktioniert ist die Prüfung auf einen Zustand eines Fensters. Im Folgenden kommt also nur Küche als Ergebnis:

sub
test2() {
my $test = "Kueche";
if( $value{Buero_Fenster_rechts} eq "gekippt" ) { my $test = $test."Büro Fenster rechts"; }
fhem "set androidTablet ttsSay $test";
}


Hat jemand eine Idee?

VG
Manuel
Titel: Antw:99_myUtils if-Problem
Beitrag von: Icinger am 03 März 2015, 19:58:52
Du musst den Namen des Devices in Anführugszeichen setzen:

$value{"Buero_Fenster_rechts"}

lg, Ici
Titel: Antw:99_myUtils if-Problem
Beitrag von: mele am 03 März 2015, 20:34:36
Das funktioniert leider weiterhin nicht:

sub
test2() {
my $test = "Kueche";
if( $value{"Buero_Fenster_rechts"} eq "gekippt" ){ my $test = $test."Büro Fenster rechts"; }
fhem "set androidTablet ttsSay $test";
}


"gekippt" kommt an, da folgende beide Befehle in der Befehlszeile das Ergebnis "gekippt" zeigen:

{$value{"Buero_Fenster_rechts"}}

{$value{Buero_Fenster_rechts}}

Leider waren es die Gänsefüßchen also nicht.

Hat noch jemand eine Idee?
Titel: Antw:99_myUtils if-Problem
Beitrag von: krikan am 03 März 2015, 20:38:36
commandref:
ZitatTo access the device states/attributes, use the following functions:

    Value(<devicename>)
    returns the state of the device (the string you see in paranthesis in the output of the list command).

also so etwas einbauen: Value("Buero_Fenster_rechts")
Titel: Antw:99_myUtils if-Problem
Beitrag von: mele am 03 März 2015, 20:50:23
Wie oben beschrieben, der Zustand wird korrekt ausgelesen, nur wird der "Then"-Teil nicht ausgeführt.
Titel: Antw:99_myUtils if-Problem
Beitrag von: krikan am 03 März 2015, 21:11:57
Zitat von: mele am 03 März 2015, 20:34:36
if( $value{"Buero_Fenster_rechts"} eq "gekippt" ){ my $test = $test."Büro Fenster rechts"; }
Dann lösche mal in obiger Zeile das "my"
Titel: Antw:99_myUtils if-Problem
Beitrag von: mele am 03 März 2015, 21:18:35
Super, das my war zuviel.

Folgender Code läuft:
sub
test2() {
my $test = "Kueche";
if( $value{"Buero_Fenster_rechts"} eq "gekippt" ){ $test = $test."Büro Fenster rechts"; }
fhem "set androidTablet ttsSay $test";
}


Vielen Dank!!!