HTTPMOD mehrere Zeilen einer Tabelle

Begonnen von siekai, 30 Oktober 2019, 11:06:40

Vorheriges Thema - Nächstes Thema

siekai

Hallo Forum,

ich habe mich mit der Anleitung : https://forum.fhem.de/index.php?topic=25142.0, der cmdref und dem Forum durch HTTPMOD gearbeitet. Funktioniert auch, allerdings wird jeweils nur ein Eintrag der Tabelle für Hoch- bzw. Niedrigwasser angezeigt. Mit Body = 1 habe ich mir die Tabelle angeschaut, Werte sind da. User Readings klappt auch nicht.

Kann mir jemand einen Tip geben wie ich weiter komme ?

Wie kann man den Source Code der Website wieder ausblenden ? Body = 0 funktioniert nicht.

Gruß

siekai
Raspberry 3 für die Automatisierung in fhem, Raspberry 3 für die Oberfläche zur Hebung des WAF Faktors mit IOBROKER

amenomade

Zeig bitte ein "list" deines HTTPMODs

Wegen body: versuch das Attribut zu löschen statt auf 0 zu setzen.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

siekai

Hallo amenomade,

schön das du noch geantwortet hast. Nachdem bis gestern Abend keiner einen Tip hatte dachte ich mir schon das ich im Thread selber etwas wenig mitgeliefert habe. Ich hole das jetzt mal nach. ( Ich bin kein Profi wie du wahrscheinlich gleich merken wirst )

Ausgegangen bin ich von der Idee von rtv der die Seite von exnatura mit HTTPMOD geparst hat:

define Gezeiten_Papenburg HTTPMOD http://exnatura.de:9099/locations/2171.html 21600
attr Gezeiten_Papenburg readingsName_NextLow Niedrigwasser
attr Gezeiten_Papenburg readingsRegex_NextLow ((?:\d{2}\.\d{2}\.\d{4} \d{2}:\d{2})(?=.*Niedrigwasser(\n|$)))
attr Gezeiten_Papenburg readingsName_NextHigh Hochwasser
attr Gezeiten_Papenburg readingsRegex_NextHigh ((?:\d{2}\.\d{2}\.\d{4} \d{2}:\d{2})(?=.*Hochwasser(\n|$)))
attr Gezeiten_Papenburg stateFormat Ebbe: Niedrigwasser Flut: Hochwasser
attr Gezeiten_Papenburg timeout 10
attr Gezeiten_Papenburg icon scene_swimming
attr Gezeiten_Papenburg alias Gezeiten Papenburg
attr Gezeiten_Papenburg room Wetter


Ich habe das Ganze gerade noch einmal neu angelegt. Zum einen um den Body wieder loszuwerden ( löschen hat nicht geklappt) und zum anderen um zu überprüfen ob ich alles richtig übernommen habe.

Hier der list von HTTPMOD:

Internals:
   BUSY       0
   CFGFN     
   DEF        http://exnatura.de:9099/locations/2171.html 21600
   FUUID      5dba752b-f33f-9842-53b2-d99e2ee60a7c9345
   Interval   21600
   LASTSEND   1572501004.15616
   MainURL    http://exnatura.de:9099/locations/2171.html
   ModuleVersion 3.5.4 - 9.11.2018
   NAME       Gezeiten_Papenburg
   NR         13933
   STATE      Ebbe: Niedrigwasser Flut: Hochwasser
   TRIGGERTIME 1572522604.15436
   TRIGGERTIME_FMT 2019-10-31 12:50:04
   TYPE       HTTPMOD
   addr       http://exnatura.de:9099
   auth       0
   code       200
   compress   1
   conn       
   data       
   displayurl http://exnatura.de:9099/locations/2171.html
   header     
   host       exnatura.de
   httpheader HTTP/1.0 200 OK
MIME-version: 1.0
Content-type: text/html
   httpversion 1.0
   hu_blocking 0
   hu_filecount 2
   hu_port    9099
   hu_portSfx :9099
   ignoreredirects 0
   loglevel   4
   path       /locations/2171.html
   protocol   http
   redirects  0
   timeout    10
   url        http://exnatura.de:9099/locations/2171.html
   value      0
   QUEUE:
   READINGS:
     2019-10-31 06:50:04   Hochwasser-1    31.10.2019 08:42
     2019-10-31 06:50:04   Hochwasser-2   

     2019-10-31 06:50:04   Niedrigwasser-1 31.10.2019 02:17
     2019-10-31 06:50:04   Niedrigwasser-2

   REQUEST:
     data       
     header     
     ignoreredirects 0
     retryCount 0
     type       update
     url        http://exnatura.de:9099/locations/2171.html
     value      0
   defptr:
     readingBase:
       Hochwasser-1 reading
       Hochwasser-2 reading
       Niedrigwasser-1 reading
       Niedrigwasser-2 reading
     readingNum:
       Hochwasser-1 _NextHigh
       Hochwasser-2 _NextHigh
       Niedrigwasser-1 _NextLow
       Niedrigwasser-2 _NextLow
     readingOutdated:
     readingSubNum:
       Hochwasser-1 -1
       Hochwasser-2 -2
       Niedrigwasser-1 -1
       Niedrigwasser-2 -2
     requestReadings:
       update:
         Hochwasser-1 reading _NextHigh-1
         Hochwasser-2 reading _NextHigh-2
         Niedrigwasser-1 reading _NextLow-1
         Niedrigwasser-2 reading _NextLow-2
   sslargs:
Attributes:
   alias      Gezeiten Papenburg
   icon       scene_swimming
   readingsName_NextHigh Hochwasser
   readingsName_NextLow Niedrigwasser
   readingsRegex_NextHigh ((?:\d{2}\.\d{2}\.\d{4} \d{2}:\d{2})(?=.*Hochwasser(\n|$)))
   readingsRegex_NextLow ((?:\d{2}\.\d{2}\.\d{4} \d{2}:\d{2})(?=.*Niedrigwasser(\n|$)))
   room       Wetter
   stateFormat Ebbe: Niedrigwasser Flut: Hochwasser
   timeout    10
   userattr   readingsName_NextHigh readingsName_NextLow readingsRegex_NextHigh readingsRegex_NextLow


Als Readings werden dann Werte für "Hochwasser-1" und "Niedrigwasser-1" ausgegeben. "Hochwasser-2" und "Niedrigwasser-2" werden auch mit ausgegeben, jedoch nicht mit Daten gefüllt.

Und da geht es auch schon los. "Hochwasser-x"  wird automatisch hochgezählt. Wahrscheinlich reicht mein Englisch nicht aber ich konnte dazu nichts in der cmdref finden ??

Noch nebenbei und falls einer das gleiche Problem hat:

Im Original Thread fragt macmark etwas tiefer warum bei ihm nur "Ebbe: Niedrigwasser Flut: Hochwasser" angezeigt wird. Grund ist die Referenzierung des state-Formats. Es muss auf "Niedrigwasser-1" bzw. "Hochwasser-1" erfolgen.


Die Tabelle auf der exnatura Seite habe ich mir vorher angeschaut und die Regex im https://regex101.com geprüft, Werte werden alle erkannt.
Hier der Ausschnitt:



<tr><td width="50%" align="left" valign="top">
<pre>
Papenburg, Germany
53.1167° N, 7.3667° E

31.10.2019 07:25 CET   Sonnenaufgang
31.10.2019 10:56 CET   0.12 Meter  Niedrigwasser
31.10.2019 11:21 CET   Mondaufgang
31.10.2019 14:56 CET   4.15 Meter  Hochwasser
31.10.2019 17:01 CET   Sonnenuntergang
31.10.2019 19:19 CET   Monduntergang
31.10.2019 23:15 CET   0.24 Meter  Niedrigwasser
01.11.2019 03:13 CET   4.09 Meter  Hochwasser
01.11.2019 07:27 CET   Sonnenaufgang
01.11.2019 11:34 CET   0.17 Meter  Niedrigwasser
01.11.2019 12:27 CET   Mondaufgang
01.11.2019 15:39 CET   4.01 Meter  Hochwasser
01.11.2019 16:59 CET   Sonnenuntergang
01.11.2019 20:07 CET   Monduntergang
01.11.2019 23:49 CET   0.42 Meter  Niedrigwasser
02.11.2019 03:50 CET   4.04 Meter  Hochwasser
02.11.2019 07:29 CET   Sonnenaufgang
02.11.2019 12:11 CET   0.34 Meter  Niedrigwasser
02.11.2019 13:21 CET   Mondaufgang
02.11.2019 16:20 CET   3.84 Meter  Hochwasser
02.11.2019 16:57 CET   Sonnenuntergang
02.11.2019 21:03 CET   Monduntergang
03.11.2019 00:19 CET   0.64 Meter  Niedrigwasser
03.11.2019 04:28 CET   3.98 Meter  Hochwasser
03.11.2019 07:31 CET   Sonnenaufgang
03.11.2019 12:45 CET   0.57 Meter  Niedrigwasser
03.11.2019 14:03 CET   Mondaufgang
03.11.2019 16:55 CET   Sonnenuntergang
03.11.2019 16:59 CET   3.69 Meter  Hochwasser
03.11.2019 22:06 CET   Monduntergang
04.11.2019 00:48 CET   0.87 Meter  Niedrigwasser
04.11.2019 05:08 CET   3.93 Meter  Hochwasser
</pre></td></tr></table>
<br />



An der Stelle bin ich jetzt und vermute das Problem in der Regex Definition. Bin nach einem Tag googeln zwar schlauer aber noch nicht wirklich weiter
und würde mich über einen Denkanstoß sehr freuen,

siekai
Raspberry 3 für die Automatisierung in fhem, Raspberry 3 für die Oberfläche zur Hebung des WAF Faktors mit IOBROKER

amenomade

1. readingsRegex.... und readingsName... sind nicht mehr wirklich unterstützt.
Zitat von: CommandRef(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)

2. positive lookaheads sind in Regex nicht das beste... wenn die überhaupt funktionieren.

3. um zu sehen, was möglich wäre, brauche ich die Ausgabe aus der Log mit verbose 5, insb. was im body zurückkommt
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

siekai

Hallo amenomade,

1.  readings habe ich geändert.
2.  die Bedeutung von "looaheads" habe ich soweit verstanden, werde das Thema aber gleich noch mal vertiefen.
3. Log File
    habe den ganzen File hier in 3 Blöcke unterteilt damit es etwas übersichtlicher wird

Vorlauf:

2019.11.01 07:42:34 4: Connection accepted from WEB_192.168.178.27_65418
2019.11.01 07:42:34 4: WEB_192.168.178.27_65418 POST /fhem?cmd.modifyGezeiten_Papenburg%3Dmodify%20Gezeiten_Papenburg%20http%3A%2F%2Fexnatura.de%3A9099%2Flocations%2F2171.html%20600&XHR=1&fwcsrf=csrf_332634142016264&fw_id=14446; BUFLEN:0
2019.11.01 07:42:34 5: Cmd: >modify Gezeiten_Papenburg http://exnatura.de:9099/locations/2171.html 600<
2019.11.01 07:42:34 3: Gezeiten_Papenburg: Defined with URL http://exnatura.de:9099/locations/2171.html and interval 600
2019.11.01 07:42:34 4: Gezeiten_Papenburg: update timer modified: will call GetUpdate in 2.0 seconds at 2019-11-01 07:42:36
2019.11.01 07:42:34 5: Starting notify loop for global, 1 event(s), first is MODIFIED Gezeiten_Papenburg
2019.11.01 07:42:34 5: Gezeiten_Papenburg: UpdateHintList called
2019.11.01 07:42:34 5: Gezeiten_Papenburg: UpdateHintList: setlist =
2019.11.01 07:42:34 5: Gezeiten_Papenburg: UpdateHintList: getlist =
2019.11.01 07:42:34 5: End notify loop for global
2019.11.01 07:42:34 4: WEB: /fhem?cmd.modifyGezeiten_Papenburg%3Dmodify%20Gezeiten_Papenburg%20http%3A%2F%2Fexnatura.de%3A9099%2Flocations%2F2171.html%20600&XHR=1&fwcsrf=csrf_332634142016264&fw_id=14446 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/ Cache-Control: no-cache, no-store, must-revalidate

2019.11.01 07:42:34 5: Cmd: >jsonlist2 Gezeiten_Papenburg<
2019.11.01 07:42:35 4: WEB_192.168.178.27_65418 POST /fhem?cmd=save&XHR=1&fwcsrf=csrf_332634142016264&fw_id=14446; BUFLEN:0
2019.11.01 07:42:35 5: Cmd: >save<
2019.11.01 07:42:35 5: Starting notify loop for global, 1 event(s), first is SAVE
2019.11.01 07:42:35 5: End notify loop for global
2019.11.01 07:42:36 4: WEB: /fhem?cmd=save&XHR=1&fwcsrf=csrf_332634142016264&fw_id=14446 / RL:52 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/ Cache-Control: no-cache, no-store, must-revalidate

2019.11.01 07:42:36 4: Gezeiten_Papenburg: GetUpdate called (update)
2019.11.01 07:42:36 4: Gezeiten_Papenburg: update timer modified: will call GetUpdate in 600.0 seconds at 2019-11-01 07:52:36
2019.11.01 07:42:36 4: Gezeiten_Papenburg: AddToQueue adds update, initial queue len: 0
2019.11.01 07:42:36 5: Gezeiten_Papenburg: AddToQueue adds type update to URL http://exnatura.de:9099/locations/2171.html, no data, no headers, retry 0
2019.11.01 07:42:36 5: Gezeiten_Papenburg: HandleSendQueue called, qlen = 1
2019.11.01 07:42:36 4: Gezeiten_Papenburg: HandleSendQueue sends request type update to URL http://exnatura.de:9099/locations/2171.html, No Data, No Header
timeout 10
2019.11.01 07:42:36 5: HttpUtils url=http://exnatura.de:9099/locations/2171.html
2019.11.01 07:42:36 4: IP: exnatura.de -> 85.214.137.186
2019.11.01 07:42:36 5: HttpUtils request header:
GET /locations/2171.html HTTP/1.0
Host: exnatura.de:9099
User-Agent: fhem
Accept-Encoding: gzip,deflate
Content-Length: 0
Content-Type: application/x-www-form-urlencoded

2019.11.01 07:42:36 4: http://exnatura.de:9099/locations/2171.html: HTTP response code 200
2019.11.01 07:42:36 5: HttpUtils http://exnatura.de:9099/locations/2171.html: Got data, length: 16512
2019.11.01 07:42:36 5: HttpUtils response header:
HTTP/1.0 200 OK
MIME-version: 1.0
Content-type: text/html
2019.11.01 07:42:36 4: Gezeiten_Papenburg: Read callback: request type was update retry 0,
Body: <!DOCTYPE........



Body:

......_Papenburg: Read callback: request type was update retry 0,
Body: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
                 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
                 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
                 <head><title>Gezeitenkalender für Korths Harbor, San Joaquin River, California (Tidenkalender) – und viele weitere Orte</title>
                 <link rel="shortcut icon" href="http://www.gezeiten-kalender.de/favicon.ico" type="image/x-icon" />
                 <meta name="page-topic" content="Gezeiten" />
                 <meta name="keywords" content="Gezeiten, Gezeitenkalender, Tidenkalender, Küste, Mond, Umweltbildung, Umweltpädagogik, Naturerlebnispädagogik, Wattenmeer, Naturschutz, Ökologie" />
                 <meta name="description" content="Freier Gezeitenkalender mit Gezeiten-Vorhersagen für viele Orte weltweit" />
                 <meta name="robots" content="index, follow" />
                 <meta name="author" content="Guido Gerding" />
                 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-15" />
                 <link rel="stylesheet" href="http://www.gezeiten-kalender.de/style.css" type="text/css" />
        <!-- Begin Google Page Level Add -->
                  <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
                  <script>
                  (adsbygoogle = window.adsbygoogle || []).push({
                  google_ad_client: "ca-pub-7646476700124050",
                  enable_page_level_ads: true
                  });
                  </script>
        <!-- End Google Page Level Add -->
        <!-- Start Cookie Consent 3.1.0 -->
<link rel="stylesheet" type="text/css" href="https://gezeiten-kalender.de/cc/cookieconsent.min.css" />
<script src="https://gezeiten-kalender.de/cc/cookieconsent.min.js"></script>
<script>
window.addEventListener("load", function(){
window.cookieconsent.initialise({
  "palette": {
    "popup": {
     "background": "#237afc"
    },
    "button": {
      "background": "transparent",
     "text": "#fff",
      "border": "#fff"
    }
  },
  "position": "bottom-left",
  "content": {
    "message": "Diese Site benutzt Cookies und nutzt Werbedienste, die  Cookies einsetzen.",
    "dismiss": "Alles klar!",
    "link": "Mehr Infos!",
    "href": "https://gezeiten-kalender.de/privacy.php"
  }
})});
</script>
<!-- End Cookie Consent -->
                 </head>
<body>
<div align="center"><div align="center">
                    <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
                    <!-- XTide2018 -->
                    <ins class="adsbygoogle"
                    style="display:block"
                    data-ad-client="ca-pub-7646476700124050"
                    data-ad-slot="6847487996"
                    data-ad-format="auto"></ins>
                    <script>
                    (adsbygoogle = window.adsbygoogle || []).push({});
                    </script>
                    </div><h1>Gezeitenkalender für Korths Harbor, San Joaquin River, California <br />
Ortszeit:  31.10.2019 23:42 PDT </h1></div>
<div align="center"><img src="/graphs/2171.png" width="960" height="312" border="0" alt="Gezeitenvorhersage" title="Gezeitenvorhersage :: Hoch- und Niedrigwasser :: Gezeitenkalender - Korths Harbor, San Joaquin River, California" /></div></p><br /><table cellpadding="0" cellspacing="0" border="0">
<tr><td width="50%" align="left" valign="top">
<pre>
Korths Harbor, San Joaquin River, California
38.0976� N, 121.5684� W

01.11.2019 03:08 PDT  -0.14 Meter  Niedrigwasser
01.11.2019 07:32 PDT   Sonnenaufgang
01.11.2019 09:41 PDT   0.57 Meter  Hochwasser
01.11.2019 12:21 PDT   Mondaufgang
01.11.2019 14:37 PDT   0.37 Meter  Niedrigwasser
01.11.2019 18:07 PDT   Sonnenuntergang
01.11.2019 20:36 PDT   0.90 Meter  Hochwasser
01.11.2019 22:05 PDT   Monduntergang
02.11.2019 04:00 PDT  -0.10 Meter  Niedrigwasser
02.11.2019 07:33 PDT   Sonnenaufgang
02.11.2019 10:42 PDT   0.56 Meter  Hochwasser
02.11.2019 13:12 PDT   Mondaufgang
02.11.2019 15:35 PDT   0.40 Meter  Niedrigwasser
02.11.2019 18:06 PDT   Sonnenuntergang
02.11.2019 21:28 PDT   0.84 Meter  Hochwasser
02.11.2019 23:00 PDT   Monduntergang
03.11.2019 03:53 PST  -0.05 Meter  Niedrigwasser
03.11.2019 06:34 PST   Sonnenaufgang
03.11.2019 10:44 PST   0.57 Meter  Hochwasser
03.11.2019 12:57 PST   Mondaufgang
03.11.2019 15:41 PST   0.41 Meter  Niedrigwasser
03.11.2019 17:04 PST   Sonnenuntergang
03.11.2019 21:25 PST   0.77 Meter  Hochwasser
03.11.2019 22:58 PST   Monduntergang
04.11.2019 02:23 PST   Erstes Viertel
04.11.2019 04:47 PST  -0.01 Meter  Niedrigwasser
04.11.2019 06:35 PST   Sonnenaufgang
04.11.2019 11:40 PST   0.59 Meter  Hochwasser
04.11.2019 13:35 PST   Mondaufgang
04.11.2019 16:50 PST   0.40 Meter  Niedrigwasser
04.11.2019 17:03 PST   Sonnenuntergang
04.11.2019 22:26 PST   0.72 Meter  Hochwasser
</pre></td></tr></table>
<br />
<div class="boxxt"><h2> Zeitliche Auswahl </h2>
<p> <form method=get action="/locations/2171.html">
Jahr: <select name="y">
<option>1970
<option>1971
<option>1972
<option>1973
<option>1974
<option>1975
<option>1976
<option>1977
<option>1978
<option>1979
<option>1980
<option>1981
<option>1982
<option>1983
<option>1984
<option>1985
<option>1986
<option>1987
<option>1988
<option>1989
<option>1990
<option>1991
<option>1992
<option>1993
<option>1994
<option>1995
<option>1996
<option>1997
<option>1998
<option>1999
<option>2000
<option>2001
<option>2002
<option>2003
<option>2004
<option>2005
<option>2006
<option>2007
<option>2008
<option>2009
<option>2010
<option>2011
<option>2012
<option>2013
<option>2014
<option>2015
<option>2016
<option>2017
<option>2018
<option selected>2019
<option>2020
<option>2021
<option>2022
<option>2023
<option>2024
<option>2025
<option>2026
<option>2027
<option>2028
<option>2029
<option>2030
<option>2031
<option>2032
<option>2033
<option>2034
<option>2035
<option>2036
<option>2037
</select>
Monat: <select name="m">
<option>1
<option>2
<option>3
<option>4
<option>5
<option>6
<option>7
<option>8
<option>9
<option selected>10
<option>11
<option>12
</select>
Tag: <select name="d">
<option>1
<option>2
<option>3
<option>4
<option>5
<option>6
<option>7
<option>8
<option>9
<option>10
<option>11
<option>12
<option>13
<option>14
<option>15
<option>16
<option>17
<option>18
<option>19
<option>20
<option>21
<option>22
<option>23
<option>24
<option>25
<option>26
<option>27
<option>28
<option>29
<option>30
<option selected>31
</select>
<input type=submit value="Go"></form></p><p> Info:  Sollte Ihr Browser eine leere Seite zeigen oder
  eine Fehlermeldung:"Keine Daten", dann ist Ihre angeforderte Vorhersage nicht verfügbar.</p>
