-
-
Notifications
You must be signed in to change notification settings - Fork 714
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
volvo-connect: unauthorized_client #16726
Comments
Seems Volvo has made changes. Do we know which? |
I don't know what they have changed, but I can confirm that Volvo2mqtt is working again. |
They have updated to V2 API. What ever that means. |
There is a volvo.py in that repository src/volvo.py |
Seems this requires 2FA now which we don't support. Long time ago, we've asked Volvo to unboard us on their official APIs. This hasn't happened. We're not going to add more ugly workaround. |
So back to the generic car. |
But is this
If everything has worked, your addon is now authenticated. In the future, OTP authentication only needs to be done when updating, not when restarting the container. really an ugly workaround? |
I've got a bad request 400 error on my Volvo template running Evcc as an addon in HS. Does this mean that we cannot use the templates in evcc due to the 2FA on Volvo's side? |
yes, that's exactly what it means. |
What is the reason behind 2FA not being supported? |
I understand, that in the yaml approach it is complicated to integrate 2FA, but with the new configuration screen it should be possible to redirect to Volvo and deal with 2FA. There is even a kind of exmaple flow. https://github.com/volvo-cars/developer-portal-api-samples/tree/main/oauth2-code-flow-sample |
That's exactly the API that Volvo has not onboarded us on... Once they do that's the way to go. |
Ah, so you didn't receive a client_id? And the app is not yet published by Volvo? |
I think you can get a client id without even having a Volvo. But somehow the evcc user needs to login with his or her client id to get connected to their cars. @andig Where are you stuck in the process of onboarding? |
Idea: Creating a volvoAAOS2mqtt vehicle type? Playing with the idea, i unfortunately see that the DemoCar VIN is not very supportive.. so some real data is needed.
But a real VIN is very responsive with the following data every 300 seconds on mqtt...
So this requires only to have a volvo2mqtt-app (https://github.com/Dielee/volvo2mqtt) installed, and a volvo-mqtt vehicle type to be created. I would rather have a nice and clean programmed evcc go implementation of the volvo API in place of course. But in the meantime, while we wait for volvo, it doesn't feel too kludgy for me to:
Any ideas/thoughts for the volvoAAOS2mqtt vehicle type support? |
We have the same for Mazda, happy tonsuppoert a PR. |
evcc yaml: vehicles:
helper sensor (sensor.xc60_charging_status_a_f): {% if is_state("sensor.volvo_charging_connection_status","Disconnected")-%} |
So basically, because I use evcc as an add on in ha, I have created a vehicle, that pulls the values from HA directly |
You need to create a bearer token |
Hallo. mmierke ich hätte eine Frage. Funktioniert das auch wenn ich homeassistant nicht habe. Ich habe nur den iobroker. Was muss ich denn nun genau eingeben. Vielleicht kannst du mir helfen |
Gutentag Robbi12. I think mmierke uses the REST api from homeassistant, to pull in the data for evcc (where evcc is again an addon for ha to make things complicated :-) ). I am using evcc using #16771 with just volvo2mqtt without homeassistant. In the template there are homeassistant topic paths, but I am not using homeassistant....
Maybe you could test that path too? |
Can you explain a little more on how to do this ? |
sure... Install Dielee/volvo2mqtt, just follow their instructions. (This is with OTP btw) Some more info and test config is placed in PR #16771 |
Ich muss mich nun hier auch nochmal einmischen. Ich als auch Freund&Bekannte nutzen evcc als "Standalone" Lösung auf einem Linux Server (Pi, Custom Build Ubunutu etc.) und haben bisher das volvo-connect template verwendet. |
@lahlor2 Wenn ich andig's früheren Kommentar und das Schließen des Issues richtig interpretiere, hat sich der Fall für ihn erledigt. |
@Robbi12 Wenn du magst, können wir uns dein Setup mal zusammen ansehen. |
I've got this all working again through Volvo2mqtt. But now I have a feeling my car is a bit too exposed because it has the same control as the native Volvo app. Is there a way to block this on the Volvo side of things? |
Ich bin jetzt nicht genau durchgestiegen aber wenn ich es richtig lese, dann kann evcc kein Volvo mehr anbieten? Verstehe ich das richtig? Habe mich dann mal an die ganzen MQTT HA etc Themen gesetzt und mal getestet. Als Laie, der so erstmal mit MQTT/HA und co nichts zu tun hat - alles sehr unverständlich und unlösbar.
Ich habe "außerhalb" von Docker einen Mosquitto MQTT Broker laufen, ob der aber nun auch korrekt luft etc - keine Ahnung. Also mMn alles sehr undurchsichtig und eine super Bastellösung. |
Hallo ich bräuchte auch noch Hilfe. Habe nun stundenlang probiert. Nun würde ich aber gerne vom Iobroker evcc steuern. Dies klappt nicht so gut mit dem EVCC Adapter. Vorher hatte es wunderbar mit dem mqtt broker vom iobroker geklappt, dessen Daten in Evcc waren. In Evcc habe ich ja nun den Homeassistant Broker drin. Oder könnte ich in EVCC zwei MQTT Broker eintragen und wenn ja, wie? |
Mein lieber Herr Gesangsverein war das ein Ritt 😆 Ich möchte nun mal meine Erfahrungen und Ergebnisse zusammenfassen, damit vielleicht auch andere eine schnelle Volvo Lösung haben. Grundlage bei mir:
Wie ihr evcc installiert wisst ihr 😆 Mosquitto
Dann noch eine passende Konfiguration erstellen unter /etc/mosquitto/mosquitto.conf ` log_dest file /var/log/mosquitto/mosquitto.log include_dir /etc/mosquitto/conf.d
Hier kommt der User/Passwort rein, der dann den Broker mit Daten beladen kann/darf. Der Nutzer in dem Beispiel heißt "user". Abschließend den Service einmal neu starten
Dann noch einmal den Status prüfen, der "grün" sein sollte.
Als nächstes wird Docker insalliert
Nun sind die Grundlagen geschaffen und es kann mit dem "Volvo2mqtt" Addon weitergehen. Hierzu muss nun ein Docker Container geschaffen werden, der das ganze laufen lässt.
Im Idealfall bekommt ihr direkt nun eine Mail zugesendet mit dem OTP Key für den Login.
Im Besten Fall kommt sowas und zeit euch, dass eine Mail versendet wurde
Wenn der Container nicht läuft einfach mittels Befehl starten
Nun kommt der Part, dass wir den OTP Key irgendwie in das System bekommen müssen. Die Anleitung von Volvo2mqtt sagt man solle HomeAssistant nutzen, den haben wir aber hier nicht im Einsatz. Hier habe ich die IP des Mosquitto Servers eingegeben inkl. Port User und Passwort. Abschließend muss dann evcc beigebracht werden die Daten via MQTT zu beziehen. Hierzu meine evcc.yaml Konfiguration mit den relevanten Daten. Neu ist der mqtt Part und hier muss dann entsprechend die IP des MQTT Brokers Mosquitto rein, sowie der Benutzername/Passwort. `
mqtt: # Mqtt broker is required!
eine Abfrage gestartet und siehe da, alles wieder an seinem Platz! Einziges Problem was ich habe, es wird nicht automatisch erkannt, dass ich den Volvo lade. Ich habe kein Standardfahrzeug hinterlegt, mit der alten Volvo-connect Template lief es automatisch. Jetzt wird immer alles als Gastfahrzeug erkannt und ich muss manuell auf den Volvo wechseln. Ich hoffe ich kann mit dieser Zusammenfassung und Anleitung dem einem oder anderen helfen! |
@lahlor2 Ich würde mir mal Proxmox ansehen. Ich habe so einen kleinen Zauberwürfel mit 16GB RAM und 512GB SSSD. Auf dem läuft Proxmox als Virtualisierungsplattform. Bei haos würde ich zumindest ssh aktivieren um mithilfe von WinScp und VsCode direkt auf die Konfigurationsdateien zugreifen zu können. Evcc und Volvo2Mqtt laufen bei mir als Addons im HA. Das ist aber nicht zwingend notwendig. @Robbi12 Wenn ihr mehr Details haben möchtet, können wir gerne ein Slack aufmachen. |
Danke mmierke. So habe ich es ähnlich. Du hast einen eigenen Container mit mqtt. Ich habe dort zigbee2mqtt laufen mit broker drin und auch iobroker mit einem mqtt broker drin. Also ähnlich. Was mich interessiert und überhaupt nicht schaffe, wie ich volvo2mqtt im homeassistant einstellen muss, dass er auf meinen Broker (bei dir MQTT bei 100) zugreifen kann. Funktioniert einfach nicht. |
Also erstmal habe ich meinem mqtt eine feste IP Addresse gegeben. Das geht über die Netzwerkeinstellungen für den Container und proxmox. Gateway nicht vergessen, sonst funktioniert kein update mehr. Und dann hat mein Mosquitto Server noch ein Passwort. Ich weiß nicht, ob das dein Problem ist. Hier ein Beispiel für die Werte auf der Configuration Seite des Addons in HA. broker: 192.168.123.456 |
Ich hatte früher auch ioBroker und bin dann langsam auf HA umgezogen. Um mir das Leben zu erleichtern habe ich zuerst mqtt in einen eigenen Container verlagert und zigbee2mqtt und in deinem Fall ioBroker mit diesem Verbunden. Also aus 2 mach 1 mqtt broker. Das vereinfacht auch deine gesamte Architektur. |
Danke für deine Mühe. Genau so mache ich es. Es funktionier alles bei mir zigbee2mqtt usw. Wenn ich jedoch die Daten im Homeassistant bei volvo2mqtt eingebe kommt immer folgendes. Nehme ich den eigenen mosquito mqtt im homeassistant mit auto_broker funktioniert es. |
@Robbi12 Setz mal den Port in "" |
Auch schon getestet. Funktioniert nicht. Dieselbe Fehlermeldung hatte lahlor2 auch bei einem externen broker |
@Robbi12 Also bei mir sind Passwort und Port in "". Ich hatte glaube ich ein ähnliches Problem im Anfang |
Note IF you install mqtt it by default does not allow connections, You have to make a configuration change to allow anonomouse connections to localhost. listener 1883 0.0.0.0 if you use mosquitto you can do it in the mosquitto.conf directly. dont forget to restart the service. I am running mosquitto mqtt broker with only volvo2mqtt in docker and it works perfectly. using the template provided here |
Do your auth also expire after a few days: |
@MartijnvanGeffen13 once during this weekend. Normally it is stable |
For people who could need some separate docker oneliners or don't want to use the docker-compose: 10_mqtt_docker_onliner.sh:
20_volvo2mqtt_docker_oneliner.sh:
30_evcc_docker_oneliner.sh:
With this .env file.. .env:
evcc.yaml:
|
@mmierke hast du die fahrzeugerkennung hinbekommen? Bei mir muss ich das manuell machen... |
Ist bei mir identisch. Daten sind alle da, aber ich muss das Fahrzeug auch immer manuell auswählen. Wenn da jemand Ideen hat, bin ich sehr dankbar. |
sorry my german aint that good, How long did you wait before you manually selected your car, as the default poll is 5 minutes (volvo2mqtt) + your EVCC poll (30 sec) it could take up to 6 minutes till evcc detects (pull and update from mqtt the connected state) your vehicle. For me i only have 1 car so i dont use detection but have the charger set to always use my EX30. I did however reduce the volvo2mqtt poll time down to 2 minutes to get more accurate SOC specially when you above 90% evcc calculation is off and you need better polling interval. (Hardcoded limit seems to be 60 sec in the repo.) |
got it... depends on the interval set in the volvo2mqtt addon + the interval set in EVCC . I've reduced it and will check later. its not working... |
Can agree. Waited 15 minutes without any change so only the guestcar is selected. |
Can you check if your car status is actually connected ? I just checked my EX30 looks like it never receives the connected status. Currently i am reverse engineering and buiding a new modules based on volvo2mqtt as the solution itself is not optimal for EVCC, As we constantly wake up the car and pull a lot of data that is not needed for EVCC and we expose more privileges than are actually needed. I cant give a ETA yet but this issue will also be 1 of the thinks i want to look at for the new module. |
Update , Released a early Beta version that still needs documentation but stability tests have passed , meaning i will be running this to my production car this week. I will now focus on EVCC template, documentation and how to, and bootup scheduled task creation. you can follow progress: |
Update: A release candidate has been released https://github.com/MartijnvanGeffen13/Volvo4evcc Features in current RC3 release module: (See wiki for instalation) Car status should be auto detectable by EVCC |
Will this solution be included in EVCC? |
Not as native if you mean that, its a broker addon to interface between the 2 just like all the 2MQTT but those are all double brokers (Car api -> *2MQTT -> MQTT -> EVCC), This solution removes the extra MQTT broker and adds lot of features. We did do raise a template request to be included for Volvo4Evcc to be added to the EVCC sollution its being reviewed by Andig atm. |
Describe the bug
Hi..
Is the (hard-coded) client suddenly become invalid?
This is in the code
Steps to reproduce
curl -X POST https://volvoid.eu.volvocars.com/as/token.oauth2
-H "Authorization: Basic aDRZZjBiOlU4WWtTYlZsNnh3c2c1WVFxWmZyZ1ZtSWFEcGhPc3kxUENhVXNpY1F0bzNUUjVrd2FKc2U0QVpkZ2ZJZmNMeXc="
-H "Content-Type: application/x-www-form-urlencoded"
-d "access_token_manager_id=JWTh4Yf0b"
-d "grant_type=password"
-d "username=invalid_user_does_not_matter"
-d "password=invalid_pass_does_not_matter"
-d "scope=openid vehicle:attributes energy:recharge_status energy:battery_charge_level energy:electric_range energy:estimated_charging_time energy:charging_connection_status energy:charging_system_status conve:fuel_status conve:odometer_status conve:environment"
{"error":"unauthorized_client"}
Configuration details
Not appliccable
Log details
What type of operating system are you running?
Docker container
Nightly build
Version
0.130.13 (not yet relevant to issue, current master version has same credentials)
The text was updated successfully, but these errors were encountered: