Regex in HTTMOD für google API distancematrix in Tabletui

Begonnen von Suner, 31 Mai 2016, 13:02:16

Vorheriges Thema - Nächstes Thema

Suner

Hallo,
ich verzweifel gerade mal wieder...
Plan:
Umsetzen von folgendem Artikel:
http://www.juergenstechnikwelt.de/smarthome-2/smarthome-mit-fhem-fahrzeiten-mit-verkehr-mittels-google-maps-api-anzeigen/#comment-12065
Eigentlich alles total klar.
gemacht getan, funktioniert aber nicht.
Nun bin ich dabei, mich mal ein wenig einzulesen in regex, aber ich kriege es einfach nicht hin und weiß auch nicht genau wo mein Fehler ist.
:-(
Ich bekomme durch mein http Mod folgenden Wert:

[..] <row> <element> <status>OK</status> <duration> <value>1520</value> <text>25 Minuten</text> </duration> <distance> <value>38468</value> <text>38,5 km</text> </distance> <duration_in_traffic> <value>1617</value> <text>27 Minuten</text> </duration_in_traffic> </element> </row> </DistanceMatrixResponse>

Nun war mein Plan, die Minuten, km etc. auszulesen..
Habe alle Möglichen regulären Ausdrücke versucht..
egal was ich im Internet gefunden habe, versucht habe mir selber zusammenzubasteln, es klappt einfach nicht.
Ich versuche meinen Ausdruck dann wie folgt in eine readingsgroup zum Überprüfen einzufügen:

FahrzeitHauseArbeit:duration

"duration" ist der Name meines Readings.

Vielleicht kann mir da ja jemand helfen..
aktuell habe ich:
attr Name1 reading01Name duration
attr Name1 reading01Regex (?s)duration.* "(.* Minuten).*duration_in


aus http://www.fhemwiki.de/wiki/Verkehrslage

Gruß suner

MadMax-FHEM

Bin jetzt auch kein regex-Experte aber ich helfe mir immer damit:

https://regex101.com/

Vielleicht hilft dir das ja bereits weiter...
...oder gar zu Ende ;-)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

frank

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

Icinger

Das sollte doch zwischenzeitlich mittels JSON leichter gehn.

ZitatIf a webservice delivers data in JSON format, HTTPMOD can directly parse JSON which might be easier in this case than definig regular expressions.

Habs aber noch nicht probiert.

lg, Stefan
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

Suner

Zitat von: Icinger am 31 Mai 2016, 20:43:10
Das sollte doch zwischenzeitlich mittels JSON leichter gehn.

Habs aber noch nicht probiert.

lg, Stefan


ja geht leichter!!
bin nun ein ganzes Stück weiter, dank JSON und folgendem Eintrag in der Log Datei
the attribute reading01Expr should no longer be used. Please use reading01OExpr instead

Jetzt noch mal schauen wie das aussieht mit der FTUI und dann bin ich irgendwann happy :-)

Vize

Zitatdank JSON und folgendem Eintrag in der Log Datei

the attribute reading01Expr should no longer be used. Please use reading01OExpr instead

Und den wirst du ja - wie dort steht- auch noch los, indem du readingXXOExpr statt readingXXExpr nimmst...

Gruß
Andreas

Suner

genau das hat ja auch noch geholfen.

Problem ist nun gelöst - Patient tod :

;)


CoolTux

Würdest Du mir bitte ein list von Deinem HTTPMOD Device geben.

Danke Dir
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Suner

klaro:

(Habs Anonymisiert)

Internals:
   BUSY       0
   DEF        https://maps.googleapis.com/maps/api/distancematrix/json?destinations=xxxxxxxxx&origins=xxxxxxxxx,+Deutschland&traffic_model=best_guess&departure_time=now&mode=driving&language=de-DE&key=xxxxxxxxx 3600
   Interval   3600
   LASTSEND   1464767822.11446
   MainURL    https://maps.googleapis.com/maps/api/distancematrix/json?destinations=xxxxxxxxx&origins=xxxxxxxxx,+Deutschland&traffic_model=best_guess&departure_time=now&mode=driving&language=de-DE&key=xxxxxxxxx
   NAME       FahrzeitHauseArbeit
   NR         188
   STATE      Normal:00:25 Aktuell:00:27
   TRIGGERTIME 1464771422.11351
   TRIGGERTIME_FMT 2016-06-01 10:57:02
   TYPE       HTTPMOD
   addr       https://maps.googleapis.com:443
   buf        HTTP/1.0 200 OK

