Repository navigation
v0.9.0
Highlights
Polestar, in beta. Runsten now reads a Polestar through Polestar's Data Portal, the access to their car's data the EU Data Act gives its owners. Create a credential on the portal (a client ID, its secret and your Account ID), paste it on the Connection page, and Runsten derives the trips, charges and costs as it does for a Volvo. The credential is checked before it is saved, stored encrypted, and the Connection page reminds you before its 90 days run out. Polestar support was built against a simulator of the Data Portal and real cars' responses, not yet checked on a car of our own: tell us how yours behaves. See Your Polestar.
Your history from before Runsten. A vehicle's settings import its past trips and charges:
- from Aximote (beta), with a personal access token of its Pro offer, as a background job you can resume, with its report;
- from the files of the Volvo Data Portal, which Volvo Cars gives an owner in the EU on request, tracks included.
Imported events are stored apart by source, shown and counted with the ones Runsten derives, and deleted by source. An imported trip's track is drawn on its map. See Importing your history.
Also new
- A new account is asked which car it has, Volvo or Polestar; the Connection page has one tab per brand.
- A variant is chosen by its model, then its model year. The catalog gives the net capacity of every Polestar variant (but the Polestar 2 Standard Range of 2022 and 2023, whose sources disagree), and stores the variant in effect of each vehicle.
- The Volvo application key: a refusal is told apart from a Volvo ID without a vehicle, scoped to the endpoint when the key reads the others, marked only after three refusals in a row, shown as a pause, and the call tried again; the key is marked accepted as soon as Volvo answers.
- Vehicles whose market the Volvo API does not serve are marked as such.
- The VIN's motor code is read at positions 6-7; the charge type shows as none when the vehicle says
NONE. - The documentation is presented by car rather than by brand; the README points to it.
- Go 1.27.3, vite 8.3.4 and the dependencies updated.
Updating from 0.1.0
Follow Updating: fetch the new compose.yaml and .env.example, set RUNSTEN_VERSION, then docker compose pull && docker compose up -d. The migrations (0018 to 0024) are applied at startup.
- No new variable is required.
RUNSTEN_POLESTAR_BASE_URLandRUNSTEN_AXIMOTE_BASE_URL(empty: the real services) andRUNSTEN_WEB_NOINDEXare optional. - No rebuild is needed coming from 0.1.0: the update notes on the Polestars' net capacities concern Polestar events derived before this release, which 0.1.0 did not read.
What's next
Polestar checked on a real car, MQTT events for settled trips and charges, webhooks, dynamic tariffs, and the importer of the Volvo Cars app's CSV files.
Images
For linux/amd64 and linux/arm64. In .env, RUNSTEN_VERSION=0.9.0, then docker compose pull && docker compose up -d (https://runsten.app/docs/self-hosting/updating).
ghcr.io/runsten-app/runsten-simulator:0.9.0(sha256:83a411f742a4e0163630a5d9ea61d66ead5650545c0908c0de13c224e9df1bc8)ghcr.io/runsten-app/runsten-collector:0.9.0(sha256:e7bac913070f04346e4cf54e00d5a6c03fb2da1a490df96329648f0ed462f641)ghcr.io/runsten-app/runsten-api:0.9.0(sha256:88831723ec805a802cdec67ac40673aea090864f35711e6f734d03e18040b6bd)ghcr.io/runsten-app/runsten-web:0.9.0(sha256:71ca1b01743123015503bc8008a231266c752bf0f0c1e5d875d495e68e0f3746)