Dacia ist mit der Renault API ansprechbar

Dacia ist mit der Renault API ansprechbar

JLorenz86
  • Beiträge: 44
  • Registriert: Do 11. Mär 2021, 18:09
  • Hat sich bedankt: 4 Mal
  • Danke erhalten: 22 Mal
read
Hallo zusammen,

die folgende Node-Red Bibliothek funktioniert ohne Probleme mit dem Spring:

https://flows.nodered.org/node/node-red-contrib-renault-ze

Damit lässt sich das Auto in die Hausautomatisierung einbinden. Bisher habe ich nur das Auslesen getestet, das Steuern noch nicht.
Anzeige

Re: Dacia ist mit der Renault API ansprechbar

matzzz
  • Beiträge: 1
  • Registriert: Mo 8. Nov 2021, 23:13
read
Hallo,
hat schon jemand Erfahrung mit dem api Befehle senden gemacht?
Zb Ladung pausieren oder Heizung einschalten.

Re: Dacia ist mit der Renault API ansprechbar

JLorenz86
  • Beiträge: 44
  • Registriert: Do 11. Mär 2021, 18:09
  • Hat sich bedankt: 4 Mal
  • Danke erhalten: 22 Mal
read
Nicht wirklich.
Ich habe es nur einmal kurz probiert und nicht hinbekommen.

Re: Dacia ist mit der Renault API ansprechbar

USER_AVATAR
read
Ist es denn vorgesehen, dass man die Klimaanlage per App steuern kann?

/Daniel
Renault Zoe R90 Z.E. 40 Intense seit 02/2018 | Renault Megane E-Tech Electric EV60 Equilibre seit 12/2022
Wallbox: Easee Home | PHP-Skript für Renault Zoe/MeganE: ZoePHP | Tipp Kartendienst: ChargeFinder

Re: Dacia ist mit der Renault API ansprechbar

JLorenz86
  • Beiträge: 44
  • Registriert: Do 11. Mär 2021, 18:09
  • Hat sich bedankt: 4 Mal
  • Danke erhalten: 22 Mal
read
Hallo zusammen,

Ich habe mich in den letzen Tagen nochmal intensiv mit der Steuerung des Dacia Spring über NodeRed, genauer mit dem Modul „node-red-contrib-renault-ze“ auseinandergesetzt.

In der aktuellen Version (1.3.2) des Paketes funktioniert bisher nur die Steuerung der Klimaanlage (an/aus). Positiv dabei ist auf jeden Fall, dass durch das Aktivieren der Klimaanlage das Fahrzeug aufgeweckt wird und auch nach einer längeren Ladepause mit dem Laden beginnt.

Wem das ausreicht, der kann den folgenden NodeRed-Flow benutzen:
original.jpeg

Code: Alles auswählen

[{"id":"68b8e9bd.83893","type":"tab","label":"Flow 1","disabled":false,"info":""},{"id":"59626aad.9580fc","type":"inject","z":"68b8e9bd.83893","name":"","props":[{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"battery-status","payloadType":"str","x":260,"y":360,"wires":[["b8d6343e.5fccc"]]},{"id":"46cb231e.ef0a6c","type":"inject","z":"68b8e9bd.83893","name":"","props":[{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"cockpit","x":290,"y":320,"wires":[["b8d6343e.5fccc"]]},{"id":"6566300f.c3f59","type":"debug","z":"68b8e9bd.83893","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":750,"y":360,"wires":[]},{"id":"978748a3.b211d8","type":"function","z":"68b8e9bd.83893","name":"Auwecken mit Klima","func":"//Wenn Aufwecken angefordert, zunächst Klima einschalten\nif (msg.payload == \"aufwecken\")\n    return [{\"topic\": \"set-hvac-state\", \"payload\": 21}];\n    \n//Wenn Klima ein vom Auto bestätigt wird, wieder ausschalten\nif ((msg.topic == \"set-hvac-state\") && (msg.payload.data.attributes.action == \"start\"))\n    return [{\"topic\": \"set-hvac-state\", \"payload\": null}];","outputs":1,"noerr":0,"initialize":"","finalize":"","x":520,"y":220,"wires":[["b8d6343e.5fccc"]]},{"id":"755b25a7.55762c","type":"inject","z":"68b8e9bd.83893","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"aufwecken","payloadType":"str","x":280,"y":220,"wires":[["978748a3.b211d8"]]},{"id":"b8d6343e.5fccc","type":"renault-ze","z":"68b8e9bd.83893","name":"Baby Dacia","x":570,"y":360,"wires":[["6566300f.c3f59","978748a3.b211d8"]]}]
Wer in der aktuellen Version (1.3.2) das Laden steuern möchte, muss die Datei ZEServices.js editieren. Diese Datei liegt im Verzeichnis des Nodes „node-red-contrib-renault-ze“. Bei mir läuft NodeRed auf einem RaspberryPi und die Datei liegt im Verzeichnis „~/.node-red/node_modules/node-red-contrib-renault-ze“

Zunächst sucht ihr die Funktion

Code: Alles auswählen

createPath(accountId, vin, version = 1) {
        return "/commerce/v1/accounts/" + accountId + "/kamereon/kca/car-adapter/v" + version + "/cars/" + vin;
    }
Unmittelbar dahinter fügt ihr eine neue Funktion ein:

Code: Alles auswählen

createPathDacia(accountId, vin, version = 1) {
        return "/commerce/v1/accounts/" + accountId + "/kamereon/kcm/v1/vehicles/" + vin;
}
Danach sucht ihr nach der Funktion setChargeState und wandelt sie wie folgt ab:

Code: Alles auswählen

    setChargeState(charging, accountId, vin, country) {
        return __awaiter(this, void 0, void 0, function* () {
            let data = {
                "data": {
                    "type": "ChargePauseResume",
                    "attributes": {
                        "action": charging ? "resume" : "pause"
                    }
                }
            };
            return this.postJSON(data, this.createPathDacia(accountId, vin) + "/charge/pause-resume", country);
      }
Jetzt könnt ihr den folgenden Flow benutzten, der auch das Laden starten und beenden kann.
edit.jpeg

Code: Alles auswählen

[{"id":"69ff5346.3297d4","type":"inject","z":"68b8e9bd.83893","name":"","props":[{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"battery-status","payloadType":"str","x":320,"y":280,"wires":[["610850ca.56c028"]]},{"id":"9c34f8a.0291f88","type":"inject","z":"68b8e9bd.83893","name":"","props":[{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"cockpit","x":350,"y":240,"wires":[["610850ca.56c028"]]},{"id":"b2eac83e.9ddc68","type":"debug","z":"68b8e9bd.83893","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":750,"y":360,"wires":[]},{"id":"610850ca.56c028","type":"renault-ze","z":"68b8e9bd.83893","name":"Baby Dacia","x":570,"y":360,"wires":[["b2eac83e.9ddc68"]]},{"id":"b3e4a9d8.6f24d","type":"inject","z":"68b8e9bd.83893","name":"","props":[{"p":"topic","vt":"str"},{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"set-charge-state","payload":"true","payloadType":"bool","x":300,"y":320,"wires":[["610850ca.56c028"]]},{"id":"c8c511f7.33db98","type":"inject","z":"68b8e9bd.83893","name":"","props":[{"p":"topic","vt":"str"},{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"set-charge-state","payload":"false","payloadType":"bool","x":300,"y":360,"wires":[["610850ca.56c028"]]}]
Ich habe bei GitHub bereits einen Pull Request angelegt, damit die Funktion in der nächsten Version des Paketes implementiert werden kann. Sobald das erfolgt ist, stelle ich hier einen neuen Beitrag ein und erkläre die Funktion mit dem neuen Node.

Re: Dacia ist mit der Renault API ansprechbar

jackanddexter
  • Beiträge: 1
  • Registriert: So 28. Aug 2022, 17:22
  • Hat sich bedankt: 1 Mal
read
JLorenz86 hat geschrieben:
Ich habe bei GitHub bereits einen Pull Request angelegt, damit die Funktion in der nächsten Version des Paketes implementiert werden kann. Sobald das erfolgt ist, stelle ich hier einen neuen Beitrag ein und erkläre die Funktion mit dem neuen Node.
Hallöchen,

ich bekomme es nicht zum Laufen... Ich habe den von dir geposteten Flow jetzt so geändert, dass ich mit "set-charge-pause" steuere, so habe ich jedenfalls den git pull verstanden.

Dann bekomme ich aber

Code: Alles auswählen

errorCode: "err.func.404"
errorMessage: "{"timestamp":"2022-08-28T15:25:55.871+0000","status":404,"error":"Not Found","message":"No message available",

Re: Dacia ist mit der Renault API ansprechbar

JLorenz86
  • Beiträge: 44
  • Registriert: Do 11. Mär 2021, 18:09
  • Hat sich bedankt: 4 Mal
  • Danke erhalten: 22 Mal
read
Hi,

vor wenigen Tagen wurde das Release 1.4.1 veröffentlicht. Damit funktioniert es jetzt ohne Änderungen im Quellcode.

Topic muss "set-charge-pause" sein. Value muss boolean true oder false sein. True unterbricht das Laden, false startet das Laden.

Re: Dacia ist mit der Renault API ansprechbar

makro01
  • Beiträge: 1
  • Registriert: Fr 7. Okt 2022, 13:09
read
Moin,
bin auf deinen ost gestoßen und hab ihn gleich mal umgesetzt :)
läuft soweit auch und die daten kommen auch alle an.
So nun die Spezialaufgabe.
Ich bekomme es nicht hin aus den Abfragen "cockpit" und "battery-status"
die Werte mit Datum am anfang dann Kliometer und Level der Battary sowie Restweite in eine Excel zu schreiben.
es erscheint entweder nur ein wert oder die letzten 2
aber bekomme es nicht hinn alle werte in eine Zeile weg zu schreiben.
Möchte geren ein überblick wieviel ich täglich fahre und was die Batterie macht.
Vorallem wenn es jetzt ja wieder kälter wird.

hat da jemand ne lösung/Idee aufbau ist der Node von JLoren86

cu Makro

Re: Dacia ist mit der Renault API ansprechbar

Mousenray
  • Beiträge: 1
  • Registriert: Sa 11. Mär 2023, 21:26
read
Hallo JLorenz86,

ich möchte diesen wert mode = "always_charging" an das Auto senden, was muss ich in dem inject schreiben:

setChargeMode(mode, accountId, vin, country) {
return __awaiter(this, void 0, void 0, function* () {
if (mode == "always")
mode = "always_charging";
if (mode == "schedule")
mode = "schedule_mode";
let data = {
"data": {
"type": "ChargeMode",
"attributes": {
"action": mode
}
}
};
return this.postJSON(data, this.createPath(accountId, vin) + "/actions/charge-mode", country);

Danke
Anzeige
AntwortenAntworten

Zurück zu „Dacia - modellübergreifend“

Gehe zu Profile
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag