Wetterdaten aus dem Internet
Moderator: Co-Administratoren
-
- Beiträge: 10754
- Registriert: 24.02.2011, 01:34
- System: CCU
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 673 Mal
Re: Wetterdaten aus dem Internet
So ich habe nun die Threads getrennt, um Wetter.com gehts hier ja nicht wirklich mehr.
Ausserdem habe ich noch eine andere Version des Scriptes für DashDieter
in >> die Anleitung <<gepackt.
Natürlich kann man noch vieles mehr machen, aber DashDieter wollte nur die Windgeschwindigkeit in eine Variable. Wenn Bedarf besteht, bitte nachfragen.
@Cash
Daten aus dem Netz sind *IMHO* immer nur eine Krücke oder Ergänzung.
Wenn du mit der Temperatur arbeiten willst, würde ich immer einen eigenen Sensor nehmen. Habe selber einen HM-WDS10-TH-O an der Nordwand meines Hauses hängen. Mittlerweile schon geraume Zeit und völlig problemlos. Kostet nicht die Welt, ist schnell installiert, macht keine Probleme.
Um aber z.B. die Windgeschwindigkeit in die Haussteuerung zu kriegen, ist zumindest auf HM-Sensorbasis für die >>HM-WDS100-C6-O<< schon mehr Geld (249,95€ )zu investieren, und (zumindest was man liest) auch nicht völlig unproblematisch.
Am Anfang wollte ich mir auch einen solchen holen, aber bei dem Geldeinsatz verzichte ich vorerst darauf. Nicht, das ich es mir nicht leisten könnte, aber ich will einfach nicht.
Dieser Sensor ist mir nicht so viel Geld wert.
Alchy
Ausserdem habe ich noch eine andere Version des Scriptes für DashDieter
in >> die Anleitung <<gepackt.
Natürlich kann man noch vieles mehr machen, aber DashDieter wollte nur die Windgeschwindigkeit in eine Variable. Wenn Bedarf besteht, bitte nachfragen.
@Cash
Daten aus dem Netz sind *IMHO* immer nur eine Krücke oder Ergänzung.
Wenn du mit der Temperatur arbeiten willst, würde ich immer einen eigenen Sensor nehmen. Habe selber einen HM-WDS10-TH-O an der Nordwand meines Hauses hängen. Mittlerweile schon geraume Zeit und völlig problemlos. Kostet nicht die Welt, ist schnell installiert, macht keine Probleme.
Um aber z.B. die Windgeschwindigkeit in die Haussteuerung zu kriegen, ist zumindest auf HM-Sensorbasis für die >>HM-WDS100-C6-O<< schon mehr Geld (249,95€ )zu investieren, und (zumindest was man liest) auch nicht völlig unproblematisch.
Am Anfang wollte ich mir auch einen solchen holen, aber bei dem Geldeinsatz verzichte ich vorerst darauf. Nicht, das ich es mir nicht leisten könnte, aber ich will einfach nicht.
Dieser Sensor ist mir nicht so viel Geld wert.
Alchy
Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.
© Sandra Pulsfort (*1974)
Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.
Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.
-
- Beiträge: 1184
- Registriert: 09.01.2016, 17:42
- Wohnort: Sauerland
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
Re: Wetterdaten aus dem Internet
Den HM-WDS10-TH-O hatte ich auch ins Auge gefaßt. Allerdings habe ich etwas bedenken wegen der Batterie. Bei frostigen Temperaturen (gerade wenn es richtig richtig und lange kalt ist, also tagsüber deutlich unter -10, wie wir es schon vor ein paar Wintern hatten) machen die Batteiren ja eher nicht so lange mit. Wenn sie nicht ganz aussteigen.
Das sind derzeit die Gründde warum ich dazu tendiere die Temperatur über Internet zu holen. Die Gründe dagegen hast Du in Deinen Beitrag ja schon erwähnt.
Mit einen neuen Gerät holt man, je nach Entfernung zu CCU2 auch neue Probleme ins Haus. Und wenn es nun darum geht die ccu möglichst wenig zu belasten sollte es fast mit den Daten aus dem Internet besser aussehen oder? Das Außenthermostat sendet ja nun regelmäßig die Temperatur an die ccu2.
Da ich das Wetter aber nur beim Fester öffnen brauche würde es ja fast reichen wenn ich die Temperatur genau dort abfrage also vielleicht 2 mal am Tag. Da ich damit ja nun auch nur die Länge des Lüftens einschränken will ist eine genaue Temperatur eher zweitrangig.
Derzeit würde ich tendieren lediglich folgende Abfragen zu machen
wenn Außentemperatur < 10 Grad dann 3 Minuten
zwischen 10 - 18 Grad 5 Minuten
zwischen 18 - 22 Grad 10 Minunten
über 22 Grad 8 Minunten
Das wäre mein erster Schuß ins Blaue die Feinjustierung erfolgt dann mit der Erfahrung. Und wenn ich gerade darüber nachdenke könnte ich ja quasi Dein Script sogar direkt dazu verwenden direkt ein Cuxd Timer zu setzen. Ich bräuchte so nichtmal eine Variable. Und ich würde wirklich nur die Abfrage machen wenn jemand ein Fenster aufmacht.
Bin hin und her gerissen.
Grüße
Thomas
Das sind derzeit die Gründde warum ich dazu tendiere die Temperatur über Internet zu holen. Die Gründe dagegen hast Du in Deinen Beitrag ja schon erwähnt.
Mit einen neuen Gerät holt man, je nach Entfernung zu CCU2 auch neue Probleme ins Haus. Und wenn es nun darum geht die ccu möglichst wenig zu belasten sollte es fast mit den Daten aus dem Internet besser aussehen oder? Das Außenthermostat sendet ja nun regelmäßig die Temperatur an die ccu2.
Da ich das Wetter aber nur beim Fester öffnen brauche würde es ja fast reichen wenn ich die Temperatur genau dort abfrage also vielleicht 2 mal am Tag. Da ich damit ja nun auch nur die Länge des Lüftens einschränken will ist eine genaue Temperatur eher zweitrangig.
Derzeit würde ich tendieren lediglich folgende Abfragen zu machen
wenn Außentemperatur < 10 Grad dann 3 Minuten
zwischen 10 - 18 Grad 5 Minuten
zwischen 18 - 22 Grad 10 Minunten
über 22 Grad 8 Minunten
Das wäre mein erster Schuß ins Blaue die Feinjustierung erfolgt dann mit der Erfahrung. Und wenn ich gerade darüber nachdenke könnte ich ja quasi Dein Script sogar direkt dazu verwenden direkt ein Cuxd Timer zu setzen. Ich bräuchte so nichtmal eine Variable. Und ich würde wirklich nur die Abfrage machen wenn jemand ein Fenster aufmacht.
Bin hin und her gerissen.
Grüße
Thomas
-
- Beiträge: 18
- Registriert: 10.02.2016, 00:47
- Wohnort: bei Wien
Re: Wetterdaten aus dem Internet
Servus Alchy,
nachdem ich die letzten Tage mit Hardware - Installation verbracht habe, gehts ab heute um die Programmierung.
Hab also auf der neuesten CCU2 - Firmware das CuxD Addon installiert, dann ein Gerät als .exec angelegt. Dazu die Systemvariable und das periodisch laufende Programm mit dem eingefügten Script.
Trotzdem bleibt die Systemvariable auf 0,0
Was hab ich übersehen?
Danke, VG Dieter
nachdem ich die letzten Tage mit Hardware - Installation verbracht habe, gehts ab heute um die Programmierung.
Hab also auf der neuesten CCU2 - Firmware das CuxD Addon installiert, dann ein Gerät als .exec angelegt. Dazu die Systemvariable und das periodisch laufende Programm mit dem eingefügten Script.
Trotzdem bleibt die Systemvariable auf 0,0
Was hab ich übersehen?
Danke, VG Dieter
-
- Beiträge: 12928
- Registriert: 16.01.2009, 18:48
- Wohnort: Steingaden
- Hat sich bedankt: 1604 Mal
- Danksagung erhalten: 222 Mal
Re: Wetterdaten aus dem Internet
keine ahnung was das werden soll aber ggf ist die beschreibung und der variablenname vertauscht.
ach: und darauf geachtet was bei der erstinstallation von cuxd zu tun ist
ach: und darauf geachtet was bei der erstinstallation von cuxd zu tun ist
-------
!!! der download der handbüchern auf den seiten von eq3 und das lesen der tips und tricks kann das hm-leben sehr erleichtern - das nutzen der suche nach schlagworten ebenso !!!
wer schreibfehler findet darf sie behalten.
!!! der download der handbüchern auf den seiten von eq3 und das lesen der tips und tricks kann das hm-leben sehr erleichtern - das nutzen der suche nach schlagworten ebenso !!!
wer schreibfehler findet darf sie behalten.
-
- Beiträge: 10754
- Registriert: 24.02.2011, 01:34
- System: CCU
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 673 Mal
Re: Wetterdaten aus dem Internet
Jupp, dondaik hat Recht.
Windgeschwindigkeit muss der Name der Systemvariablen sein, wenn du das Script so benutzen willst, wie ich es gepostet habe.
Du hast den Namen bei der Beschreibung eingetragen. Einer Systemvariablen den Namen Systemvariable zu geben ist Unfug.
Und was dondaik mit der Ergänzung zu Cuxd meint, ist nach Anlegen des ersten Cuxd Gerätes muss mindestens 1 x die CCU restartet werden.
Alchy
weg
Windgeschwindigkeit muss der Name der Systemvariablen sein, wenn du das Script so benutzen willst, wie ich es gepostet habe.
Du hast den Namen bei der Beschreibung eingetragen. Einer Systemvariablen den Namen Systemvariable zu geben ist Unfug.
Und was dondaik mit der Ergänzung zu Cuxd meint, ist nach Anlegen des ersten Cuxd Gerätes muss mindestens 1 x die CCU restartet werden.
Alchy
weg
Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.
© Sandra Pulsfort (*1974)
Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.
Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.
-
- Beiträge: 18
- Registriert: 10.02.2016, 00:47
- Wohnort: bei Wien
Re: Wetterdaten aus dem Internet
Vielen Dank für eure Hilfe, einfach umbenennen und jetzt funktionierts
Der Name "Systemvariable" steht beim Neuanlegen automatisch drin und ich hatte nur die Beschreibung ergänzt und nicht den Name geändert .... Wieder was gelernt.
Schönen Sonntag, VG Dieter
Der Name "Systemvariable" steht beim Neuanlegen automatisch drin und ich hatte nur die Beschreibung ergänzt und nicht den Name geändert .... Wieder was gelernt.
Schönen Sonntag, VG Dieter
Re: Wetterdaten aus dem Internet
Vielen Dank mal an Alchy für das script
Im moment dürfte sich aber einiges geändert haben auch an openweathermap
Hier mal mein Script welches wunderbar funktioniert
habe die Windgeschwindigkeit noch mit 3.6 Multipliziert dann bekommt man Km/h
Im moment dürfte sich aber einiges geändert haben auch an openweathermap
Hier mal mein Script welches wunderbar funktioniert
Code: Alles auswählen
!read openweathermap
var url = "http://api.openweathermap.org/data/2.5/weather?q=Wien&units=metric&lang=de&appid=apikey einfügen";
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string rueckgabe = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
WriteLine("Rueckgabe="#rueckgabe);
var s1tmp = (rueckgabe.StrValueByIndex(",",13)).StrValueByIndex(":",2).ToInteger() * 3.6;
var stemp = (rueckgabe.StrValueByIndex(",",7)).StrValueByIndex(":",2).ToInteger();
var pressure = (rueckgabe.StrValueByIndex(",",8)).StrValueByIndex(":",1).ToInteger();
var humidity = (rueckgabe.StrValueByIndex(",",9)).StrValueByIndex(":",1).ToInteger();
var description = (rueckgabe.StrValueByIndex(",",4)).StrValueByIndex(":",1);
WriteLine("s1tmp="#s1tmp);
WriteLine("stemp="#stemp);
WriteLine("pressure="#pressure);
WriteLine("humidity="#humidity);
WriteLine("Beschreibung="#description);
dom.GetObject("Windgeschwindigkeit").State(s1tmp);
dom.GetObject("Aussentemperatur").State(stemp);
dom.GetObject("Luftdruck").State(pressure);
dom.GetObject("Luftfeuchte").State(humidity);
dom.GetObject("Wetter").State(description);
Zuletzt geändert von alchy am 03.06.2018, 00:23, insgesamt 1-mal geändert.
Grund: Code in Codetags posten
Grund: Code in Codetags posten
Re: Wetterdaten aus dem Internet
Vielen Dank an alle hier, die das Skript erstellt haben!
Ich habe es übernommen und erhalte auch die Windgeschwindigkeit, wie gewünscht. Was jedoch nicht klappt, sind Wetter und Luftdruck, hier bekomme ich "???" (Wetter) und 0.00 hpa (Luftdruck).
Woran kann das liegen? Das Skript habe ich von schlagi kopiert, die Seriennummer vom CUxD Gerät und den API Key geändert.
Wunsch wäre auch, noch die Regenmenge der letzten 3 Stunden mit reinzunehmen (rain).
BTW: Wie erstellt man eigentlich ein Skript? Macht Ihr das "freihändig" nach den definierten Befehlen (JSON?) oder gibt es Generatoren?? Weil ich nicht immer fragen und Euch damit belästigen möchte.
Ich habe es übernommen und erhalte auch die Windgeschwindigkeit, wie gewünscht. Was jedoch nicht klappt, sind Wetter und Luftdruck, hier bekomme ich "???" (Wetter) und 0.00 hpa (Luftdruck).
Woran kann das liegen? Das Skript habe ich von schlagi kopiert, die Seriennummer vom CUxD Gerät und den API Key geändert.
Wunsch wäre auch, noch die Regenmenge der letzten 3 Stunden mit reinzunehmen (rain).
BTW: Wie erstellt man eigentlich ein Skript? Macht Ihr das "freihändig" nach den definierten Befehlen (JSON?) oder gibt es Generatoren?? Weil ich nicht immer fragen und Euch damit belästigen möchte.
Re: Wetterdaten aus dem Internet
Keiner eine Idee?Micha121 hat geschrieben:Ich habe es übernommen und erhalte auch die Windgeschwindigkeit, wie gewünscht. Was jedoch nicht klappt, sind Wetter und Luftdruck, hier bekomme ich "???" (Wetter) und 0.00 hpa (Luftdruck).
Woran kann das liegen? Das Skript habe ich von schlagi kopiert, die Seriennummer vom CUxD Gerät und den API Key geändert.
-
- Beiträge: 1
- Registriert: 23.09.2018, 09:40
Re: Wetterdaten aus dem Internet
Hallo Micha,
ich fand das Thema auch interessant und hab für mich das Script von Schlagi noch etwas angepasst, welches bei mir einwandfrei funktioniert.
An dieser Stelle sei aber zunächst erwähnt, dass ich mich ausserdem bei anderen Autoren bedient habe, wie z.B. bei http://www.smarthome.kuklin.de/2018/06/ ... homematic/ oder auch hier im Forum (natürlich das Script von Schlagi) und ich dafür sehr dankbar bin, dass jemand seine Arbeit anderen zur Verfügung stellt.
Im Prinzip brauchst du nur die "owm-" Systemvariablen erstellen,die Seriennummer vom CUxD Gerät, die ID der Wetterstation und die API Key-ID ändern.
Hier das script:
!read openweathermap
!Hier die WETTERSTATION-ID und APP-ID eintragen
string wetterstation_id = 1234;
string app_id = "WXYZ";
var url = "http://api.openweathermap.org/data/2.5/ ... d="#app_id;
dom.GetObject("CUxD.CUX2801002:1.CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801002:1.CMD_QUERY_RET").State(1);
string rueckgabe = dom.GetObject("CUxD.CUX2801002:1.CMD_RETS").State();
WriteLine("Rueckgabe="#rueckgabe);
var speed = (rueckgabe.StrValueByIndex(",",13)).StrValueByIndex(":",2).ToInteger() * 3.6;
var temp = (rueckgabe.StrValueByIndex(",",7)).StrValueByIndex(":",2).ToInteger(); - 273.15;
var pressure = (rueckgabe.StrValueByIndex(",",8)).StrValueByIndex(":",1).ToInteger();
var humidity = (rueckgabe.StrValueByIndex(",",9)).StrValueByIndex(":",1).ToInteger();
var description = (rueckgabe.StrValueByIndex(",",4)).StrValueByIndex(":",1);
var name = (rueckgabe.StrValueByIndex(",",24)).StrValueByIndex(":",1);
dom.GetObject("owm-Windgeschwindigkeit").State(speed);
dom.GetObject("owm-Aussentemperatur").State(temp);
dom.GetObject("owm-Luftdruck").State(pressure);
dom.GetObject("owm-Luftfeuchte").State(humidity);
dom.GetObject("owm-Wetter").State(description);
dom.GetObject("owm-Wetterstation").State(name);
So funktioniert es bei mir-viel Erfolg
Gruß Nick
ich fand das Thema auch interessant und hab für mich das Script von Schlagi noch etwas angepasst, welches bei mir einwandfrei funktioniert.
An dieser Stelle sei aber zunächst erwähnt, dass ich mich ausserdem bei anderen Autoren bedient habe, wie z.B. bei http://www.smarthome.kuklin.de/2018/06/ ... homematic/ oder auch hier im Forum (natürlich das Script von Schlagi) und ich dafür sehr dankbar bin, dass jemand seine Arbeit anderen zur Verfügung stellt.
Im Prinzip brauchst du nur die "owm-" Systemvariablen erstellen,die Seriennummer vom CUxD Gerät, die ID der Wetterstation und die API Key-ID ändern.
Hier das script:
!read openweathermap
!Hier die WETTERSTATION-ID und APP-ID eintragen
string wetterstation_id = 1234;
string app_id = "WXYZ";
var url = "http://api.openweathermap.org/data/2.5/ ... d="#app_id;
dom.GetObject("CUxD.CUX2801002:1.CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801002:1.CMD_QUERY_RET").State(1);
string rueckgabe = dom.GetObject("CUxD.CUX2801002:1.CMD_RETS").State();
WriteLine("Rueckgabe="#rueckgabe);
var speed = (rueckgabe.StrValueByIndex(",",13)).StrValueByIndex(":",2).ToInteger() * 3.6;
var temp = (rueckgabe.StrValueByIndex(",",7)).StrValueByIndex(":",2).ToInteger(); - 273.15;
var pressure = (rueckgabe.StrValueByIndex(",",8)).StrValueByIndex(":",1).ToInteger();
var humidity = (rueckgabe.StrValueByIndex(",",9)).StrValueByIndex(":",1).ToInteger();
var description = (rueckgabe.StrValueByIndex(",",4)).StrValueByIndex(":",1);
var name = (rueckgabe.StrValueByIndex(",",24)).StrValueByIndex(":",1);
dom.GetObject("owm-Windgeschwindigkeit").State(speed);
dom.GetObject("owm-Aussentemperatur").State(temp);
dom.GetObject("owm-Luftdruck").State(pressure);
dom.GetObject("owm-Luftfeuchte").State(humidity);
dom.GetObject("owm-Wetter").State(description);
dom.GetObject("owm-Wetterstation").State(name);
So funktioniert es bei mir-viel Erfolg
Gruß Nick