FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: djhans am 05 Februar 2014, 13:48:03

Titel: Frage zu Readings
Beitrag von: djhans am 05 Februar 2014, 13:48:03
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
Titel: Antw:Frage zu Readings
Beitrag von: justme1968 am 05 Februar 2014, 13:55:06
$temp = ReadingsVal("Wetter","fc1_low_c","unbekannt");

gruss
  andre
Titel: Antw:Frage zu Readings
Beitrag von: djhans am 05 Februar 2014, 18:30:55
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.
Titel: Antw:Frage zu Readings
Beitrag von: justme1968 am 05 Februar 2014, 18:38:02
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
Titel: Antw:Frage zu Readings
Beitrag von: djhans am 05 Februar 2014, 18:52:40
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
Titel: Antw:Frage zu Readings
Beitrag von: betateilchen am 05 Februar 2014, 20:06:25
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.