Hauptmenü

Frage zu Readings

Begonnen von djhans, 05 Februar 2014, 13:48:03

Vorheriges Thema - Nächstes Thema

djhans

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

justme1968

$temp = ReadingsVal("Wetter","fc1_low_c","unbekannt");

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

djhans

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.

justme1968

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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

djhans

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

betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!