[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

Zitat von: amenomade am 22 April 2020, 21:51:13
(.{25})
Das "capturing group" für genau 25 Zeichen

Wenn Du nur die 10 erste fangen willst, lässt Du die restliche raus:
(.{10}).{15}

Nur die 5 letzte:
.{20}(.{5})


Perfekt so hat es geklappt  ;D

Vielen dank @amenomade. Jetzt wird alles perfekt ausgewertet.

Anbei zur Vervollständigung nochmal die komplette Device config:
defmod Gezeiten_Windfinder HTTPMOD https://api.windfinder.com/v2/spots/de1729/tides/?limit=-1&customer=wfweb&version=1.0&token=$sid 0
attr Gezeiten_Windfinder userattr reading01Name reading01Regex reading02Name reading02Regex reading03Name reading03Regex reading04Name reading04Regex reading05Name reading05Regex reading06Name reading06Regex sid01IdRegex sid01URL
attr Gezeiten_Windfinder DbLogExclude .*
attr Gezeiten_Windfinder enableControlSet 1
attr Gezeiten_Windfinder reAuthRegex UNAUTHORIZED
attr Gezeiten_Windfinder reading01Name HW_Tag
attr Gezeiten_Windfinder reading01Regex dtl":".{5}(.{5}).{15}","tp":"high.*?dtl":".{5}(.{5}).{15}","tp":"high.*?dtl":".{5}(.{5}).{15}","tp":"high.*?dtl":".{5}(.{5}).{15}","tp":"high.*?dtl":".{5}(.{5}).{15}","tp":"high.*?dtl":".{5}(.{5}).{15}","tp":"high.*?dtl":".{5}(.{5}).{15}","tp":"high
attr Gezeiten_Windfinder reading02Name HW_Zeit
attr Gezeiten_Windfinder reading02Regex dtl":".{11}(.{5}).{9}","tp":"high.*?dtl":".{11}(.{5}).{9}","tp":"high.*?dtl":".{11}(.{5}).{9}","tp":"high.*?dtl":".{11}(.{5}).{9}","tp":"high.*?dtl":".{11}(.{5}).{9}","tp":"high.*?dtl":".{11}(.{5}).{9}","tp":"high.*?dtl":".{11}(.{5}).{9}","tp":"high
attr Gezeiten_Windfinder reading03Name HW_Level
attr Gezeiten_Windfinder reading03Regex dtl":".*?,"tp":"high","th":([0-9].[0-9]?[0-9]?).*?dtl":".*?,"tp":"high","th":([0-9].[0-9]?[0-9]?).*?dtl":".*?,"tp":"high","th":([0-9].[0-9]?[0-9]?).*?dtl":".*?,"tp":"high","th":([0-9].[0-9]?[0-9]?).*?dtl":".*?,"tp":"high","th":([0-9].[0-9]?[0-9]?).*?dtl":".*?,"tp":"high","th":([0-9].[0-9]?[0-9]?).*?dtl":".*?,"tp":"high","th":([0-9].[0-9]?[0-9]?).*?
attr Gezeiten_Windfinder reading04Name NW_Tag
attr Gezeiten_Windfinder reading04Regex dtl":".{5}(.{5}).{15}","tp":"low.*?dtl":".{5}(.{5}).{15}","tp":"low.*?dtl":".{5}(.{5}).{15}","tp":"low.*?dtl":".{5}(.{5}).{15}","tp":"low.*?dtl":".{5}(.{5}).{15}","tp":"low.*?dtl":".{5}(.{5}).{15}","tp":"low.*?dtl":".{5}(.{5}).{15}","tp":"low
attr Gezeiten_Windfinder reading05Name NW_Zeit
attr Gezeiten_Windfinder reading05Regex dtl":".{11}(.{5}).{9}","tp":"low.*?dtl":".{11}(.{5}).{9}","tp":"low.*?dtl":".{11}(.{5}).{9}","tp":"low.*?dtl":".{11}(.{5}).{9}","tp":"low.*?dtl":".{11}(.{5}).{9}","tp":"low.*?dtl":".{11}(.{5}).{9}","tp":"low.*?dtl":".{11}(.{5}).{9}","tp":"low
attr Gezeiten_Windfinder reading06Name NW_Level
attr Gezeiten_Windfinder reading06Regex dtl":".*?,"tp":"low","th":([0-9].[0-9]?[0-9]?).*?dtl":".*?,"tp":"low","th":([0-9].[0-9]?[0-9]?).*?dtl":".*?,"tp":"low","th":([0-9].[0-9]?[0-9]?).*?dtl":".*?,"tp":"low","th":([0-9].[0-9]?[0-9]?).*?dtl":".*?,"tp":"low","th":([0-9].[0-9]?[0-9]?).*?dtl":".*?,"tp":"low","th":([0-9].[0-9]?[0-9]?).*?dtl":".*?,"tp":"low","th":([0-9].[0-9]?[0-9]?).*?
attr Gezeiten_Windfinder room 02_Außen_Klima->Gezeiten
attr Gezeiten_Windfinder showBody 1
attr Gezeiten_Windfinder sid01IdRegex window.API_TOKEN = '(.*?)'
attr Gezeiten_Windfinder sid01URL https://de.windfinder.com/tide/dangast


Ausgewertet sieht es dann so aus (siehe Bild Backend, FTUI)
FHEM auf Raspberry3, Betriebssystem Raspberry Pi OS, diverse Wemos D1 mini Boards, Sonoff S20, Shellys

amenomade

Vielleicht noch ein "list" vom ReadingsGroup? Danke :) Oder html von FTUI wenn das nur in FTUI definiert
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

#32
Ich habe es nur in FTUI definiert, da ich das Backend nur für die reine Verwaltung benutze.

anbei die html für den Gezeiten Kalender in FTUI.
<!-- Gezeitenkalender -->
<li data-row="1" data-col="10" data-sizex="3" data-sizey="3">
<header><font size="+1">Gezeitenkalender</font></header>
<div class="cell">
<table class="calls" width="100%">
<tr>
<td><div class="calls darker large">Tag:&nbsp;</div></td>
<td><div class="calls darker large">Zeit:&nbsp;</div></td>
<td><div class="calls darker large">Typ:&nbsp;</div></td>
<td><div class="calls darker large">Wasserstand:&nbsp;</div></td>
</tr>
<!-- 1. Zeile HW-1-->
<tr>
<td><div class="large" data-type="label" data-colors='["#B28F00"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="HW_Tag-1"></div>

<td><div class="large" data-type="label" data-colors='["#B28F00"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="HW_Zeit-1"></div>

<td><div class="narrow compressed" data-type="symbol"
data-icon='fa-angle-double-up'
data-color="green"></div>

<td><div class="large" data-type="label" data-colors='["#00BFFF"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="HW_Level-1"></div>
</tr>
<!-- 2. Zeile NW-1-->
<tr>

<td><div class="large" data-type="label" data-colors='["#B28F00"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="NW_Tag-1"></div>

<td><div class="large" data-type="label" data-colors='["#B28F00"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="NW_Zeit-1"></div>

<td><div class="narrow compressed" data-type="symbol"
data-icon='fa-angle-double-down'
data-color="blue"></div>

<td><div class="large" data-type="label" data-colors='["#00BFFF"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="NW_Level-1"></div>
</tr>
<!-- 3. Zeile HW-2-->
<tr>
<td><div class="large" data-type="label" data-colors='["#B28F00"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="HW_Tag-2"></div>

<td><div class="large" data-type="label" data-colors='["#B28F00"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="HW_Zeit-2"></div>

<td><div class="narrow compressed" data-type="symbol"
data-icon='fa-angle-double-up'
data-color="green"></div>

<td><div class="large" data-type="label" data-colors='["#00BFFF"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="HW_Level-2"></div>
</tr>
<!-- 4. Zeile NW-2-->
<tr>
<td><div class="large" data-type="label" data-colors='["#B28F00"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="NW_Tag-2"></div>

<td><div class="large" data-type="label" data-colors='["#B28F00"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="NW_Zeit-2"></div>

<td><div class="narrow compressed" data-type="symbol"
data-icon='fa-angle-double-down'
data-color="blue"></div>

<td><div class="large" data-type="label" data-colors='["#00BFFF"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="NW_Level-2"></div>
</tr>
<!-- 5. Zeile HW-3-->
<tr>
<td><div class="large" data-type="label" data-colors='["#B28F00"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="HW_Tag-3"></div>

<td><div class="large" data-type="label" data-colors='["#B28F00"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="HW_Zeit-3"></div>

<td><div class="narrow compressed" data-type="symbol"
data-icon='fa-angle-double-up'
data-color="green"></div>

<td><div class="large" data-type="label" data-colors='["#00BFFF"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="HW_Level-3"></div>
</tr>
<!-- 6. Zeile NW-3-->
<tr>
<td><div class="large" data-type="label" data-colors='["#B28F00"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="NW_Tag-3"></div>

<td><div class="large" data-type="label" data-colors='["#B28F00"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="NW_Zeit-3"></div>

