TCLScript:Weather

Aus Wikimatic
Wechseln zu: Navigation, Suche

Beschreibung

Die Datei lädt Wetterdaten aus dem Internet und schreibt aktuelle Werte in Systemvariablen. Wenn das lcd_msg-Addon installiert ist werden die Daten und die Prognose für den nächsten Tag auch auf dem Display der CCU dargestellt. Als Server wird der Wetterdaten-Dienst von google verwendet.

Neu ab Version 1.1:
Es kann als Parameter angegeben werden, wann auf die Vorhersage des nächsten Tages gewechselt werden soll (bisher immer um Mitternacht). Als Parameter wird die Stunde angegeben, ab der die Vorhersage des nächsten Tages anstatt der Vorhersage für den aktuellen Tag angezeigt werden soll, bspw. kann man "8" übergeben, um bis 8 Uhr morgens noch die Vorhersage des aktuellen Tages anzuzeigen; ab (einschließlich) 8 Uhr wird dann wie geohnt in der unteren Vorhersagen-Zeile der nächste Tag vorhergesagt. Wird der Parameter nicht angegeben, wird 12 (Mittag) als Standard gesetzt. Dieser Parameter hat nur Bedeutung in Verbindung mit dem lcd_msg-Addon.

Datei:Weather.tcl

Verwendung

Folgende Systemvariablen können angelegt werden (nicht benötigte einfach weglassen; die Variablen müssen von Hand angelegt werden):

Variablen-Name Variablentyp Minimal Maxinmal Maßeinheit Beispiel-Wert
A-Temperatur Zahl -50 +100 °C 13.00 °C
A-Luftfeuchtigkeit Zahl 0 100 (nicht 99) % 88.00 %
Windgeschwindigkeit Zahl 0 500 km/h 23.00 km/h
Windrichtung Zeichenkette SW
Wetterbedingung Zeichenkette Meistens bewölkt

Auf dem CCU-Display werden folgende Informationen angezeigt:

<A-Temperatur>°C <A-Luftfeuchtigkeit>% <Windgeschwindigkeit><Windrichtung>
<Wetterbedingung-Vorhersage> <Tiefsttemperatur-Vorhersage>/<Höchsttemperatur-Vorhersage>
  • Die Luftfeuchtigkeit wird bei Platzmangel auf der Anzeige von 100% auf 99% reduziert (die Systemvariable wird nicht reduziert).
  • Die Windrichtung wird bei weiterem Platzmangel auf der Anzeige auf eine Stelle reduziert (die Systemvariable wird nicht reduziert).
  • Die Daten werden auch dann auf dem Display angezeigt, wenn die Systemvariablen nicht existieren.
  • Die Daten werden für 4 Stunden mit der Gruppe "wetter" angezeigt. Beim Schreiben neuer Daten wird für 4 Sekunden die Service-Led eingeschaltet.

Aufruf

tclsh weather.tcl <PLZ> [<Vorhersagen-Wechsel-Stunde>]

Parameter

  • <PLZ> die (deutsche) Postleitzahl, für die die Wetterdaten abgerufen werden sollen.
  • <Vorhersagen-Wechsel-Stunde> gibt die Stunde an, ab der auf Vorhersage für den nächsten Tag gewechselt werden soll. Werte: 0-23.

Deaktivierung Google-API

Die im Skript benutzte Google-API wurde im August 2012 deaktiviert. Das Skript liefert somit keine aktuellen Daten mehr.

Workaround:

  • Die grundlegende Technologie von "Seite aufrufen" und "Werte im Quelltext finden" lässt sich theoretisch für jede standardisierte Wetterseite anwenden.
  • Beispiel für Yahoo-Wetter in Leipzig: ht tp://weather.yahooapis.com/forecastrss?w=20065483&u=c
  • Dokumentation Yahoo-Wetter: ht tp://developer.yahoo.com/weather/
  • Beispiel zum Extrahieren der aktuellen Temperatur aus einem Text der Variable $xconditions in eine Variable "xTemp", wobei die Temperaturzahl zwischen den Textteilen temp=" und " date= steht:
 regexp {temp="(.*)"  date=} $xconditions dummyfull xTemp

Das TCL-Script müsste entsprechend für die zu nutzende Internet-Seite umgeschrieben werden. Aus Performancegründen empfehlen sich insbesondere kürzere Seiten wie die gezeigte.


an yahoo weather API angepasste Version

download hier: [ht tp://edle.dyndns.org/downloads/weather.tcl]
Aufruf: tclsh weather.tcl <woeid>
default woeid (wenn keine angegeben): Frankfurt = 650272
weitere Features in Kurzform:
-Namen der Systemvariablen bleiben unverändert
-Uebersetzung der yahoo condition codes ins Deutsche
-Umrechnung yahoo Windrichtung (grad) in dt. Abkuerzung lt. Windrose (0=N,45=NO, ... 292.5=NW
-Vorhersage ist nun fix immer für den nächsten Tag (Parameter <Vorhersagen-Wechsel-Stunde> entfällt)