SkillHub

teslamateskills

v0.1.1

Query TeslaMate vehicle data via Grafana API. Use when user wants Tesla vehicle status, battery info, drives, charges, statistics, driving score, battery health, or trip data. Requires Grafana running with TeslaMate PostgreSQL datasource.

Sourced from ClawHub, Authored by zengfei88

Installation

Please help me install the skill `teslamateskills` from SkillHub official store. npx skills add zengfei88/teslamateskills

TeslaMate Grafana API Skill

Query TeslaMate data through Grafana's /api/ds/query endpoint using the PostgreSQL datasource.

Configuration

Grafana address is stored in ~/.openclaw/workspace/memory/teslamate-grafana-config.json:

{
  "grafana_url": "http://192.168.31.218:3000",
  "datasource_id": 1
}

To update address:

echo '{"grafana_url": "http://YOUR-GRAFANA:3000", "datasource_id": 1}' > ~/.openclaw/workspace/memory/teslamate-grafana-config.json

Usage

Quick Status

python3 scripts/query_teslamate.py --status
# Output: Battery: 85% | Range: 420 km | State: online | Today: 45 km

Drives

python3 scripts/query_teslamate.py --drives 5
# Recent 5 drives with address lookup

Route Planning

python3 scripts/query_teslamate.py --route "广州珠江新城"
# Output: Distance, duration, energy needed, arrival range

Commands

Command Description
--status Quick status: battery, range, state, today distance
--drives [N] Recent N drives with address lookup
--route <addr> Plan route to destination
--report Weekly report
--monthly Monthly statistics
--trend Energy efficiency trend (30 days)
--score Driving score based on speed
--milestones Achievement milestones
--charging Charging statistics (30 days)
--efficiency Energy efficiency stats
--cost Charging cost (default 1.5 CNY/kWh)
--range Range prediction
--health Battery health estimation
--places Top 10 most visited places
--drain Vampire drain analysis
--states Vehicle state statistics
--alerts Check for anomalies
--temp Temperature monitoring
--location Current car location
--full Complete status dashboard

Common Metrics

  • Battery: battery_level (0-100%), ideal_battery_range_km
  • Drive: distance (km), duration_min (minutes), speed_max, power_max
  • Charge: charge_energy_added (kWh), charger_power (kW), charger_voltage (V)
  • States: state = 'online'|'offline'|'driving'|'charging'|'asleep'|'updating'

API Details

  • Endpoint: {grafana_url}/api/ds/query
  • Method: POST
  • Content-Type: application/json
  • Datasource: PostgreSQL (TeslaMate)

Request body:

{
  "queries": [{
    "refId": "A",
    "datasourceId": 1,
    "rawSql": "YOUR SQL QUERY",
    "format": "table"
  }]
}

Response contains results in results.A.data.values.