Content-Type: application/json; charset=UTF-8

Date: Wed, 01 Jun 2016 07:57:03 GMT

Expires: Wed, 01 Jun 2016 07:57:33 GMT

Cache-Control: public, max-age=30

Server: mafe

X-XSS-Protection: 1; mode=block

X-Frame-Options: SAMEORIGIN

Alternate-Protocol: 443:quic

Alt-Svc: quic=":443"; ma=2592000; v="34,33,32,31,30,29,28,27,26,25"

Accept-Ranges: none

Vary: Accept-Encoding



{
   "destination_addresses" : [ "xxxxxxxxxxxxxx" ],
   "origin_addresses" : [ "xxxxxxxxxxxxxxxx" ],
   "rows" : [
      {
         "elements" : [
            {
               "distance" : {
                  "text" : "38,5 km",
                  "value" : 38468
               },
               "duration" : {
                  "text" : "25 Minuten",
                  "value" : 1520
               },
               "duration_in_traffic" : {
                  "text" : "27 Minuten",
                  "value" : 1599
               },
               "status" : "OK"
            }
         ]
      }
   ],
   "status" : "OK"
}

   code       200
   conn
   data
   displayurl https://maps.googleapis.com/maps/api/distancematrix/json?destinations=xxxxxxxxx&origins=xxxxxxxxx,+Deutschland&traffic_model=best_guess&departure_time=now&mode=driving&language=de-DE&key=xxxxxxxxx
   header
   host       maps.googleapis.com
   httpheader HTTP/1.0 200 OK

Content-Type: application/json; charset=UTF-8

Date: Wed, 01 Jun 2016 07:57:03 GMT

Expires: Wed, 01 Jun 2016 07:57:33 GMT

Cache-Control: public, max-age=30

Server: mafe

X-XSS-Protection: 1; mode=block

X-Frame-Options: SAMEORIGIN

Alternate-Protocol: 443:quic

Alt-Svc: quic=":443"; ma=2592000; v="34,33,32,31,30,29,28,27,26,25"

Accept-Ranges: none

Vary: Accept-Encoding
   httpversion 1.0
   hu_blocking 0
   hu_filecount 1
   ignoreredirects 0
   loglevel   4
   path       /maps/api/distancematrix/json?destinations=xxxxxxxxx&origins=xxxxxxxxx,+Deutschland&traffic_model=best_guess&departure_time=now&mode=driving&language=de-DE&key=xxxxxxxxx
   protocol   https
   redirects  0
   timeout    2
   url        https://maps.googleapis.com/maps/api/distancematrix/json?destinations=xxxxxxxxx&origins=xxxxxxxxx,+Deutschland&traffic_model=best_guess&departure_time=now&mode=driving&language=de-DE&key=xxxxxxxxx
   value      0
   QUEUE:
   Readings:
     2016-06-01 09:57:03   Standard        00:25
     2016-06-01 09:57:03   Verkehr         00:27
   Request:
     data
     header
     ignoreredirects 0
     retryCount 0
     type       update
     url        https://maps.googleapis.com/maps/api/distancematrix/json?destinations=xxxxxxxxx&origins=xxxxxxxxx,+Deutschland&traffic_model=best_guess&departure_time=now&mode=driving&language=de-DE&key=xxxxxxxxx
     value      0
   Defptr:
     Readingbase:
       Standard   reading
       Verkehr    reading
     Readingnum:
       Standard   01
       Verkehr    02
     Readingoutdated:
     Readingsubnum:
       Standard
       Verkehr
   Sslargs:
Attributes:
   reading01Name Standard
   reading01OExpr GoogleExpr($val)
   reading01Regex (?s)duration.* "(.* Minuten).*duration_in
   reading02Name Verkehr
   reading02OExpr GoogleExpr($val)
   reading02Regex (?s)duration_in.*"(.* Minuten)
   stateFormat Normal:Standard Aktuell:Verkehr
   userattr   reading01Expr reading01Name reading01OExpr reading01Regex reading02Expr reading02Name reading02OExpr reading02Regex

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net