TA2k / ioBroker.psa

ioBroker Adapter for PSA Peugot, Citroen, Opel, DS,
MIT License
12 stars 7 forks source link

keine Verbindung mehr zu Opel #20

Open spunky1a opened 5 months ago

spunky1a commented 5 months ago

Hallo,

seit einigen Tagen wird keine Verbindung mehr zu Opel aufgebaut, ich will den Ladezustand eines Mokka-e abfragen, bisher hat immer alles gut funktioniert, hab auch schon die 0.0.12 probiert mit dem gleichen Ergebnis:

psa.0 | 2024-01-13 10:12:53.363 | warn | OldAPI Login failed, only relevant for non eletric cars
-- | -- | -- | --
psa.0 | 2024-01-13 10:12:53.362 | warn | {"code":"495","message":"Invalid or expired client certificate"}
psa.0 | 2024-01-13 10:12:53.362 | warn | receive old api failed
psa.0 | 2024-01-13 10:12:53.361 | warn | AxiosError: Request failed with status code 495
psa.0 | 2024-01-13 10:12:53.096 | warn | {"code":"495","message":"Invalid or expired client certificate"}
psa.0 | 2024-01-13 10:12:53.096 | warn | receive new api failed
psa.0 | 2024-01-13 10:12:53.095 | warn | AxiosError: Request failed with status code 495
psa.0 | 2024-01-13 10:12:52.108 | error | Login failed
psa.0 | 2024-01-13 10:12:52.107 | error | {"error_description":"Internal Server Error","error":"server_error"}
psa.0 | 2024-01-13 10:12:52.106 | error | Login failed
psa.0 | 2024-01-13 10:12:52.106 | error | AxiosError: Request failed with status code 400
psa.0 | 2024-01-13 10:12:51.551 | info | starting. Version 0.0.11 in C:/Program Files/ioBroker/node_modules/iobroker.psa, node: v16.15.1, js-controller: 4.0.24

Ist das Problem bekannt, gibt es eine Lösung?

thstickel commented 5 months ago

Habe aktuell das gleiche Problem. So wie es aussieht, ist die API aktuell nicht erreichbar.

https://my.opel.de/maintenance.html

Nutze auch noch evcc, welches auch die API nutzt. Auch da bekomme ich keine Verbindung.

TA2k commented 5 months ago

bitte nur Fehler von 0.0.12 posten

TA2k commented 5 months ago

bitte mit https://github.com/flobz/psa_car_controller testen ob es da genauso ist

thstickel commented 5 months ago

Hallo TA2k. Ich habe testhalber mal das o.g. Projekt installiert und bekomme ebenfalls keine Verbindung zur API. Siehe screenshot: 2024-01-14 14_06_02-My car info oauth2_client.credentials_manager.OAuthError: 400 - server_error : Internal Server Error

TA2k commented 5 months ago

Danke fürs testen dann heißt es abwarten

thstickel commented 5 months ago

Hallo, vielleicht auch mal diese Diskussion mit im Auge behalten:

https://github.com/evcc-io/evcc/discussions/11589

thstickel commented 5 months ago

Anscheinend hat sich die Domain geändert:

2024-01-16 16_41_50-Window

Ich habe versucht mich anzumelden. Aber angeblich gibt es meinen Benutzer nicht! Kann auch das PW nicht zurücksetzen. Vielleicht ist der Umzug noch nicht ganz vollzogen.

spunky1a commented 5 months ago

zumindest werden ein paar Daten (Kilometerstand und letzter Kontakt) aus der neuen API angezeigt, leider fehlt das wichtigste, die Batteriekapazität und die Reichweite: image

ok, scheint doch nicht zu funktionieren, die Daten ändern sich nicht bzw. werden nicht aktualisiert,

ritschi86 commented 5 months ago

@TA2k das scheint ja an der Änderung der API liegen, konntest du schon Erfolge erzielen?

TA2k commented 5 months ago

Ja Login flow ist anders Wenn ich zeit habe werde ich es anpassen

Instanz1 commented 5 months ago

Ich verstehe gerade nicht warum beimir der Login weiterhin funktioniert, mein Adapter ist grün und Aktualisiert auch Werte die mit der APP von Opel übereinstimmen, also Akku und noch verfügbare km.

Ich mein ich bin Glücklich darüber, aber falls mal was benötigt wird vom Log oder so einfach kurz schreiben und sagen was benötigt wird.

Reinhard67 commented 5 months ago

Ich verstehe gerade nicht warum beimir der Login weiterhin funktioniert, mein Adapter ist grün und Aktualisiert auch Werte die mit der APP von Opel übereinstimmen, also Akku und noch verfügbare km.

Ich mein ich bin Glücklich darüber, aber falls mal was benötigt wird vom Log oder so einfach kurz schreiben und sagen was benötigt wird.

Ich vermute, dass wenn du deine Raspi durchstartest , die Verbindung auch nicht mehr funktioniert.

Instanz1 commented 5 months ago

Ich verstehe gerade nicht warum beimir der Login weiterhin funktioniert, mein Adapter ist grün und Aktualisiert auch Werte die mit der APP von Opel übereinstimmen, also Akku und noch verfügbare km. Ich mein ich bin Glücklich darüber, aber falls mal was benötigt wird vom Log oder so einfach kurz schreiben und sagen was benötigt wird.

Ich vermute, dass wenn du deine Raspi durchstartest , die Verbindung auch nicht mehr funktioniert.

Jup so war es.

tobiasaibot commented 5 months ago

Hallo,

ich weiß nicht ob es hilft, aber in der Doku ist seit dem letzten Versionsprung OAut2.0 als Authentifizierung hinterlegt.

https://developer.groupe-psa.io/webapi/b2b/api-reference/references/

tobiasaibot commented 4 months ago

Flobz hat wohl nun die neue OAuth integriert: https://github.com/flobz/psa_car_controller/pull/754

Würd mich freuen, wenn du dir das mal ansehen könntest @TA2k - vielen Dank dafür im Voraus!

dermobb commented 4 months ago

Flobz hat wohl nun die neue OAuth integriert: flobz/psa_car_controller#754

Würd mich freuen, wenn du dir das mal ansehen könntest @TA2k - vielen Dank dafür im Voraus!

Ich denke, es würden sich sehr viele Anwender freuen, ich gehöre definitiv auch dazu... Es scheint wohl eine technische Lösung zu geben, wie man beim PSA Car Controller mittlerweile sehen kann. Wenn ich wüsste, wie man die Daten des PSA Car Controllers in den ioBroker bekommt, würde ich wohl diesen Weg ausprobieren. Ideal wäre jedoch, den bisher sehr zuverlässigen PSA Adapter im ioBroker selbst wieder nutzen zu können. Ich drücke stark die Daumen, dass dies in Kürze wieder der Fall ist und sage @TA2k ebenfalls Danke im Voraus!

thstickel commented 4 months ago

Hallo zusammen. Ich habe mir den flobz_psa_car_controller installiert und hole mir die Daten darüber in evcc. Über die API-Schnittstelle von flobz könnte man sich die Daten auch in iobroker holen. Ich bin aber der Meinung, der Weg zum Ziel ist aktuell noch sehr "frickelig" und noch nicht fertig entwickelt. Es ist laut 0x3dlux nur ein "workaround". Von daher würde ich mit einer Anpassung dieses iobrokert-Adapters noch warten, zumal auch bestimmte Dinge auch noch nicht final geklärt sind (z.B. wie lange ist der Token gültig).

holger-wi commented 4 months ago

Hallo in die Runde. Kann es daran liegen, dass die Informationen nicht mehr auf "my.opel.de" sondern auf "my.opel.com" liegen?

Grüße Holger

schuellerf commented 4 months ago

nur als info: Ich habe die Kommunikation zu meinem Peugeot e208 mit flobz/psa_car_controller hinbekommen. Aber nur mit der software direkt aus git von heute am branch fix/oauth2, manuell gestartet und diese OAuth prozedur gemacht. Die iobroker Einbindung hab ich jetzt temporär über javascript/REST anfragen an psa_car_controller gemacht... zumindest SOC, mileage und so bis das plugin wieder geht. (Wobei ich jetzt auch die Standheizung kontrollieren kann 😏🥳)

BRoeske commented 4 months ago

Seit ca. 2 Wochen keine Kommunikation mahr mit meinem Peugeot 3008. Wäre nicht schlecht wenn die neuen Erkenntnisse auch in den ioBroker-Adapter einfliessen würden. Die obigen Umwege über den PSA Car Controller bekomme ich ohne detaillierte Beschreibung nicht hin.

ps-neotrace commented 4 months ago

Ja sehr schade. Seit dem Update vor 9 Tagen vom IOB läuft der Dienst leider bei mir auch nicht mehr. Denke der Fehler ist bereits erkannt von den Menschen die hier fit sind, leider aber scheinbar nicht so easy das es mal eben gefixt werden kann. Würde mich freuen wenn das irgenwann mal wieder läuft. Denn über dein IOB das abzufragen macht deutlich mehr sinn als über die Hersteller App die sowieso ständig hinterherhängt.

tobiasaibot commented 3 months ago

