OpenWB SoC Modul - schon wer dran?

Hi zusammen,

hat schon wer angefangen am SoC Modul für die OpenWB zu basteln?

@Leguan ich glaube du hättest auch Interesse, oder?

Hat sich schon wer die Mühe gemacht, die Authentifizierung der App gegen über den Polestar-Servern anzuschauen?

CU
Markus

1 Like

Ja das hätte ich. So wie ich das verstanden habe greift die obenWB hier die daten aus der App ab bzw aus der Cloud.
Im OpenWB Forum wurde das bereits angesprochen.

Ich habe auch eine openWB und hätte großes Interesse! Wieso kann eigentlich jeder DC Lader den SoC auslesen und bei AC nicht?

Das ist beim AC nicht im Standard. Da geht die Steuerung über PWM und da hat man das nicht in den Standard gebracht.

Und bevor das falsch rüberkommt: ich kenne überhaupt keine andere Wallbox die den SOC auslesen kann, geschweige denn, mit dem SOC etwas anfangen. Das ist die große Besonderheit der OpenWB, die dadurch intelligentere Ladestrategien unterstützen kann.

Kannst du den Thread mal verlinken?

https://openwb.de/forum/viewtopic.php?f=5&t=3263&p=39857&hilit=polestar#p39857

1 Like

Hab mir mal Fiddler installiert… die OAUTH config gibt es schonmal :grin:

