Skip to content

Releases: zzflsxygod/drivelens

DriveLens v1.3.1

Choose a tag to compare

@zzflsxygod zzflsxygod released this 29 Oct 06:10
  • Home tire pressure layout: the four wheels are now the fourth tile in the 2×2 home grid (front axle on top, rear below), matching the other status tiles. A low wheel uses the warning color and a warning icon on the tile title; turning the feature off restores the previous three-tile row.
  • Settings: tire-pressure options moved out of the Journeys card into their own Tire pressure card.
  • No server update needed.

Web app: https://drivelens-app.oharuru.com · server: drivelens-api v0.15.0+ (ghcr.io/zzflsxygod/drivelens-api, install guide: https://github.com/zzflsxygod/drivelens/blob/main/docs/install.md).
Windows / Android installers are not part of this version (packaging paused).

DriveLens v1.3.0

Choose a tag to compare

@zzflsxygod zzflsxygod released this 29 Oct 05:37
  • Place search on Drives and Journeys: a search field above the list filters by place name (or journey name). The same query stays when you switch between the two tabs; suggestions and the month jump hide while you search. Clearing is the × inside the field.
  • Speed color upper limit is now a number you type (30–250 km/h, default 120) instead of fixed presets. The drive detail map has the same speed / plain color toggle as journeys (shared setting).
  • Tire pressure on Home: when the car reported pressures on a recent drive, the home card shows the four wheels (FL / FR / RL / RR) and how long ago they were measured. Below a threshold you set (default 2.5 bar, 1.5–4.0), that wheel is highlighted and a short warning appears. Toggle and threshold live in Settings. Demo mode includes a low front-left wheel so the warning is visible.
  • Install guide: new unofficial appendix for putting the web app and API behind an auth proxy (oauth2-proxy / Cloudflare Access / Traefik ForwardAuth) on the same origin. Root path only; sub-path installs are not supported.
  • The setup screen now recommends server 0.15.0.
  • Server 0.15.0 (api_level 16; recommended, Watchtower updates it automatically; no database changes). Older servers keep working — search and tire pressure stay hidden until you update:
    • Place search: GET /api/drives?q= and GET /api/journeys?q= (trim, max 100 characters, case-insensitive match on place / journey names).
    • Tire pressure: optional tpms: {date, fl, fr, rl, rr} (bar) on GET /api/cars/{id}/status, taken from the latest drive that recorded pressures (cached ~5 minutes).
    • Monthly report Superchargers: a DC charge counts as a Supercharger when fast_charger_brand is Tesla, or fast_charger_type starts with tesla, or the place name matches Supercharger / 超充 / スーパーチャージャー / tesla. Non-Tesla DC chargers are no longer counted as Superchargers.

Web app: https://drivelens-app.oharuru.com · server: drivelens-api v0.15.0+ (ghcr.io/zzflsxygod/drivelens-api, install guide: https://github.com/zzflsxygod/drivelens/blob/main/docs/install.md).
Windows / Android installers are not part of this version (packaging paused).

DriveLens v1.2.3

Choose a tag to compare

@zzflsxygod zzflsxygod released this 26 Oct 08:30
  • Journey notes can be cleared again: emptying the note in a journey's edit dialog now removes it. Before, the old note stayed. This works with any server version; server 0.14.1 also accepts null to clear the note.
  • A short server or database hiccup no longer signs devices out: the app now forgets its saved connection only when the server really rejects the device token (401 unauthorized), not on 5xx errors or network failures.
  • Sign-out text: the English confirmation said nothing changes on the server. All three languages (English, 中文, 日本語) now say that signing out also disconnects this device on the server and revokes its access, removes the local data, and leaves the data on the server untouched. Connections that use the server token get their own text (only local data is removed).
  • The setup screen now recommends server 0.14.1.
  • Server 0.14.1 (api_level 15, unchanged; recommended, Watchtower updates it automatically; no database changes):
    • Monthly report notifications fixed: the VAPID signature of every notification is now valid for 12 hours, independent of how long the push service keeps the message. Before, the monthly reminder (kept for 3 days) was signed for 72 hours, which push services reject (RFC 8292 allows at most 24 hours), so the first monthly reminder on November 1 would have failed. Trip summaries were at the 24-hour limit and are now well below it.
    • Device sign-ins survive database hiccups: a database error during the 5-minute device reload no longer turns device auth off and clears the device list; the current list is kept. If device auth really is unavailable, device tokens get 503 device_auth_unavailable instead of 401, so apps keep their connection. Unknown or revoked tokens still get 401.
    • Journeys: PATCH /api/journeys/{id} with "note": null clears the note; leaving note out keeps it, as before.

Web app: https://drivelens-app.oharuru.com · server: drivelens-api v0.14.1+ (ghcr.io/zzflsxygod/drivelens-api, install guide: https://github.com/zzflsxygod/drivelens/blob/main/docs/install.md).
Windows / Android installers are not part of this version (packaging paused).

DriveLens v1.2.2

Choose a tag to compare

@zzflsxygod zzflsxygod released this 24 Oct 22:31
  • Demo mode: the demo car's home is now an obviously fictional place, 「🗼 Demo Home」 at Tokyo Tower (東京タワー(デモ)), instead of a made-up spot on a residential street that could look like someone's real house. The office moves to Haneda Innovation City (羽田イノベーションシティ), so the commute stays about 14 km. The demo drives, charging, journeys and reports were rebuilt on real road routes from the new places.
  • README screenshots retaken from the new demo data.
  • No server update needed.

Web app: https://drivelens-app.oharuru.com · server: drivelens-api v0.14.0+ (ghcr.io/zzflsxygod/drivelens-api, install guide: https://github.com/zzflsxygod/drivelens/blob/main/docs/install.md).
Windows / Android installers are not part of this version (packaging paused).

DriveLens v1.2.1

Choose a tag to compare

@zzflsxygod zzflsxygod released this 24 Oct 14:08
  • Back button: the Android back button and the browser's back button now go back inside the app instead of closing it or leaving the page. Back first closes an open sheet, menu or share preview (or leaves select mode), then returns from a detail page (drive, charge, journey, report, battery) to the screen it was opened from, and from the Drives, Charges or Settings tab to Home. The installed Android app closes only when you press back on Home. Lists keep their scroll position when you come back.
  • No server update needed.

Web app: https://drivelens-app.oharuru.com · server: drivelens-api v0.14.0+ (ghcr.io/zzflsxygod/drivelens-api, install guide: https://github.com/zzflsxygod/drivelens/blob/main/docs/install.md).
Windows / Android installers are not part of this version (packaging paused).

DriveLens v1.2.0

Choose a tag to compare

@zzflsxygod zzflsxygod released this 23 Oct 08:25

Every device now signs in with its own token, so a lost phone can be disconnected without changing the server token everywhere.

  • Automatic switch: with drivelens-api 0.14.0+, the app replaces a saved server token with a token of its own for this device the next time it starts. Nothing to do.
  • Setup with a pairing code: the second field now takes a pairing code (for example 7KQ2-M9XD) or the server token. A connected device creates the code in Settings → Devices → Add device; it is valid for 10 minutes and works once. With a server token, the app exchanges it for a device token and does not keep it. Older servers keep working with the server token; a code shows a hint to update the server.
  • Settings → Devices: every connected device with its last use and address, a "This device" mark and a read-only badge. ⋯ renames or disconnects a device; Disconnect all other devices signs out everything else.
  • Read-only devices (for family or a car screen, optionally expiring after 7 or 30 days): everything can be viewed, and editing entry points (place names, charging costs, journeys, covers, suggestions) are hidden.
  • Sign out of this device (Settings): removes the connection, cached data and the notification subscription from this device and disconnects it on the server. A device that was disconnected elsewhere returns to the setup screen with a message and its cached data removed.
  • Settings → Server no longer shows the saved token; leave the field empty to keep the current connection. Switching to another server clears the old server's cached data.
  • Demo mode includes the device section (offline, nothing is sent).
  • Server 0.14.0 (api_level 15) — device auth. Apps older than 1.2.0 keep working unchanged:
    • Device tokens: each device can get its own token (dlt_…); the server stores only a hash. Devices can be listed, renamed and revoked one by one (/api/auth/devices), so a lost phone no longer means changing .env on every device. Rotating API_TOKEN does not sign devices out.
    • Pairing codes: a connected device creates a short code (XXXX-XXXX, 10 minutes, single use) that signs a new device in without typing the server token there. Codes can create read-only devices, optionally expiring after a number of days.
    • DRIVELENS_OWNER_KEY_MODE: full (default, as before) or pair-only — the server token then only adds and manages devices, and is not even checked after too many failed attempts, while device tokens keep working.
    • Removing a device also removes its notifications. The server token is compared in constant time regardless of its length.
    • Database: two new tables in the drivelens schema (devices, pairing_codes) and a device_id column on push_subscriptions, created by the API on start. Servers where the API account cannot create tables keep working as before with the server token, but device auth stays off (the log says device auth disabled).
    • Upgrade note: if your server was set up with the older SQL files, the drivelens tables may be owned by the TeslaMate admin and drivelens_ro may lack CREATE on the schema. Re-run the current setup.sql once as the admin (or just GRANT USAGE, CREATE ON SCHEMA drivelens TO drivelens_ro; and the table-ownership handover, see install guide, Upgrading to 0.14.0), then restart drivelens-api; the log then shows device auth enabled.

Web app: https://drivelens-app.oharuru.com · server: drivelens-api v0.14.0+ (ghcr.io/zzflsxygod/drivelens-api, install guide: https://github.com/zzflsxygod/drivelens/blob/main/docs/install.md).
Windows / Android installers are not part of this version (packaging paused).

