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
Du musst den Namen des Devices in Anführugszeichen setzen:
$value{"Buero_Fenster_rechts"}
lg, Ici
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?
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")
Wie oben beschrieben, der Zustand wird korrekt ausgelesen, nur wird der "Then"-Teil nicht ausgeführt.
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"
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!!!