<h2>Monatlicher Gezeitenkalender</h2>
<p> <form method=get action="/calendar/month/2171.ics">
Jahr: <select name="y">
<option>1970
<option>1971
<option>1972
<option>1973
<option>1974
<option>1975
<option>1976
<option>1977
<option>1978
<option>1979
<option>1980
<option>1981
<option>1982
<option>1983
<option>1984
<option>1985
<option>1986
<option>1987
<option>1988
<option>1989
<option>1990
<option>1991
<option>1992
<option>1993
<option>1994
<option>1995
<option>1996
<option>1997
<option>1998
<option>1999
<option>2000
<option>2001
<option>2002
<option>2003
<option>2004
<option>2005
<option>2006
<option>2007
<option>2008
<option>2009
<option>2010
<option>2011
<option>2012
<option>2013
<option>2014
<option>2015
<option>2016
<option>2017
<option>2018
<option selected>2019
<option>2020
<option>2021
<option>2022
<option>2023
<option>2024
<option>2025
<option>2026
<option>2027
<option>2028
<option>2029
<option>2030
<option>2031
<option>2032
<option>2033
<option>2034
<option>2035
<option>2036
<option>2037
</select>
Monat: <select name="m">
<option>1
<option>2
<option>3
<option>4
<option>5
<option>6
<option>7
<option>8
<option>9
<option selected>10
<option>11
<option>12
</select>
Ausgabe: <select name="f">
<option selected>Webseite</option>
<option>iCalendar</option>
</select>
<input type=submit value="Go"></form></p><h2>Gezeitenkalender für ein Jahr</h2>
<p> <form method=get action="/calendar/year/2171.ics">
Jahr: <select name="y">
<option>1970
<option>1971
<option>1972
<option>1973
<option>1974
<option>1975
<option>1976
<option>1977
<option>1978
<option>1979
<option>1980
<option>1981
<option>1982
<option>1983
<option>1984
<option>1985
<option>1986
<option>1987
<option>1988
<option>1989
<option>1990
<option>1991
<option>1992
<option>1993
<option>1994
<option>1995
<option>1996
<option>1997
<option>1998
<option>1999
<option>2000
<option>2001
<option>2002
<option>2003
<option>2004
<option>2005
<option>2006
<option>2007
<option>2008
<option>2009
<option>2010
<option>2011
<option>2012
<option>2013
<option>2014
<option>2015
<option>2016
<option>2017
<option>2018
<option selected>2019
<option>2020
<option>2021
<option>2022
<option>2023
<option>2024
<option>2025
<option>2026
<option>2027
<option>2028
<option>2029
<option>2030
<option>2031
<option>2032
<option>2033
<option>2034
<option>2035
<option>2036
<option>2037
</select>
Ausgabe: <select name="f">
<option selected>Webseite</option>
<option>iCalendar</option>
</select>
<input type=submit value="Go"></form></p><p>Die Auswahl der iCalendar Ausgabe mag Ihren Browser dazu bewegen, die Ereignisse Ihrem Kalender hinzu zu fügen.  Bevor Sie also einen ganzen Monat oder gar ein Jahr hinzufügen, klicken Sie auf den folgenden Link und probieren Sie diese Ausgabe <a href="/calendar/day/2171.ics?y=2019&m=10&d=31&f=i" title="Kalender für einen Tag" class="txtln">für einen ein Tages Kalender-Test.</a> So können Sie sehen, wie sich Ihr Kalender verhält.  Sie sollten Ereignisse ohne zeitliche Dauer erhalten und diese Ereignisse sollten keinen Zeitraum als "beschäftigt" blockieren.</p>
<div align="center"><div class="boxxtw"><div align="center"><h2>NICHT ZU NAVIGATIONSZWECKEN BENUTZEN!</h2></div>
         <p>Die Veröffentlichung dieses Programms erfolgt in der Hoffnung,
         dass es Ihnen von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE,
         sogar ohne die implizite Garantie der MARKTREIFE oder der
         VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK.
           Auf Grund des Garantieausschlusses lehnt der Autor
         jeden Haftungsanspruch durch eventuell entstehende Schäden durch die
         Nutzung des Vorhersagesystems und den Verlass auf die Vorhersagen ab.
           Die Vorhersagen haben keinen Anspruch auf Richtigkeit und
         sie beziehen keine besonderen Umstände mit ein, wie etwa Tropenstürme,
         El Niño, seismische Ereignisse, Kontinentaldrift oder Änderungen des
         globalen Meeresspiegels.
         </p><p>
         Schauen Sie zum Vergleich z.B. beim <a href="http://www.bsh.de/de/Meeresdaten/Vorhersagen/Gezeiten/index.jsp" target="blank_" title="Bundesamt für Seeschifffahrt und Hydrographie" class="txtln">BSH</a>
         vorbei.</p></div></div></div><br /><br /><div align="center"><img src="http://www.gezeiten-kalender.de/img/k2.jpg" alt="Strand" title="Strand :: Ebbe und Flut :: Gezeitenkalender" /></div>
  <br /><br />
  <table cellspacing="0" cellpadding="0" border="0">
              <!-- BEGIN TITLE -->
              <tr>
              <td width="100%" class="boxTitle bg_light"><b>Menü</b></td>
              </tr>
              <!-- END title -->
              <tr>
              <td class="even box">
