tesla.adamveenendaal.com — setup

Walks through bringing the site online. All values can be entered below; nothing on disk needs to be edited by hand.

  1. step 1  Site reachable over HTTPS
    https://tesla.adamveenendaal.com
  2. step 2  logs/ directory writable
    C:\WebSite\TeslaWorkspace\tesla.adamveenendaal.com\logs
  3. step 3  Tesla OAuth credentials
    client_id ends …01cb73, redirect_uri = https://tesla.adamveenendaal.com/Redirect.aspx
    1. Open your Tesla developer app:
      If you don't have one yet, create one. The page lists your client_id and client_secret.
    2. Add this redirect URI to that same app:
    3. Paste the values from Tesla into these fields and save:
  4. step 4  OAuth token cached
    cache.json contains a refresh_token
    or paste an existing cache.json
    Must be JSON with at minimum a refresh_token. Leave expires_at blank or 0 to force a refresh on the next call.
  5. × step 5  Tesla partner public key registered
    No public key uploaded yet.
    Generate locally:
    openssl ecparam -name prime256v1 -genkey -noout -out private-key.pem
    openssl ec -in private-key.pem -pubout -out public-key.pem
    Paste contents of public-key.pem above. Keep private-key.pem safe — it's needed only if you also stand up the vehicle-command-proxy (signed commands). Tesla fetches the key from https://tesla.adamveenendaal.com/.well-known/appspecific/com.tesla.3p.public-key.pem when you click 'register with Tesla'.
  6. × step 6  Vehicle selected
    No VIN selected.
  7. i step 7  Vehicle paired (Tesla mobile app)
    Open the deep link below on a phone signed into the Tesla mobile app to add this site as a virtual key. Required only for signed commands (charge_start / set_charging_amps via vehicle-command-proxy). Telemetry receive does not require pairing.
    Deep link: https://tesla.com/_ak/tesla.adamveenendaal.com
  8. × step 8  Vehicle fleet-telemetry config registered
    Pick a VIN (step 6) first.
    You need the teslamotors/fleet-telemetry Go server reachable from the vehicle (public, valid TLS). Configure it to forward signals via HTTP POST to https://tesla.adamveenendaal.com/api/telemetry.ashx. Subscribe at minimum to: BatteryLevel, ChargeLimitSoc, ChargingState, ChargeCurrentRequest, ChargerVoltage, ChargerActualCurrent, ChargePortLatch, Odometer, Latitude, Longitude.
  9. ! step 9  Vehicle telemetry received
    No telemetry packets received yet.
    Configure Tesla fleet_telemetry to push to https://tesla.adamveenendaal.com/api/telemetry.ashx. Subscribe at minimum to: BatteryLevel, ChargeLimitSoc, ChargingState, ChargeCurrentRequest, ChargerVoltage, ChargerActualCurrent, ChargePortLatch, Odometer, Latitude, Longitude.
  10. ! step 10  Solar feed received
    No solar packets received yet.
    POST {"solar_watts":N,"watts_available":N} to https://tesla.adamveenendaal.com/api/solar.ashx from SenseRT.
  11. ! step 11  Vehicle command proxy
    Not set. Signed (2021+) vehicles require commands to flow through the Tesla Vehicle Command HTTP Proxy.
    Stand up teslamotors/vehicle-command locally and point at it. Leave blank for unsigned vehicles.
  12. i step 12  Telemetry shared secret (optional)
    Not set — /api/telemetry.ashx accepts any POST.
    If set, fleet_telemetry must send the same value as X-Tesla-Token.

Once green