Renault Zoe im Smarthome (neue API 2020)

Der Zoe kann, wenn man es aktiviert hat, via "App" ausgelesen werden. Außerdem kann die API benutzt werden um eben eigene Anwendungen mit dem Zoe zu verbinden.

Die Renault App finde ich auch nicht besonders schön und die Integration in die vorhandene Haussteuerung (iobroker) ist naheliegend.

 

 

Die Kachel unten links zeigt die Informationen die direkt aus dem Fahrzeug √ľber die API kommen.

Zun√§chst legst du in iobroker die gew√ľnschten Objekte an.¬†

 

 (anklicken zum vergrößern)

 

Jetzt benötigst du die angepassten python Scripte.

Diese legst du unter /opt/myrenault/ ab

 

Ein pip3 install aiohttp installiert ein eventuell fehlendes Python Modul.

 

Die credentials.json passt du auf deine Zugangsdaten an.

Das script¬†zoe_status.sh muss ausf√ľhrbar sein.

Show/Hidden bash code

View source
 
 
 
 
 
 
chmod +x zoe_status.sh
 
 
chmod 777 zoe_status.sh
 
 
 

Jetzt brauchst du nur noch ein neues Javascript in iobroker.

Show/Hidden bash code

View source
 
 
 
 
function abfrageStarten() {
 
exec('/opt/myrenault/zoe_status.sh', function(err, stdout, stderr) {
 
if(err){
 
log(stderr,'error');
 
return;
 
}
 
//console.log(stdout);
 
 
 
var out=stdout.replace(/\'/g,'\"');
 
var out=out.replace(/\: /g,'\:"');
 
var out=out.replace(/\,/g,'\",');
 
var out=out.replace(/\""/g,'\"');
 
var out=out.replace(/\}/g,'\"}');
 
console.log(out);
 
var charge_level = JSON.parse(out)["batteryLevel"];
 
var plugged = JSON.parse(out)["plugStatus"];
 
var remaining_range = JSON.parse(out)["rangeHvacOff"];
 
var remaining_time =0;
 
var leistung =0;
 
 
 
if(plugged =="0"){
 
plugged = "false";
 
}
 
else{
 
plugged ="true";
 
remaining_time = JSON.parse(out)["timeRequiredToFullSlow"];
 
leistung = JSON.parse(out)["instantaneousPower"];
 
leistung = leistung/1000;
 
setState("javascript.0.EigeneGeraete.ZOE_remaining_time"/*ZOE_remaining_time*/, remaining_time);
 
setState("javascript.0.EigeneGeraete.ZOE_leistung"/*ZOE_leistung*/, leistung);
 
}
 
 
 
setState("javascript.0.EigeneGeraete.ZOE_charge_level"/*ZOE_charge_level*/, charge_level);
 
setState("javascript.0.EigeneGeraete.ZOE_plugged"/*ZOE_plugged*/, plugged);
 
setState("javascript.0.EigeneGeraete.ZOE_remaining_range"/*ZOE_remaining_range*/, remaining_range);
 
 
 
});
 
}
 
 
 
setTimeout(abfrageStarten, 100); // Script start
 
schedule("*/10 * * * *", abfrageStarten); // jede 10 Minute
 
 
 
 
 
 

Hier musst du bei setState deine 4 angelegten Objekte angeben.

Das Script wird, nachdem du es aktiviert hast, alle 10 Minuten ausgef√ľhrt.

Jetzt kannst du die Daten weiter verarbeiten z.B. so wie bei mir in einer GUI die auf dem Tablet an der Wand angezeigt wird. 

 

Wenn es Probleme gibt, kann ein chmod -R 777 /opt/myrenault helfen.

 

Die Kachel rechts zeigt die Daten des Ladeger√§tes und errechnet damit die Kosten. Das ganze habe ich √ľber eine Sonoff Pow realisiert.

(Adblocker aus, sonst keine Bilder)

Die Sonoff Pow wird mit Tasmota bespielt und dann so in iobroker √ľber das Sonoff Modul eingebunden.

Dabei ist es egal welches Gerät von Sonoff verwendet wird, das Vorgehen ist immer das gleiche, die Software auch.

Hat dir das geholfen? Dann spendiere mir doch einen Kaffee.