Wunderground Wetter mit einfachem HM-Skript holen

User stellen ihre Haussteuerung vor

Moderator: Co-Administratoren

gzi
Beiträge: 254
Registriert: 12.01.2015, 23:37

Re: Wunderground Wetter mit einfachem HM-Skript holen

Beitrag von gzi » 01.07.2018, 23:50

atem99 hat geschrieben:Halle in die Runde,

gibt es jetzt schon andere Möglichkeiten die Wetterdaten von anderen Anbietern z.B. Weathercloud durch ein Skript in das Homematicsystem einzulesen???
Schau Dir vielleicht DarkSky.net an: hat ein gut dokumentiertes API.
Hab es in diesem Projekt viewtopic.php?f=18&t=44166 verwendet. Liefert natürlich nicht nur Regenmengen, und nicht nur aktuelle Wetterwerte, sondern auch Forecasts. Über deren Qualität kann ich allerdings nichts sagen.

Gzi
HomeMatic Sicherheits-Kompendium - SCS, CCU, diverse HM-Aktoren und Sensoren, UPS, SMS, Voice, Mail, HTTPS-Interface usw. (sicheres(!) Port-Forwarding aus dem Internet zur CCU und LAN-Firewall via SCS,100% Datenkraken-frei. wahrscheinlich auch NSA-sicher :-) ) - Checkliste für Auswahl von IP Kameras - Vergleich aktueller HomeMatic Zentralen - und alle Antworten für das gesamte Universum und den Rest

grmpf
Beiträge: 436
Registriert: 21.01.2012, 12:16

Re: Wunderground Wetter mit einfachem HM-Skript holen

Beitrag von grmpf » 02.07.2018, 11:10

Also die detaillierte Beschreibung!

---- DER WSWIN-TEIL ---------
Im wswin-Verzeichnis ist die Datei custom.txt anzulegen:

Code: Alles auswählen

<!-- %customfile=hmwetter.xml% -->
<response>
	<wsversion>%ws_vers%</wsversion>
	<station_id>Wunderground: IXXXXXXX, AWEKAS: nnnnn</station_id>
	<current_observation>
		%unit_off%
		%alwaysseppoint_on%
		<observation_time>%ws_date%, %ws_time%</observation_time>
		<weather>%forecast_txt%</weather>
		<temp_c>%curval[2]%</temp_c>
		<relative_humidity>%curval[18]%</relative_humidity>
		<wind_string>%curval[35]% km/h aus %wind_txt%</wind_string>
		<wind_dir>%curval[36]% Grad / %wind_txt%</wind_dir>
		<wind_degrees>%curval[36]%</wind_degrees>
		<wind_kph>%curval[35]%</wind_kph>
		<wind_gust_kph>%curval[45]%</wind_gust_kph>
		<pressure_mb>%curval[33]%</pressure_mb>
		<pressure_trend>%ws_baro6h% hPa/6h</pressure_trend>
		<windchill_c>%curval[44]%</windchill_c>
	</current_observation>
</response>
Diese muss bei den Interneteinstellungen bei wswin aktiviert werden. Dann wird sie entsprechend erzeugt, d.h. die Variablen werden durch die Werte ersetzt und die Datei mit dem in Zeile 1 festgelegten Namen im Verzeichnis der Wetterdaten abgelegt. Was dann so aussieht:

Code: Alles auswählen

<response>
	<wsversion>V2.99.1 </wsversion>
	<station_id>Wunderground: x, AWEKAS: n</station_id>
	<current_observation>
		
		
		<observation_time>20.04.2018, 19:30</observation_time>
		<weather>stürmisch</weather>
		<temp_c>25.8</temp_c>
		<relative_humidity>49</relative_humidity>
		<wind_string>1.0 km/h aus O-NO</wind_string>
		<wind_dir>67 Grad / O-NO</wind_dir>
		<wind_degrees>67</wind_degrees>
		<wind_kph>1.0</wind_kph>
		<wind_gust_kph>2.1</wind_gust_kph>
		<pressure_mb>1018.6</pressure_mb>
		<pressure_trend>-7.2  hPa/6h</pressure_trend>
		<windchill_c>25.8</windchill_c>
	</current_observation>
