evcc-io / evcc

Sonne tanken ☀️🚘
https://evcc.io
MIT License
3.32k stars 606 forks source link

Support Nissan EVs #387

Closed andig closed 3 years ago

andig commented 3 years ago

Need login credentials for testing, please contact me at cpuidle@gmx.de

issue-label-bot[bot] commented 3 years ago

Issue-Label Bot is automatically applying the label feature_request to this issue, with a confidence of 0.92. Please mark this comment with :thumbsup: or :thumbsdown: to give our bot feedback!

Links: app homepage, dashboard and code for this bot.

martinez81 commented 3 years ago

Hi! Mit einen Kumpel habe ich es jetzt hinbekommen bei meinen Leaf den SOC auszulesen. Es funktioniert mit https://gitlab.com/tobiaswkjeldsen/dartnissanconnect

Das ganze funktioniert im groben so (Linux oder OSX):

% brew tap dart-lang/dart % brew install dart git % git clone https://gitlab.com/dutchdevil83/dartnissanconnect.git % cd dartnissanconnect % pub get

Dann in der Datei example/nissanconnect_example.dart unter username: und passwort: die Zugangsdaten vom Auto eintragen - Abschließend das Programm starten:

_% dart example/nissanconnectexample.dart

Wir haben dann einen neue Datei nissanconnect_soc.dart angelegt. Hier der Inhalt:

import 'package:dartnissanconnect/dartnissanconnect.dart';
import 'package:intl/intl.dart';

main() {
  NissanConnectSession session = new NissanConnectSession(debug: false);

  session
      .login(username: "user", password: "passwort")
      .then((vehicle) {

                print("Modell:     ${vehicle.modelName}");
                vehicle.requestBatteryStatus().then((battery) {
            print("Ladezustand der Batterie: ${battery.batteryPercentage}");
                });
        });
}

Starten mit:

_% dart example/nissanconnectsoc.dart

Die Ausgabe sieht dann so aus: Modell: Leaf Ladezustand der Batterie: 45.0

Was kannst du daraus machen? Kannst du das so irgendwie Einpflegen?

Gruß Martin

PS: Datei hängt an. nissanconnect_soc.dart.zip

martinez81 commented 3 years ago

entschuldige bitte das Format. Keine Ahnung warum das so geworden ist.

andig commented 3 years ago

entschuldige bitte das Format. Keine Ahnung warum das so geworden ist.

Du hast Dein Posting nicht formatiert, kannst Du aber noch ändern: https://guides.github.com/features/mastering-markdown/

Nachdem Du den SoC jetzt auslesen kannst, kannst Du das Skript auch in EVCC integrieren. Das Beispiel dafür findest Du hier: https://github.com/andig/evcc-config#generisch-script-1

martinez81 commented 3 years ago

entschuldige bitte das Format. Keine Ahnung warum das so geworden ist.

Du hast Dein Posting nicht formatiert, kannst Du aber noch ändern: https://guides.github.com/features/mastering-markdown/

Nachdem Du den SoC jetzt auslesen kannst, kannst Du das Skript auch in EVCC integrieren. Das Beispiel dafür findest Du hier: https://github.com/andig/evcc-config#generisch-script-1

Das ich diesen dart Aufruf ein ein Script packen kann leuchtet mir noch nicht ganz ein. Ich bespreche das mit meinem Kumpel.

Nehmen wir mal an, ich kann das über ein Script hinbekommen. Bleibt das Problem doch für andere User bestehen. Alle die einen Leaf nach Mitte 2019 haben, kommen nicht mehr über Carwings auf ihr Auto. Deshalb dachte ich du übernimmst das direkt in dein Programm?!

andig commented 3 years ago

Deshalb dachte ich du übernimmst das direkt in dein Programm?!

Ja- aber wie gesagt wenn ich Zeit habe :O. Im Moment ist zuviel los, kommt aber. Wollte Dich nur nicht warten lassen ;)

martinez81 commented 3 years ago

Deshalb dachte ich du übernimmst das direkt in dein Programm?!

Ja- aber wie gesagt wenn ich Zeit habe :O. Im Moment ist zuviel los, kommt aber. Wollte Dich nur nicht warten lassen ;)

