Hauptmenü

httpmod readings

Begonnen von omnior, 06 Februar 2020, 20:24:52

Vorheriges Thema - Nächstes Thema

omnior

Ich lese in einem httpmod folgende Seite im httpbody:

{"data":{"unitMessage":{"iconText":{"message":"Wurde in den letzten 48 Stunden 39-mal angesehen"}}}}


Mit dieser Regex

reading01Name      gesehen
reading01RegOpt    s
reading01Regex     \d+(?=-mal)

die eigentlich korrekt die Zahl 39 auslesen sollte, klappt es aber nicht, was sicherlich an irgendetwas anderem liegt was ich vergessen habe.

Hier das vollständige List des Device:
Internals:
   BUSY       0
   DEF        https://www.fewo-direkt.de/pdp/graphql 600
   FUUID      5dcdbc37-f33f-373a-ab37-73c33bf1a5f125db
   Interval   600
   LASTSEND   1581016797.52964
   MainURL    https://www.fewo-direkt.de/pdp/graphql
   ModuleVersion 3.5.21 - 27.12.2019
   NAME       fewo
   NOTIFYDEV  global
   NR         195
   NTFY_ORDER 50-fewo
   STATE      ???
   TRIGGERTIME 1581017397.51038
   TRIGGERTIME_FMT 2020-02-06 20:29:57
   TYPE       HTTPMOD
   addr       https://www.fewo-direkt.de:443
   auth       0
   buf       
   code       200
   compress   1
   conn       
   data       {   "query": "query UnitMessage($unitUuid: String!, $assetVersion: Int!) {unitMessage( unitUuid: $unitUuid, assetVersion: $assetVersion ) { iconText { message } } }",   "variables": {     "unitUuid": "5a136a6f-d9f2-4951-8c6b-9ca55cddbf1d",     "assetVersion": 1   } }
   displayurl https://www.fewo-direkt.de/pdp/graphql
   header     user-agent: Mozilla/5.0 (Macintosh;; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36
authority: www.fewo-direkt.de
origin: https://www.fewo-direkt.de
cookie: ha-device-id=7bc2e7b3-b798-4271-980c-f8a8548cce8a;; hav=7bc2e7b3-b798-4271-980c-f8a8548cce8a;; visid_incap_1042227=mEcdWovaR9a/6vF+knKW2E008VwAAAAAQUIPAAAAAAAbVYJzIPXh0XXGj3t57S8N;; nlbi_1042227=ybUWJ4RegXX2w/+Uy55XXgAAAAD5XxH1SiypgY87EybW3yZD;; ha-cookie-settings=functional%3A1;; ha-gx-prefs=de_DE|EUR;; ha-mkt=33cf1a9a-132a-4e22-863a-f79982124c82;; incap_ses_473_1042227=aiIYLujH5An93BtZbnCQBuKFPV0AAAAA42PmDFn76blnoUuVtLiK7w==;; ef199862-9147-4c8e-9f26-cd9247c918d5SL=1;; has=ef199862-9147-4c8e-9f26-cd9247c918d5;; eu-site=1;; ha-trip-prst=%7B%22arrival%22%3A%22%22%2C%22departure%22%3A%22%22%2C%22numberOfAdults%22%3A0%2C%22numberOfChildren%22%3A0%2C%22petIncluded%22%3Afalse%7D;; site=homeaway_de;; crumb=Yvv-KzQxxjUNJ1_C8dFQ_7M5eBeNjAQnbIlJ6zC3KjO;; ha-mkt=fb7095a5-356e-4c75-9e02-04ea2254da1e
x-homeaway-site: homeaway_de
content-type: application/json
x-homeaway-displaylocale: de_DE
dnt: 1
accept: */*
sec-fetch-site: same-origin
sec-fetch-mode: cors
referer: https://www.fewo-direkt.de/ferienwohnung-ferienhaus/p2064237?r=SEARCH
x-csrf-jwt-pdp: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbiI6IjU5N2QyZGJmYjg2MmFlZjM2Y2IzMTMxMGNkZDZlMTlkZTE0MTYwOWViYTEzYWQ1MWYzMjU2NTU5MzVlYWE4ZjRjMTZhYmM2YjY1YmVlOWQ3NzM2MDE2Njg0YTc3OGE2OTg1Nzg4M2IzYWI0YTUzZmU0N2IyNWU1YjczN2E5MzRkMmZhNmYwZWUwMDM2ODg0N2RkMTRkYTM5MDJmNTUyNDkzMDk2M2ZjZDVlNDBhNTk1MTVlNTFmZjRlNzAyNjY3ZWQyMzc4ODA2ODUxYTgxYjY0MGI4ZTQ1Y2Q3OGMyNjA4ZjA5Nzc2ODg5Mzk0OWY4NzA4Njk4YTcwOWRjNmNkMGJkOWRiNDIwNzI2NzNlNjI0NTM3YmQ2YTI0YTI0MzAwNSIsImlhdCI6MTU4MDg0MzI0MSwiZXhwIjoxNTgxNDQ4MDQxfQ.9977gmSQ_RyexkYjVesPKkQis4b8vDWKOEPu6zcBH8o
Cookie: 77ebb4e1-5e13-423b-869d-75b2132be07cSL=1; eu-site=1; ha-device-id=51322386-008b-401b-ab98-ad0eed9cdb16; has=77ebb4e1-5e13-423b-869d-75b2132be07c; hav=7bc2e7b3-b798-4271-980c-f8a8548cce8a
   host       www.fewo-direkt.de
   httpbody   {"data":{"unitMessage":{"iconText":{"message":"Wurde in den letzten 48 Stunden 36-mal angesehen"}}}}

   httpheader HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
cache-control: no-cache
x-download-options: noopen
ha-gx-prefs: de_DE|EUR
l5d-success-class: 1.0
x-frame-options: SAMEORIGIN
x-content-type-options: nosniff
x-csrf-jwt-pdp: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbiI6IjU5N2QyZGJmYjg2MmFlZjM2Y2IzMTMxMGNkZDZlMTlkZTE0MTYwOWViYTEzYWQ1MWYzMjU2NTU5MzVlYWE4ZjRjMTZhYmM2YjY1YmVlOWQ3NzM2MDE2Njg0YTc3OGE2OTg1Nzg4M2IzYWI0YTUzZmU0N2IyNWU1YjczN2E5MzRkMmZhNmYwZWUwMDM2ODg0N2RkMTRkYTM5MDJmNTUyNDkzMDk2M2ZjZDVlNDBhNTk1MTVlNTFmZjRlNzAyNjY3ZWQyMzc4ODA2ODUxYTgxYjY0MGI4ZTQ1Y2Q3OGMyNjA4ZjA5Nzc2ODg5Mzk0OWY4NzA4Njk4YTcwOWRjNmNkMGJkOWRiNDIwNzI2NzNlNjI0NTM3YmQ2YTI0YTI0MzAwNSIsImlhdCI6MTU4MTAxNjc5NywiZXhwIjoxNTgxNjIxNTk3fQ.GaXCz28EM9-FIgCdhGqiYWsORSq0Fw0Bcb4mDM2s3v4
strict-transport-security: max-age=15768000
x-homeaway-requestmarker: c93a0cb42182
x-xss-protection: 1; mode=block
content-encoding: gzip
X-CGP: 0.5.122
x-eu-site: 1
Content-Length: 113
Accept-Ranges: bytes
Date: Thu, 06 Feb 2020 19:19:57 GMT
Connection: close
X-Served-By: cache-hhn4053-HHN
X-Cache: MISS
X-Cache-Hits: 0
X-Timer: S1581016798.681919,VS0,VE140
Vary: x-ha-pdp-cache-mode, x-ha-device-type, x-ha-bucketing, Accept-Encoding
HA-ipaddr: 92.117.241.32
Set-Cookie: hav=7bc2e7b3-b798-4271-980c-f8a8548cce8a; Max-Age=63072000; Expires=Sat, 05 Feb 2022 19:19:57 GMT; Path=/
Set-Cookie: eu-site=1; Max-Age=604800; Expires=Thu, 13 Feb 2020 19:19:57 GMT; Path=/
   httpversion 1.0
   hu_blocking 0
   hu_filecount 92
   hu_port    443
   hu_portSfx
   ignoreredirects 1
   loglevel   4
   path       /pdp/graphql
   protocol   https
   redirects  0
   timeout    2
   url        https://www.fewo-direkt.de/pdp/graphql
   value      0
   CompiledRegexes:
   HTTPCookieHash:
     77ebb4e1-5e13-423b-869d-75b2132be07cSL;:
       Name       77ebb4e1-5e13-423b-869d-75b2132be07cSL
       Options    Max-Age=86400; Expires=Fri, 07 Feb 2020 05:56:24 GMT; Path=/
       Path       
       Value      1
     eu-site;:
       Name       eu-site
       Options    Max-Age=604800; Expires=Thu, 13 Feb 2020 19:19:57 GMT; Path=/
       Path       
       Value      1
     ha-device-id;:
       Name       ha-device-id
       Options    Max-Age=63072000; Expires=Sat, 05 Feb 2022 05:56:24 GMT; Path=/
       Path       
       Value      51322386-008b-401b-ab98-ad0eed9cdb16
     has;:
       Name       has
       Options    Max-Age=86400; Expires=Fri, 07 Feb 2020 05:56:24 GMT; Path=/
       Path       
       Value      77ebb4e1-5e13-423b-869d-75b2132be07c
     hav;:
       Name       hav
       Options    Max-Age=63072000; Expires=Sat, 05 Feb 2022 19:19:57 GMT; Path=/
       Path       
       Value      7bc2e7b3-b798-4271-980c-f8a8548cce8a
   QUEUE:
   READINGS:
     2020-02-06 20:19:57   gesehen         1
   REQUEST:
     data       {   "query": "query UnitMessage($unitUuid: String!, $assetVersion: Int!) {unitMessage( unitUuid: $unitUuid, assetVersion: $assetVersion ) { iconText { message } } }",   "variables": {     "unitUuid": "5a136a6f-d9f2-4951-8c6b-9ca55cddbf1d",     "assetVersion": 1   } }
     header     user-agent: Mozilla/5.0 (Macintosh;; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36
authority: www.fewo-direkt.de
origin: https://www.fewo-direkt.de
cookie: ha-device-id=7bc2e7b3-b798-4271-980c-f8a8548cce8a;; hav=7bc2e7b3-b798-4271-980c-f8a8548cce8a;; visid_incap_1042227=mEcdWovaR9a/6vF+knKW2E008VwAAAAAQUIPAAAAAAAbVYJzIPXh0XXGj3t57S8N;; nlbi_1042227=ybUWJ4RegXX2w/+Uy55XXgAAAAD5XxH1SiypgY87EybW3yZD;; ha-cookie-settings=functional%3A1;; ha-gx-prefs=de_DE|EUR;; ha-mkt=33cf1a9a-132a-4e22-863a-f79982124c82;; incap_ses_473_1042227=aiIYLujH5An93BtZbnCQBuKFPV0AAAAA42PmDFn76blnoUuVtLiK7w==;; ef199862-9147-4c8e-9f26-cd9247c918d5SL=1;; has=ef199862-9147-4c8e-9f26-cd9247c918d5;; eu-site=1;; ha-trip-prst=%7B%22arrival%22%3A%22%22%2C%22departure%22%3A%22%22%2C%22numberOfAdults%22%3A0%2C%22numberOfChildren%22%3A0%2C%22petIncluded%22%3Afalse%7D;; site=homeaway_de;; crumb=Yvv-KzQxxjUNJ1_C8dFQ_7M5eBeNjAQnbIlJ6zC3KjO;; ha-mkt=fb7095a5-356e-4c75-9e02-04ea2254da1e
x-homeaway-site: homeaway_de
content-type: application/json
x-homeaway-displaylocale: de_DE
dnt: 1
accept: */*
sec-fetch-site: same-origin
sec-fetch-mode: cors
referer: https://www.fewo-direkt.de/ferienwohnung-ferienhaus/p2064237?r=SEARCH
x-csrf-jwt-pdp: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbiI6IjU5N2QyZGJmYjg2MmFlZjM2Y2IzMTMxMGNkZDZlMTlkZTE0MTYwOWViYTEzYWQ1MWYzMjU2NTU5MzVlYWE4ZjRjMTZhYmM2YjY1YmVlOWQ3NzM2MDE2Njg0YTc3OGE2OTg1Nzg4M2IzYWI0YTUzZmU0N2IyNWU1YjczN2E5MzRkMmZhNmYwZWUwMDM2ODg0N2RkMTRkYTM5MDJmNTUyNDkzMDk2M2ZjZDVlNDBhNTk1MTVlNTFmZjRlNzAyNjY3ZWQyMzc4ODA2ODUxYTgxYjY0MGI4ZTQ1Y2Q3OGMyNjA4ZjA5Nzc2ODg5Mzk0OWY4NzA4Njk4YTcwOWRjNmNkMGJkOWRiNDIwNzI2NzNlNjI0NTM3YmQ2YTI0YTI0MzAwNSIsImlhdCI6MTU4MDg0MzI0MSwiZXhwIjoxNTgxNDQ4MDQxfQ.9977gmSQ_RyexkYjVesPKkQis4b8vDWKOEPu6zcBH8o
     ignoreredirects 0
     retryCount 0
     type       update
     url        https://www.fewo-direkt.de/pdp/graphql
     value      0
   defptr:
     readingBase:
       gesehen    reading
     readingNum:
       gesehen    01
     readingOutdated:
     requestReadings:
       update:
         gesehen    reading 01
   sslargs:
Attributes:
   enableControlSet 1
   enableCookies 1
   reading01Name gesehen
   reading01RegOpt s
   reading01Regex \d+(?=-mal)
   requestData {   "query": "query UnitMessage($unitUuid: String!, $assetVersion: Int!) {unitMessage( unitUuid: $unitUuid, assetVersion: $assetVersion ) { iconText { message } } }",   "variables": {     "unitUuid": "5a136a6f-d9f2-4951-8c6b-9ca55cddbf1d",     "assetVersion": 1   } }
   requestHeader01 user-agent: Mozilla/5.0 (Macintosh;; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36
   requestHeader02 authority: www.fewo-direkt.de
   requestHeader03 origin: https://www.fewo-direkt.de
   requestHeader04 cookie: ha-device-id=7bc2e7b3-b798-4271-980c-f8a8548cce8a;; hav=7bc2e7b3-b798-4271-980c-f8a8548cce8a;; visid_incap_1042227=mEcdWovaR9a/6vF+knKW2E008VwAAAAAQUIPAAAAAAAbVYJzIPXh0XXGj3t57S8N;; nlbi_1042227=ybUWJ4RegXX2w/+Uy55XXgAAAAD5XxH1SiypgY87EybW3yZD;; ha-cookie-settings=functional%3A1;; ha-gx-prefs=de_DE|EUR;; ha-mkt=33cf1a9a-132a-4e22-863a-f79982124c82;; incap_ses_473_1042227=aiIYLujH5An93BtZbnCQBuKFPV0AAAAA42PmDFn76blnoUuVtLiK7w==;; ef199862-9147-4c8e-9f26-cd9247c918d5SL=1;; has=ef199862-9147-4c8e-9f26-cd9247c918d5;; eu-site=1;; ha-trip-prst=%7B%22arrival%22%3A%22%22%2C%22departure%22%3A%22%22%2C%22numberOfAdults%22%3A0%2C%22numberOfChildren%22%3A0%2C%22petIncluded%22%3Afalse%7D;; site=homeaway_de;; crumb=Yvv-KzQxxjUNJ1_C8dFQ_7M5eBeNjAQnbIlJ6zC3KjO;; ha-mkt=fb7095a5-356e-4c75-9e02-04ea2254da1e
   requestHeader05 x-homeaway-site: homeaway_de
   requestHeader06 content-type: application/json
   requestHeader07 x-homeaway-displaylocale: de_DE
   requestHeader08 dnt: 1
   requestHeader09 accept: */*
   requestHeader10 sec-fetch-site: same-origin
   requestHeader11 sec-fetch-mode: cors
   requestHeader12 referer: https://www.fewo-direkt.de/ferienwohnung-ferienhaus/p2064237?r=SEARCH
   requestHeader13 x-csrf-jwt-pdp: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbiI6IjU5N2QyZGJmYjg2MmFlZjM2Y2IzMTMxMGNkZDZlMTlkZTE0MTYwOWViYTEzYWQ1MWYzMjU2NTU5MzVlYWE4ZjRjMTZhYmM2YjY1YmVlOWQ3NzM2MDE2Njg0YTc3OGE2OTg1Nzg4M2IzYWI0YTUzZmU0N2IyNWU1YjczN2E5MzRkMmZhNmYwZWUwMDM2ODg0N2RkMTRkYTM5MDJmNTUyNDkzMDk2M2ZjZDVlNDBhNTk1MTVlNTFmZjRlNzAyNjY3ZWQyMzc4ODA2ODUxYTgxYjY0MGI4ZTQ1Y2Q3OGMyNjA4ZjA5Nzc2ODg5Mzk0OWY4NzA4Njk4YTcwOWRjNmNkMGJkOWRiNDIwNzI2NzNlNjI0NTM3YmQ2YTI0YTI0MzAwNSIsImlhdCI6MTU4MDg0MzI0MSwiZXhwIjoxNTgxNDQ4MDQxfQ.9977gmSQ_RyexkYjVesPKkQis4b8vDWKOEPu6zcBH8o
   showBody   1
   showError  1
   userattr   reading01Name reading01RegOpt reading01Regex requestData requestData04 requestHeader01 requestHeader02 requestHeader03 requestHeader04 requestHeader05 requestHeader06 requestHeader07 requestHeader08 requestHeader09 requestHeader10 requestHeader11 requestHeader12 requestHeader13
   verbose    5

Kann mir einer auf die Sprünge helfen? :)

yersinia

Setze mal klammern um das \d+:
reading01Regex     (\d+)(?=-mal)
viele Grüße, yersinia
----
FHEM 6.4 (SVN) on RPi 4B with RasPi OS Bookworm (perl 5.36.0) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

omnior

Danke, aber damit ändert sich leider noch nichts :-[

ch.eick

Hi.
Ich nutze im Netz immer regex Tester .

Gesendet von meinem SM-G930F mit Tapatalk

RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

omnior

Das hab ich auch getan, die RegEx funktioniert auf den Testseiten. Wie gesagt ich denke ich habe noch irgendwas ganz anderes übersehen.

omnior

Zitat von: yersinia am 06 Februar 2020, 20:42:55
Setze mal klammern um das \d+:
reading01Regex     (\d+)(?=-mal)

Danke, doch das war's! Ich hatte einen Reread vergessen!
Verstehe nur nicht was die Klammern letztlich bedeuten, denn im RegexTester sieht es ja so aus als ob alles korrekt ist.

frank

regex101.com erklärt dir auch die klammern.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

omnior

Hallo Frank, danke :)

Dort wird erläutert:
ZitatParentheses group the regex between them. They capture the text matched by the regex inside them into a numbered group that can be reused with a numbered backreference. They allow you to apply regex operators to the entire grouped regex.

Das bedeutet dann, dass ohne die Klammern zwar das Ergebnis auch (in diesem Fall) die 36 ist, diese baer nicht als Zahl interpretiert wird sondern als zwei zusammenhängende Zeichen?

frank

#8
eigentlich nennen sich die klammern "capture group".
das was sie "einfangen" kommt ins reading.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Christoph Morrison

Zitat von: omnior am 06 Februar 2020, 21:57:00
Hallo Frank, danke :)

Dort wird erläutert:
Das bedeutet dann, dass ohne die Klammern zwar das Ergebnis auch (in diesem Fall) die 36 ist, diese baer nicht als Zahl interpretiert wird sondern als zwei zusammenhängende Zeichen?

Wie frank richtig geschrieben hat: (\d+) sorgt dafür, dass "36" in deinem Reading landet. Der Rest danach, also das (?=-mal) braucht aber nutzlose Ressourcen (positive look-ahead), d.h. du kannst das effizienter auch einfach  (\d+)-mal schreiben. Spart einige Schritte für den Regex-Automaten.

omnior

VIelen Dank an Alle, man lernt einfach immer wieder Neues!