</response>
---- DER WINSCP- und WINDOWS-AUFGABENPLANER-TEIL ---------
Nun benutze ich WINSCP als FTP-Programm. Hier kann man wunderbar ein Batch-Programm erzeugen welches die oben erzeugte Datei irgendwo hin überträgt. Bei mir ist das logischerweise das addons-Verzeichnis der CCU2. Die cmd und die WINSCP-Datei sehen so aus:

Code: Alles auswählen

"C:\Program Files (x86)\WinSCP\WinSCP.exe" /log="d:\-pfad-\WinSCP.log" /ini=nul /script="C:\-pfad-\wettertransfer.txt"
Die wettertransfer.txt (DIE WIRD AUS WINSCP GENERIERT!!!):

Code: Alles auswählen

open sftp://ccu2-user:ccu-passwort@192.168.nnn.nnn/ -hostkey="ecdsa-sha2-nistp256 256 ----key----=" -rawsettings FSProtocol=2

option confirm off
lcd D:\Internet\wetter\
cd /usr/local/addons/wetter

put hmwetter.xml

exit
Dieses FTP-Skript wird vom Windows-Aufgabenplaner alle nn Minuten aufgerufen und schreibt so die jeweilige Werte-XML-Datei auf die CCU2.

---- DER HOMEMATIC-TEIL ---------

Auf der CCU2 liegt im selben addons-Verzeichnis (hier addons/wetter) das tcl-Skript. Dieses wird dann alle nn Minuten über ein stinknormales WebUI-Programm aufgerufen und schreibt die Werte aus der XML-Datei die von wswin geliefert wird in die Systemvariablen der Homematic.

Code: Alles auswählen

    load tclrega.so
    # Variablen:
	#	Wetter-Aktualisierung		Zeichenkette
	#	Wetter-Bedingungen			Zeichenkette
	#	Wetter-Temperatur			Zahl (°C)
	#	Wetter-Windgeschwindigkeit	Zahl (km/h)
	#	Wetter-Windboeen			Zahl (km/h)
	#	Wetter-Windrichtung			Zeichenkette
	#	Wetter-Windbedingungen		Zeichenkette
	#	Wetter-Luftdruck			Zahl (mb)
	#	Wetter-Luftdrucktrend		Zeichenkette
	#	Wetter-Luftfeuchte			Zeichenkette

	set pressure_mb 0

    # Kein Aufruf von WUG mehr! Die Daten kommen direkt von PC-Wetterstation in der Datei hmwetter.xml

    set f [open "/usr/local/addons/wetter/hmwetter.xml"]
    set input [read $f]
    close $f

    #
    # goto section with current observation
    #
    regexp "<current_observation>(.*?)</current_observation>" $input dummy current  ; #get current observation
    #
    regexp "<observation_time>(.*?)</observation_time>" $current dummy observation_time  ; # letzter update
    regexp "<weather>(.*?)</weather>" $current dummy weather  ; # wetterbedingungen
    regexp "<temp_c>(.*?)</temp_c>" $current dummy temp_c  ; # temperatur # ZAHL
    regexp "<wind_kph>(.*?)</wind_kph>" $current dummy wind_kph  ; # Windgeschwindigkeit # ZAHL
    regexp "<wind_gust_kph>(.*?)</wind_gust_kph>" $current dummy wind_gust_kph  ; # Windboeengeschwindigkeit # ZAHL
    regexp "<wind_dir>(.*?)</wind_dir>" $current dummy wind_dir  ; # windrichtung
    regexp "<wind_string>(.*?)</wind_string>" $current dummy wind_string  ; # windbedingungen
    regexp "<pressure_mb>(.*?)</pressure_mb>" $current dummy pressure_mb  ; # Luftdruck #ZAHL
    regexp "<pressure_trend>(.*?)</pressure_trend>" $current dummy pressure_trend  ; # Luftdrucktrend
    regexp "<relative_humidity>(.*?)</relative_humidity>" $current dummy relative_humidity  ; # Luftfeuchte

	# Abfrage ob sinnvolle Antwort von API geliefert wurde
if {$pressure_mb != 0} {

    #
    # set ReGaHss variables
    #
    set rega_cmd ""
    append rega_cmd "var c0 = dom.GetObject('Wetter-Aktualisierung');"
    append rega_cmd "var c1 = dom.GetObject('Wetter-Bedingungen');"
    append rega_cmd "var c2 = dom.GetObject('Wetter-Temperatur');"
    append rega_cmd "var c3 = dom.GetObject('Wetter-Windgeschwindigkeit');"
    append rega_cmd "var c4 = dom.GetObject('Wetter-Windboeen');"
    append rega_cmd "var c5 = dom.GetObject('Wetter-Windrichtung');"
    append rega_cmd "var c7 = dom.GetObject('Wetter-Luftdruck');"
    append rega_cmd "var c8 = dom.GetObject('Wetter-Luftdrucktrend');"
    append rega_cmd "var c9 = dom.GetObject('Wetter-Luftfeuchte');"
    append rega_cmd "c0.State('$observation_time');"
    append rega_cmd "c1.State('$weather');"
    append rega_cmd "c2.State('$temp_c');"
    append rega_cmd "c3.State('$wind_kph');"
    append rega_cmd "c4.State('$wind_gust_kph');"
    append rega_cmd "c5.State('$wind_dir');"
    append rega_cmd "c7.State('$pressure_mb');"
    append rega_cmd "c8.State('$pressure_trend');"
    append rega_cmd "c9.State('$relative_humidity');"

    rega_script $rega_cmd
}
Gert
________________________________
CCU2, 100 Geräte, 140 Kanäle, nur Funk, hoher WAF trotz analogem Wife

ThomasBln
Beiträge: 16
Registriert: 08.11.2009, 21:25

Re: Wunderground Wetter mit einfachem HM-Skript holen

Beitrag von ThomasBln » 17.08.2018, 13:25

SadWombat hat geschrieben:
30.06.2018, 11:23
Ich habe hier zwei Skripte geschrieben, für AccuWeather und für OpenWeatherMap:
http://www.smarthome.kuklin.de/2018/06/ ... homematic/
Hallo,
zunächst mal vielen Dank für die Bereitstellung der beiden Scripte für den Empfang von Wetterdaten von Accuweather und OpenWeatherMap !
Habe die Accuweather-Thematik auf meinem Raspberrymatic umgesetzt. Allerdings musste ich ID und API-KKEY im Script nicht so eintragen, wie in der Anleitung beschrieben, sondern:

string wetterstation_id = 2601558;
string api_key = "xyz123usw";


Lasse ich die " " im API-Key weg, gibt es sofort eine Fehlermeldung wenn ich auf "Fehlerprüfung" gehe. Also setze ich den API-KEY in " ". Soweit läuft alles, nur liefert Accuweather leider oft falsche Werte bzw. werden die Werte stundenlang nicht aktualisiert. Aufgefallen ist mir das bei Max. Temp. und Min. Temp.
Jetzt habe ich mich mal mit OpenweatherMap beschäftigt. Auch hier muss ich (hingegen der Beschreibung) den API-KEY in " " setzen, da das Script sonst nicht läuft. Allerdings bekomme ich von OpenweatherMap überhaupt keine Daten. Habe das Script mal ca. alle 30 min laufen lassen, aber keine der Variablen wird aktualisiert. Vielleicht eine Idee, woran das liegen könnte?
Gruß und Dank im Voraus
Thomas

DrDrosselklappe
Beiträge: 3
Registriert: 21.08.2018, 09:13

Re: Wunderground Wetter mit einfachem HM-Skript holen

Beitrag von DrDrosselklappe » 21.08.2018, 09:37

Hallo Thomas,

bin neu hier und mit den Gepflogenheiten von Foren nicht so vertraut. Insofern seien mir Anfängerfehler verziehen...

Hast du mittlerweile eine der beiden Wetter-API's zum laufen gebracht ? Bei mir funktionieren beide Varianten nicht (Accuweather und OWM). Ich habe auch alles so gemacht wie auf der Seite von SadWombat beschrieben, und trotzdem funktioniert nichts !

Ich habe mal einige Favoriten angelegt (SYstemvariablen und jeweils das Programm "Accuweather" und "OWM"). Beim Ausführen der Accuweather App werden ja wenigstens die Systemvariablen angesprochen (laut meiner @home i-Phone App ändert sich dann die Zeit für "zuletzt ausgeführt am"). Beim ausführen des OWM Programms verändern sich ja noch nicht einmal die Variablen. Da ja SadWombat für beide Programme die gleiche Bezeichnung für die Variablen genommen hat, sollten diese aber auch für beide Apps funktionieren ?!

Ich bin echt mit meinem Latein am Ende. Auch dein Hinweis mit den " " und ' ' und ohne - alles mal ausprobiert - nüscht jeht ! :mrgreen:

Die Wetterstation von ELV ist meinem Empfinden nach schlecht verarbeitet und ihr Geld nicht wert.

VG
Christian

ThomasBln
Beiträge: 16
Registriert: 08.11.2009, 21:25

Re: Wunderground Wetter mit einfachem HM-Skript holen

Beitrag von ThomasBln » 21.08.2018, 13:35

Hallo Christian,
also Accuweather läuft bei mir, wenn auch manchmal zu einigen Variablen Müll von Accuweather geliefert wird, aber das ist ein anderes Thema. Z.B. steht bei mir in der Variable "Wetter nachtsüber" oft nur eine Ziffer, zur Zeit gerade eine "1" eigentlich gehört das "Klar" hinein. Ein paar Stunden später kann das allerdings wieder anders sein und es steht ein normaler Text in der Variable. Übrigens ist meiner Meinung nach die Variable "Wetter nachtsüber" in der Beschreibung falsch dargestellt. Muss m.E. Typ Zeichenkette sein. Ist natürlich keine Erklärung dafür, dass bei Dir die Variablen nicht gefüllt werden. Hast Du die Variablen auch wirklich korrekt angelegt? Auch keine Einheiten bei den Variablen Typ Zahl verwendet? Läuft das Script höchstens jede Stunde ein mal? Vielleicht solltest Du einfach mal eine andere Stations-ID verwenden. Bei mir laufen z.B. 167775 und 167788. Im Script habe ich die Stations-ID ohne " ", den API-Key allerdings mit " " eingetragen.

Hast Du mal im Browser direkt

Code: Alles auswählen

http://dataservice.accuweather.com/currentconditions/v1/STATION-ID?apikey=DEIN API-KEY
eingegeben und Daten bekommen?

OWM läuft bei mir nach wie vor nicht. Irgendwas stimmt da im Script nicht. Leider bin zu wenig Script-Experte, um den Fehler zu finden.

Grüße.....

DrDrosselklappe
Beiträge: 3
Registriert: 21.08.2018, 09:13

Re: Wunderground Wetter mit einfachem HM-Skript holen

Beitrag von DrDrosselklappe » 21.08.2018, 15:43

Hi Thomas,

Danke für die rasche Antwort !

Wenn ich deinen Link eingebe, kommt eine leere Seite mit diesem Fließtext: [{"LocalObservationDateTime":"2018-08-21T15:25:00+02:00","EpochTime":1534857900,"WeatherText":"Mostly sunny","WeatherIcon":2,"IsDayTime":true,"Temperature":{"Metric":{"Value":23.1,"Unit":"C","UnitType":17},"Imperial":{"Value":74.0,"Unit":"F","UnitType":18}},"MobileLink":"http://m.accuweather.com/en/de/berlin/1 ... lang=en-us"}]

Sieht erstmal ok aus, oder ?

Bei den Variablen bin ich mir 100% sicher, da ich diese von der Seite einzeln abkopiert habe... :mrgreen:

Mal als Beispiel die Systemvariable Temperatur : Temperatur [C°] => Zahl => Beschreibung "BlaBla" => Kanalzuordnung ohne

Da kann man doch eigentlich nicht viel falsch machen... :D

Und selbst wenn ich bei der ein oder anderen Variable einen Fehler in der Syntax oder im Format gemacht haben sollte, müsste doch wenigstens ein paar Werte ausgespuckt werden, oder nicht ? Die CCU sagt bei der Fehlerprüfung "kein Fehler".

Das muss doch irgendwas mit diesem Cux-Dämon auf sich haben ?!

ThomasBln
Beiträge: 16
Registriert: 08.11.2009, 21:25

Re: Wunderground Wetter mit einfachem HM-Skript holen

Beitrag von ThomasBln » 21.08.2018, 18:09

Hi Christian,

stimmt, viel kann man bei den Variablen nicht falsch machen und ein paar Werte müssten sich füllen, auch wenn irgendwelche Sv falsch sind. Sieht man ja daran, dass man nicht alle Sv anlegen muss. Das Script muss trotzdem laufen und die bestehenden Sv füllen.
Die Anzeige bei Dir im Browser nach Eingabe des Links erscheint mir auch ok.

Mit dem CuxD ist natürlich eine Idee. Hast Du mal einen Restart des CuxD ausgeführt? Das Gerät "CUX2801001 (X) HM-RC-19 CUX2801001 • KEY" ist korrekt auf der CCU angelegt (so heißt es jedenfalls bei mir)? Wenn ich dann in der HM Web-Ui auf Einstellungen>Geräte gehe und dort in der Gruppe HM-RC-19 CUX2801001 das Gerät HM-RC-19 CUX2801001:1 unter "Einstellen" anschaue, steht oben unter "KEY|CMD_SHORT" diese wget-Anweisung zum Wetterdienst drin. Je nach dem, welches Scrip zuletzt lief, Accuweather oder OWM

DrDrosselklappe
Beiträge: 3
Registriert: 21.08.2018, 09:13

Re: Wunderground Wetter mit einfachem HM-Skript holen

Beitrag von DrDrosselklappe » 21.08.2018, 18:41

Also bei mir legt CUX-der alte Dämon folgendes an:

- Name: HM-RC-19 CUX2801001
- Typenbezeichnung: HM-RC-19
- Bezeichnung: Funk-Fernbedienung 19 Tasten
- Seriennummer: CUX2801001
- Interface / Kategorie: CUxD
- Übertragungsmodus: Standard

Unter Kanal 1 - einstellen - KEY/CMD_Short steht: wget -q-O 'http://dataservice.accuweather.com/fore ... etric=true'

Wenn ich auf die CUx-Daemon Oberfläche gehe und den Reiter Info öffne, sehe ich auch 2 Zeilen mit Abfragen der CCU2.

Ich weiß es nicht. Muss ich mir halt doch Hardware kaufen... :evil:

ThomasBln
Beiträge: 16
Registriert: 08.11.2009, 21:25

Re: Wunderground Wetter mit einfachem HM-Skript holen

Beitrag von ThomasBln » 21.08.2018, 19:05

Hm...scheint ja beim guten, alten Dämon auch alles richtig zu sein :P Ratlosigkeit macht sich breit. Na, wie Du schon geschrieben hast. Die Wetterstation von EQ3 (ELV) finde ich auch zu teuer. Ich brauche ohnehin keine. Das mit den Wetterscripten ist bei mir eher ein bissel Spielerei.
Musst mal schauen, gibt doch hier auch so ein Selbstbau-Projekt einer Wetterstation. Hast bestimmt schon gesehen.

Frone
Beiträge: 3
Registriert: 28.07.2014, 21:26

Re: Wunderground Wetter mit einfachem HM-Skript holen

Beitrag von Frone » 02.09.2018, 14:03

Hallo Zusammen,

ich nutze das Wunderground script schon sehr lange und bin sehr zufrieden.

Doch seit dem 16.08. brechen meine Abfragen ein, siehe Wunderground API Bild unten.
Wer kennt dieses Phänomen?

Mein AmbientWeather ist mit der Version 4.4 auf dem neusten Stand.
Auf der Wunderground-Seite sind meine Daten immer aktuell.
Wunderground.png

Antworten

Zurück zu „Projektvorstellungen“