Seite 19 von 23
Re: Aktuelles Wetter über wunderground.com
Verfasst: 03.07.2015, 09:59
von dtp
Nur mal eine Frage. Habe aber aus Zeitgründen nicht den gesamten Thread lesen können, daher verzeihe man mir, wenn die Frage bereits gestellt wurde.
Gibt es für Wunderground ggf. schon einen entsprechenden Adapter für DashUI bzw. ioBroker? Nutze aktuell yr.no, und das Ding ist sowas von ungenau mit täglich mehreren Grad Abweichung vom realen Wert.
Wunderground.com wird z.B. auch von
PocketInformant genutzt, und da sind die mir angezeigten Werte und Prognosen ziemlich gut.
Gruß,
Thorsten
Re: Aktuelles Wetter über wunderground.com
Verfasst: 08.08.2015, 09:26
von pruse
Hallo,
habe das Skript für Wunderground über API in Der CCU.Wie bekomme ich zusätzlich den Niederschlag in der CCU.
Habe dafür das Skript eingefügt und eine Systemvariable W_Niederschlag_heute vom Typ Zahl angelegt aber es werden keine Werte hinter der Kommastelle angezeigt.
Code: Alles auswählen
string word = "precip_today_metric";
integer word_laenge = word.Length();
integer word_position = wetter_xml.Find(word);
string daten = wetter_xml.Substr((word_position + word_laenge +1), 100);
integer word_position = daten.Find(word);
daten = daten.Substr(0, (word_position -2));
real zahl = daten.ToFloat();
dom.GetObject("W_Niederschlag_heute").State(zahl);
Re: Aktuelles Wetter über wunderground.com
Verfasst: 08.08.2015, 17:28
von papi
Zunächst mal sollte sichergestellt sein, dass die angezapfte Wetterstation auch wirklich Niederschlag erfasst.
Ich musste heute meine Station wechseln, da die bislang von mir Genutzte offenbar den Geist aufgegeben hat.
Dabei musste ich eine ganze Weile suchen, bis ich eine Alternative gefunden habe, die auch alle von mir geforderten Werte, vor allem in angemessenen Zeitabständen, liefern kann.
Re: Aktuelles Wetter über wunderground.com
Verfasst: 26.08.2015, 13:36
von Pharao50
Guten Tag zusammen,
aus Zeitgründen konnte ich leider nicht den ganzen Thread lesen können.
Im Moment möchte ich auch das wunderground Wetter in meine CCU2 einbinden.
Leider scheitere ich berets beim füllen der Variablen.
Habe folgendes Script verwendet:
Variablen:
Code: Alles auswählen
!Stand 03.04.2014 http://homematic-forum.de/forum/viewtopic.php?f=31&t=17209
!zuerst folgende Systemvariablen anlegen
!Achtung: keine vergessen und exakte Schreibweise mit Drag&Drop
!W_Station Zeichenkette
!W_Aktualisierung Zeichenkette
!W_Bedingungen Zeichenkette
!W_Temperatur Zahl °C
!W_Luftfeuchte Zahl %
!W_Windbedingungen Zeichenkette
!W_Windrichtung Zeichenkette
!W_Windrichtg Zahl °
!W_Windgeschwindigkeit Zahl km/h
!W_Windboeen Zahl km/h
!W_Luftdruck Zahl mb
!W_Luftdrucktrend Zeichenkette
!W_Taupunkt Zahl °C
!W_UV Zeichenkette
Script:
Code: Alles auswählen
var url = "http://api.wunderground.com/api/5dc438c76a265174/conditions/lang:DL/q/Germany/Neuwied.xml";
!hier ist die Abfrage mit CUxD
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string wetter_xml = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
!hier ist die Abfrage mit system.Exec
!string stdout;
!string stderr;
!system.Exec("wget -q -O - '"#url#"'", &stdout, &stderr);
!WriteLine(stdout);
!string wetter_xml = stdout;
!WriteLine(wetter_xml);
!Beim XML-File den ueberfluessigen Header entfernen
integer laenge = wetter_xml.Length();
integer wort_position = wetter_xml.Find("display_location");
wetter_xml = wetter_xml.Substr(wort_position, (laenge - wort_position));
!WriteLine(wetter_xml);
!Daten mit Suchworten aus XML-File ausfiltern:
!string word = "full";
string word = "city";
integer word_laenge = word.Length();
integer word_position = wetter_xml.Find(word);
string daten = wetter_xml.Substr((word_position + word_laenge +1), 100);
integer word_position = daten.Find(word);
daten = daten.Substr(0, (word_position -2));
dom.GetObject("W_Station").State(daten);
!string word = "observation_time";
string word = "observation_time_rfc822";
integer word_laenge = word.Length();
integer word_position = wetter_xml.Find(word);
string daten = wetter_xml.Substr((word_position + word_laenge +1), 100);
integer word_position = daten.Find(word);
!daten = daten.Substr(0, (word_position -2));
daten = daten.Substr(0, (word_position -11));
dom.GetObject("W_Aktualisierung").State(daten);
string word = "weather";
integer word_laenge = word.Length();
integer word_position = wetter_xml.Find(word);
string daten = wetter_xml.Substr((word_position + word_laenge +1), 100);
integer word_position = daten.Find(word);
daten = daten.Substr(0, (word_position -2));
dom.GetObject("W_Bedingungen").State(daten);
string word = "temp_c";
integer word_laenge = word.Length();
integer word_position = wetter_xml.Find(word);
string daten = wetter_xml.Substr((word_position + word_laenge +1), 100);
integer word_position = daten.Find(word);
daten = daten.Substr(0, (word_position -2));
real zahl = daten.ToFloat();
dom.GetObject("W_Temperatur").State(zahl);
string word = "relative_humidity";
integer word_laenge = word.Length();
integer word_position = wetter_xml.Find(word);
string daten = wetter_xml.Substr((word_position + word_laenge +1), 100);
integer word_position = daten.Find(word);
daten = daten.Substr(0, (word_position -2));
integer zahl = daten.ToFloat();
dom.GetObject("W_Luftfeuchte").State(zahl);
string word = "wind_string";
integer word_laenge = word.Length();
integer word_position = wetter_xml.Find(word);
string daten = wetter_xml.Substr((word_position + word_laenge +1), 100);
integer word_position = daten.Find(word);
daten = daten.Substr(0, (word_position -2));
dom.GetObject("W_Windbedingungen").State(daten);
string word = "wind_dir";
integer word_laenge = word.Length();
integer word_position = wetter_xml.Find(word);
string daten = wetter_xml.Substr((word_position + word_laenge +1), 100);
integer word_position = daten.Find(word);
daten = daten.Substr(0, (word_position -2));
word_laenge =daten.Length();
string anfangsbuchstabe = daten.Substr(0,1);
! Umlaute korrigieren
!
! N # Nord ***
if (anfangsbuchstabe == "N") {
!
if (daten == "Nordwest") {daten = "Nord-West" ;}
}
! S # Süd ***
if (anfangsbuchstabe == "S") {
! 4 # Süd
if (word_laenge == 4) {daten = "Süd";}
! 8 # Südwest
if (word_laenge == 8) {daten = "Süd-West";}
! 12 # Süd-Südost
if (word_laenge == 12) {daten = "Süd-Süd-Ost" ;}
! 13
if (word_laenge == 13) {daten = "Süd-Süd-West" ;}
}
! W # Westen
if (anfangsbuchstabe == "W") {
! 13 # West-Südwest
if (word_laenge == 13) {daten = "West-Süd-West" ;}
}
! O # Osten
if (anfangsbuchstabe == "O") {
! 11 # Ost-Südost
if (word_laenge == 11) {daten = "Ost-Süd-Ost" ;}
}
dom.GetObject("W_Windrichtung").State(daten);
!WriteLine(daten);
string word = "wind_degrees";
integer word_laenge = word.Length();
integer word_position = wetter_xml.Find(word);
string daten = wetter_xml.Substr((word_position + word_laenge +1), 100);
integer word_position = daten.Find(word);
daten = daten.Substr(0, (word_position -2));
integer zahl = daten.ToFloat();
dom.GetObject("W_Windrichtg").State(zahl);
string word = "wind_kph";
integer word_laenge = word.Length();
integer word_position = wetter_xml.Find(word);
string daten = wetter_xml.Substr((word_position + word_laenge +1), 100);
integer word_position = daten.Find(word);
daten = daten.Substr(0, (word_position -2));
integer zahl = daten.ToFloat();
dom.GetObject("W_Windgeschwindigkeit").State(zahl);
string word = "wind_gust_kph";
integer word_laenge = word.Length();
integer word_position = wetter_xml.Find(word);
string daten = wetter_xml.Substr((word_position + word_laenge +1), 100);
integer word_position = daten.Find(word);
daten = daten.Substr(0, (word_position -2));
integer zahl = daten.ToFloat();
dom.GetObject("W_Windboeen").State(zahl);
string word = "pressure_mb";
integer word_laenge = word.Length();
integer word_position = wetter_xml.Find(word);
string daten = wetter_xml.Substr((word_position + word_laenge +1), 100);
integer word_position = daten.Find(word);
daten = daten.Substr(0, (word_position -2));
integer zahl = daten.ToFloat();
dom.GetObject("W_Luftdruck").State(zahl);
string word = "pressure_trend";
integer word_laenge = word.Length();
integer word_position = wetter_xml.Find(word);
string daten = wetter_xml.Substr((word_position + word_laenge +1), 100);
integer word_position = daten.Find(word);
daten = daten.Substr(0, (word_position -2));
dom.GetObject("W_Luftdrucktrend").State(daten);
string word = "dewpoint_c";
integer word_laenge = word.Length();
integer word_position = wetter_xml.Find(word);
string daten = wetter_xml.Substr((word_position + word_laenge +1), 100);
integer word_position = daten.Find(word);
daten = daten.Substr(0, (word_position -2));
real zahl = daten.ToFloat();
dom.GetObject("W_Taupunkt").State(zahl);
string word = "UV";
integer word_laenge = word.Length();
integer word_position = wetter_xml.Find(word);
string daten = wetter_xml.Substr((word_position + word_laenge +1), 100);
integer word_position = daten.Find(word);
daten = daten.Substr(0, (word_position -2));
real zahl = daten.ToFloat();
dom.GetObject("W_UV").State(zahl);
leider füllen sich die entsprechenden Variablen nicht. Im Status stehen immer
??? und mehr nicht.
Könnt Ihr mir hier weiterhelfen?
Konfiguration:
- CCU 2
- CuxD in der aktuellen Version installiert
- über WebUI erstelltes Programm das alle 30 Minuten das obige Script abfragt
Bitte verzeiht mir falls ich mich an einem Punkt falsch ausgedrückt haben sollte oder Infos nun doppelt im Thread vorhanden sind.
Danke euch für die Infos.
Re: Aktuelles Wetter über wunderground.com
Verfasst: 26.08.2015, 20:00
von tesso
Hast du auch das Gerät CUX2801001 erstellt?
Manchmal hilft das komplette Lesen eines Threads ungemein.
Re: Aktuelles Wetter über wunderground.com
Verfasst: 26.08.2015, 21:47
von Pharao50
Ja das Gerät ist angelegt. In der angelegten Fernbediedung ist auch unter dem Punkt KEY|CMD_SHORT der API Link hinterlegt worden
Re: Aktuelles Wetter über wunderground.com
Verfasst: 15.10.2015, 20:29
von Rene_HM
Der Server von
http://api.wunderground.com scheint down zu sein? oder bekommt ihr noch Wetterdaten?
Re: Aktuelles Wetter über wunderground.com
Verfasst: 16.10.2015, 07:41
von AndiN
War down. Hatte auch alle 5 Minuten eine Fehlermeldung im Log, weil die Daten nicht kamen. Aber jetzt läuft es wieder
Andi
Re: Aktuelles Wetter über wunderground.com
Verfasst: 17.10.2015, 10:28
von Rene_HM
Ja, geht auch bei mir wieder...
Re: Aktuelles Wetter über wunderground.com
Verfasst: 29.11.2015, 23:13
von fliegerx1
Hallo zusammen,
habe mich dort angemeldet finde aber den Key nicht.
Kann mir einer dabei helfen?
Suche Wetter für Wuppertal Berglehne.
Wie ist der Link mit dem Key
Vielen Dank