[gelöst] DOIF Problem - Wetter von Sonos vorlesen lassen

Begonnen von StefanL, 29 September 2016, 21:29:26

Vorheriges Thema - Nächstes Thema

StefanL

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
NUC als Prduktivsystem,  Rasperry Pi mit FHEM zum Testen, diverse HM Komponenten, Arduino mit EthernetShield (China), AVR NetIO, NanoCUL, FHEMduino

Ellert

#1
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 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.

StefanL

#2
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
NUC als Prduktivsystem,  Rasperry Pi mit FHEM zum Testen, diverse HM Komponenten, Arduino mit EthernetShield (China), AVR NetIO, NanoCUL, FHEMduino

Otto123

#3
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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Ellert

Es könnte auch sein, dass keine Anführungszeichen erforderlich sind.

Otto123

stimmt geht ohne.

Allerdings wird unser Dialog jetzt etwas sinnentstellt, da Stefan seinen Beitrag oben nach unseren Beiträgen geändert hat  :o
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

StefanL

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
NUC als Prduktivsystem,  Rasperry Pi mit FHEM zum Testen, diverse HM Komponenten, Arduino mit EthernetShield (China), AVR NetIO, NanoCUL, FHEMduino

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Ellert

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.

Otto123

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)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz