Neues Modul 50_VolvoConnect unter Verwendung der neuen OAUTH2 Methode von Volvo

Begonnen von stefan.apetz, 23 August 2026, 16:50:33

Vorheriges Thema - Nächstes Thema

stefan.apetz

Moin liebe FHEM Gemeinde.

Volvo ändert immer wieder gerne was an der API und das mir zuletzt bekannte Modul auf Basis von fhempy (https://forum.fhem.de/index.php?topic=132504) wollte auch nicht mehr so richtig.

Zwischenzeitlich hatte ich mir extra ein HomeAssistant aufgebaut, nur um von dort die Volvo Daten per MQTT nach fhem zu holen. War funktional ok, aber auch nicht so toll.

Daher habe ich mich mit meinem KI Freund in Visual Studio zusammengesetzt und ein neues Volvo Modul geschrieben. Das findet ihr hier nebst Doku im Anhang.

Ich suche mögliche Mitstreiter, um das voranzubringen.

Vorteil der Lösung:
- kein fhempy notwendig
- in meinen Augen simpel zu bedienen
- Access Token kann direkt aus der Oberfläche beim Device erzeugt werden
- Refresh des Tokens erfolgt alle 50 Minuten automatisch (das Intervall kann aber in einem Attribut selber angepasst werden, default 300 Sekunden)

Nicht so schön:
- die ReturnURL vom OUTH2 von Volvo kann so nicht einfach ausgewertet werden
  --> heisst beim Klick auf den Button in der DeviceOberfläche für den Erhalt
      eines Tokens erhält man einen NotFound Fehler im Browser, kann aber dann
      aus der BrowserZeile den CODE einfach rauskopieren und in das entsprechende
      Attribut beim Device eintragen

Würde das gerne noch weiter entwickeln und ggf. auch auf GIT übertragen. Stelle das jetzt aber erstmal hier so zur Verfügung.

Das Ganze läuft meinem meinem XC40 Recharge einwandfrei. Über Rückmeldungen zu anderen Modellen würde ich mich freuen.

Bei Fragen / Wünschen / Anregungen gerne auf mich zukommen.

Dokumentation:
VolvoConnect

Connects a Volvo vehicle to FHEM via the official Volvo Cars Developer API (OAuth2/PKCE). Reads energy state, capabilities and connected-vehicle data (warnings, brakes, doors, windows, engine status) and allows sending vehicle commands (lock, climate, charging, ...).

Define
define <name> VolvoConnect
After defining the device, set the attributes vin, client_id, client_secret, vcc_api_key and redirect_uri to your own values (placeholders are pre-filled). Then follow the login link shown next to the status icon (state auth_required) and confirm with set <name> authCode <code>.

Set
update - trigger an immediate data refresh
reauth - clear stored tokens and start a new login
authCode <code> - submit the OAuth authorization code after login
login - show the current login URL, if required
lock / unlock - lock or unlock the vehicle
climate / climate_stop - start or stop climatization
charge_start / charge_stop - start or stop charging
charge_limit <10-100> - set the charging limit in percent
precondition - start engine preconditioning
horn - honk the horn

Get
summary - show authStatus, lastUpdate, lastError and last command state
list - show the standard FHEM "list" output for this device
tokenInfo - show access/refresh token presence and remaining validity
scopes - show which scope_* attributes are currently enabled/disabled

Attributes
vin, client_id, client_secret, vcc_api_key, redirect_uri - Volvo API credentials
interval - polling interval in seconds (default 300)
disable, disabledForIntervals - pause polling
scope_* - enable/disable individual data scopes and command permissions
stateFormat - defaults to {VolvoConnect_StateIcon('<name>')}, showing a colored status dot (green/yellow/red) with the status as tooltip, plus a login button when auth_required

Readings
state - mirrors authStatus (authenticated, auth_required, token_refreshing, error, disabled)
authStatus - current authentication status
lastUpdate - timestamp of the last successful data fetch
lastError - last error message, if any
state_*, capabilities_*, warnings_*, brakes_*, doors_*, windows_*, engine_* - flattened vehicle data


Du darfst diesen Dateianhang nicht ansehen.