Hauptmenü

HTTPMOD-Syntax

Begonnen von ares, 16 Juni 2015, 08:55:40

Vorheriges Thema - Nächstes Thema

ares

Ich möchte über mögliche Staus auf einer Wegstrecke informiert werden. Beim Anlegen mit HTTPMOD erhalte ich jedoch einen Fehler, da fhem das Semikolon in der url anders als geplant interpretiert. Wie muss ich folgendes Beispiel anpassen, damit fhem es akzeptiert?

define Traffic.Home.Work HTTPMOD http://route.cit.api.here.com/routing/7.2/calculateroute.json?app_id=DemoAppId01082013GAL&app_code=AJKnXv84fjrb0KIHawS0Tg&waypoint0=geo!48.0,11.0&waypoint1=geo!49.3085,12.166&mode=fastest;car;traffic:disabled&departure=now&instructionformat=text&language=de-de&routeattributes=none,sm 180

justme1968

das url encoding für ; ist %3B. schau mal ob es damit geht.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

ares

Manche Lösungen sind einfacher als erwartet, vielen Dank für die schnelle Hilfe!

JoWiemann

Hallo Ares,

interessanter Ansatz. Wie komme ich an die app_id und an die Geo-Koordinaten.


Grüße Jörg

Gesendet von iPhone mit Tapatalk
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

ares

Die app_id und den app_code habe ich hier gratis erstellt: https://developer.here.com/get-started#/

Die Route kann mehrere Wegpunkte haben. Die Geo-Koordinaten bekommst Du auf Google Maps oder kannst sie auch mit diversen Webseiten wie dieser hier ermitteln:
http://gpso.de/maps/

Die Ausgabe kann als XML oder etwas kürzer als JSON erfolgen. Zum Test empfiehlt es sich, die Wegbeschreibung mit ausgeben zu lassen und notfalls über weitere Wegpunkte anzupassen. Für fhem habe ich die Wegstrecke und andere unnötige Informationen ausgeblendet und bei der Ermittlung der Route den Verkehr ignoriert. Mehr Informationen zu den Parametern und Möglichkeiten gibt es hier:
https://developer.here.com/rest-apis/documentation/routing/topics/resource-calculate-route.html

Die Minuten lassen wie folgt einfach ermitteln:
attr Traffic.Home.Work readingsName_trafficTime trafficTime
attr Traffic.Home.Work readingsName_baseTime baseTime
attr Traffic.Home.Work readingsRegex_trafficTime trafficTime[^0-9]+([0-9]+)
attr Traffic.Home.Work readingsRegex_baseTime baseTime[^0-9]+([0-9]+)

Ob der Ansatz aber funktioniert und wie und wann ich den Stau dann melde muss ich noch testen, mir hat das von justme1968 erklärte url encoding gefehlt und ich war ehrlich gesagt zu faul zu suchen. Prinzipiell stelle ich mir ein Zeitfenster mit Anwesenheitserkennung (PRESENCE Modul) vor und wollte dann über Push-Nachrichten bei Änderung von z.B. fünf Minuten nach oben/unten eine weitere Push-Nachricht senden, um eine Staubildung/-auflösung zu erkennen.

JoWiemann

Hallo,

danke für die Infos. Habe mir jetzt mal Here angesehen. Nach 90 Tagen ist Schluss mit free und 59 $ für den Basic Zugriff ohne real time traffic finde ich ziemlich teuer.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

ares

Das mit den 90 Tagen habe ich übersehen, sorry. Bleibt die Frage nach Alternativen. Eventuell funktioniert ja auch die Demo, müsste man mal länger testen. Der Link von mir klappt ja immerhin, nur halt wie lange?