API ZE. Services über Drittanwendungen (z.B. fhem) anzapfen

Renault ZOE Themen, zu denen es kein eigenes Unterforum gibt

API ZE. Services über Drittanwendungen (z.B. fhem) anzapfen

Beitragvon marcus72 » Di 31. Jan 2017, 20:41

Hallo zusammen,

in den letzten Tagen bin ich auf einige Links gestoßen, die sich damit beschäftigen, die API der ZE-Services anzuzapfen und sie für eigene Zwecke bzw. Anwendungen zu verwenden:

Reverse Engineering der Schnittstellen API
https://shkspr.mobi/blog/2016/10/revers ... t-zoe-api/

Webanwendung
https://github.com/nabossha/ZEServices

Amazon Echo
https://blog.dantup.com/2016/12/using-a ... ry-status/

Um mir die Wartezeit auf meine 2. Zoe etwas versüßen, habe mal (wieder) versucht, die ZE-Schnittstelle für meine Haussteuerungssoftware http://fhem.de nutzbar zu machen.

Mein erster Versuch hatte ich gestartet, kurz bevor Renault die Apps bzw. Schnittstelle komplett umgebaut hatte:
vgl. https://github.com/mschlappa/fhem/blob/master/ze.pl

Aufgrund der Umstellung war das hierfür zum Einsatz gekommene Perl-Skript bald nicht mehr funktionsfähig, obwohl es recht zuverlässig funktionierte (Was man von den Renault Servern nicht unbedingt behaupten konnte).

Mein neuer Ansatz ist es, fhem Bordmittel (genauer: das Modul HTTPMOD) zu verwenden.
Anbei eine Kurzanleitung, wie man das Modul konfigurieren kann, damit der Zugriff klappt:

Zunächst das Device erstellen
Code: Alles auswählen
define zoe HTTPMOD https://www.services.renault-ze.com/api/user/login 3000


Danach müssen ziemlich viele User-Attribute erstellt werden. Einfach mit viel Kopierpaste nach "userattr" kopieren:
Code: Alles auswählen
   userattr   get01Header1 get01Name get01Replacement01Mode:reading,internal,text,expression,key get01Replacement01Regex get01Replacement01Value get01Replacement02Mode:reading,internal,text,expression,key get01Replacement02Regex get01Replacement02Value get01URL get02Header1 get02Name get02Replacement01Value get02Replacement02Value get02URL replacement01Mode:reading,internal,text,expression,key replacement01Regex replacement02Mode:reading,internal,text,expression,key replacement02Regex replacement03Mode:reading,internal,text,expression,key replacement03Regex replacement03Value replacement04Mode:reading,internal,text,expression,key replacement04Regex replacement04Value requestData requestHeader1


Danach werden die Attribute mit Leben gefüllt:

Code: Alles auswählen
   enableControlSet 1
   extractAllJSON 1
   get01Header1 Authorization: Bearer %token%
   get01Name  batteryStatus
   get01Replacement01Value token
   get01Replacement02Value user_vehicle_details_VIN
   get01URL   https://www.services.renault-ze.com/api/vehicle/%user_vehicle_details_VIN%/battery
   get02Header1 Authorization: Bearer %token%
   get02Name  ac_last
   get02Replacement01Value token
   get02Replacement02Value user_vehicle_details_VIN
   get02URL   https://www.services.renault-ze.com/api/vehicle/%user_vehicle_details_VIN%/air-conditioning/last
   replacement01Mode reading
   replacement01Regex %token%
   replacement02Mode reading
   replacement02Regex %user_vehicle_details_VIN%
   replacement03Mode key
   replacement03Regex %%username%%
   replacement03Value username
   replacement04Mode key
   replacement04Regex %%password%%
   replacement04Value password
   requestData {"username":"%%username%%","password":"%%password%%"}
   requestHeader1 Content-Type: application/json


Damit username/password nicht im Klartext direkt im Device sichtbar sind kann man sie mit dem folgenden Befehlen ein wenig schützen. Die Ablage erfolgt dann im Filesystem.
set storeKeyValue username <DeinUsername>
set storeKeyValue password <DeinPasswort>


Nachdem das Device nun konfiguriert ist, kann man mit
get zoe batteryStatus

den Akkustand, Reichweite, Ladezustand etc. abfragen

Mit
get zoe ac_last


bekommt man Rückmeldung, wann das letzte Mal vorklimatisiert wurde.

Nach dem gleichen Schema können nach Belieben weitere Abfragen gebaut werden (vgl. obigen Blogeintrag).

Das Starten der Vorklimatisierung habe ich noch nicht eingebaut, da ich aktuell keine Zoe habe, bei der ich das ausprobieren könnte. Ich habe zwar noch Zugriff auf eine Zoe *hüstel*, möchte den aktuellen Besitzer jedoch nicht mit meiner Fernsteuerung erschrecken :-)

Details zum Modul HTTPMOD sind übrigens auch hier zu finden:
https://wiki.fhem.de/wiki/HTTPMOD

Vielleicht kann ja jemand damit etwas anfangen
Unterwegs mit einer Zoe Z.E. 40
marcus72
 
Beiträge: 157
Registriert: Mo 12. Okt 2015, 19:49
Wohnort: Dülmen

Anzeige

Re: API ZE. Services über Drittanwendungen (z.B. fhem) anzap

Beitragvon Lotzekov » Do 2. Feb 2017, 07:47

Oh yes, ich hatte das für ein nächstes Wochenende auf dem Plan … Wireshark und so … und nun hast du mir ein freies Wochenende verschafft :)

Top! Danke!
– Der obige Post kann Spuren von Ironie und/oder Sarkasmus enthalten –

12/16 – 12/19: Renault Zoe Intens Zirkonblau 20.000 km/Jahr
11/17 - 11/20: IONIQ Elektro Premium Phantom Black 30.000 km / Jahr
Sono Motors Sion reserviert
Benutzeravatar
Lotzekov
 
Beiträge: 109
Registriert: Mo 26. Sep 2016, 13:03

Re: API ZE. Services über Drittanwendungen (z.B. fhem) anzap

Beitragvon marcus72 » Do 2. Feb 2017, 18:11

Dann hat sich mein Posting ja schon gelohnt
Unterwegs mit einer Zoe Z.E. 40
marcus72
 
Beiträge: 157
Registriert: Mo 12. Okt 2015, 19:49
Wohnort: Dülmen


Zurück zu ZOE - Allgemeine Themen

 
  • Ähnliche Themen
    Antworten
    Zugriffe
    Letzter Beitrag
  • Ähnliche Artikel im Blog

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste