Hallo, nachdem ich fast den ganzen abend probiert habe und es doch nicht geschafft habe muss ich mich doch mal an euch wenden.
Nach lesen der commandref und Suche ( Google ) und im Forum komm ich nun nicht mehr weiter.
Ich möchte von meinen Sonos Player um 7 Uhr das Akutelle Wetter vorlesen lassen mit folgenden Code
define di_sonos_wetter DOIF ([07:00]) ({my $temp = "Außentemperatur: " . ReadingsVal("wetter_ebersdorf","temperature","unbekannt") . \ " °C. Höchsttemperatur: " . ReadingsVal("Agrarwetter","fc1_high_c","unbekannt") . " °."; \ fhem "set Sonos_Wohnzimmer Speak 30 de $temp"})
Ich bekomme aber im Log die Meldung:
[color=red]DOIF Sonos_wetter error: {My $temp = "Außentemperatur: " . ReadingsVal("wetter_ebersdorf","temperature","unbekannt") . \ " °C. Höchsttemperatur: " . ReadingsVal("Agrarwetter","fc1_high_c","unbekannt") . " °."; \ fhem "set Sonos_Wohnzimmer Speak 30 de $temp"}: Unknown command {My, try help. Unknown command \, try help. [/color]
Habe schon versucht Klammern zu setzten aber komme wirklich nicht weiter
Schon mal vielen Dank für eure Unterstützung
Gruß Stefan
Warum versuchst Du Klammern zu setzen, wenn die Fehlermeldung doch sagt, dass das Schlüsselwort, mit dem Du die Variablendeklaration durchführen möchtest, von Perl (http://perldoc.perl.org/functions/my.html) nicht erkannt wird? ;)
Übrigens: Statt "Außentemperatur: " . ReadingsVal("wetter_ebersdorf","temperature","unbekannt")
könntest Du
"Außentemperatur: [wetter_ebersdorf:temperature]"
schreiben, falls ein Defaultwert reicht (Attribut notexist). Und letztlich könntest Du alles in einen set-Befehl packen, ohne auf die Perl-Ebene zu wechseln.
Hallo Ellert,
vielen Dank für den Schubs in die richtige Richtung
Hab den Code umgebaut Danke
([12:48|5]) (set Sonos_Wohnzimmer Speak 30 de "Außentemperatur: [wetter_ebersdorf:temperature]" "Windgeschwindigkeit: [wetter_ebersdorf:windSpeed])
Nur ein kleines Problem habe ich noch. Ich möchte vom Proplanta Modul das Reading fc1_high_c auslesen. Schon mal danke für die Unterstützung
Danke für deine Bemühung
Stefan
Hallo Stefan,
Anführungszeichen: vorne zu viel, hinten an der falschen Stelle:
([12:28|5]) (set Sonos_Wohnzimmer Speak 30 de "Außentemperatur: [wetter_ebersdorf:temperature]" "Höchsttemperatur: [Agrarwetter:fc1_high_c]")
Gruß Otto
Es könnte auch sein, dass keine Anführungszeichen erforderlich sind.
stimmt geht ohne.
Allerdings wird unser Dialog jetzt etwas sinnentstellt, da Stefan seinen Beitrag oben nach unseren Beiträgen geändert hat :o
Sorry für das Ändern
Nun passt aber alles wie es Soll !!! 8)
Anbei mal die komplette DEF vom DOIF:
([07:15|5]) (set Sonos_Wohnzimmer Speak 35 de "Guten Morgen heute ist der: [Wetter:fc1_date] "Außentemperatur: [wetter_ebersdorf:temperature] Grad." "Windgeschwindigkeit: [wetter_ebersdorf:windSpeed] kmh "Höchsttemperatur: [Wetter:fc10_high_c]" Grad." [Wetter:fc10_condition] "Unwetterwarnung: [UWZ:WarnUWZLevel_Color])
Vielen Danke euch für die Hilfe. Langsam verstehe ich das DOIF :D
Hat aber eigentlich alles gar nichts mit DOIF zu tun ;)
set Sonos_Wohnzimmer Speak 35 de Guten Morgen heute ist der: [Wetter:fc1_date] Außentemperatur: [wetter_ebersdorf:temperature] Grad. Windgeschwindigkeit: [wetter_ebersdorf:windSpeed] kmh Höchsttemperatur: [Wetter:fc10_high_c] Grad. [Wetter:fc10_condition] Unwetterwarnung: [UWZ:WarnUWZLevel_Color]
Die ganze Zeile funktioniert einfach so,die kannst Du oben in die FHEM Kommandozeile eingeben (kopieren).
Und lass die Anführungszeichen in dem Fall weg, es geht ohne und in deinem Code fehlt eins -> es sind 9 :-X
Gruß Otto
Zitat von: Otto123 am 30 September 2016, 13:11:21
stimmt geht ohne.
Allerdings wird unser Dialog jetzt etwas sinnentstellt, da Stefan seinen Beitrag oben nach unseren Beiträgen geändert hat :o
Ja, aber ich kenne das Sonos-Modul nicht, hätte sein können, dass Anführungszeichen erforderlich sind.
Zitat von: Ellert am 30 September 2016, 15:18:47
Ja, aber ich kenne das Sonos-Modul nicht, hätte sein können, dass Anführungszeichen erforderlich sind.
Ich habe es und mit Sonos getestet 8)