Hallo,
ich habe das Modul Weather installiert und möchte nun die Temperatur (get Wetter fc1_low_c) abfragen. Die Funktion liefert aktuell diesen Wert:
Wetter fc1_low_c => 5
Nun möchte ich die Temperaur (5 Grad) als Sprachausgabe morgens an meinen Sonos senden.Dazu habe ich Folgendes gemacht:
define wakeup2 at *07:00:00 \
{ my $temp= fhem "get Wetter fc1_low_c"; fhem "set Sonos_Schlafzimmer Speak $temp"}
{ my $temp= fhem "get Wetter fc1_low_c"}
im WebInterface von fhem liefert den o.a. Wert, und
{fhem "set Sonos_Schlafzimmer Speak Hallo"}
funktioniert auch. Leider aber nicht im Zusammenhang mit der Variablen $temp.
Wo liegt mein Gedankenfehler, und was wird in temp$ gespeichert, nur der Wert 5 oder der gesammte Ausdruck?
djhans
$temp = ReadingsVal("Wetter","fc1_low_c","unbekannt");
gruss
andre
Hi,
ok! Die nachfolgende Zeile liefert mir tatsächlich nur die "5".
{ my $temp = ReadingsVal("Wetter","fc1_low_c","unbekannt")
Ist das "unbekannt" nur ein Platzhalter/Dummy?
Allerdings funktioniert mein Code noch nicht.
{ my $temp = ReadingsVal("Wetter","fc1_low_c","unbekannt"); fhem "set Sonos_Bad Speak 20 de $temp"}
Da stimmt was mit der Syntax nicht. Ich habe gelernt, das perl Code immer in {} kommt. Un das man fhem Commandos mit dem Schlüsselwort "fhem" einleitet.
Was mache ich noch falsch?
Danke,
djhans
Das liefert jetzt den eigentlichen Wert.
unbekannt ist der default falls es das reading nicht gibt.
was steht im log? je nach dem wo du die zeile eingibst musst du das ;; verdoppeln.
gruss
andre
Hi,
habe es einfach im Webinterface in der obersten Befehlszeile eingegeben.
Die Antwort von fhem:
Unknown command {, try help.
Unknown command fhem, try help.
Mit dem doppelten Semikolon geht es jetzt aber, ich dachte, das braucht man nur in den cfg-Dateien...
Danke,
Christian
fhem() in die Kommandozeile einzugeben macht keinen Sinn, denn die Befehlszeile ist ja bereits fhem ;)
In der KOmmandozeile kannst Du einfach { ReadingsVal(<hier kommt der Inhalt hin>) } eingeben, um die Funktion aufzurufen.