Problem mit Weather Underground
Moderator: Co-Administratoren
-
- Beiträge: 103
- Registriert: 07.10.2017, 15:14
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 1 Mal
Problem mit Weather Underground
Hallo,
ich betreibe eine Raspberrymatic mit der Firmware 2.35.16.20180826. Nach der Aktualisierung von CUxD auf die Version 2.1.0 werden meine Wetterdaten von Weather Underground mit Hilfe des CUxD Multitimers nicht mehr abgerufen.
ich betreibe eine Raspberrymatic mit der Firmware 2.35.16.20180826. Nach der Aktualisierung von CUxD auf die Version 2.1.0 werden meine Wetterdaten von Weather Underground mit Hilfe des CUxD Multitimers nicht mehr abgerufen.
808 Kanäle in 128 Geräten:
1x HM-CC-VG-1, 1x HM-OU-LED16, 1x HM-RC-19, 1x HM-WDS100-C6-O, 1x HmIP-ASIR, 2x HmIP-BDT, 3x HmIP-BRC2, 2x HmIP-BROLL, 13x HmIP-BSM, 9x HmIP-eTRV-2, 1x HmIP-FCI6, 4x HmIP-FROLL, 2x HmIP-FSI16, 8x HmIP-FSM, 3x HmIP-FSM16, 3x HmIP-HAP, 3x HmIP-PDT, 6x HMIP-PS, 10x HMIP-PSM, 1x HmIP-RCV-50, 3x HmIP-SAM, 1x HmIP-SCI, 20x HmIP-SRH, 15x HMIP-SWDO, 8x HmIP-SWSD, 1x HmIP-WGC, 1x HMIP-WRC2, 1x HmIP-WTH-2, 1x HmIPW-DRAP, 1x HmIPW-DRS8, 1x RPI-RF-MOD
1x HM-CC-VG-1, 1x HM-OU-LED16, 1x HM-RC-19, 1x HM-WDS100-C6-O, 1x HmIP-ASIR, 2x HmIP-BDT, 3x HmIP-BRC2, 2x HmIP-BROLL, 13x HmIP-BSM, 9x HmIP-eTRV-2, 1x HmIP-FCI6, 4x HmIP-FROLL, 2x HmIP-FSI16, 8x HmIP-FSM, 3x HmIP-FSM16, 3x HmIP-HAP, 3x HmIP-PDT, 6x HMIP-PS, 10x HMIP-PSM, 1x HmIP-RCV-50, 3x HmIP-SAM, 1x HmIP-SCI, 20x HmIP-SRH, 15x HMIP-SWDO, 8x HmIP-SWSD, 1x HmIP-WGC, 1x HMIP-WRC2, 1x HmIP-WTH-2, 1x HmIPW-DRAP, 1x HmIPW-DRS8, 1x RPI-RF-MOD
-
- Beiträge: 710
- Registriert: 09.03.2007, 16:38
- System: sonstige
- Wohnort: Eichwalde bei Berlin
- Hat sich bedankt: 6 Mal
- Danksagung erhalten: 24 Mal
- Kontaktdaten:
Re: Problem mit Weather Underground
und nun ?
Gruss Marco Pniok
http://www.piotek-smarthome.de
Systemhaus für SmartHome mit HomeMatic, HomeMatic IP, PioTek, CUxD, IP-Symcon, Symbox Pro, Shelly, Eltako, free@home, PEHA, Synco Living.
http://www.piotek-smarthome.de
Systemhaus für SmartHome mit HomeMatic, HomeMatic IP, PioTek, CUxD, IP-Symcon, Symbox Pro, Shelly, Eltako, free@home, PEHA, Synco Living.
-
- Beiträge: 103
- Registriert: 07.10.2017, 15:14
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 1 Mal
Re: Problem mit Weather Underground
Der manuelle Aufruf des Programms mit Weather Underground funktioniert, so dass die Wetterdaten korrekt abgerufen und gespeichert werden.
Wie muss unter der CUxD Version 2.1.0 der Multitimer konfiguriert werden, damit der Abruf wieder automatisiert funktioniert? Ich möchte einen Abruf der Wetterdaten alle 22 Minuten
Wie muss unter der CUxD Version 2.1.0 der Multitimer konfiguriert werden, damit der Abruf wieder automatisiert funktioniert? Ich möchte einen Abruf der Wetterdaten alle 22 Minuten
808 Kanäle in 128 Geräten:
1x HM-CC-VG-1, 1x HM-OU-LED16, 1x HM-RC-19, 1x HM-WDS100-C6-O, 1x HmIP-ASIR, 2x HmIP-BDT, 3x HmIP-BRC2, 2x HmIP-BROLL, 13x HmIP-BSM, 9x HmIP-eTRV-2, 1x HmIP-FCI6, 4x HmIP-FROLL, 2x HmIP-FSI16, 8x HmIP-FSM, 3x HmIP-FSM16, 3x HmIP-HAP, 3x HmIP-PDT, 6x HMIP-PS, 10x HMIP-PSM, 1x HmIP-RCV-50, 3x HmIP-SAM, 1x HmIP-SCI, 20x HmIP-SRH, 15x HMIP-SWDO, 8x HmIP-SWSD, 1x HmIP-WGC, 1x HMIP-WRC2, 1x HmIP-WTH-2, 1x HmIPW-DRAP, 1x HmIPW-DRS8, 1x RPI-RF-MOD
1x HM-CC-VG-1, 1x HM-OU-LED16, 1x HM-RC-19, 1x HM-WDS100-C6-O, 1x HmIP-ASIR, 2x HmIP-BDT, 3x HmIP-BRC2, 2x HmIP-BROLL, 13x HmIP-BSM, 9x HmIP-eTRV-2, 1x HmIP-FCI6, 4x HmIP-FROLL, 2x HmIP-FSI16, 8x HmIP-FSM, 3x HmIP-FSM16, 3x HmIP-HAP, 3x HmIP-PDT, 6x HMIP-PS, 10x HMIP-PSM, 1x HmIP-RCV-50, 3x HmIP-SAM, 1x HmIP-SCI, 20x HmIP-SRH, 15x HMIP-SWDO, 8x HmIP-SWSD, 1x HmIP-WGC, 1x HMIP-WRC2, 1x HmIP-WTH-2, 1x HmIPW-DRAP, 1x HmIPW-DRS8, 1x RPI-RF-MOD
- uwe111
- Beiträge: 4821
- Registriert: 26.02.2011, 22:22
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 246 Mal
- Kontaktdaten:
Re: Problem mit Weather Underground
Genau so, wie bei den Vorgängerversionen. Da hat sich nichts geändert.
Wie hast Du es denn aktuell konfiguriert?
Viele Grüße
Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN Download: CUxD 2.11, SSH KeyDir
SPENDEN Download: CUxD 2.11, SSH KeyDir
-
- Beiträge: 103
- Registriert: 07.10.2017, 15:14
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 1 Mal
Re: Problem mit Weather Underground
Hallo, ich weiß nicht genau, wie ich hier das Script aufrufen muss.
808 Kanäle in 128 Geräten:
1x HM-CC-VG-1, 1x HM-OU-LED16, 1x HM-RC-19, 1x HM-WDS100-C6-O, 1x HmIP-ASIR, 2x HmIP-BDT, 3x HmIP-BRC2, 2x HmIP-BROLL, 13x HmIP-BSM, 9x HmIP-eTRV-2, 1x HmIP-FCI6, 4x HmIP-FROLL, 2x HmIP-FSI16, 8x HmIP-FSM, 3x HmIP-FSM16, 3x HmIP-HAP, 3x HmIP-PDT, 6x HMIP-PS, 10x HMIP-PSM, 1x HmIP-RCV-50, 3x HmIP-SAM, 1x HmIP-SCI, 20x HmIP-SRH, 15x HMIP-SWDO, 8x HmIP-SWSD, 1x HmIP-WGC, 1x HMIP-WRC2, 1x HmIP-WTH-2, 1x HmIPW-DRAP, 1x HmIPW-DRS8, 1x RPI-RF-MOD
1x HM-CC-VG-1, 1x HM-OU-LED16, 1x HM-RC-19, 1x HM-WDS100-C6-O, 1x HmIP-ASIR, 2x HmIP-BDT, 3x HmIP-BRC2, 2x HmIP-BROLL, 13x HmIP-BSM, 9x HmIP-eTRV-2, 1x HmIP-FCI6, 4x HmIP-FROLL, 2x HmIP-FSI16, 8x HmIP-FSM, 3x HmIP-FSM16, 3x HmIP-HAP, 3x HmIP-PDT, 6x HMIP-PS, 10x HMIP-PSM, 1x HmIP-RCV-50, 3x HmIP-SAM, 1x HmIP-SCI, 20x HmIP-SRH, 15x HMIP-SWDO, 8x HmIP-SWSD, 1x HmIP-WGC, 1x HMIP-WRC2, 1x HmIP-WTH-2, 1x HmIPW-DRAP, 1x HmIPW-DRS8, 1x RPI-RF-MOD
- uwe111
- Beiträge: 4821
- Registriert: 26.02.2011, 22:22
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 246 Mal
- Kontaktdaten:
Re: Problem mit Weather Underground
Welches Script? Ich hole leider keine Wetterdaten von Weather Underground.
Mit Deiner aktuellen Konfiguration löst der 1. Kanal alle 15 Minuten aus.
Ein Script ist nicht eingetragen.
Vielleicht wird Dein Script per Programmverknüpfung getriggert?
Viele Grüße
Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN Download: CUxD 2.11, SSH KeyDir
SPENDEN Download: CUxD 2.11, SSH KeyDir
-
- Beiträge: 3302
- Registriert: 07.01.2015, 23:26
- Wohnort: Scheeßel
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 11 Mal
Re: Problem mit Weather Underground
Bei mir funktioniert das auch immer noch mit WUndergound Wetter mit der neuesten Raspi Version und dem neuesten CUxD.
Habe ein Programm, das alle 15 Minuten startet, das führt ein Script aus, welches die Wetterdaten holt und in entsprechende Systemvariablen schreibt.
Programm: Script im Programm:
Habe ein Programm, das alle 15 Minuten startet, das führt ein Script aus, welches die Wetterdaten holt und in entsprechende Systemvariablen schreibt.
Programm: Script im Programm:
Code: Alles auswählen
!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/533a498c4f21c08f/conditions/lang:DL/q/Germany/pws:IELSDORF22.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";}
! 7 # Südost
if (word_laenge == 7) {daten = "Süd-Ost";}
! 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);
!WriteLine("Hallo Welt!");
- papi
- Beiträge: 371
- Registriert: 18.12.2013, 08:40
- Wohnort: Willich, NRW
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 5 Mal
Re: Problem mit Weather Underground
Oder wenn man es mit dem zuverlässigen CUxD-Timer machen will:
CUxD-Doku 2.1, Seite 88ff (5.8.1 System.Timer (16 Kanäle).
CUxD-Doku 2.1, Seite 88ff (5.8.1 System.Timer (16 Kanäle).
-
- Beiträge: 3302
- Registriert: 07.01.2015, 23:26
- Wohnort: Scheeßel
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 11 Mal
Re: Problem mit Weather Underground
Dass der CCU/RM Timer unzuverlässig ist, das war zu Zeiten, als in der Versionsnummer noch eine 2 stand mit einer gang ganz kleinen Zahl hinter dem Punkt. Mit den aktuellen Versionen ist das nicht mehr der Fall.