tesla-cli 4.8.0__tar.gz → 4.9.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of tesla-cli might be problematic. Click here for more details.
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/.gitignore +0 -1
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/CHANGELOG.md +38 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/CLAUDE.md +2 -2
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/PKG-INFO +1 -5
- tesla_cli-4.9.0/cron-runt-check.sh +39 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/docs/roadmap.md +25 -55
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/skills/charge/SKILL.md +8 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/skills/control/SKILL.md +8 -0
- tesla_cli-4.9.0/plugins/claude-code/skills/energy/SKILL.md +74 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/skills/order/SKILL.md +2 -2
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/skills/status/SKILL.md +7 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/pyproject.toml +1 -2
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/__init__.py +1 -1
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/api/app.py +180 -124
- tesla_cli-4.9.0/src/tesla_cli/api/routes/abrp.py +73 -0
- tesla_cli-4.9.0/src/tesla_cli/api/routes/automations.py +131 -0
- tesla_cli-4.9.0/src/tesla_cli/api/routes/ble.py +114 -0
- tesla_cli-4.9.0/src/tesla_cli/api/routes/charge.py +360 -0
- tesla_cli-4.9.0/src/tesla_cli/api/routes/dashcam.py +102 -0
- tesla_cli-4.9.0/src/tesla_cli/api/routes/energy_mgmt.py +119 -0
- tesla_cli-4.9.0/src/tesla_cli/api/routes/energy_prices.py +108 -0
- tesla_cli-4.9.0/src/tesla_cli/api/routes/fleet.py +74 -0
- tesla_cli-4.9.0/src/tesla_cli/api/routes/mqtt.py +85 -0
- tesla_cli-4.9.0/src/tesla_cli/api/routes/notify.py +193 -0
- tesla_cli-4.9.0/src/tesla_cli/api/routes/order.py +50 -0
- tesla_cli-4.9.0/src/tesla_cli/api/routes/scenes.py +218 -0
- tesla_cli-4.9.0/src/tesla_cli/api/routes/service.py +127 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/api/routes/teslaMate.py +34 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/api/routes/vehicle.py +57 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Action-Bx3ITOrA.js +1 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Action-legacy-3WvXcEZ2.js +1 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Analytics-buNYOtEj.js +1 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Analytics-legacy-BuePPNnL.js +1 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Automations-4tvMUHNd.js +1 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Automations-legacy-CQbByZ9U.js +1 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/BarChart-C0vhuT9k.js +32 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/BarChart-legacy-D6VWK1UH.js +10 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/ChargeContent-iS7RMYje.js +1 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/ChargeContent-legacy-B-HEhFFx.js +1 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/ClimateContent-legacy-BQrDkZQd.js +1 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/ClimateContent-nHWdn2-B.js +1 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/ControlsContent-BBBfJYQI.js +1 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/ControlsContent-legacy-DtgtKrEG.js +1 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Dossier-CdecB5e7.js +1 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Dossier-legacy-FePjUmKv.js +1 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Energy-C6k2P_bp.js +1 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Energy-legacy-WmNeX_MR.js +1 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Icons-BPrRnLWP.js +1 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Icons-legacy-CacO0o_R.js +1 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Navigation-CuZJEwUU.js +1 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Navigation-legacy-DoiCAHN8.js +1 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Order-legacy-BIct8DQc.js +1 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Order-m0uoum_X.js +1 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/ScheduleContent-BFuYRCdg.js +1 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/ScheduleContent-legacy-C57h_D4F.js +1 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Settings-Bim_v6Qk.js +1 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Settings-legacy--XOAgFSe.js +1 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/VehicleMap-CFi1lT_-.js +4 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/VehicleMap-a6kZMJSm.css +1 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/VehicleMap-legacy-DvN0TFdZ.js +5 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/index-B-8ZqtaE.css +1 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/index-CYkv-WXf.js +265 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/index-legacy-EzXM-nsI.js +351 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/p-BgwEQWW6-Z0UahNeN.js +3 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/p-BgwEQWW6-legacy-DjxjLUeR.js +5 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/p-CBzELu-H-CyPNfgft.js +3 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/p-CBzELu-H-legacy-BAKv_5SE.js +5 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/p-CU1SSH8_-CNdgjVXB.js +3 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/p-CU1SSH8_-legacy-BvckqPS3.js +5 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/p-CneGxKsZ-legacy-BIucGu0r.js +5 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/p-CneGxKsZ-n-afBYQi.js +3 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/p-Cwv-vmkN-legacy-zbWap398.js +5 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/p-Cwv-vmkN-tjrN1zNk.js +3 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/p-Cz5nLPGT-DMY47GKb.js +3 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/p-Cz5nLPGT-legacy-BOhdpZea.js +5 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/p-D6Ynv7Xh-BRyZz-Or.js +3 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/p-D6Ynv7Xh-legacy-BzZfcKZZ.js +5 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/polyfills-legacy-D1m5vk93.js +1 -0
- tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/index.html +37 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/app.py +10 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/automations.py +58 -26
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/ble.py +160 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/charge.py +429 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/climate.py +116 -0
- tesla_cli-4.9.0/src/tesla_cli/cli/commands/dashcam.py +255 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/data_cmd.py +257 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/security.py +40 -2
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/serve.py +5 -1
- tesla_cli-4.9.0/src/tesla_cli/cli/commands/service.py +398 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/vehicle.py +153 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/automation.py +98 -4
- tesla_cli-4.9.0/src/tesla_cli/core/backends/energy_prices.py +169 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/backends/fleet.py +65 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/backends/teslaMate.py +25 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/config.py +3 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/models/automation.py +15 -1
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/sources.py +319 -96
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_api_routes.py +9 -7
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_api_routes_new.py +32 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_new_commands.py +90 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_sources.py +4 -0
- tesla_cli-4.9.0/ui/public/favicon.png +0 -0
- tesla_cli-4.9.0/ui/public/manifest.json +24 -0
- tesla_cli-4.9.0/ui/src/App.tsx +224 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/api/client.ts +269 -9
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/BatteryGauge.tsx +3 -3
- tesla_cli-4.9.0/ui/src/components/ErrorBoundary.tsx +31 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/ModelYSilhouette.tsx +1 -1
- tesla_cli-4.9.0/ui/src/components/OrderProcessTracker.tsx +473 -0
- tesla_cli-4.9.0/ui/src/components/RecentCharges.tsx +57 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/VehicleMap.tsx +34 -8
- tesla_cli-4.9.0/ui/src/hooks/useDashboardTiles.ts +89 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/hooks/useVehicleData.ts +41 -2
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/pages/Action.tsx +2 -1
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/pages/Analytics.tsx +219 -23
- tesla_cli-4.9.0/ui/src/pages/Automations.tsx +579 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/pages/Dashboard.tsx +241 -72
- tesla_cli-4.9.0/ui/src/pages/Dossier.tsx +606 -0
- tesla_cli-4.9.0/ui/src/pages/Energy.tsx +455 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/pages/Navigation.tsx +22 -2
- tesla_cli-4.9.0/ui/src/pages/Order.tsx +373 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/pages/Settings.tsx +264 -6
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/pages/Vehicle.tsx +18 -15
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/pages/vehicle/ScheduleContent.tsx +56 -18
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/theme/variables.css +26 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/vite.config.ts +1 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/uv.lock +2 -1467
- tesla_cli-4.8.0/src/tesla_cli/api/routes/charge.py +0 -178
- tesla_cli-4.8.0/src/tesla_cli/api/routes/notify.py +0 -86
- tesla_cli-4.8.0/src/tesla_cli/api/routes/order.py +0 -25
- tesla_cli-4.8.0/ui/src/App.tsx +0 -119
- tesla_cli-4.8.0/ui/src/components/RecentCharges.tsx +0 -64
- tesla_cli-4.8.0/ui/src/pages/Dossier.tsx +0 -350
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/.dockerignore +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/.env.example +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/.github/workflows/ci.yml +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/.github/workflows/publish.yml +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/.python-version +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/CONTRIBUTING.md +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/Dockerfile +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/Formula/tesla-cli.rb +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/LICENSE +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/Makefile +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/README.md +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/SECURITY.md +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/docker-compose.full.yml +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/docker-compose.yml +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/docs/api-reference.md +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/docs/architecture.md +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/docs/configuration.md +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/docs/data-sources.md +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/docs/research/competitive-analysis.md +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/docs/user-guide.md +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/docs/why-tesla-cli.md +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/.claude-plugin/marketplace.json +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/.claude-plugin/plugin.json +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/.gitignore +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/CHANGELOG.md +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/CLAUDE.md +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/LICENSE +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/README.md +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/bin/tesla-check +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/docs/design.md +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/skills/analytics/SKILL.md +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/skills/automations/SKILL.md +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/skills/dossier/SKILL.md +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/skills/serve/SKILL.md +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/skills/setup/SKILL.md +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/skills/telemetry/SKILL.md +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/skills/tesla-context/SKILL.md +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/__main__.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/api/__init__.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/api/auth.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/api/routes/__init__.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/api/routes/auth.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/api/routes/climate.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/api/routes/colombia.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/api/routes/dossier.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/api/routes/geofence.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/api/routes/security.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/api/routes/sources.py +0 -0
- {tesla_cli-4.8.0/ui/public → tesla_cli-4.9.0/src/tesla_cli/api/ui_dist}/favicon.png +0 -0
- {tesla_cli-4.8.0/ui/public → tesla_cli-4.9.0/src/tesla_cli/api/ui_dist}/manifest.json +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/__init__.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/__init__.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/abrp.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/config_cmd.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/dossier.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/energy.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/geofence.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/ha.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/media.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/mqtt_cmd.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/notify.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/order.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/providers_cmd.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/scenes.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/setup.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/telemetry.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/teslaMate.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/i18n.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/output.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/__init__.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/auth/__init__.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/auth/browser_login.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/auth/encryption.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/auth/oauth.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/auth/portal_scrape.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/auth/tessie.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/auth/tokens.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/backends/__init__.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/backends/base.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/backends/dossier.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/backends/energy.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/backends/fleet_signed.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/backends/fleet_telemetry.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/backends/http.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/backends/order.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/backends/owner.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/backends/runt.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/backends/simit.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/backends/tessie.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/exceptions.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/models/__init__.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/models/charge.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/models/climate.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/models/dossier.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/models/drive.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/models/energy.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/models/order.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/models/vehicle.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/providers/__init__.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/providers/base.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/providers/impl/__init__.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/providers/impl/abrp.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/providers/impl/apprise_notify.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/providers/impl/ble.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/providers/impl/ha.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/providers/impl/mqtt.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/providers/impl/teslaMate.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/providers/impl/vehicle_api.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/providers/loader.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/providers/registry.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/endpoints.json +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/infra/__init__.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/infra/fleet_telemetry_stack.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/infra/teslamate_stack.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/py.typed +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tesla-config-backup.json +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/__init__.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/conftest.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_auth.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_browser_login.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_commands.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_models.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_order_backend.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_pipeline.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_providers.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_providers_new.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_runt.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_runt_integration.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_server.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_simit.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_simit_integration.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_teslamate_stack.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_v260.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_v270.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_v280.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_v290.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_v300.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_v310.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_v320.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_v330.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_v340.py +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/.browserslistrc +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/.gitignore +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/cypress/e2e/test.cy.ts +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/cypress/fixtures/example.json +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/cypress/support/commands.ts +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/cypress/support/e2e.ts +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/cypress.config.ts +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/eslint.config.js +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/index.html +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/ionic.config.json +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/ionic.starter.json +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/package-lock.json +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/package.json +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/App.test.tsx +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/CommandButton.tsx +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/ExploreContainer.css +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/ExploreContainer.tsx +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/SeatHeaterGrid.tsx +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/StatusBadge.tsx +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/dossier/CollapsibleSection.tsx +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/dossier/LogisticsCard.tsx +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/dossier/OptionCodesPills.tsx +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/dossier/RuntCard.tsx +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/dossier/SimitCard.tsx +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/dossier/SpecsGrid.tsx +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/dossier/StatusPipeline.tsx +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/icons/Icons.tsx +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/icons/Spinner.tsx +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/hooks/useDossierData.ts +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/main.tsx +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/pages/Home.css +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/pages/vehicle/ChargeContent.tsx +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/pages/vehicle/ClimateContent.tsx +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/pages/vehicle/ControlsContent.tsx +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/setupTests.ts +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/vite-env.d.ts +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/tsconfig.json +0 -0
- {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/tsconfig.node.json +0 -0
|
@@ -5,6 +5,44 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [4.9.0] - 2026-04-06
|
|
9
|
+
|
|
10
|
+
### Dashboard
|
|
11
|
+
- **Dedicated Order page** with 15-step financing/delivery tracker
|
|
12
|
+
- **Energy page** — Powerwall controls, city tariff comparison, cost calculator
|
|
13
|
+
- **Automations page** — CRUD rules, quick setup, test/toggle/delete
|
|
14
|
+
- **Notification history** timeline in Settings
|
|
15
|
+
- **Offline mode** — cached vehicle data when server is down
|
|
16
|
+
- **Mobile responsive** — CSS breakpoints for phones/tablets
|
|
17
|
+
- **Scene cards** on dashboard (Morning/Goodnight/Trip)
|
|
18
|
+
- **Code-split routes** — lazy-loaded pages for faster initial load
|
|
19
|
+
|
|
20
|
+
### API (30+ new endpoints)
|
|
21
|
+
- Energy management: sites, status, backup, mode, storm
|
|
22
|
+
- Automations: CRUD, enable/disable, test, status
|
|
23
|
+
- Charge scheduling + analytics: sessions, cost, forecast
|
|
24
|
+
- Service: history, appointments, reminders
|
|
25
|
+
- Scenes: list + execute
|
|
26
|
+
- ABRP, BLE, MQTT, Dashcam endpoints
|
|
27
|
+
- Energy tariffs: by city/estrato + vehicle location
|
|
28
|
+
- 429 rate-limit retry with Retry-After
|
|
29
|
+
|
|
30
|
+
### CLI
|
|
31
|
+
- BLE key management (enroll, list, remove, state reads)
|
|
32
|
+
- Safety Score + Service scheduling (first-mover)
|
|
33
|
+
- EV vs gas savings calculator
|
|
34
|
+
- Location-based charge/precondition schedules
|
|
35
|
+
- Country-aware sources (9 countries, 35+ sources)
|
|
36
|
+
- Dashcam processing (list/process/export)
|
|
37
|
+
- Webhook automations (IFTTT/HomeKit/Google Home)
|
|
38
|
+
- Energy tariffs command
|
|
39
|
+
|
|
40
|
+
### Quality
|
|
41
|
+
- 17 UI bugs fixed (critical crashes, color errors, missing guards)
|
|
42
|
+
- Error boundary + React.Suspense on all lazy routes
|
|
43
|
+
- Flaky test fixed permanently
|
|
44
|
+
- 1682 tests passing
|
|
45
|
+
|
|
8
46
|
## [4.8.0] - 2026-04-05
|
|
9
47
|
|
|
10
48
|
### New Features
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
Full-stack Tesla management platform: CLI (Typer) + REST API (FastAPI) + Web Dashboard (React/Ionic). Tracks orders, controls vehicles, aggregates data from 15+ sources, integrates with TeslaMate/MQTT/HA/ABRP.
|
|
6
6
|
|
|
7
|
-
**Version**: v4.
|
|
7
|
+
**Version**: v4.9.0 | **Python**: 3.12+ | **Package manager**: uv | **Tests**: 1682
|
|
8
8
|
|
|
9
9
|
## Architecture (quick reference)
|
|
10
10
|
|
|
@@ -16,7 +16,7 @@ src/tesla_cli/
|
|
|
16
16
|
│ ├── models/ # Pydantic data models
|
|
17
17
|
│ ├── providers/ # 7 providers across 4 layers (BLE → VehicleAPI → TeslaMate → ABRP/HA/MQTT/Apprise)
|
|
18
18
|
│ └── sources.py # 15 registered data sources with TTL cache
|
|
19
|
-
├── cli/commands/ #
|
|
19
|
+
├── cli/commands/ # 25 Typer command groups (175+ commands)
|
|
20
20
|
├── api/ # FastAPI REST API + SSE stream + Prometheus
|
|
21
21
|
└── infra/ # Docker Compose lifecycle (TeslaMate stack)
|
|
22
22
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tesla-cli
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.9.0
|
|
4
4
|
Summary: CLI tool for Tesla order tracking and vehicle control
|
|
5
5
|
Project-URL: Homepage, https://github.com/dacrypt/tesla
|
|
6
6
|
Project-URL: Repository, https://github.com/dacrypt/tesla
|
|
@@ -35,10 +35,6 @@ Requires-Dist: pytest>=8; extra == 'dev'
|
|
|
35
35
|
Requires-Dist: ruff>=0.9; extra == 'dev'
|
|
36
36
|
Provides-Extra: fleet
|
|
37
37
|
Requires-Dist: tesla-fleet-api>=1.0; extra == 'fleet'
|
|
38
|
-
Provides-Extra: ocr
|
|
39
|
-
Requires-Dist: easyocr>=1.7; extra == 'ocr'
|
|
40
|
-
Requires-Dist: paddleocr>=3.0; extra == 'ocr'
|
|
41
|
-
Requires-Dist: paddlepaddle>=3.0; extra == 'ocr'
|
|
42
38
|
Provides-Extra: pdf
|
|
43
39
|
Requires-Dist: fpdf2>=2.7; extra == 'pdf'
|
|
44
40
|
Provides-Extra: query
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
cd /Users/david/dev/dacrypt/tesla
|
|
4
|
+
|
|
5
|
+
if [ -x .venv/bin/python3 ]; then
|
|
6
|
+
PY=.venv/bin/python3
|
|
7
|
+
else
|
|
8
|
+
PY=python3
|
|
9
|
+
fi
|
|
10
|
+
|
|
11
|
+
rm -f history/last-changes.json history/pending-alert.txt
|
|
12
|
+
|
|
13
|
+
"$PY" refresh-mission-control.py
|
|
14
|
+
CHANGE_OUTPUT=$("$PY" change-detector.py 2>&1 || true)
|
|
15
|
+
echo "$CHANGE_OUTPUT"
|
|
16
|
+
bash build-activity-log.sh
|
|
17
|
+
|
|
18
|
+
if echo "$CHANGE_OUTPUT" | grep -q "✅ No changes detected"; then
|
|
19
|
+
echo "NO_CHANGES"
|
|
20
|
+
exit 0
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
if [ -f history/last-changes.json ]; then
|
|
24
|
+
python3 - <<'PY'
|
|
25
|
+
import json
|
|
26
|
+
from pathlib import Path
|
|
27
|
+
p = Path('history/last-changes.json')
|
|
28
|
+
if not p.exists():
|
|
29
|
+
print('NO_CHANGES')
|
|
30
|
+
raise SystemExit(0)
|
|
31
|
+
obj = json.loads(p.read_text())
|
|
32
|
+
if obj.get('has_changes'):
|
|
33
|
+
print(obj.get('alert','').strip())
|
|
34
|
+
else:
|
|
35
|
+
print('NO_CHANGES')
|
|
36
|
+
PY
|
|
37
|
+
else
|
|
38
|
+
echo "NO_CHANGES"
|
|
39
|
+
fi
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
## Current State (v4.8.0)
|
|
9
9
|
|
|
10
|
-
175+ commands across
|
|
10
|
+
175+ commands across 25 groups, 1679 tests, 83 API endpoints, 27 Prometheus gauges, React dashboard with live map + Recharts analytics, 7 providers, managed TeslaMate + Fleet Telemetry stacks, 15 data sources, 6 i18n languages, 17 --oneline commands, Claude Code plugin (11 skills), automation engine, Powerwall/Solar support.
|
|
11
11
|
|
|
12
12
|
---
|
|
13
13
|
|
|
@@ -37,63 +37,28 @@
|
|
|
37
37
|
|
|
38
38
|
## Remaining Gaps
|
|
39
39
|
|
|
40
|
-
### P1 — High Priority
|
|
41
|
-
|
|
42
|
-
#### 1. Vehicle Command Protocol (Signed Commands)
|
|
43
|
-
Required for 2024.26+ firmware vehicles that reject unsigned Fleet API commands.
|
|
44
|
-
- Key enrollment workflow (`tesla ble enroll`)
|
|
45
|
-
- End-to-end signed command dispatch
|
|
46
|
-
- NFC key pairing
|
|
47
|
-
- Alternative: `tesla-http-proxy` auto-signing
|
|
48
|
-
- **Blocker**: Without this, vehicle control fails on new firmware
|
|
49
|
-
|
|
50
|
-
#### 2. Fleet Telemetry Integration
|
|
51
|
-
Real-time WebSocket streaming eliminates polling (no vampire drain from API calls).
|
|
52
|
-
- Requires: FQDN, TLS cert, fleet-telemetry Go server
|
|
53
|
-
- Alternative: Teslemetry.com as hosted proxy (no infra needed)
|
|
54
|
-
- Sub-second data for location, energy monitoring
|
|
55
|
-
- **Value**: Only way to achieve zero vampire drain while logging
|
|
56
|
-
|
|
57
|
-
### P2 — Medium Priority
|
|
58
|
-
|
|
59
|
-
#### 3. Portal Document Download
|
|
60
|
-
- 7 documents available at `/teslaaccount/order/{RN}/documents/{id}`
|
|
61
|
-
- Requires authenticated browser session (patchright/playwright)
|
|
62
|
-
- Archive MVPA, invoice, registration docs locally
|
|
63
|
-
- `tesla order documents` — list and download
|
|
64
|
-
|
|
65
|
-
#### 4. Supercharging Invoice Tracking
|
|
66
|
-
- Tessie `/charging_invoices` provides this
|
|
67
|
-
- Fleet API may add this in future
|
|
68
|
-
- `tesla charge invoices` — expense tracking and tax documentation
|
|
69
|
-
|
|
70
|
-
#### 5. Drive Path Recording
|
|
71
|
-
- Tessie `driving_path` gives GPS traces per drive
|
|
72
|
-
- TeslaMate already stores GPS data in PostgreSQL
|
|
73
|
-
- `tesla teslaMate drive-path <trip_id>` — export GPX/GeoJSON
|
|
74
|
-
- Enables: heatmaps, route replay, geo-analysis
|
|
75
|
-
|
|
76
|
-
#### 6. Advanced Automation Engine
|
|
77
|
-
Only Tessie has this — major differentiator.
|
|
78
|
-
- Build on `--on-change-exec` with config-based rules
|
|
79
|
-
- `tesla automations add` — YAML rule definitions
|
|
80
|
-
- Triggers: battery_below, sentry_event, location_enter/exit, charging_complete, time_of_day
|
|
81
|
-
- Actions: notify, exec, climate-on, lock, charge-limit
|
|
82
|
-
- Daemon: `tesla automations run` — watches vehicle state and fires rules
|
|
83
|
-
|
|
84
40
|
### P3 — Lower Priority
|
|
85
41
|
|
|
86
|
-
####
|
|
87
|
-
|
|
88
|
-
- `tesla
|
|
42
|
+
#### 1. Dashcam Video Processing
|
|
43
|
+
- Wrap `tesla_dashcam` for clip download and processing
|
|
44
|
+
- `tesla vehicle dashcam-export` — pull clips from USB drive
|
|
45
|
+
|
|
46
|
+
#### 2. Fleet Battery Benchmarking
|
|
47
|
+
- Community opt-in degradation dataset
|
|
48
|
+
- Compare your pack against fleet percentile by age/mileage
|
|
49
|
+
|
|
50
|
+
#### 3. TezLab Data Import
|
|
51
|
+
- Import historical data from TezLab app export
|
|
52
|
+
- Migration path for users switching from TezLab
|
|
89
53
|
|
|
90
|
-
####
|
|
91
|
-
-
|
|
92
|
-
-
|
|
54
|
+
#### 4. Smart Home Integrations
|
|
55
|
+
- HomeKit via HomeBridge plugin
|
|
56
|
+
- Google Home / IFTTT webhooks
|
|
57
|
+
- Alexa skill for voice control
|
|
93
58
|
|
|
94
|
-
####
|
|
95
|
-
-
|
|
96
|
-
-
|
|
59
|
+
#### 5. Customizable Dashboard Tiles
|
|
60
|
+
- User-configurable widget layout in React dashboard
|
|
61
|
+
- Drag-and-drop tile ordering, show/hide per preference
|
|
97
62
|
|
|
98
63
|
---
|
|
99
64
|
|
|
@@ -127,4 +92,9 @@ Full 20-tool competitive analysis: [research/competitive-analysis.md](research/c
|
|
|
127
92
|
| Supercharging invoices | ✅ | Tessie |
|
|
128
93
|
| Portal document download | ✅ | TOST |
|
|
129
94
|
| Drive path GPX/GeoJSON export | ✅ | TeslaMate |
|
|
130
|
-
|
|
|
95
|
+
| BLE key management (enroll, list, remove, state reads) | ✅ | tesla-control |
|
|
96
|
+
| Safety Score (Insurance telematics) | ✅ | -- (first-mover) |
|
|
97
|
+
| Service scheduling (history, appointments, reminders) | ✅ | -- (first-mover) |
|
|
98
|
+
| Location-based charging/precondition schedules | ✅ | tesla-control |
|
|
99
|
+
| EV vs gas savings calculator | ✅ | Stats for Tesla |
|
|
100
|
+
| Powerwall / Solar | ✅ | TeslaMate, TeslaFi |
|
|
@@ -61,6 +61,14 @@ tesla charge limit # show current limit
|
|
|
61
61
|
tesla charge amps # show current amperage
|
|
62
62
|
```
|
|
63
63
|
|
|
64
|
+
## Charging Budget
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
tesla charge budget # show current month vs budget
|
|
68
|
+
tesla charge budget --set 200 # set $200/month limit
|
|
69
|
+
tesla charge savings # EV vs gas savings calculator
|
|
70
|
+
```
|
|
71
|
+
|
|
64
72
|
## Supercharging Invoices
|
|
65
73
|
|
|
66
74
|
```bash
|
|
@@ -75,6 +75,14 @@ tesla vehicle speed-limit --on 90 # set speed limit
|
|
|
75
75
|
tesla vehicle speed-limit --off
|
|
76
76
|
```
|
|
77
77
|
|
|
78
|
+
## Dashcam
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
tesla dashcam list /Volumes/TESLADRIVE # list clips
|
|
82
|
+
tesla dashcam process ./clips -o out.mp4 # merge clips
|
|
83
|
+
tesla dashcam export ./clips # copy from USB
|
|
84
|
+
```
|
|
85
|
+
|
|
78
86
|
## Media & Navigation
|
|
79
87
|
|
|
80
88
|
```bash
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: energy
|
|
3
|
+
description: >
|
|
4
|
+
Tesla energy management — Powerwall status, Solar production, electricity
|
|
5
|
+
tariffs by city, backup reserve, operation mode, storm watch.
|
|
6
|
+
argument-hint: "[query: status|tariffs|backup|mode|storm|savings]"
|
|
7
|
+
allowed-tools: Bash(tesla *)
|
|
8
|
+
level: 2
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Tesla Energy Management
|
|
12
|
+
|
|
13
|
+
Monitor and control Powerwall, solar production, and electricity tariffs.
|
|
14
|
+
|
|
15
|
+
## Powerwall Status
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
tesla energy status # Powerwall charge %, solar W, grid W, home W
|
|
19
|
+
tesla energy status --oneline # compact: 🔋 82% | ☀️ 3.2kW solar | 🏠 1.1kW home
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Tariffs by City
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
tesla data energia --ciudad bogota --estrato 4 # tariff for Bogotá estrato 4
|
|
26
|
+
tesla data energia --ciudad medellin --estrato 3 # Medellín estrato 3
|
|
27
|
+
tesla data energia # use vehicle location automatically
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Shows COP/kWh rate, tier breakdown, and estimated monthly cost.
|
|
31
|
+
|
|
32
|
+
## Backup Reserve
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
tesla energy backup # show current backup reserve %
|
|
36
|
+
tesla energy backup 30 # set backup reserve to 30%
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Operation Mode
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
tesla energy mode # show current mode
|
|
43
|
+
tesla energy mode self_consumption # maximize solar self-consumption
|
|
44
|
+
tesla energy mode autonomous # Time-Based Control (TOU)
|
|
45
|
+
tesla energy mode backup # full backup mode
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Storm Watch
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
tesla energy storm --on # enable Storm Watch (charge to 100%)
|
|
52
|
+
tesla energy storm --off # disable Storm Watch
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Savings Calculator
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
tesla charge savings # EV vs gas savings summary
|
|
59
|
+
tesla charge savings --months 6 # last 6 months comparison
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Response Guidelines
|
|
63
|
+
|
|
64
|
+
- If the CLI is not configured, **stop and tell the user to run `/tesla:setup`** — never auto-configure
|
|
65
|
+
- Start with Powerwall % and current solar/grid/home power flows
|
|
66
|
+
- For tariff queries: show rate in COP/kWh and compare to grid cost
|
|
67
|
+
- For backup/mode changes: confirm the new setting after applying
|
|
68
|
+
- For `$ARGUMENTS`:
|
|
69
|
+
- "status" / no args → `tesla energy status`
|
|
70
|
+
- "tariffs" / "precio" / "estrato" → `tesla data energia`
|
|
71
|
+
- "backup" → `tesla energy backup`
|
|
72
|
+
- "mode" / "modo" → `tesla energy mode`
|
|
73
|
+
- "storm" → `tesla energy storm`
|
|
74
|
+
- "savings" / "ahorro" → `tesla charge savings`
|
|
@@ -25,7 +25,7 @@ tesla order delivery # delivery appointment (date, time, location)
|
|
|
25
25
|
|
|
26
26
|
```bash
|
|
27
27
|
tesla order eta # delivery ETA (best/typical/worst estimates)
|
|
28
|
-
tesla order gates #
|
|
28
|
+
tesla order gates # 15-step financing/delivery journey tracker (gates 1–15)
|
|
29
29
|
tesla order estimate # community-based delivery date estimation
|
|
30
30
|
tesla order stores # nearby Tesla stores/Service Centers
|
|
31
31
|
tesla order stores --near 4.6,-74.1 # stores near coordinates
|
|
@@ -73,7 +73,7 @@ tesla order documents --download # download all to ~/.tesla-cli/documents/
|
|
|
73
73
|
|
|
74
74
|
- If the CLI is not configured, **stop and tell the user to run `/tesla:setup`** — never auto-configure
|
|
75
75
|
- Start with the **current order status** and **delivery date** if available
|
|
76
|
-
- Show the gate progress (which of
|
|
76
|
+
- Show the gate progress (which of the 15 financing/delivery steps have been passed)
|
|
77
77
|
- If the car hasn't been delivered yet, include ETA estimates
|
|
78
78
|
- If delivery is upcoming, suggest the checklist
|
|
79
79
|
- For `$ARGUMENTS`:
|
|
@@ -64,6 +64,13 @@ tesla vehicle tires # TPMS pressure readings
|
|
|
64
64
|
tesla vehicle alerts # recent fault codes
|
|
65
65
|
```
|
|
66
66
|
|
|
67
|
+
## Fleet Status
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
tesla vehicle fleet-status # all vehicles at a glance
|
|
71
|
+
tesla security lock --all # lock all vehicles
|
|
72
|
+
```
|
|
73
|
+
|
|
67
74
|
## Pre-delivery Fallback
|
|
68
75
|
|
|
69
76
|
If vehicle commands fail with HTTP 412, `ConfigurationError`, or `AuthenticationError`, the car may not be delivered yet. You MUST run ALL of these commands in order:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "tesla-cli"
|
|
3
|
-
version = "4.
|
|
3
|
+
version = "4.9.0"
|
|
4
4
|
description = "CLI tool for Tesla order tracking and vehicle control"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = { text = "MIT" }
|
|
@@ -36,7 +36,6 @@ teslaMate = ["psycopg2-binary>=2.9"]
|
|
|
36
36
|
pdf = ["fpdf2>=2.7"]
|
|
37
37
|
serve = ["fastapi>=0.110", "uvicorn[standard]>=0.29"]
|
|
38
38
|
query = ["openquery"]
|
|
39
|
-
ocr = ["paddlepaddle>=3.0", "paddleocr>=3.0", "easyocr>=1.7"]
|
|
40
39
|
dev = ["pytest>=8", "pytest-httpx>=0.35", "ruff>=0.9"]
|
|
41
40
|
|
|
42
41
|
[project.scripts]
|