Server 2.4.0, app 2.11.1: ABRP forwarding removed from the server
The car sends live data to ABRP itself, and the car and the server go over the same mobile connection: when the car cannot reach ABRP, it cannot reach the server either, so the server's fallback bought nothing. The forwarder, its ABRP_* settings and abrpSentUtc are gone; the server only stores. The app stops sending abrpSentUtc (the server ignores unknown fields, so 2.11.0 keeps working) and its texts no longer promise a server fallback. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QLJfZQZeAKAwSqViTmLzki
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
# Nils' MG4
|
||||
|
||||
An Android Automotive app for the **MG4 (SAIC eh32)** head unit, plus a small server: the car
|
||||
sends its telemetry to my own server at car.k8s.stinnesbeck.com, which stores it in InfluxDB 2,
|
||||
forwards live data to [A Better Route Planner](https://abetterrouteplanner.com) and feeds the
|
||||
Grafana dashboards.
|
||||
sends its telemetry to my own server at car.k8s.stinnesbeck.com, which stores it in InfluxDB 2
|
||||
for the Grafana dashboards, and its live data straight to
|
||||
[A Better Route Planner](https://abetterrouteplanner.com).
|
||||
|
||||
No OBD dongle and no phone in the loop: the app runs on the head unit and reads the car's own
|
||||
APIs.
|
||||
@@ -47,18 +47,16 @@ vehicle there, so every value shows as a dash).
|
||||
## How it fits together
|
||||
|
||||
```
|
||||
car ──live telemetry───▶ car.k8s.stinnesbeck.com (Go) ──▶ ABRP (what the car did not send)
|
||||
car ──live telemetry───▶ car.k8s.stinnesbeck.com (Go)
|
||||
│ ──daily chunks─────▶ │
|
||||
│ ──charging sessions▶ ▼
|
||||
│ InfluxDB 2 ◀── Grafana
|
||||
└──live telemetry (optional, direct)──────────────────▶ ABRP
|
||||
└──live telemetry─────▶ ABRP
|
||||
```
|
||||
|
||||
With ABRP credentials set in the app (Live data tab), the car sends live data to ABRP itself,
|
||||
so ABRP keeps getting it while the server is down; the server then forwards only samples the
|
||||
car could not deliver. Without them in the app, the server forwards everything with its own
|
||||
ABRP credentials. The car authenticates with the server using a token of its own, obtained by
|
||||
pairing with a phone (below).
|
||||
The car sends live data to ABRP itself, with the ABRP credentials set on the Live data tab, so
|
||||
ABRP and the server do not depend on each other. The server only stores. The car authenticates
|
||||
with the server using a token of its own, obtained by pairing with a phone (below).
|
||||
|
||||
## The app
|
||||
|
||||
@@ -118,8 +116,7 @@ pointed at this repository's releases (see `SPECS.md`).
|
||||
3. Tap **Pair with phone**. Scan the QR code with a phone (or open the address shown and enter
|
||||
the code), and approve with the server's approval password. The car receives its token.
|
||||
4. On the **Live data** tab, turn live data on. The service starts with the car from then on.
|
||||
5. Optional: enter your ABRP API key and user token on the same tab, so the car also sends
|
||||
live data straight to ABRP.
|
||||
5. Enter your ABRP API key and user token on the same tab, so the car sends live data to ABRP.
|
||||
|
||||
### Config file
|
||||
|
||||
@@ -141,8 +138,8 @@ installation_id = only to carry over history from an install older than 2.9.0
|
||||
interval_sec = 60 # 15 / 30 / 60 / 120 / 300
|
||||
boost_low_soc = true
|
||||
low_soc_percent = 20
|
||||
abrp_api_key = optional: your ABRP API key, to send to ABRP directly
|
||||
abrp_token = optional: your ABRP user token
|
||||
abrp_api_key = your ABRP API key
|
||||
abrp_token = your ABRP user token
|
||||
```
|
||||
|
||||
After a successful import the app deletes the file, since it holds the token; credentials live
|
||||
@@ -182,7 +179,7 @@ work for the plain Gradle builds.
|
||||
## Server and dashboards
|
||||
|
||||
- **Server** ([`server/`](server/README.md)): Go, API only. Live telemetry, daily consumption
|
||||
chunks, charging sessions, pairing; forwards live data to ABRP. Image at
|
||||
chunks, charging sessions, pairing. Image at
|
||||
`git.stinnesbeck.com/nils/mg4-server`.
|
||||
- **Kubernetes** ([`k8s/`](k8s/README.md)): plain manifests for the server, InfluxDB 2 and
|
||||
Grafana, applied by hand with `kubectl apply -k k8s/`. Secrets go in the gitignored
|
||||
|
||||
Reference in New Issue
Block a user