nur als info: Ich habe die Kommunikation zu meinem Peugeot e208 mit flobz/psa_car_controller hinbekommen. Aber nur mit der software direkt aus git von heute am branch fix/oauth2, manuell gestartet und diese OAuth prozedur gemacht. Die iobroker Einbindung hab ich jetzt temporär über javascript/REST anfragen an psa_car_controller gemacht... zumindest SOC, mileage und so bis das plugin wieder geht. (Wobei ich jetzt auch die Standheizung kontrollieren kann 😏🥳)

Hi @schuellerf

Ich hab nun auch mit flobz psa car controller eine Verbindung hinbekommen.

Wie schaffst du es denn die Werte in den ioBroker zu bekommen? In der API Doku (https://github.com/flobz/psa_car_controller/blob/master/docs/psacc_api.md) find ich bspw. nur den SoH(!) und nicht den SoC ... und erst recht nicht die Standheizung ;-)

Vielleicht magst du mir einen kurzen Tipp geben - danke dir im Voraus!

schuellerf commented 3 months ago

@tobiasaibot "gepfuscht" alle 5sek. mit blockly einfach über die alten psa.0 werte drüber schreiben 🙈 iobroker_peugeot

schedule("*/5 * * * *", async () => {
  try {
    require("request")('http://localhost:5000/get_vehicleinfo/MEINE_VIN', async (error, response, result) => {
      result_json = (function () { try { return JSON.parse(result); } catch (e) { return {}; }})();
    console.debug(('Autonomy: ' + String(getAttr(result_json, 'energy.0.autonomy'))));
    console.debug(('Level: ' + String(getAttr(result_json, 'energy.0.level'))));
    console.debug(('Mileage: ' + String(getAttr(result_json, 'timed_odometer.mileage'))));
    console.debug(('Preconditioning: ' + String(getAttr(result_json, 'preconditionning.air_conditioning.status') == 'Enabled')));
    console.log(('GPS: ' + String(getAttr(result_json, 'last_position.geometry.coordinates'))));
    if (0 <= getAttr(result_json, 'energy.0.autonomy') && getAttr(result_json, 'energy.0.autonomy') <= 1000) {
      setState('psa.0.MEINE_VIN.status.Electric.autonomy' /* autonomy */, getAttr(result_json, 'energy.0.autonomy'), true);
    }
    if (1 <= getAttr(result_json, 'energy.0.level') && getAttr(result_json, 'energy.0.level') <= 100) {
      setState('psa.0.MEINE_VIN.status.Electric.level' /* level */, getAttr(result_json, 'energy.0.level'), true);
    }
    if (!!getAttr(result_json, 'energy.0.updated_at').length) {
      setState('psa.0.MEINE_VIN.status.Electric.updatedAt' /* updatedAt */, getAttr(result_json, 'energy.0.updated_at'), true);
    }
    if (0 <= getAttr(result_json, 'timed_odometer.mileage') && getAttr(result_json, 'timed_odometer.mileage') <= 5000000) {
      setState('psa.0.MEINE_VIN.status.timed.odometer.mileage' /* mileage */, getAttr(result_json, 'timed_odometer.mileage'), true);
      setState('psa.0.MEINE_VIN.status.odometer.mileage' /* mileage */, getAttr(result_json, 'timed_odometer.mileage'), true);
    }
    if (!!getAttr(result_json, 'preconditionning.air_conditioning.status').length) {
      setState('psa.0.MEINE_VIN.status.preconditioning.airConditioning.status' /* status */, getAttr(result_json, 'preconditionning.air_conditioning.status'), true);
    }
    }).on("error", (e) => { console.error(e); });
  } catch (e) { console.error(e); }
});
schuellerf commented 3 months ago

ach und die Klimaanlage schalte ich auch einfach per javascript in meinem telegram bot ein:

            if (new_car_ac == 1) {

                temp_text = 'Ich schalte die Klimaanlage ein.';
                require("request")('http://localhost:5000/preconditioning/MEINE_VIN/1').on("error", (e) => { console.error(e); });
            } else {
                temp_text = 'Ich schalte die Klimaanlage aus.';
                require("request")('http://localhost:5000/preconditioning/MEINE_VIN/0').on("error", (e) => { console.error(e); });
            }
tobiasaibot commented 3 months ago

Toller "pfusch" :-D MEGA, ich danke dir vielmals @schuellerf

schuellerf commented 3 months ago

Toller "pfusch" :-D MEGA, ich danke dir vielmals @schuellerf

Pfusch ist es halt insofern, als dass das original "psa" modul nicht laufen sollte - sonst kommen die sich in die quere (zumindest bei mir) Außer man verwendet einfach andere Objekte und stellt alle Auswertungen um ;-)

