Wetter/Regen Daten aus dem Internet verwerten

Programmierung der FHZ-Zentralen mit contronics homeputer Standard / homeputer Studio & WEB-Server

Moderator: Co-Administratoren

Antworten
Schinderhannes
Beiträge: 131
Registriert: 02.12.2011, 11:46

Wetter/Regen Daten aus dem Internet verwerten

Beitrag von Schinderhannes » 24.03.2022, 23:28

sorry falsches unterforum HmeputerCL ist aber auch gut versteckt...

Hallo all,

hat irgendeiner der Homeputer Nutzer evtl. ein schönes Programm, dass für eine festzulegenden Ort Wetterdaten von irgendeinem Internetanbieter auswertet und daraus eine Entscheidung ableitet ob dort bewässert werden muss oder nicht?
Dann wäre ich für den entsprechenden Programmschnipsel der dies leistet extrem dankbar,
Das wäre ersten für mich am/übers Limit von dem was ich irgendwie hinbekäme (nicht zu sprechen davon dass es jahrelang stabil laufen soll)
Und würde viel Zeit kosten sowas erneut zu erfinden. Für HM "nativ" gibt es ja Beispiele aber ich habe alles in Hemeputer und würd gern dabei bleiben.

Konkret geht es um folgenden "poor mans" Approach. Ich habe 5 Gardena Bewässerungs- Computer/Ventile, die ich immer im Urlaub und an einigen Beeten auch den ganzen Sommer einsetze zum Bewässern, nicht nur Tröpfchengedöns (das auch) aber im Sommerurlaub auch große Rasensprenger die Rasen und Beete beglücken.
Zum Glück alles vom Tiefbrunnen bedient, kost "nur" Strom - 1kW Pumpe.
Jetzt würde ich gerne einen Steckdosenadapter vor die Pumpe hängen, der während der automatischen Bewässerungszeiten (früh morgens und spät abends) nur dann Saft auf die Pumpe gibt wenn es nicht geregnet hat. -> Die Gardenas machen weiter blöd auf und zu, aber es kommt nur was, wenn gebraucht.

Schon mal Danke für alle Codespenden
Hannes

fsommer1968
Beiträge: 230
Registriert: 16.02.2008, 17:05
Danksagung erhalten: 9 Mal

Re: Wetter/Regen Daten aus dem Internet verwerten

Beitrag von fsommer1968 » 22.04.2022, 07:56

Hallo Hannes,

untertützt Deine Homeputer Installation php in Makros?


Frank

messerschmidt
Beiträge: 1
Registriert: 15.05.2022, 21:07
System: CCU

Re: Wetter/Regen Daten aus dem Internet verwerten

Beitrag von messerschmidt » 15.05.2022, 21:16

Ich habe mir ein Skript geschrieben, um die Daten bei WeatherAPI (https://www.weatherapi.com) auszulesen. Ich nutze die Daten an mehreren Stellen, vorwiegend aber zur Steuerung der Gartenbewässerung und zur Rolladensteuerung an heißen Tagen.

Hier ein rudimentärer Beispielcode - Schlüssel und Standort müssen angepasst werden - die Variablen müssen ebenfalls angelegt werden. Das Skript rufe ich morgens und nachmittags jeweils ab.


var url = "http://api.weatherapi.com/v1/forecast.x ... SSEL&q=ORT";


!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;
string word = "";
string daten = "";
integer word_laenge = 0;
integer word_position = 0;

!Daten mit Suchworten aus XML-File ausfiltern:

word = "<condition>";
word_laenge = word.Length();
word_position = wetter_xml.Find(word);
daten = wetter_xml.Substr((word_position + word_laenge + 0), 900);
string word = "text";
word_laenge = word.Length();
word_position = daten.Find(word);
daten = daten.Substr((word_position + word_laenge + 1), 10);
daten = daten # " - " # system.Date("%d.%m.%Y");
dom.GetObject("Wetter_Bedingungen").State(daten);

word = "<day>";
word_laenge = word.Length();
word_position = wetter_xml.Find(word);
daten = wetter_xml.Substr((word_position + word_laenge + 0), 900);
string word = "maxtemp_c";
word_laenge = word.Length();
word_position = daten.Find(word);
daten = daten.Substr((word_position + word_laenge + 1), 3);
real zahl = daten.ToFloat();
dom.GetObject("Wetter_Temp_Hoch").State(zahl);

word = "<day>";
word_laenge = word.Length();
word_position = wetter_xml.Find(word);
daten = wetter_xml.Substr((word_position + word_laenge + 0), 900);
string word = "totalprecip_mm";
word_laenge = word.Length();
word_position = daten.Find(word);
daten = daten.Substr((word_position + word_laenge + 1), 3);
real zahl = daten.ToFloat();
dom.GetObject("Wetter_Niederschlag").State(zahl);


zahl = 0;
daten="";
wetter_xml = "";
stdout = "";

Antworten

Zurück zu „homeputer Studio / Standard: Programmierbeispiele“