<td><div class="narrow compressed" data-type="symbol"
data-icon='fa-angle-double-down'
data-color="blue"></div>

<td><div class="large" data-type="label" data-colors='["#00BFFF"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="NW_Level-3"></div>
</tr>
<!-- 7. Zeile HW-4-->
<tr>
<td><div class="large" data-type="label" data-colors='["#B28F00"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="HW_Tag-4"></div>

<td><div class="large" data-type="label" data-colors='["#B28F00"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="HW_Zeit-4"></div>

<td><div class="narrow compressed" data-type="symbol"
data-icon='fa-angle-double-up'
data-color="green"></div>

<td><div class="large" data-type="label" data-colors='["#00BFFF"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="HW_Level-4"></div>
</tr>
<!-- 8. Zeile NW-4-->
<tr>
<td><div class="large" data-type="label" data-colors='["#B28F00"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="NW_Tag-4"></div>

<td><div class="large" data-type="label" data-colors='["#B28F00"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="NW_Zeit-4"></div>

<td><div class="narrow compressed" data-type="symbol"
data-icon='fa-angle-double-down'
data-color="blue"></div>

<td><div class="large" data-type="label" data-colors='["#00BFFF"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="NW_Level-4"></div>
</tr>
<!-- 9. Zeile HW-5-->
<tr>
<td><div class="large" data-type="label" data-colors='["#B28F00"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="HW_Tag-5"></div>

<td><div class="large" data-type="label" data-colors='["#B28F00"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="HW_Zeit-5"></div>

<td><div class="narrow compressed" data-type="symbol"
data-icon='fa-angle-double-up'
data-color="green"></div>

<td><div class="large" data-type="label" data-colors='["#00BFFF"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="HW_Level-5"></div>
</tr>
<!-- 10. Zeile NW-5-->
<tr>
<td><div class="large" data-type="label" data-colors='["#B28F00"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="NW_Tag-5"></div>

<td><div class="large" data-type="label" data-colors='["#B28F00"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="NW_Zeit-5"></div>

<td><div class="narrow compressed" data-type="symbol"
data-icon='fa-angle-double-down'
data-color="blue"></div>

<td><div class="large" data-type="label" data-colors='["#00BFFF"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="NW_Level-5"></div>
</tr>
<!-- 11. Zeile HW-6-->
<tr>
<td><div class="large" data-type="label" data-colors='["#B28F00"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="HW_Tag-6"></div>

<td><div class="large" data-type="label" data-colors='["#B28F00"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="HW_Zeit-6"></div>

<td><div class="narrow compressed" data-type="symbol"
data-icon='fa-angle-double-up'
data-color="green"></div>

<td><div class="large" data-type="label" data-colors='["#00BFFF"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="HW_Level-6"></div>
</tr>
<!-- 12. Zeile NW-6-->
<tr>
<td><div class="large" data-type="label" data-colors='["#B28F00"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="NW_Tag-6"></div>

<td><div class="large" data-type="label" data-colors='["#B28F00"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="NW_Zeit-6"></div>

<td><div class="narrow compressed" data-type="symbol"
data-icon='fa-angle-double-down'
data-color="blue"></div>

<td><div class="large" data-type="label" data-colors='["#00BFFF"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="NW_Level-6"></div>
</tr>
                    <!-- 13. Zeile HW-7-->
<tr>
<td><div class="large" data-type="label" data-colors='["#B28F00"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="HW_Tag-7"></div>

<td><div class="large" data-type="label" data-colors='["#B28F00"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="HW_Zeit-7"></div>

<td><div class="narrow compressed" data-type="symbol"
data-icon='fa-angle-double-up'
data-color="green"></div>

<td><div class="large" data-type="label" data-colors='["#00BFFF"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="HW_Level-7"></div>
</tr>
<!-- 14. Zeile NW-7-->
<tr>
<td><div class="large" data-type="label" data-colors='["#B28F00"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="NW_Tag-7"></div>

<td><div class="large" data-type="label" data-colors='["#B28F00"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="NW_Zeit-7"></div>

<td><div class="narrow compressed" data-type="symbol"
data-icon='fa-angle-double-down'
data-color="blue"></div>

<td><div class="large" data-type="label" data-colors='["#00BFFF"]' data-limits='["0"]'
data-device="Gezeiten_Windfinder" data-get="NW_Level-7"></div>
</tr>
</table>
</div>
</li>
FHEM auf Raspberry3, Betriebssystem Raspberry Pi OS, diverse Wemos D1 mini Boards, Sonoff S20, Shellys