<p> <ul><li><a href="/"class="txtln" title="Startseite - Gezeitenkalender">Startseite</a></li>
<li><a href="/index.html" class="txtln" title="Gezeitenkalender - Hauptindex">Hauptindex</a></li>
  <li><a href="/zones/" class="txtln" title="Gezeitenkalender - Zonen-Index">Zonen-Index</a></li>
  <li><a href="http://www.flaterco.com/xtide/" class="txtln" title="XTide Software">XTide Software</a></li><li><a href="http://www.sonnenaufgang-sonnenuntergang.de" target="blank_"  class="txtln" title="Freier, weltweiter Dämmerungsrechner">Dämmerungsrechner bei <i>www.sonnenaufgang-sonnenuntergang.de</i></a></li><li><a class="txtln" title="Senden Sie eine E-Mail" href="mailto:xtide@epigeo.com">Feedback [Ihre Meinung]</a></li>
        <li><a href="https://www.gezeiten-kalender.de/gezeitenkalender.kmz" title="Gezeitenkalender aus Google Earth heraus aufrufen" class="txtln">Alle Standorte in Google Earth [Download: KMZ-Layer]</a></li>
<li><a href="/tricks.html" class="txtln" title="Gezeitenkalender - Tipps und Tricks">Tipps und Tricks</a></li>
  <li><a href="https://www.gezeiten-kalender.de/impressum.php" target="blank_"  class="txtln" title="Haftungsausschluss &
Impressum">Impressum und Haftungsausschluss</a></li>
    <li><a href="https://www.gezeiten-kalender.de/privacy.php" target="blank_"  class="txtln" title="Datenschutzerklärung">Datenschutzerklärung</a></li>
    </ul></p>
  </td></tr></table><br /><br /><h2>Über diese Station</h2>
<table>
<tr><td valign=top>Name</td><td valign=top><pre>Korths Harbor, San Joaquin River, California</pre></td></td>
<tr><td valign=top>Stations ID Kontext</td><td valign=top><pre>NOS</pre></td></td>
<tr><td valign=top>Stations ID</td><td valign=top><pre>9415229</pre></td></td>
<tr><td valign=top>Import Datum</td><td valign=top><pre>2017-12-31</pre></td></td>
<tr><td valign=top>Koordinaten</td><td valign=top><pre>38.0976� N, 121.5684� W</pre></td></td>
<tr><td valign=top>Land</td><td valign=top><pre>USA</pre></td></td>
<tr><td valign=top>Zeitzone</td><td valign=top><pre>:America/Los_Angeles</pre></td></td>
<tr><td valign=top>Quelle</td><td valign=top><pre>CO-OPS Metadata API</pre></td></td>
<tr><td valign=top>Einschränkungen</td><td valign=top><pre>Public domain</pre></td></td>
<tr><td valign=top>Credit</td><td valign=top><pre>NOAA data processed by David Flater for XTide
http://www.flaterco.com/xtide/</pre></td></td>
<tr><td valign=top>Original name</td><td valign=top><pre>KORTHS HBR, SAN JOAQUIN RIVER</pre></td></td>
<tr><td valign=top>State</td><td valign=top><pre>CA</pre></td></td>
<tr><td valign=top>Typ</td><td valign=top><pre>Reference station, tide</pre></td></td>
<tr><td valign=top>Meridian</td><td valign=top><pre>0:00</pre></td></td>
<tr><td valign=top>Datum</td><td valign=top><pre>Mean Lower Low Water</pre></td></td>
<tr><td valign=top>Native Einheiten</td><td valign=top><pre>feet</pre></td></td>
<tr><td valign=top>Confidence</td><td valign=top><pre>10</pre></td></td>
</table>
<br /><div align="center"><img src="http://www.gezeiten-kalender.de/img/k2.jpg" alt="Strand" title="Strand :: Ebbe und Flut :: Gezeitenkalender" /></div><br /><div align="center"><table cellspacing="0" cellpadding="0" border="0">
              <!-- BEGIN TITLE -->
              <tr>
              <td width="100%" class="boxTitle bg_light"><b>Menü</b></td>
              </tr>
              <!-- END title -->
              <tr>
              <td class="even box"><p> <ul><li><a href="/" class="txtln" title="Startseite Gezeitenkalender">Startseite</a></li><li><a href="/index.html" class="txtln" title="Gezeitenkalender - Hauptindex">Hauptindex</a></li><li><a href="/zones/" class="txtln" title="Gezeitenkalender - Zonen Index">Zonen-Index</a></li><li><a href="http://www.flaterco.com/xtide/" class="txtln" title="XTide Software">XTide Software</a></li><li><a class="txtln" title="Senden Sie eine E-Mail" href="mailto:xtide@epigeo.com">Feedback</a></li><li><a href="https://www.gezeiten-kalender.de/gezeitenkalender.kmz" title="Gezeitenkalender aus Google Earth heraus aufrufen" class="txtln">Alle Standorte in Google Earth [Download: KMZ-Layer]</a></li><li><a href="/tricks.html" class="txtln" title="Gezeitenkalender - Tipps und Tricks">Tipps und Tricks</a></li><li><a href="https://www.sonnenaufgang-sonnenuntergang.de" target="blank_"  class="txtln" title="Freier, weltweiter Dämmerungsrechner">Dämmerungsrechner bei <i>www.sonnenaufgang-sonnenuntergang.de</i></a></li><li><a href="https://www.gezeiten-kalender.de/impressum.php" target="blank_"  class="txtln" title="Haftungsausschluss & Impressum">Impressum und Haftungsausschluss</a></li><li><a href="https://www.gezeiten-kalender.de/privacy.php" target="blank_"  class="txtln" title="Datenschutzerklärung">Datenschutzerklärung</a></li></ul></p></td></tr></div></td></tr></table>
              </body>
              </html>

