Wunderground Wetter mit einfachem HM-Skript holen
Moderator: Co-Administratoren
-
- Beiträge: 393
- Registriert: 25.01.2017, 10:51
- Wohnort: Bei Berlin
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 8 Mal
Re: Wunderground Wetter mit einfachem HM-Skript holen
Hallo,
mein Vorschlag ist: Zuerst mal die Systemvariablen prüfen. Danach die Wetterstation wechseln.
Gruß
Martin
mein Vorschlag ist: Zuerst mal die Systemvariablen prüfen. Danach die Wetterstation wechseln.
Gruß
Martin
RaspberryMatic-3.59.6 auf Tinkerboard S, CUxD 2.6, XML-1.20, ioBroker (HM,HMIP, Zigbee, Zwave und Shelly) und Alexa in einer VM unter Proxmox, VitoComfort 200
Re: Wunderground Wetter mit einfachem HM-Skript holen
Habe ich beides schon gemacht aber dennoch nur einige Werte... siehe dazu auch Screenshot
Finde keine Fehler... Komisch
Finde keine Fehler... Komisch
Re: Wunderground Wetter mit einfachem HM-Skript holen
Fehler gefunden !!! Hatte eine Systemvariable vergessen.
Wie kann man denn die Werte auch schön in einer App darstellen lassen?
Wie kann man denn die Werte auch schön in einer App darstellen lassen?
- joni-blue
- Beiträge: 1171
- Registriert: 04.01.2012, 12:20
- System: CCU
- Wohnort: Hannover
- Hat sich bedankt: 6 Mal
- Danksagung erhalten: 1 Mal
Re: Wunderground Wetter mit einfachem HM-Skript holen
Kann man mit dem Wunderground auch Unwetter Warnungen für seine Region bekommen?
Gesendet von iPhone mit Tapatalk
Gesendet von iPhone mit Tapatalk
Reboot tut gut ! ! !
Re: Wunderground Wetter mit einfachem HM-Skript holen
Hallo, hat jemand auch ne Lösung wie ich nicht nur den nächsten Tag abrufen kann. Soweit ich es es sehe, ist bei diesem Script nur die Abfrage des aktuellen Tages als Vorschau vorgesehen. Mich würde aber eher der nächste oder übernächste Tag interessieren.tibid hat geschrieben:So, hier nun meine Lösung, aber dieses Programm macht nur die Wettervorhersage (forecast), ohne die aktuellen Wetterdaten (conditions). Achtung, ich verwende auch andere Variablen, dann erscheinen unter "Variable" im WebUI alle Wettervorhersagevariablen zusammen und nicht gemischt mit den aktuellen Wetterdaten.
Ich lasse dieses mehrmals am Tag laufen, im Moment stündlich.
Die Variablen sind im Code beschrieben.
Ganz cool ist natürlich die Variable WetterFct_Icon, welche die URL zum Pictogramm enthält, dieses wird dann sowohl im Ereignisprotokoll, als auch unter "Systemvariable" als Bild angezeigt
API-Key, Land und Ort nicht vergessen einzufügen!
Dirk, der Wettervorhersagetext kann ziemlich lang werden, habe diesen Teil angepasst.
Volkmar, statt Sonnenscheindauer, könnte man etwas aus Wetterbedingung (z.B. wenn "clear"), Regenwahrscheinlichkeit (z.B. <= 20%) und/oder Tageshöchsttemperatur ableiten.
Sieht dann so aus: Gruss,Code: Alles auswählen
var url = "http://api.wunderground.com/api/<API-Key>/forecast/lang:EN/q/<Land>/<Ortschaft>.xml"; !zuerst folgende Systemvariablen anlegen !Achtung: keine vergessen und exakte Schreibweise mit Drag&Drop !WetterFct_Tag Zeichenkette -> Forecast fuer welchen Wochentag !WetterFct_Condition Zeichenkette -> Forecast Wetterbedingung !WetterFct_Icon Zeichenkette -> Forecast URL zu Pictogramm (zeigt Bild im Protokoll / Systemvariablen) !WetterFct_Text Zeichenkette -> Forecast Text (max 200 Zeichen) !WetterFct_TempMax Zahl °C -> Forecast Maximale Temperatur !WetterFct_Pop Zahl % -> Forecast Regenwahrscheinlichkeit (probability of precipation) !WetterFct_Zeit Zeichenkette -> Forecast erstellt um diese Zeit var url = "http://api.wunderground.com/api/<API-Key>/forecast/lang:EN/q/<Land>/<Ortschaft>.xml"; !Beispiele: ! var url = "http://api.wunderground.com/api/<API-Key>/forecast/lang:EN/q/Switzerland/Neuhausen.xml"; !Sprache: Deutsch ! var url = "http://api.wunderground.com/api/<API-Key>/forecast/lang:DL/q/Switzerland/Neuhausen.xml"; !Spezifische PWS-Wetterstation: ! var url = "http://api.wunderground.com/api/<API-Key>/forecast/lang:EN/q/pws:ISCHAFFH8.xml"; !Spezifische Flughafen-Wetterstation: ! var url = "http://api.wunderground.com/api/<API-Key>/forecast/lang:EN/q/LSZH.xml"; !hier ist die Abfrage mit CUxD (wenn kein CUxD, die 3 Zeilen unten auskommentieren und system.Exec einschalten) 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 (nur ohne CUxD verwenden) !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 die bereiche "txt_forecast" und "simpleforecast" isolieren integer laenge = wetter_xml.Length(); !finde Position für "txt_forecast" integer wort_txt_fcst_position = wetter_xml.Find("txt_forecast"); !finde Position für "simpleforecast" integer wort_simplefcst_position = wetter_xml.Find("simpleforecast"); !isoliere "txt_forecast" string wetter_txtfct_xml = wetter_xml.Substr(wort_txt_fcst_position, (wort_simplefcst_position - wort_txt_fcst_position)); !isoliere "simpleforecast" string wetter_simplefct_xml = wetter_xml.Substr(wort_simplefcst_position, (laenge - wort_simplefcst_position)); !WriteLine("TXT_Forecast:--------------------------"); ! WriteLine(wetter_txtfct_xml); !WriteLine("Simpleforecast:--------------------------"); ! WriteLine(wetter_simplefct_xml); !Daten mit Suchworten aus XML-File ausfiltern: !Setze WetterFct_Zeit: Suche in txt_forecast nach "date" (einmalig) string word = "date"; integer word_laenge = word.Length(); integer word_position = wetter_txtfct_xml.Find(word); string daten = wetter_txtfct_xml.Substr((word_position + word_laenge + 1), 100); integer word_position = daten.Find(word); daten = daten.Substr(0, (word_position-2)); dom.GetObject("WetterFct_Zeit").State(daten); ! WriteLine("Zeit:"); ! WriteLine(daten); !Hole Daten aus "txt_forecast"------------------------- !Setze WetterFct_Tag: Suche in txt_forecast nach "title" string word = "title"; integer word_laenge = word.Length(); integer word_position = wetter_txtfct_xml.Find(word); string daten = wetter_txtfct_xml.Substr((word_position + word_laenge + 1), 100); integer word_position = daten.Find(word); daten = daten.Substr(0, (word_position-2)); dom.GetObject("WetterFct_Tag").State(daten); ! WriteLine("Tag:"); ! WriteLine(daten); !Setze WetterFct_Condition: Suche in txt_forecast nach "icon" string word = "icon"; integer word_laenge = word.Length(); integer word_position = wetter_txtfct_xml.Find(word); string daten = wetter_txtfct_xml.Substr((word_position + word_laenge + 1), 100); integer word_position = daten.Find(word); daten = daten.Substr(0, (word_position-2)); !Zwischenspeichern der WetterFct_Condition fuer den Icon alt-text string daten2 = daten; dom.GetObject("WetterFct_Condition").State(daten); ! WriteLine("Condition:"); ! WriteLine(daten); !Setze WetterFct_Icon: Suche in txt_forecast nach "icon_url" string word = "icon_url"; integer word_laenge = word.Length(); integer word_position = wetter_txtfct_xml.Find(word); string daten = wetter_txtfct_xml.Substr((word_position + word_laenge + 1), 100); integer word_position = daten.Find(word); daten = daten.Substr(0, (word_position-2)); !daten2 von WetterFct_Condition daten = "</div><img src=\"" + daten + "\" alt=\"" + daten2 + "\">"; dom.GetObject("WetterFct_Icon").State(daten); ! WriteLine("Icon:"); ! WriteLine(daten); !Setze WetterFct_Text: Suche in txt_forecast nach "fcttext_metric" string word = "fcttext_metric"; integer word_laenge = word.Length(); integer word_position = wetter_txtfct_xml.Find(word); string daten = wetter_txtfct_xml.Substr((word_position + word_laenge + 1 + 9), 200); integer word_position = daten.Find(word); daten = daten.Substr(0, (word_position-5)); dom.GetObject("WetterFct_Text").State(daten); ! WriteLine("Text:"); ! WriteLine(daten); !Setze WetterFct_Pop: Suche in txt_forecast nach "pop" string word = "pop"; integer word_laenge = word.Length(); integer word_position = wetter_txtfct_xml.Find(word); string daten = wetter_txtfct_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("WetterFct_Pop").State(zahl); ! WriteLine("Pop:"); ! WriteLine(zahl); !Hole Daten aus "simpleforecast"------------------------- !Setze WetterFct_TempMax: Suche in simpleforecast nach "celsius" string word = "celsius"; integer word_laenge = word.Length(); integer word_position = wetter_simplefct_xml.Find(word); string daten = wetter_simplefct_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("WetterFct_TempMax").State(zahl); ! WriteLine("TempMax:"); ! WriteLine(zahl);
Tibid
Gruß Andy
-
- Beiträge: 58
- Registriert: 12.02.2018, 03:13
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 1 Mal
Re: Wunderground Wetter mit einfachem HM-Skript holen
Hallo Zusammen,
bin am verzweifeln und brauche eure Unterstützung. Ich wende seit kurzer Zeit homematic an, habe hier schon eine Menge gelesen, bin aber dennoch ziemlich am Anfang. Ich versuche dieses Skript zu nutzen, habe auch alle Posts hier gelesen und die Ratschläge x-Mal durchgekaut und angewandt. Ich finde meinen Fehler nicht.
Ich hatte zuerst den CUx-Daemon nicht am Laufen, da bekam ich auch Wetterdaten der Station. Nach installieren des CUx-Daemons bekomme ich nur noch "0" oder nix als Variableneintrag. Selbst wenn ich jetzt aber wieder die Zeilen für den CUx-Daemon auskommentiere und die entsprechenden anderen Zeilen für system.Exec aktiviere, bekomme ich keine Auswertung mehr!?!?!?
hier mein Quellcode (copy&paste von erster Seite) - ich habe meine Parameter entsprechend angepasst:
Ich habe als Dateien noch folgende Bilder angefügt:
-Erstellung/Übersicht der Variablen
-Screenshot meiner Wetterstationdaten im Browser
-CUx-Daemon Einstellung
-CUx-Daemon Protokoll (Syslog)
Ich habe auch ein externen Skript-Tester am Laufen gehabt und an verschiedenen Stellen "Hallo Welt" versteckt - es läuft durch...
Hat einer bitte die Nerven und kann mir helfen? Ich komme nicht mehr weiter...
Ich rufe aus Test-Zwecken alle 30sec meine Wetterstation automatisch ab, wenn es mal irgendwann funktioniert, setze ich das Intervall auf 30min.
Gruß,
Marcus
bin am verzweifeln und brauche eure Unterstützung. Ich wende seit kurzer Zeit homematic an, habe hier schon eine Menge gelesen, bin aber dennoch ziemlich am Anfang. Ich versuche dieses Skript zu nutzen, habe auch alle Posts hier gelesen und die Ratschläge x-Mal durchgekaut und angewandt. Ich finde meinen Fehler nicht.
Ich hatte zuerst den CUx-Daemon nicht am Laufen, da bekam ich auch Wetterdaten der Station. Nach installieren des CUx-Daemons bekomme ich nur noch "0" oder nix als Variableneintrag. Selbst wenn ich jetzt aber wieder die Zeilen für den CUx-Daemon auskommentiere und die entsprechenden anderen Zeilen für system.Exec aktiviere, bekomme ich keine Auswertung mehr!?!?!?
hier mein Quellcode (copy&paste von erster Seite) - ich habe meine Parameter entsprechend angepasst:
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
!Wetter_Station Zeichenkette
!Wetter_Aktualisierung Zeichenkette
!Wetter_Bedingungen Zeichenkette
!Wetter_Temperatur Zahl °C
!Wetter_Luftfeuchte Zahl %
!Wetter_Windbedingungen Zeichenkette
!Wetter_Windrichtung Zeichenkette
!Wetter_Windrichtg Zahl °
!Wetter_Windgeschwindigkeit Zahl km/h
!Wetter_Windboeen Zahl km/h
!Wetter_Luftdruck Zahl mb
!Wetter_Luftdrucktrend Zeichenkette
!Wetter_Taupunkt Zahl °C
!Wetter_UV Zeichenkette
var url = "http://api.wunderground.com/api/XXXXXXXXXXXXX/conditions/lang:DL/q/Germany/Uhry.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("Wetter_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("Wetter_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("Wetter_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("Wetter_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("Wetter_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("Wetter_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("Wetter_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("Wetter_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("Wetter_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("Wetter_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("Wetter_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("Wetter_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("Wetter_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("Wetter_UV").State(zahl);
-Erstellung/Übersicht der Variablen
-Screenshot meiner Wetterstationdaten im Browser
-CUx-Daemon Einstellung
-CUx-Daemon Protokoll (Syslog)
Ich habe auch ein externen Skript-Tester am Laufen gehabt und an verschiedenen Stellen "Hallo Welt" versteckt - es läuft durch...
Hat einer bitte die Nerven und kann mir helfen? Ich komme nicht mehr weiter...
Ich rufe aus Test-Zwecken alle 30sec meine Wetterstation automatisch ab, wenn es mal irgendwann funktioniert, setze ich das Intervall auf 30min.
Gruß,
Marcus
- Dateianhänge
------
DANKE!
DANKE!
Re: Wunderground Wetter mit einfachem HM-Skript holen
Hallo zusammen,
gibt es, eventuell habe ich es auch übersehen, irgendwo eine Zusammenstellung für die Wetterbedingungen ?
Also für W_Bedingungen die einzelnen Status anzeigen ? Heiter bedeckt etc. ?
Wäre ganz interessant für die Mediola Einbindung von passenden Icons.
Danke schon mal für Eure Antworten.
gibt es, eventuell habe ich es auch übersehen, irgendwo eine Zusammenstellung für die Wetterbedingungen ?
Also für W_Bedingungen die einzelnen Status anzeigen ? Heiter bedeckt etc. ?
Wäre ganz interessant für die Mediola Einbindung von passenden Icons.
Danke schon mal für Eure Antworten.
-
- Beiträge: 319
- Registriert: 16.02.2015, 17:05
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 129 Mal
- Danksagung erhalten: 35 Mal
Re: Wunderground Wetter mit einfachem HM-Skript holen
das hatte ich mir herausgefiltert:
Heiter;Teils Wolkig;Wolkig;Bedeckt;Nebel;Nebelschwaden;Leichtes Nieseln;Leichter Regen;Regen;Leichter Regenschauer;Regenschauer;Gewitter;Leichte Gewitter mit Regenschauer;Gewitter mit Regen
Gruß
Paul
Heiter;Teils Wolkig;Wolkig;Bedeckt;Nebel;Nebelschwaden;Leichtes Nieseln;Leichter Regen;Regen;Leichter Regenschauer;Regenschauer;Gewitter;Leichte Gewitter mit Regenschauer;Gewitter mit Regen
Gruß
Paul
Mit Mut und Entschlossenheit gegen Intoleranz
-
- Beiträge: 58
- Registriert: 12.02.2018, 03:13
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 1 Mal
Re: Wunderground Wetter mit einfachem HM-Skript holen
Ich habe natürlich weiter herum experimentiert, hilft aber auch nicht...mguenther hat geschrieben:Hallo Zusammen,
bin am verzweifeln und brauche eure Unterstützung. Ich wende seit kurzer Zeit homematic an, habe hier schon eine Menge gelesen, bin aber dennoch ziemlich am Anfang. Ich versuche dieses Skript zu nutzen, habe auch alle Posts hier gelesen und die Ratschläge x-Mal durchgekaut und angewandt. Ich finde meinen Fehler nicht.
Ich hatte zuerst den CUx-Daemon nicht am Laufen, da bekam ich auch Wetterdaten der Station. Nach installieren des CUx-Daemons bekomme ich nur noch "0" oder nix als Variableneintrag. Selbst wenn ich jetzt aber wieder die Zeilen für den CUx-Daemon auskommentiere und die entsprechenden anderen Zeilen für system.Exec aktiviere, bekomme ich keine Auswertung mehr!?!?!?
[...]
Code: Alles auswählen
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O -'"#url#"'");
!dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("echo '"#url#"'");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string wetter_xml = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
WriteLine(wetter_xml);
Gruß,
Marcus
------
DANKE!
DANKE!
- Jimbaem
- Beiträge: 91
- Registriert: 19.12.2014, 19:03
- Wohnort: Schuttertal
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 3 Mal
Re: Wunderground Wetter mit einfachem HM-Skript holen
Emsländer hat geschrieben:Hallo zusammen,
gibt es, eventuell habe ich es auch übersehen, irgendwo eine Zusammenstellung für die Wetterbedingungen ?
Also für W_Bedingungen die einzelnen Status anzeigen ? Heiter bedeckt etc. ?
Wäre ganz interessant für die Mediola Einbindung von passenden Icons.
Danke schon mal für Eure Antworten.
Also so mache ich das auch.PaulM hat geschrieben:das hatte ich mir herausgefiltert:
Heiter;Teils Wolkig;Wolkig;Bedeckt;Nebel;Nebelschwaden;Leichtes Nieseln;Leichter Regen;Regen;Leichter Regenschauer;Regenschauer;Gewitter;Leichte Gewitter mit Regenschauer;Gewitter mit Regen
Gruß
Paul
Die aktuellen Wetterdaten bekomme ich vom Weatherman und die Vorschau der nächsten 3 Tage hole ich mir alle 2 Std. von Weather Underground.
Die Abfrage findet mittels "Forecast" Argument statt und das Ergebnis wird in ein xml-File gespeichert. Daraus hole ich mir nur die Daten welche ich benötige und speichere diese in Systemvariablen ab. In Mediola weise ich dann die entsprechenden Statusgrafiken zu. Dazu verwende ich diese Icons https://vclouds.deviantart.com/art/VClo ... -179152045 und benenne diese dann wie PaulM geschrieben hat um.
Im Anhang mal ein Beispiel, ist aber noch nicht ganz fertig
Gruß
Jürgen
RaspberryMatic 3.63.9.20220521 auf Asus Tinker Board S - Raspberry Pi4 & SSD mit Historian V3.0.2