Host: polestarid.eu.polestar.com
Accept: */*
Accept-Language: de-de
Connection: keep-alive
Accept-Encoding: gzip, deflate, br
User-Agent: Polestar/811 CFNetwork/1312 Darwin/21.0.0


{
  "issuer": "https://polestarid.eu.polestar.com",
  "authorization_endpoint": "https://polestarid.eu.polestar.com/as/authorization.oauth2",
  "token_endpoint": "https://polestarid.eu.polestar.com/as/token.oauth2",
  "revocation_endpoint": "https://polestarid.eu.polestar.com/as/revoke_token.oauth2",
  "userinfo_endpoint": "https://polestarid.eu.polestar.com/idp/userinfo.openid",
  "introspection_endpoint": "https://polestarid.eu.polestar.com/as/introspect.oauth2",
  "jwks_uri": "https://polestarid.eu.polestar.com/pf/JWKS",
  "registration_endpoint": "https://polestarid.eu.polestar.com/as/clients.oauth2",
  "ping_revoked_sris_endpoint": "https://polestarid.eu.polestar.com/pf-ws/rest/sessionMgmt/revokedSris",
  "ping_end_session_endpoint": "https://polestarid.eu.polestar.com/idp/startSLO.ping",
  "device_authorization_endpoint": "https://polestarid.eu.polestar.com/as/device_authz.oauth2",
  "scopes_supported": [
    "conve:fuel_status",
    "vehicle:capabilities",
    "care_by_brand:financial_information:payment_method",
    "exve:diagnostics_engine_status",
    "care_by_brand:financial_information:invoice:read",
    "appointment",
    "conve:trip_statistics",
    "vehicle:parking",
    "exve:odometer_status",
    "conve:environment",
    "vehicle:trip_status",
    "vehicle:oil_status",
    "vehicle:engine_start",
    "vehicle:engine",
    "vehicle:climatization",
    "conve:vehicle_relation",
    "exve:lock_status",
    "payment:payment",
    "conve:tyre_status",
    "vehicle:climatization_calendar",
    "tsp_customer_api:all",
    "exve:warnings",
    "care_by_brand:customer:identity",
    "openid",
    "profile",
    "customer:attributes",
    "conve:diagnostics_workshop",
    "vehicle:bulb_status",
    "vehicle:climatization_status",
    "exve:windows_status",
    "vehicle:service_status",
    "conve:lock_status",
    "vehicle:odometer_status",
    "exve:tyre_status",
    "customer:attributes:write",
    "vehicle:connectivity_status",
    "exve:doors_status",
    "conve:diagnostics_engine_status",
    "exve:fuel_status",
    "vehicle:unlock",
    "conve:brake_status",
    "conve:doors_status",
    "vehicle:attributes",
    "vehicle:honk_blink",
    "care_by_brand:subscription:read",
    "exve:brake_status",
    "vehicle:lock",
    "conve:odometer_status",
    "vehicle:deliverToCar",
    "vehicle:brake_status",
    "conve:engine_status",
    "carshare:guest",
    "conve:commands",
    "vehicle:doors_status",
    "vehicle:attributes:write",
    "conve:windows_status",
    "vehicle:privacy",
    "exve:engine_status",
    "vehicle:orderToCar",
    "vehicle:lock_status",
    "conve:navigation",
    "vehicle:engine_status",
    "conve:connectivity_status",
    "appointment:write",
    "vehicle:location",
    "email",
    "csb:all",
    "brand_on_call:all",
    "order:attributes",
    "conve:climatization_start_stop",
    "conve:engine_start_stop",
    "vehicle:tyre_status",
    "vehicle:ihu",
    "conve:lock",
    "vehicle:maintenance_status",
    "carshare:owner",
    "vehicle:coolant_status",
    "vehicle:climatization_calendar_status",
    "oidc.profile.read",
    "conve:command_honk_flash",
    "conve:unlock",
    "vehicle:washer_status",
    "exve:vehicle_statistics",
    "vehicle:fuel_status",
    "exve:diagnostics_workshop",
    "vehicle:trips",
    "conve:warnings"
  ],
  "claims_supported": [
    "pi.sri",
    "sub"
  ],
  "response_types_supported": [
    "code",
    "token",
    "id_token",
    "code token",
    "code id_token",
    "token id_token",
    "code token id_token"
  ],
  "response_modes_supported": [
    "fragment",
    "query",
    "form_post"
  ],
  "grant_types_supported": [
    "implicit",
    "authorization_code",
    "refresh_token",
    "password",
    "client_credentials",
    "urn:pingidentity.com:oauth2:grant_type:validate_bearer",
    "urn:ietf:params:oauth:grant-type:jwt-bearer",
    "urn:ietf:params:oauth:grant-type:saml2-bearer",
    "urn:ietf:params:oauth:grant-type:device_code",
    "urn:openid:params:grant-type:ciba"
  ],
  "subject_types_supported": [
    "public",
    "pairwise"
  ],
  "id_token_signing_alg_values_supported": [
    "none",
    "HS256",
    "HS384",
    "HS512",
    "RS256",
    "RS384",
    "RS512",
    "ES256",
    "ES384",
    "ES512",
    "PS256",
    "PS384",
    "PS512"
  ],
  "token_endpoint_auth_methods_supported": [
    "client_secret_basic",
    "client_secret_post",
    "private_key_jwt"
  ],
  "token_endpoint_auth_signing_alg_values_supported": [
    "RS256",
    "RS384",
    "RS512",
    "ES256",
    "ES384",
    "ES512",
    "PS256",
    "PS384",
    "PS512"
  ],
  "claim_types_supported": [
    "normal"
  ],
  "claims_parameter_supported": false,
  "request_parameter_supported": true,
  "request_uri_parameter_supported": false,
  "request_object_signing_alg_values_supported": [
    "RS256",
    "RS384",
    "RS512",
    "ES256",
    "ES384",
    "ES512",
    "PS256",
    "PS384",
    "PS512"
  ],
  "id_token_encryption_alg_values_supported": [
    "dir",
    "A128KW",
    "A192KW",
    "A256KW",
    "A128GCMKW",
    "A192GCMKW",
    "A256GCMKW",
    "ECDH-ES",
    "ECDH-ES+A128KW",
    "ECDH-ES+A192KW",
    "ECDH-ES+A256KW",
    "RSA-OAEP"
  ],
  "id_token_encryption_enc_values_supported": [
    "A128CBC-HS256",
    "A192CBC-HS384",
    "A256CBC-HS512",
    "A128GCM",
    "A192GCM",
    "A256GCM"
  ]
}
5 Likes

Ich hab jetzt eigentlich schonmal die gesamte URL chain damit ich ein JWT Token bekomme und mich prinzipiell einloggen könnte.

Nur dann kommt ein Call an cnepmob.volvocars.com wenn ich die Infos vom Auto (SoC) in der App abrufen will (was bei mir seit 3 Wochen nicht tut). Und da bekomme ich ein NET::ERR_CERT_AUTHORITY_INVALID also invalides Zertifikat. Dachte erst es liegt an meinem Man-In-The-Middle Proxy aber… nein auch ohne Fiddler dazwischen ist das Zertifikat erstmal nicht valide.

So wie es aussieht ist das nicht wirklich für die Öffentlichkeit gedacht (self-signed corporate CA) und man dem Cert einfach trusten müsste.

4 Likes

ok, und dann braucht man ein Client Zertifikat. :unamused: Mal schauen ob ich das irgendwo finden kann. Evtl. könnte wer auf Android Seite bei der App mal schauen ob man da ran kommt.

ERR_BAD_SSL_CLIENT_AUTH_CERT

1 Like
Polestar Owners and Enthusiasts
Telegram Group Polestar

Telegram

Kanal & Gruppe

Chatten.

Polestar Forum

Chat

Für Small Talk nutzen wir den Telegram-Messenger.
Hier kannst du unserer Gruppe beitreten:

Los geht's!
Polestar Club Owner and Enthusiasts

Polestar

Offizielle Website

Informieren.

Polestar 2

Polestar.com

Zur offiziellen Website der Automarke Polestar.
Hier geht's zum Traumauto:

Abfahrt!
Polestar Club Germany

Facebook

Community

Diskutieren.

Polestar Community

Facebook

Geschlossene Facebook-Gruppe insbesondere zum Polestar 2:

Beitreten!