Hochwasser Pegel Abfragen

Nutzung von XML RPC, Remote Script, JSON RPC, XMLAPI

Moderator: Co-Administratoren

Antworten
ATR
Beiträge: 4
Registriert: 03.01.2018, 22:53

Hochwasser Pegel Abfragen

Beitrag von ATR » 03.01.2018, 22:56

Hallo Zusammen,
vlt. hat ja jemand eine Lösung dafür. Ich würde gerne über Homematic auch den aktuellen Flusspegel abfragen. Je nach Flusspegel würde ich entsprechende Maßnahmen zuhause steuern!

Der Flusspegel wird einmal in der Stunde unter der URL: https://www.pegelonline.wsv.de/webservi ... 8/down.txt zu Verfügung gestellt. Diese URL verändert sich jeden Tag! Hat jemand eine Idee wie ich aus der Datei immer den aktuellen Pegel abfragen kann?

Danke schon einmal!!

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: Hochwasser Pegel Abfragen

Beitrag von alchy » 04.01.2018, 01:12

Also für mich sieht es so aus, als ob stündlich aber dann alle 15min der Pegel in die datei eingetragen wird.
Was für ein komisches Verhalten, oder es war einfach zu spät/früh für mich.

Wenn du über das über die txt Datei machen willst musst du dir nur das Datum zusammensetzen und zu jeder vollen Stunde +ca. 5min
damit per wget oder curl dann die Datei holen.

Aber Achtung: da augenscheinlich die Datei erst nach 01:00 für den neuen Tag vorhanden ist müsstest du dies aber auch beachten, sollte aber über das Zeitmodul möglich sein
Zeitintervall 01:05 - 23:05 - stündlich...
Da dann auch noch alle 15 min die Datei mit neuen Werten gefüllt wird,

Code: Alles auswählen

...
22:15#737
22:30#736
22:45#736
23:00#737
23:15#XXX,XXX
23:30#XXX,XXX
23:45#XXX,XXX
24:00#XXX,XXX
musst du dich dann zur letzten "vollen Stunden-Uhrzeit" mit Wert (im Beispiel 23:00) parsen und dann hast du den Wert.

Weitere (ich denke mal einfachere) Möglichkeit.

Du parst dir Stündlich +5min einfach eine andere Website https://www.pegelonline.wsv.de/gast/sta ... r=26500100
enthält auch den letzten bekannten Pegel welchen du haben willst.

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.

Maddin75
Beiträge: 10
Registriert: 16.06.2016, 15:39

Re: Hochwasser Pegel Abfragen

Beitrag von Maddin75 » 01.01.2019, 05:17

Darf ich das Thema nochmal aufgreifen......

Finde das Thema Interessant und frage mich wie ich den Wert "wasserstand cm" in eine variable in die CCU bekomme.
https://www.pegelonline.wsv.de/gast/sta ... nr=2710080

Alternative nutze ich diesen LINK:
https://www.pegelonline.wsv.de/webservi ... ement=true

currentMeasurement:
timestamp "2019-01-01T05:00:00+01:00"
value 303 <------"aktuelle Wasserstand soll in eine Systemvatiable geschrieben werden"



Danke für paar tipps

Georgee
Beiträge: 149
Registriert: 22.05.2017, 11:58
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 5 Mal
Danksagung erhalten: 4 Mal

Re: Hochwasser Pegel Abfragen

Beitrag von Georgee » 01.01.2019, 12:56

Hallo,
ich kannte diesen Link nicht und habe versucht, die Daten einzulesen, in Anlehnung, an das was Alchy und andere für verschiedene Wetterskripts bereits gezeigt haben. Bei für Duisburg, weil von Interesse. Weitere Daten aus dem Link können dann nach gleicher Vorlage angepasst werden.
Kann derzeit nicht prüfen, ob diese Lösung noch richtig ist, wenn der Wasserstand 1000 cm überschreitet. Alchy hat da sicherlich Ideen, die ich gerne übernehmen würde, wenn er sie teilen möchte, gerne auch anpassen falls sinnvoll. Danke.
Georgee

Code: Alles auswählen

! 01.01.2019 Pegel Online Duisburg-Ruhrort

var url = "https://www.pegelonline.wsv.de/webservices/rest-api/v2/stations.json?ids=DUISBURG-RUHRORT&includeTimeseries=true&includeCurrentMeasurement=true";
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();

! Pegelstand
string pos1 = '"value": ';
string pos2 = ',';
integer wert_pos = rueckgabe.Find(pos1)+pos1.Length();
integer ende = rueckgabe.Find(pos2)-1;
string wert = rueckgabe.Substr(wert_pos,ende).StrValueByIndex(pos2-1,0);
dom.GetObject("R.Pegel.Duisburg").State(wert.ToInteger());
Edit: die Systemvariable (hier) R.Pegel.Duisburg ist vom Typ Zahl mit Einheit cm
Tinker Board S, aktuelle Version, kleines Funkmodul mit USB-2, USV, ca. 45 Geräte, CUxD, Mail, Programme drucken, ccu-historian mit Highcharts, hm-pdetect

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: Hochwasser Pegel Abfragen

Beitrag von alchy » 02.01.2019, 09:11

Natürlich gibt es immer verschiedene Wege.
Will man wie Maddin75 nur den Wasserstand haben, sollte man vielleicht die Abfrage gemäß der Doku vielleicht soweit reduzieren:

Code: Alles auswählen

https://www.pegelonline.wsv.de/webservices/rest-api/v2/stations/Bonn/W/currentmeasurement.json


das gibt dann übersichtlicher:

Code: Alles auswählen

{
  "timestamp": "2019-01-02T08:15:00+01:00",
  "value": 277.0,
  "trend": -1,
  "stateMnwMhw": "normal",
  "stateNswHsw": "unknown"
}
das macht dann weniger "Datenmüll" und das Parsen gleich viel einfacher. :wink:
Welche Methode man dann beim Parsen verwendet ist Geschmackssache, da alle sicher ihre Vor- und Nachteile haben.
Ich würde in dem Fall wahrscheinlich zu einem Einzeiler tendieren.

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.

Georgee
Beiträge: 149
Registriert: 22.05.2017, 11:58
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 5 Mal
Danksagung erhalten: 4 Mal

Re: Hochwasser Pegel Abfragen

Beitrag von Georgee » 02.01.2019, 10:57

Danke Alchy,
Skript läuft auch, wenn die sinnvolle, verkürzte Version mit dem von Die genannten Link abgerufen wird. Link muss nur ausgetauscht werden. Ist sicherlich so sinnvoller, weniger Daten, weniger Fehlerquellen etc.
VG Georgee
Tinker Board S, aktuelle Version, kleines Funkmodul mit USB-2, USV, ca. 45 Geräte, CUxD, Mail, Programme drucken, ccu-historian mit Highcharts, hm-pdetect

Maddin75
Beiträge: 10
Registriert: 16.06.2016, 15:39

Re: Hochwasser Pegel Abfragen

Beitrag von Maddin75 » 09.01.2019, 15:14

Funktioniert alles, vielen Dank an euch :mrgreen: :mrgreen: :mrgreen:

Antworten

Zurück zu „Softwareentwicklung von externen Applikationen“