ps-neotrace commented 3 months ago

So langsam verzweifle ich.. Ich habe leider weder richtig Ahnung von Docker noch von den reinen Programiergeschichten. Ich hatte die Hoffnung mittels der Anleitung das Script zum laufen zu bekommen, leider kann ich aus für mich nicht erklärbaren Gründen das Ding nicht gestartet. Installiert zu sein Scheint es auf dem Raspi, aber sobald ich vorgehe wie in der Anleitung unter https://return2.net/opel-peugeot-electric-vehicle-set-charging-threshold-limit/ bekomm ich als Fehler Command not found. Ich werde noch irre hier. Würde sehr gern mein E208 wieder über den IOB sehen und natürlich auch passend laden wollen. Der Adapter von TA2k lief ja immer hervorragend. Ich werde echt Irre... Gibt es eine Anleitung ggf. auch bebildert wie ich das auf nen Raspi bekomme? Oder muss das ein seperater sein, sprich einer wo der IOB nicht drauf läuft. argh

schuellerf commented 3 months ago

@ps-neotrace

So langsam verzweifle ich.. Ich habe leider weder richtig Ahnung von Docker noch von den reinen Programiergeschichten. Ich hatte die Hoffnung mittels der Anleitung das Script zum laufen zu bekommen, leider kann ich aus für mich nicht erklärbaren Gründen das Ding nicht gestartet. Installiert zu sein Scheint es auf dem Raspi, aber sobald ich vorgehe wie in der Anleitung unter https://return2.net/opel-peugeot-electric-vehicle-set-charging-threshold-limit/ bekomm ich als Fehler Command not found. Ich werde noch irre hier. Würde sehr gern mein E208 wieder über den IOB sehen und natürlich auch passend laden wollen. Der Adapter von TA2k lief ja immer hervorragend. Ich werde echt Irre... Gibt es eine Anleitung ggf. auch bebildert wie ich das auf nen Raspi bekomme? Oder muss das ein seperater sein, sprich einer wo der IOB nicht drauf läuft. argh

Ist natürlich hier Fehl am Platz (die Diskussion, bei diesem issue) und ohne genauen Fehler eher schlecht zu erraten, aber probier mal

sudo apt install -y git docker.io

sehr viele "commands" können da nicht fehlen...

und dann am einfachsten damit testen - ob was zurück kommt (DEINE_VIN natürlich mit der VIN/FIN ersetzen)

curl http://localhost:5000/get_vehicleinfo/DEINE_VIN
ps-neotrace commented 3 months ago

@schuellerf Ja danke ich werde das nun wohl auch abbrechen. Es scheint als würde ich es nicht zum laufen bekommen. Scheinbar läuft der Dienst/Server wie auch immer man es nennt gar nicht. Ich bekomme es nicht gestartet. Vieleicht ich bin auch nicht der richtige der das zum laufen bekommt. Sehr schade das der Adapter nicht mehr läuft. Der war spitzte. Vielen Dank für die Hilfe. Auch wenn es sicher auch wieder im falschen Thema ist.

tobiasaibot commented 3 months ago

Toller "pfusch" :-D MEGA, ich danke dir vielmals @schuellerf

Pfusch ist es halt insofern, als dass das original "psa" modul nicht laufen sollte - sonst kommen die sich in die quere (zumindest bei mir) Außer man verwendet einfach andere Objekte und stellt alle Auswertungen um ;-)

Ja, PSA Adapter hab ich natürlich auch deaktiviert 👍

Das einzige, was mir nicht so ganz gefällt ist, dass "Flobz" auch nicht soooo stabil läuft. Ich lass jetzt alle 5 Minuten abrufen, sonst verschluckt er sich gefühlt .... Abgesehen davon ist die PSA/Opel API ohnehin sehr sehr lahm mit der Aktualisierung.

Tesla ist da realtime ;-)

polocup100 commented 2 months ago

Gibt es jemanden der den Adapter wieder zum laufen bringen kann? Ich warte sehnsüchtig auf den Fix. Dann klappt auch wieder das Überschussladen wenn ich den Ladestand des Akkus kenne.

Schon mal vielen Dank im Vorraus!

MichaelBurgerTKS commented 1 month ago

Ja Login flow ist anders Wenn ich zeit habe werde ich es anpassen

Aloha :D Wie stehen die Chancen für eine Anpassung an die PSA API? Ich denke wir wären sehr sehr dankbar - Vielleicht kennt ja jemanden einen anderen fähigen Entwickler, der sich das mal anschauen könnte.