Okay! Dann versuchen wir es mal.

martinez81 commented 3 years ago

Moin! Es funktioniert. Wir mussten die Lib von Dartnissanconnect leicht ändern. Mit der normalen Lib wird (z.B.) 84.0% ausgegeben. EVCC möchte wohl nur Ganzzahlen als Input. Mit geänderter Lib wird jetzt nur 84 übertragen. EVCC

andig commented 3 years ago

Perfekt!

martinez81 commented 3 years ago

Wenn jemand einen Nissan Leaf BJ nach Mitte 2019 hat und gern jetzt schon seinen Akkustand in EVCC haben möchte. Kann er das bis zur neuen Version von EVCC so machen:

Den Inhalt dieser ZIP Datei auf den Raspberry kopieren (wo EVCC läuft). Z.B: nach /home/pi/dartnissanconnect/ soc.zip

cd /home/pi/dartnissanconnect wget https://github.com/andig/evcc/files/5577386/soc.zip unzip soc.zip

Die evcc.yaml Datei von EVCC editieren:

Bei vehicles muss folgendes hin:

- name: leaf type: default title: Leaf # display name for UI capacity: 40 # kWh charge: type: script # use script plugin cmd: /bin/sh -c "/home/pi/dartnissanconnect/soc --user=USER --pass=PASSWORD" timeout: 10s # kill script after 10 seconds cache: 5m # cache duration

USER und PASSWORD entsprechend ändern!!

evcc.yaml speichern und EVCC Neustarten.

ACHTUNG: Bei den loadpoints müsst ihr natürlich noch den Leaf bekannt geben, also:

vehicles: -- leaf (hier nur ein Minuszeichen, dieser Editor hat hier immer aus den Minus einen Punkt gemacht.) Gruß Martin

andig commented 3 years ago

https://guides.github.com/features/mastering-markdown/ ;)

martinez81 commented 3 years ago

https://guides.github.com/features/mastering-markdown/ ;)

Danke! Irgendwie stehe ich auf Kriegsfuß mir der Formatierung hier 🤨

andig commented 3 years ago

@martinez81 könntest Du mal mit tracen, welche HTTP Requests die Dart Bibliothek macht? Ich komme noch nicht ganz durch den FLow und kann grad kein Dart installieren :(

martinez81 commented 3 years ago

Hi Andig, ich werde versuche dir zu helfen! Also tragen...

Bzgl. Dart installieren, das geht ganz einfach:

$ wget https://storage.googleapis.com/dart-archive/channels/stable/release/2.6.0/sdk/dartsdk-linux-arm-release.zip $ unzip dartsdk-linux-arm-release.zip

Dann in $HOME/.profile den Pfad hinzufügen $ nano .profile

hinzufügen in .profile:

if [ -d "$HOME/dart-sdk/bin" ] ; then PATH="$PATH:$HOME/dart-sdk/bin" fi

% git clone https://gitlab.com/dutchdevil83/dartnissanconnect.git % cd dartnissanconnect % pub get

so sollte dartnissanconnect laufen....

andig commented 3 years ago

Voll nett, aber geht unter OSX nicht und brew funktioniert nicht wg. zu neuer Version. Ein Trace durch einen Proxy würde helfen ;)

martinez81 commented 3 years ago

So habe ich es unter OSX zum laufen gebracht: % brew tap dart-lang/dart % brew install dart git % git clone https://gitlab.com/dutchdevil83/dartnissanconnect.git % cd dartnissanconnect % pub get

Ich mache dir aber auch den Trace. Ich muss mich da nur einlesen. Habe ich noch nie gemacht...

andig commented 3 years ago

@martinez81 Du kannst gerne schonmal probieren ob das Auto mit dem PR für Dich funktioniert.

martinez81 commented 3 years ago

@martinez81 Du kannst gerne schonmal probieren ob das Auto mit dem PR für Dich funktioniert.

Meinst du mit PR PreRelease? Wo finde ich das?

andig commented 3 years ago

Wo finde ich das?

Gar nicht. Die PRs können nur- bei Bedarf- lokal gebaut werden. Jetzt ist es im master Branch und im Release dabei.