DriveLens v1.1.2

Choose a tag to compare

@zzflsxygod zzflsxygod released this 23 Oct 05:39
  • DriveLens is now open source under the GNU AGPL-3.0-or-later. Source code, install guide, releases and issues are all in one place: zzflsxygod/drivelens. The old drivelens-releases repository is retired.
  • Links updated: the install guide (including the Tailscale section), "Releases & changelog" and feedback links in the app now open the main repository.
  • Install guide rewritten (English, 中文, 日本語): https via Cloudflare Tunnel or tailscale serve, notifications, automatic updates with Watchtower, environment variables, troubleshooting and uninstall.
  • Text fix: the setup screen said the saved token could be cleared in Settings. It now explains the actual way: clear this site's data in the browser settings.
  • Settings → Help & feedback: new "Source code (AGPL-3.0)" and "Third-party licenses" links.
  • Hardening: stricter Content Security Policy in the Windows/Android app shell (base-uri, form-action), safer rendering of values in a few menus and the report deep link, and Android backups of app data turned off.
  • Server 0.13.1 (recommended; Watchtower updates it automatically):
    • Failed-login limit: the client address is now the connection's own address; CF-Connecting-IP / X-Forwarded-For are only used with the new DRIVELENS_TRUST_PROXY_HEADERS=true and only from a local proxy. A correct token is always accepted, even while the limit is active, so you can never lock yourself out. The tracking table is size-limited.
    • Notifications are only sent to the push services browsers use (Chrome/Edge, Firefox, Safari; more via DRIVELENS_PUSH_HOSTS), never to internal addresses, and without following redirects. Error messages show only the HTTP status.
    • The default contact sent to push services now points to the main repository. The Docker image includes the licenses of all bundled libraries (/usr/share/doc/drivelens/THIRD_PARTY_LICENSES.txt).
    • No database changes; api_level stays 14, so 0.13.0 keeps working with this app.
  • Credits: the battery-health calculation is derived from TeslaMate (AGPL-3.0-or-later); demo routes © OpenStreetMap contributors (ODbL), elevation Copernicus DEM via Open-Meteo (CC BY 4.0).

Web app: https://drivelens-app.oharuru.com · server: drivelens-api v0.13.1+ (ghcr.io/zzflsxygod/drivelens-api, install guide: https://github.com/zzflsxygod/drivelens/blob/main/docs/install.md).
Windows / Android installers are not part of this version (packaging paused).

DriveLens v1.1.1

Choose a tag to compare

@zzflsxygod zzflsxygod released this 22 Oct 11:03
  • Privacy: removed a legacy URL parameter that could set the server address and token from the page address (?api=…&token=…). The app no longer reads them from the URL at all; if such a link is opened, the parameters are removed from the address bar immediately and ignored, and an installed app answers it from its local cache without sending the address over the network. Your server address and token stay only on your device and are sent only to your own server.
  • No server update needed.

Web app: https://drivelens-app.oharuru.com · server: drivelens-api v0.13.0+ (ghcr.io/zzflsxygod/drivelens-api, install guide: https://github.com/zzflsxygod/drivelens-releases/blob/main/docs/install.md).
Windows / Android installers are not part of this version (packaging paused).

DriveLens v1.1.0

Choose a tag to compare

@zzflsxygod zzflsxygod released this 22 Oct 06:30

Battery health now uses the same method as TeslaMate's "Battery Health" dashboard, so DriveLens shows the same number you see in Grafana (which many owners find close to what a Tesla service centre measures).

  • Home card: battery health % as the big number, current and new usable capacity (kWh), degradation % and charge cycles.
  • Battery page: health, degradation, current / new capacity, cycles and the rated consumption factor; new charts Capacity by mileage and Capacity over time (one dot per day, half-month median line, new-capacity reference line).
  • How it is calculated (exactly as TeslaMate): capacity per charging sample = rated range × rated consumption ÷ usable battery level; current = average of the latest 100 charging samples; new = the highest value at the end of any charge; health = current ÷ new. The one difference: obviously wrong samples outside 20–150 kWh are ignored, so a single bad battery reading cannot distort the maximum.
  • New capacity can be set by hand (kWh, like TeslaMate's custom_kwh_new, e.g. from a service-centre report). A full-range baseline (km) you set in an earlier version is converted to kWh automatically.
  • With an older server, or too little charging data, the app keeps showing the previous range-based estimate.
  • Server update needed: drivelens-api 0.13.0 (docker compose pull && docker compose up -d, or automatic with Watchtower). Read-only as before; no database change.

Web app: https://drivelens-app.oharuru.com · server: drivelens-api v0.13.0+ (ghcr.io/zzflsxygod/drivelens-api, install guide: https://github.com/zzflsxygod/drivelens-releases/blob/main/docs/install.md).
Windows / Android installers are not part of this version (packaging paused).