2019.11.01 07:42:36 5: Gezeiten_Papenburg: ..........


Auswertung:

2019.11.01 07:42:36 5: Gezeiten_Papenburg: ExtractSid called, context reading, num
2019.11.01 07:42:36 4: Gezeiten_Papenburg: CheckAuth decided no authentication required
2019.11.01 07:42:36 5: Gezeiten_Papenburg: UpdateReadingList created list of reading.* nums to parse during getUpdate as 1 2
2019.11.01 07:42:36 5: Gezeiten_Papenburg: Read starts parsing response to update with defined readings: 1,2
2019.11.01 07:42:36 5: Gezeiten_Papenburg: ExtractReading Niedrigwasser with regex /((?:\d{2}\.\d{2}\.\d{4} \d{2}:\d{2})(?=.*Niedrigwasser(\n|$)))/...
2019.11.01 07:42:36 5: Gezeiten_Papenburg: 2 capture group(s), matchlist = 01.11.2019 03:08,

2019.11.01 07:42:36 4: Gezeiten_Papenburg: ExtractReading for reading1-1 sets Niedrigwasser-1 to 01.11.2019 03:08
2019.11.01 07:42:36 4: Gezeiten_Papenburg: ExtractReading for reading1-2 sets Niedrigwasser-2 to

2019.11.01 07:42:36 5: Gezeiten_Papenburg: ExtractReading Hochwasser with regex /((?:\d{2}\.\d{2}\.\d{4} \d{2}:\d{2})(?=.*Hochwasser(\n|$)))/...
2019.11.01 07:42:36 5: Gezeiten_Papenburg: 2 capture group(s), matchlist = 01.11.2019 09:41,

2019.11.01 07:42:36 4: Gezeiten_Papenburg: ExtractReading for reading2-1 sets Hochwasser-1 to 01.11.2019 09:41
2019.11.01 07:42:36 4: Gezeiten_Papenburg: ExtractReading for reading2-2 sets Hochwasser-2 to

2019.11.01 07:42:36 4: Gezeiten_Papenburg: Read response to update matched Reading(s) Niedrigwasser-1 Niedrigwasser-2 Hochwasser-1 Hochwasser-2
2019.11.01 07:42:36 5: Starting notify loop for Gezeiten_Papenburg, 4 event(s), first is Niedrigwasser-1: 01.11.2019 03:08
2019.11.01 07:42:36 5: End notify loop for Gezeiten_Papenburg
2019.11.01 07:42:36 5: Gezeiten_Papenburg: HandleSendQueue called, qlen = 0
2019.11.01 07:42:46 4: WEB_192.168.178.27_65418 GET /fhem/FileLog_logWrapper?dev=Logfile&type=text&file=fhem-2019-11.log; BUFLEN:0



Mal ein paar Gedanken von mir so wie ich es in den letzten Tagen verstanden habe.

Der lookahead wird notwendig da das eindeutige Kriterium "Niedrigwasser" am Ende steht ?. Da die Tabelle immer aktualisiert wird, könnte ich auch mit einem Datumsvergleich auf den aktuellen Tag oder den Folgetag ( wenn nächstes Ereignis erst morgen ) matchen und dann die folgenden Zeilen auswerten.  Könnte man so etwas auch mit regex Ausdrücken machen oder bin ich da schon in pearl unterwegs ?

Könnte man sich die Tabelle auch zwischenspeichern und sie dann in ein Array zerlegen ( wahrscheinlich auch pearl ) ? Wie würde ich dabei in der fhem Umgebung ansetzen, wäre das ein eigenes Modul ?

Gruß

siekai
Raspberry 3 für die Automatisierung in fhem, Raspberry 3 für die Oberfläche zur Hebung des WAF Faktors mit IOBROKER

