Wunderground Wetter mit einfachem HM-Skript holen
Moderator: Co-Administratoren
Re: Wunderground Wetter mit einfachem HM-Skript holen
Hat schon jemand ein Script um nur die aktuellen Daten von Dark Sky abzufragen?
Ich brauche halt nur die aktuellen Daten, aber gerne etwas detaillierter als bei Open Weather Map.
Besten Dank!
Ich brauche halt nur die aktuellen Daten, aber gerne etwas detaillierter als bei Open Weather Map.
Besten Dank!
-
- Beiträge: 475
- Registriert: 05.12.2016, 19:04
- Hat sich bedankt: 31 Mal
- Danksagung erhalten: 4 Mal
Re: Wunderground Wetter mit einfachem HM-Skript holen
Wie bekommt man das? Was ist ein PWS Besitzer? Bei mir ist der Wunderground-Datenstrom am 5.3. abgestellt worden.
Viele Grüße,
debianatoe
debianatoe
-
- Beiträge: 636
- Registriert: 09.01.2013, 18:36
- Wohnort: Leichlingen
- Hat sich bedankt: 124 Mal
- Danksagung erhalten: 5 Mal
- Kontaktdaten:
Re: Wunderground Wetter mit einfachem HM-Skript holen
Bei mir auch. Ich arbeite derweil an einer Ersatzlösung mit openweathermap oder über Iobroker mit DasWetter-Adapter. Habe mich noch nicht entschieden...
Bernd
Re: Wunderground Wetter mit einfachem HM-Skript holen
Hallo,
PWS = personal weather station
Also für alle die User die eine Wetterstation haben und ihre Daten bei Wundeground zur Verfügung stellen.
Gruß Holger
PWS = personal weather station
Also für alle die User die eine Wetterstation haben und ihre Daten bei Wundeground zur Verfügung stellen.
Gruß Holger
-
- Beiträge: 475
- Registriert: 05.12.2016, 19:04
- Hat sich bedankt: 31 Mal
- Danksagung erhalten: 4 Mal
Re: Wunderground Wetter mit einfachem HM-Skript holen
Ich nutze für DarkSky dieses TCL-Skript, um aktuelle Daten zu bekommen:
Code: Alles auswählen
#!/bin/tclsh
load tclrega.so
#
# Read weather data <Ort>
# Update der Daten auf DarkSky erfolgt minuetlich
# Variablen:
# dsWetterBedingungen Zeichenkette summary
# dsTemperatur Zahl (°C) temperature
# dsWindgeschwindigkeit Zahl (km/h) windSpeed
# dsWindboeen Zahl (km/h) windGust
# dsWindGrad Zahl (°) windBearing 0°=Nord
# dsWolkendecke Zahl (%) cloudCover 100%=bedeckt / 0%=wolkenlos
# dsLuftdruck Zahl (mb) pressure
# dsUVIndex Zahl uvIndex
# dsLuftfeuchte Zahl (%) humidity
# dsNsIntens Zahl (mm/h) precipIntensity Niederschlagsintensitaet
# dsNsWahrsch Zahl (%) precipProbability Niederschlagswahrscheinlichkeit
#
# Achtung: 3 zusaetzliche Backslashes zum Entfluechten vor ? und 2x &
set url https://api.darksky.net/forecast/<APP-ID>/<GPS noerdliche Breite>,<GPS oestliche Laenge>\?exclude=hourly,daily\&units=ca\&lang=de
if { [catch {exec /usr/bin/wget --no-check-certificate -q -O /usr/local/addons/wetter/darksky.json $url} error] } {
puts stderr "Could not reach $url \n$error"
exit 1
}
set f [open "/usr/local/addons/wetter/darksky.json"]
set input [read $f]
close $f
#
# goto section with current observation
#
regexp ",\"currently\":{(.*?)},\"flags\":{" $input dummy current ; #get current observation
#
regexp "\"time\":(.*?)," $current dummy observation_time ; # letzter update
regexp "\"summary\":\"(.*?)\"," $current dummy weather ; # wetterbedingungen
regexp "\"precipIntensity\":(.*?)," $current dummy prec_int ; # Niederschlagsintensitaet # ZAHL
regexp "\"precipProbability\":(.*?)," $current dummy prec_pro ; # Niederschlagswahrscheinlichkeit # ZAHL
regexp "\"temperature\":(.*?)," $current dummy temp_c ; # temperatur # ZAHL
regexp "\"humidity\":(.*?)," $current dummy relative_humidity ; # Luftfeuchtigkeit
regexp "\"pressure\":(.*?)," $current dummy pressure_mb ; # Luftdruck
regexp "\"windSpeed\":(.*?)," $current dummy wind_kph ; # Windgeschwindigkeit # ZAHL
regexp "\"windGust\":(.*?)," $current dummy wind_gust_kph ; # Windboeengeschwindigkeit # ZAHL
regexp "\"windBearing\":(.*?)," $current dummy wind_dir ; # windrichtung
regexp "\"cloudCover\":(.*?)," $current dummy cloudCover ; # windbedingungen
regexp "\"uvIndex\":(.*?)," $current dummy uv_index ; # #ZAHL
# Wahrscheinlichkeit in % umrechnen:
set prec_pro [expr $prec_pro * 100.0]
# relative Luftfeuchtigkeit in % umrechnen:
set relative_humidity [expr $relative_humidity * 100.0]
# relative Himmelbedeckung durch Wolken in % umrechnen:
set cloudCover [expr $cloudCover * 100.0]
# Umlaute korrigieren
switch $weather {
"Leicht bewölkt" {set wind_dir "Leicht bewölkt"}
# "Südost" {set wind_dir "Südost"}
# "Süd" {set wind_dir "Süd"}
# "West-Südwest" {set wind_dir "West-Südwest"}
# "Süd-Südwest" {set wind_dir "Süd-Südwest"}
# "Ost-Südost" {set wind_dir "Ost-Südost"}
# "Süd-Südost" {set wind_dir "Süd-Südost"}
}
#
# set ReGaHss variables
#
set rega_cmd ""
append rega_cmd "var c0 = dom.GetObject('WetterAktualisierung');"
append rega_cmd "var c1 = dom.GetObject('dsWetterBedingungen');"
append rega_cmd "var c2 = dom.GetObject('dsTemperatur');"
append rega_cmd "var c3 = dom.GetObject('dsWindgeschwindigkeit');"
append rega_cmd "var c4 = dom.GetObject('dsWindboeen');"
append rega_cmd "var c5 = dom.GetObject('dsWindGrad');"
append rega_cmd "var c6 = dom.GetObject('dsWolkendecke');"
append rega_cmd "var c7 = dom.GetObject('dsLuftdruck');"
append rega_cmd "var c8 = dom.GetObject('dsUVIndex');"
append rega_cmd "var c9 = dom.GetObject('dsLuftfeuchte');"
append rega_cmd "var c10 = dom.GetObject('dsNsIntens');"
append rega_cmd "var c11 = dom.GetObject('dsNsWahrsch');"
#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 "c6.State('$cloudCover');"
append rega_cmd "c7.State('$pressure_mb');"
append rega_cmd "c8.State('$uv_index');"
append rega_cmd "c9.State('$relative_humidity');"
append rega_cmd "c10.State('$prec_int');"
append rega_cmd "c11.State('$prec_pro');"
append rega_cmd "dom.GetObject('CUxD.CUX2801001:1.LOGIT').State('dsWindgeschwindigkeit;'#$wind_kph);"
append rega_cmd "dom.GetObject('CUxD.CUX2801001:1.LOGIT').State('dsWindboeen;'#$wind_gust_kph);"
append rega_cmd "dom.GetObject('CUxD.CUX2801001:1.LOGIT').State('dsLuftdruck;'#$pressure_mb);"
append rega_cmd "dom.GetObject('CUxD.CUX2801001:1.LOGIT').State('dsNsIntens;'#$prec_int);"
append rega_cmd "dom.GetObject('CUxD.CUX2801001:1.LOGIT').State('dsNsWahrsch;'#$prec_pro);"
rega_script $rega_cmd
Es ist auch sehr individuell, wie weit die nächste Station des jeweiligen Anbieters vom eigenen Wohnort entfernt ist.
Viele Grüße,
debianatoe
debianatoe
Re: Wunderground Wetter mit einfachem HM-Skript holen
Ich hatte mal irgendwo gelesen, dass man die DarkSky API nur zum Abruf nutzen darf, wenn man selbst Wetterdaten einer eigenen Sation zur Verfügung stellt. Ist das noch aktuell?
him96
him96
Re: Wunderground Wetter mit einfachem HM-Skript holen
Hab es wieder gefunden. Wie ist das zu verstehen?
Fonzo hat geschrieben: ↑22.01.2019, 22:33Dir ist hoffentlich schon klar das Du damit gegen die Nutzungsbedingungen von Dark Sky verstößt.
direct your end-users to sign up for their own API account (The Dark Sky API not intended to be used directly by end-users)
Die API ist nicht dazu gedacht das jeder End User sich ein API Key holt und das ist auch explizit so in den Geschäftbedingungen erwähnt. Daher wenn man DarkSky nutzten will muss man eben eine Wetterdienst für andere kreieren über den dann gesamt abgerechnet wird. Wenn Du basteln willst nimm OpenWeather Map.
-
- Beiträge: 6741
- Registriert: 22.05.2012, 08:40
- System: CCU
- Hat sich bedankt: 25 Mal
- Danksagung erhalten: 484 Mal
Re: Wunderground Wetter mit einfachem HM-Skript holen
Na so wie es in den Nutzungsbedingungen der Dark Sky API steht. Wenn man einen Wetterdienst anbieten will kann man die API nutzten um Daten abzurufen, dabei zahlt man dann eben abhängig von der Anzahl der Aufrufe. Die API ist für Entwickler bzw. Unternehmen, die einen Wetterdienst erstellen wollen, nicht für Endkunden. Wenn man also etwas erstellt, bei dem es notwendig ist das sich jeder Endnutzer selber einen API Key holen muss, dann verstöst man gegen die Nutzungsbedingungen von Dark Sky.
-
- Beiträge: 475
- Registriert: 05.12.2016, 19:04
- Hat sich bedankt: 31 Mal
- Danksagung erhalten: 4 Mal
Re: Wunderground Wetter mit einfachem HM-Skript holen
Ich sehe mich hier ganz klar als Entwickler und nicht als Enduser.
Viele Grüße,
debianatoe
debianatoe