## Summary - Remove aliases from all zk cards to prevent them from capturing wiki-links - Convert all wiki-links from `[[filename|Title]]` to `[[Title]]` format - Replace `doc-filenames` task with `doc-titles` for duplicate title detection - Update pre-commit hook to use `doc-titles` Wiki-links now resolve to reference docs by their frontmatter title, which is more readable and maintainable than filename-based links. ## Deployment and Testing - [x] Pre-commit hooks pass (including new `doc-titles` check) - [x] Manually verified zk cards have aliases removed - [ ] Deploy docs v1.0.7 and verify wiki-links resolve correctly - [ ] Test links to reference docs (e.g., [[Grafana Alloy]], [[ArgoCD]]) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Reviewed-on: https://forge.ops.eblu.me/eblume/blumeops/pulls/91
110 lines
3.3 KiB
Markdown
110 lines
3.3 KiB
Markdown
---
|
|
id: teslamate-log
|
|
tags:
|
|
- blumeops
|
|
---
|
|
|
|
# TeslaMate
|
|
|
|
TeslaMate is a self-hosted Tesla data logger running in Kubernetes (minikube on indri), collecting and visualizing vehicle data from the Tesla Owner API.
|
|
|
|
## Service Details
|
|
|
|
- URL: https://tesla.tail8d86e.ts.net
|
|
- Namespace: `teslamate`
|
|
- Image: `teslamate/teslamate:2.2.0`
|
|
- Database: [[postgresql]] (CloudNativePG cluster at pg.tail8d86e.ts.net)
|
|
- ArgoCD app: `teslamate`
|
|
|
|
## What TeslaMate Collects
|
|
|
|
- Battery level, state of charge, range estimates
|
|
- Charging sessions (location, energy, cost, duration)
|
|
- Drives (distance, efficiency, routes)
|
|
- Climate/HVAC usage
|
|
- Software update history
|
|
- Vampire drain analysis
|
|
- Vehicle states (asleep, driving, charging, online)
|
|
|
|
## Grafana Dashboards
|
|
|
|
18 dashboards available in Grafana under the "TeslaMate" folder at https://grafana.tail8d86e.ts.net:
|
|
|
|
- Overview, Charges, Drives, Efficiency, States
|
|
- Battery Health, Vampire Drain, Statistics
|
|
- Charge Level, Locations, Trip, Mileage
|
|
- Drive Stats, Charging Stats, Projected Range
|
|
- Timeline, Updates, Visited
|
|
|
|
Dashboards use the `TeslaMate` PostgreSQL datasource (not Prometheus).
|
|
|
|
## Useful Commands
|
|
|
|
```bash
|
|
# View logs
|
|
kubectl --context=minikube-indri -n teslamate logs -f deployment/teslamate
|
|
|
|
# Check pod status
|
|
kubectl --context=minikube-indri -n teslamate get pods
|
|
|
|
# Restart deployment
|
|
kubectl --context=minikube-indri -n teslamate rollout restart deployment/teslamate
|
|
|
|
# Sync from ArgoCD
|
|
argocd app sync teslamate
|
|
```
|
|
|
|
## Credentials
|
|
|
|
**1Password items (blumeops vault):**
|
|
- `TeslaMate` - contains `db_password` and `api_enc_key` fields
|
|
|
|
**Kubernetes secrets:**
|
|
- `teslamate-db` (teslamate ns) - DATABASE_PASS for PostgreSQL connection
|
|
- `teslamate-encryption` (teslamate ns) - ENCRYPTION_KEY for token encryption
|
|
- `blumeops-pg-teslamate` (databases ns) - CloudNativePG managed role password
|
|
- `grafana-teslamate-datasource` (monitoring ns) - Grafana datasource password
|
|
|
|
## Backup
|
|
|
|
TeslaMate data is backed up via [[borgmatic]]:
|
|
- PostgreSQL database `teslamate` included in `borgmatic_postgresql_databases`
|
|
- Backed up alongside miniflux to sifaka NAS
|
|
|
|
## Tesla API Authentication
|
|
|
|
TeslaMate uses Tesla's Owner API (not Fleet API) via OAuth:
|
|
|
|
1. Access https://tesla.tail8d86e.ts.net
|
|
2. Click "Sign in with Tesla"
|
|
3. Complete OAuth flow in browser
|
|
4. Tokens are encrypted with ENCRYPTION_KEY and stored in database
|
|
5. TeslaMate automatically refreshes tokens as needed
|
|
|
|
**Standalone OAuth tool:** If you need to manually obtain tokens, there's a Rust-based helper:
|
|
- Mirror: https://forge.tail8d86e.ts.net/eblume/tesla_auth.git
|
|
- Runs OAuth flow and outputs access/refresh tokens
|
|
|
|
## Database Notes
|
|
|
|
- TeslaMate requires PostgreSQL 17.3+ or 18.x
|
|
- The `teslamate` user has superuser privileges (required for extension management during migrations)
|
|
- Extensions used: `cube`, `earthdistance` (for geospatial calculations)
|
|
|
|
## Related
|
|
|
|
- [[1767747119-YCPO|BlumeOps]]
|
|
- [[argocd|ArgoCD]]
|
|
- [[postgresql|PostgreSQL]]
|
|
- [[borgmatic|Borgmatic]]
|
|
|
|
## Log
|
|
|
|
### Thu Jan 23 2026
|
|
|
|
- Initial deployment to Kubernetes
|
|
- 18 Grafana dashboards imported from TeslaMate project
|
|
- Upgraded CloudNativePG 1.25 -> 1.28 for major version upgrade support
|
|
- Upgraded PostgreSQL 17.2 -> 18.1 (required for TeslaMate 2.2.0)
|
|
- Tailscale Ingress at `tesla.tail8d86e.ts.net`
|
|
- Backup configuration added to borgmatic
|