siekai

#5
Edit 1:

Bin ein bisschen weitergekommen.

Über den regex "(<pre>[^"]*<\/pre>)" habe ich die Tabelle schon einmal isoliert.

<pre> Korths Harbor, San Joaquin River, California 38.0976� N, 121.5684� W 01.11.2019 07:32 PDT Sonnenaufgang 01.11.2019 09:41 PDT 0.57 Meter Hochwasser 01.11.2019 12:21 PDT Mondaufgang 01.11.2019 14:37 PDT 0.37 Meter Niedrigwasser 01.11.2019 18:07 PDT Sonnenuntergang 01.11.2019 20:36 PDT 0.90 Meter Hochwasser 01.11.2019 22:05 PDT Monduntergang 02.11.2019 04:00 PDT -0.10 Meter Niedrigwasser 02.11.2019 07:33 PDT Sonnenaufgang 02.11.2019 10:42 PDT 0.56 Meter Hochwasser 02.11.2019 13:12 PDT Mondaufgang 02.11.2019 15:35 PDT 0.40 Meter Niedrigwasser 02.11.2019 18:06 PDT Sonnenuntergang 02.11.2019 21:28 PDT 0.84 Meter Hochwasser 02.11.2019 23:00 PDT Monduntergang 03.11.2019 03:53 PST -0.05 Meter Niedrigwasser 03.11.2019 06:34 PST Sonnenaufgang 03.11.2019 10:44 PST 0.57 Meter Hochwasser 03.11.2019 12:57 PST Mondaufgang 03.11.2019 15:41 PST 0.41 Meter Niedrigwasser 03.11.2019 17:04 PST Sonnenuntergang 03.11.2019 21:25 PST 0.77 Meter Hochwasser 03.11.2019 22:58 PST Monduntergang 04.11.2019 02:23 PST Erstes Viertel 04.11.2019 04:47 PST -0.01 Meter Niedrigwasser 04.11.2019 06:35 PST Sonnenaufgang 04.11.2019 11:40 PST 0.59 Meter Hochwasser 04.11.2019 13:35 PST Mondaufgang 04.11.2019 16:50 PST 0.40 Meter Niedrigwasser 04.11.2019 17:03 PST Sonnenuntergang 04.11.2019 22:26 PST 0.72 Meter Hochwasser 04.11.2019 23:56 PST Monduntergang </pre>

Jetzt müsste das ganze noch zerlegt werden.

Edit 2:

Bin gerade wieder ins fhem gegangen und finde jetzt im reading die Daten plötzlich sauber sortiert in ein er Tabelle ??
Müßte jetzt eigentlich nur noch den Kopf bis zum ersten Datum und anschließend noch das </pre>  loswerden.


Edit 3:

Tabelle ist jetzt mit: regex (\d{2}\.\d{2}\.\d{4} \d{2}:\d{2}[^"]*(Sonnenaufgang|Sonnenuntergang|Mondaufgang|Monduntergang|Niedrigwasser|Hochwasser)) sauber indem ich beim ersten Datum starte und beim letzten Sonnenaufgang | Sonnenuntergang | etc. stoppe. Aber wie jetzt zerlegen in der Form Hochwasser 1: Hochwasser 2: etc. ?
Raspberry 3 für die Automatisierung in fhem, Raspberry 3 für die Oberfläche zur Hebung des WAF Faktors mit IOBROKER

amenomade

#6
attr Gezeiten_Papenburg reading101Name Hochwasser
attr Gezeiten_Papenburg reading101RegOpt gm
attr Gezeiten_Papenburg reading101Regex (^[\d\. :]{16}).*?Hochwasser
attr Gezeiten_Papenburg reading102Name Niedrigwasser
attr Gezeiten_Papenburg reading102RegOpt gm
attr Gezeiten_Papenburg reading102Regex (^[\d\. :]{16}).*?Niedrigwasser


   READINGS:
     2019-11-01 21:05:57   Hochwasser-1    01.11.2019 20:36
     2019-11-01 21:05:57   Hochwasser-2    02.11.2019 10:42
     2019-11-01 21:05:57   Hochwasser-3    02.11.2019 21:28
     2019-11-01 21:05:57   Hochwasser-4    03.11.2019 10:44
     2019-11-01 21:05:57   Hochwasser-5    03.11.2019 21:25
     2019-11-01 21:05:57   Hochwasser-6    04.11.2019 11:40
     2019-11-01 21:05:57   Hochwasser-7    04.11.2019 22:26
     2019-11-01 21:05:57   Niedrigwasser-1 01.11.2019 14:37
     2019-11-01 21:05:57   Niedrigwasser-2 02.11.2019 04:00
     2019-11-01 21:05:57   Niedrigwasser-3 02.11.2019 15:35
     2019-11-01 21:05:57   Niedrigwasser-4 03.11.2019 03:53
     2019-11-01 21:05:57   Niedrigwasser-5 03.11.2019 15:41
     2019-11-01 21:05:57   Niedrigwasser-6 04.11.2019 04:47
     2019-11-01 21:05:57   Niedrigwasser-7 04.11.2019 16:50
     2019-11-01 21:05:57   Niedrigwasser-8 05.11.2019 05:38
     2019-11-01 21:04:36   Niedrigwasser-9 05.11.2019 05:38
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus