[gelöst] "Gezeitenkalender" Daten/Werte einer Webseite beziehen

Begonnen von Canon.Fritz, 13 August 2017, 12:28:25

Vorheriges Thema - Nächstes Thema

Canon.Fritz

Hallo liebe Forengemeinde,

ich bin neu hier im Forum und habe probt mal die erste Frage an euch.

Ist es irgendwie möglich die Zeiten für das nächste Hoch- und Niedrigwasser von dieser Webseite zu beziehen und in Fhem einzulesen ?
http://www.bsh.de/cgi-bin/gezeiten/was_tab.pl?ort=DE__776P&zone=Gesetzliche+Zeit+%B9&niveau=KN

Ich habe bereits eine HTTP Abfrage von Spritpreisen realisiert, aber hier fehlt mir immer noch der richtige Ansatz.
Aus dem Quellcode der Seite kann ich die wichtigen Daten nicht finden
FHEM auf Raspberry3, Betriebssystem Raspberry Pi OS, diverse Wemos D1 mini Boards, Sonoff S20, Shellys

amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Canon.Fritz

Werde leider aus der commandref nicht so ganz schlau  :-[
FHEM auf Raspberry3, Betriebssystem Raspberry Pi OS, diverse Wemos D1 mini Boards, Sonoff S20, Shellys

amenomade

reading01Regex (?s)Wasserstand<br.*?HW.*?(\d\d:\d\d)

Versuch einfach mal!
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Canon.Fritz

Mit welchem Attribut muss ich das ganze verknüpfen ?

Habe es mal so in die Kommandozeile eingegeben : attr Gezeiten reading01Regex (?s)Wasserstand<br.*?HW.*?(\d\d:\d\d)

Leider kein Erfolg.  :'(
FHEM auf Raspberry3, Betriebssystem Raspberry Pi OS, diverse Wemos D1 mini Boards, Sonoff S20, Shellys

amenomade

Da musst Du auch ein reading01Name haben.

Hast Du überhaupt commandRef gelesen??? Da sind zahlreiche Beispiele! Bei dem ganz ersten Beispiel, hättest Du schon was du brauchst.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Canon.Fritz

Nach mehreren Versuchen klappt es jetzt  :)
Ich bekomme die erste Uhrzeit aus der Tabelle.

Wie bekomme ich denn jetzt z.B. die ersten drei Uhrzeiten ins Fhem ?

FHEM auf Raspberry3, Betriebssystem Raspberry Pi OS, diverse Wemos D1 mini Boards, Sonoff S20, Shellys

amenomade

Indem Du die entspr. Regex in reading02Regex, reading03Regex usw. aufbaust :) Dafür ist https://regex101.com/ perfekt.
Damit kannst Du meine vorgeschlagene Regex verstehen (regex101 erklärt alles Schritt für Schritt oben rechts).
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Jojo11

Hallo,

ich hatte das auch erst über die website vom BSH versucht. Das passte aber nie ganz genau vom Format. Bin dann dazu übergegangen, die Gezeiten mit xtide selber zu berechnen.
Schau mal hier, da gibt es auch Kommandozeilenoptionen:
http://www.flaterco.com/xtide/advanced.html
Das Ergebnis ist fast identisch und was zurück kommt lässt sich einfacher weiterverarbeiten.

schöne Grüße
Jo

betateilchen

Oben rechts auf der Seite gibt es übrigens ein Suchfeld. Und man darf das sogar benutzen!

Für die Gezeitenermittlung gibt es schon eine funktionierende Lösung hier im Forum.

https://forum.fhem.de/index.php/topic,25142.msg400161.html#msg400161
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

amenomade

#10
Zitat von: betateilchen am 13 August 2017, 19:33:39
Oben rechts auf der Seite gibt es übrigens ein Suchfeld. Und man darf das sogar benutzen!

Für die Gezeitenermittlung gibt es schon eine funktionierende Lösung hier im Forum.

https://forum.fhem.de/index.php/topic,25142.msg400161.html#msg400161

Ist aber nicht **FUN*** ! Und so lernt man nie, eigene Regex zu bauen ;) Deswegen auch, habe ich nicht sofort alle passende Regex geliefert, sonst kommt der Anwender immer wieder und wieder :) Ich kenne schon die nächste Frage: "Wie bekomme ich denn jetzt z.B. die zwei nächste Hoch/Niedrig Uhrzeiten ins Fhem ?"

Ausserdem nutzt dein Beispiel die alte (deprecated) Syntax
Zitat(The old syntax attr readingsNameX and attr readingsRegexX is still supported but it can go away in a future version of HTTPMOD so the new one with attr readingXName and attr readingXRegex should be preferred.



Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

amenomade

#11
@Canon.Fritz: Falls du noch Hilfe brauchst, sag Bescheid. Aber bitte versuch zu lernen, statt Komplettlösung zu verlangen :) Langfristig wirst Du Zeit sparen :)


Aus http://www.bsh.de/cgi-bin/gezeiten/was_tab.pl?ort=DE__635P&zone=Gesetzliche+Zeit+%B9&niveau=KN
sieht man die Readings im Bild :)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Canon.Fritz

@ betateilchen : danke für die INFO  ;D Meine Location wird von xTide leider nicht verarbeitet.

@ amenomade : Danke für die Tips  :) Ich werde mich die Woche nochmal dran machen die Daten von BSH zu verarbeiten. Bei weiteren Fragen komme ich gerne auf dich zurück.
FHEM auf Raspberry3, Betriebssystem Raspberry Pi OS, diverse Wemos D1 mini Boards, Sonoff S20, Shellys

Canon.Fritz

Habe die erste Tabellenzeile endlich hin  ;D

Der Regex101 Tester ist echt super, wenn man erstmal verstanden hat wie er funktioniert.

Wie komme ich nun in die Zeilen 2, 3 usw. ?


FHEM auf Raspberry3, Betriebssystem Raspberry Pi OS, diverse Wemos D1 mini Boards, Sonoff S20, Shellys

amenomade

Indem du weitere "Stichwörter" weiter in dem HTML identifiziert, um weiter zu matchen.

Z.B. wenn für die erste:
(?s)Wasserstand<br.*?header1.*?header3.*?>(\d\d:\d\d)
dann für die zweite:
(?s)Wasserstand<br.*?header4.*?header1.*?header3.*?>(\d\d:\d\d)
und für die dritte:
(?s)Wasserstand<br.*?header4.*?header4.*?header1.*?header3.*?>(\d\d:\d\d)
vierte:
(?s)Wasserstand<br.*?header4.*?header4.*?header4.*?header1.*?header3.*?>(\d\d:\d\d)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus