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
Bin jetzt auch kein regex-Experte aber ich helfe mir immer damit:
https://regex101.com/ (https://regex101.com/)
Vielleicht hilft dir das ja bereits weiter...
...oder gar zu Ende ;-)
Gruß, Joachim
(?s)duration_in_traffic.*?<text>(.*?)<
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
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 :-)
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
genau das hat ja auch noch geholfen.
Problem ist nun gelöst - Patient tod :
;)
Würdest Du mir bitte ein list von Deinem HTTPMOD Device geben.
Danke Dir
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
Supi. Ich danke Dir