FHEM Forum

FHEM => Sonstiges => Thema gestartet von: FhemPiUser am 18 März 2023, 11:18:17

Titel: [gelöst] HTTPMOD Regex für finanzen.net: kein match, obwohl reg101 matched
Beitrag von: FhemPiUser am 18 März 2023, 11:18:17
Hi,

ich versuche per HTTPMOD den DAX in Punkten (PKT) und die Veränderung in % auf finanzen.net (https://www.finanzen.net/index/dax/charttool (https://www.finanzen.net/index/dax/charttool)) auszuwerten.

Die PKT klappen, leider matched die reading02Regex "(([+-]?\d+\,\d+)$\s.*\s.*\%)" für die Auslesung der Veränderung in % laut verbose-Log nicht, obwohl die Regex in Regex101.com funktioniert und matched.

Jemand eine Idee woran das liegen kann?

Anbei meine Konfig:


defmod httpmod_finanzen_dax HTTPMOD https://www.finanzen.net/index/dax/charttool 900
attr httpmod_finanzen_dax enableCookies 0
attr httpmod_finanzen_dax event-on-change-reading dax
attr httpmod_finanzen_dax reading01Name dax
attr httpmod_finanzen_dax reading01OExpr $val =~ s/\.//g;; $val =~ s/\,/./g;; $val  ## 1.) Entfernung des Tausendertrennzeichens, 2.) Umwandlung des Dezimalkommas in Dezimalpunkt
attr httpmod_finanzen_dax reading01Regex (\d+\.\d+\,\d+).*
attr httpmod_finanzen_dax reading02Name dax_perc
attr httpmod_finanzen_dax reading02OExpr $val =~ s/\,/./g;;;; $val =~ s/\+//g;;;;  $val  ## Umwandlung des Dezimalkommas in Dezimalpunkt
attr httpmod_finanzen_dax reading02Regex ([+-]?\d+\,\d+)$\s.*\s.*\%
attr httpmod_finanzen_dax requestHeader User-Agent: Wget/1.20.1 (linux-gnueabihf)


Titel: Antw:HTTPMOD Regex für finanzen.net
Beitrag von: DeeSPe am 18 März 2023, 11:34:12
Zitatattr httpmod_finanzen_dax reading02Regex ([+-]?\d+\,\d+)$\s.*\s.*\%
Das Dollarzeichen ist dort auf jeden Fall fehl am Platz.
Wenn man das herausnimmt gibt es sicherlich ein Match.

Gruß
Dan
Titel: Antw:HTTPMOD Regex für finanzen.net
Beitrag von: FhemPiUser am 18 März 2023, 11:45:05
danke, aber leider weiterhin kein match:


2023.03.18 11:40:49.474 5: httpmod_finanzen_dax: ExtractReading dax_perc with regex (?^m:([+-]?\d+\,\d+)\s.*\s.*\%) and options gm ...
2023.03.18 11:40:49.691 5: httpmod_finanzen_dax: ExtractReading dax_perc did not match


Auch nicht wenn ich noch gm als RegOpts hinzugefügt habe:


attr httpmod_finanzen_dax reading02RegOpt gm



Aber was ich nicht verstehe: Warum matched dann reg101.com mit der gleichen RegEx (siehe https://regex101.com/r/rPiiQ9/1 (https://regex101.com/r/rPiiQ9/1))?




Titel: Antw:HTTPMOD Regex für finanzen.net: kein match, obwohl reg101 matched
Beitrag von: DeeSPe am 18 März 2023, 11:50:36
Evtl. liegt es noch an den Escapes von , und % ?
Soweit ich weiß müssen diese nicht escaped werden, oder haben die eine spezielle Bedeutung in RegEx?

Gruß
Dan
Titel: Antw:HTTPMOD Regex für finanzen.net: kein match, obwohl reg101 matched
Beitrag von: FhemPiUser am 18 März 2023, 11:52:40
Danke, aber leider auch ohne die Escapes kein Match...
Titel: Antw:HTTPMOD Regex für finanzen.net: kein match, obwohl reg101 matched
Beitrag von: TomLee am 18 März 2023, 13:59:04
Ob jetzt fachmännisch gelöst bezweifel ich, aber es tut und es gibt jeweils nur ein Match, keine zwei:

defmod httpmod_finanzen_dax HTTPMOD https://www.finanzen.net/index/dax/charttool 900
attr httpmod_finanzen_dax enableCookies 0
attr httpmod_finanzen_dax event-on-change-reading dax
attr httpmod_finanzen_dax reading01Name dax
attr httpmod_finanzen_dax reading01OExpr $val =~ s/\.//g;; $val =~ s/\,/./g;; $val  ## 1.) Entfernung des Tausendertrennzeichens, 2.) Umwandlung des Dezimalkommas in Dezimalpunkt
attr httpmod_finanzen_dax reading01Regex snapshot-value-fst-current-0[\w\W\n]*?(\d+\.\d+\,\d+)
attr httpmod_finanzen_dax reading02Name dax_perc
attr httpmod_finanzen_dax reading02OExpr $val =~ s/\,/./g;; $val =~ s/\+//g;;  $val  ## Umwandlung des Dezimalkommas in Dezimalpunkt
attr httpmod_finanzen_dax reading02Regex snapshot-value-fst-absolute-0[\w\W\n]*?(\d+\,\d+)
attr httpmod_finanzen_dax requestHeader User-Agent: Wget/1.20.1 (linux-gnueabihf)

setstate httpmod_finanzen_dax 2023-03-18 13:54:27 dax 14762.67
setstate httpmod_finanzen_dax 2023-03-18 13:54:27 dax_perc 204.43
Titel: Antw:HTTPMOD Regex für finanzen.net: kein match, obwohl reg101 matched
Beitrag von: FhemPiUser am 18 März 2023, 14:11:21
Ahh, vielen Dank!

Etwas angepasst, aber die Regex "snapshot-value-fst-relative-0[\w\W\n]*?([+-]?\d+\,\d+)" funktioniert!