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.

Files changed (314) hide show
  1. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/.gitignore +0 -1
  2. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/CHANGELOG.md +38 -0
  3. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/CLAUDE.md +2 -2
  4. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/PKG-INFO +1 -5
  5. tesla_cli-4.9.0/cron-runt-check.sh +39 -0
  6. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/docs/roadmap.md +25 -55
  7. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/skills/charge/SKILL.md +8 -0
  8. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/skills/control/SKILL.md +8 -0
  9. tesla_cli-4.9.0/plugins/claude-code/skills/energy/SKILL.md +74 -0
  10. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/skills/order/SKILL.md +2 -2
  11. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/skills/status/SKILL.md +7 -0
  12. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/pyproject.toml +1 -2
  13. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/__init__.py +1 -1
  14. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/api/app.py +180 -124
  15. tesla_cli-4.9.0/src/tesla_cli/api/routes/abrp.py +73 -0
  16. tesla_cli-4.9.0/src/tesla_cli/api/routes/automations.py +131 -0
  17. tesla_cli-4.9.0/src/tesla_cli/api/routes/ble.py +114 -0
  18. tesla_cli-4.9.0/src/tesla_cli/api/routes/charge.py +360 -0
  19. tesla_cli-4.9.0/src/tesla_cli/api/routes/dashcam.py +102 -0
  20. tesla_cli-4.9.0/src/tesla_cli/api/routes/energy_mgmt.py +119 -0
  21. tesla_cli-4.9.0/src/tesla_cli/api/routes/energy_prices.py +108 -0
  22. tesla_cli-4.9.0/src/tesla_cli/api/routes/fleet.py +74 -0
  23. tesla_cli-4.9.0/src/tesla_cli/api/routes/mqtt.py +85 -0
  24. tesla_cli-4.9.0/src/tesla_cli/api/routes/notify.py +193 -0
  25. tesla_cli-4.9.0/src/tesla_cli/api/routes/order.py +50 -0
  26. tesla_cli-4.9.0/src/tesla_cli/api/routes/scenes.py +218 -0
  27. tesla_cli-4.9.0/src/tesla_cli/api/routes/service.py +127 -0
  28. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/api/routes/teslaMate.py +34 -0
  29. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/api/routes/vehicle.py +57 -0
  30. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Action-Bx3ITOrA.js +1 -0
  31. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Action-legacy-3WvXcEZ2.js +1 -0
  32. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Analytics-buNYOtEj.js +1 -0
  33. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Analytics-legacy-BuePPNnL.js +1 -0
  34. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Automations-4tvMUHNd.js +1 -0
  35. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Automations-legacy-CQbByZ9U.js +1 -0
  36. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/BarChart-C0vhuT9k.js +32 -0
  37. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/BarChart-legacy-D6VWK1UH.js +10 -0
  38. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/ChargeContent-iS7RMYje.js +1 -0
  39. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/ChargeContent-legacy-B-HEhFFx.js +1 -0
  40. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/ClimateContent-legacy-BQrDkZQd.js +1 -0
  41. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/ClimateContent-nHWdn2-B.js +1 -0
  42. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/ControlsContent-BBBfJYQI.js +1 -0
  43. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/ControlsContent-legacy-DtgtKrEG.js +1 -0
  44. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Dossier-CdecB5e7.js +1 -0
  45. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Dossier-legacy-FePjUmKv.js +1 -0
  46. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Energy-C6k2P_bp.js +1 -0
  47. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Energy-legacy-WmNeX_MR.js +1 -0
  48. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Icons-BPrRnLWP.js +1 -0
  49. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Icons-legacy-CacO0o_R.js +1 -0
  50. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Navigation-CuZJEwUU.js +1 -0
  51. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Navigation-legacy-DoiCAHN8.js +1 -0
  52. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Order-legacy-BIct8DQc.js +1 -0
  53. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Order-m0uoum_X.js +1 -0
  54. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/ScheduleContent-BFuYRCdg.js +1 -0
  55. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/ScheduleContent-legacy-C57h_D4F.js +1 -0
  56. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Settings-Bim_v6Qk.js +1 -0
  57. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/Settings-legacy--XOAgFSe.js +1 -0
  58. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/VehicleMap-CFi1lT_-.js +4 -0
  59. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/VehicleMap-a6kZMJSm.css +1 -0
  60. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/VehicleMap-legacy-DvN0TFdZ.js +5 -0
  61. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/index-B-8ZqtaE.css +1 -0
  62. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/index-CYkv-WXf.js +265 -0
  63. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/index-legacy-EzXM-nsI.js +351 -0
  64. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/p-BgwEQWW6-Z0UahNeN.js +3 -0
  65. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/p-BgwEQWW6-legacy-DjxjLUeR.js +5 -0
  66. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/p-CBzELu-H-CyPNfgft.js +3 -0
  67. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/p-CBzELu-H-legacy-BAKv_5SE.js +5 -0
  68. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/p-CU1SSH8_-CNdgjVXB.js +3 -0
  69. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/p-CU1SSH8_-legacy-BvckqPS3.js +5 -0
  70. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/p-CneGxKsZ-legacy-BIucGu0r.js +5 -0
  71. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/p-CneGxKsZ-n-afBYQi.js +3 -0
  72. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/p-Cwv-vmkN-legacy-zbWap398.js +5 -0
  73. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/p-Cwv-vmkN-tjrN1zNk.js +3 -0
  74. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/p-Cz5nLPGT-DMY47GKb.js +3 -0
  75. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/p-Cz5nLPGT-legacy-BOhdpZea.js +5 -0
  76. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/p-D6Ynv7Xh-BRyZz-Or.js +3 -0
  77. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/p-D6Ynv7Xh-legacy-BzZfcKZZ.js +5 -0
  78. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/assets/polyfills-legacy-D1m5vk93.js +1 -0
  79. tesla_cli-4.9.0/src/tesla_cli/api/ui_dist/index.html +37 -0
  80. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/app.py +10 -0
  81. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/automations.py +58 -26
  82. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/ble.py +160 -0
  83. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/charge.py +429 -0
  84. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/climate.py +116 -0
  85. tesla_cli-4.9.0/src/tesla_cli/cli/commands/dashcam.py +255 -0
  86. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/data_cmd.py +257 -0
  87. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/security.py +40 -2
  88. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/serve.py +5 -1
  89. tesla_cli-4.9.0/src/tesla_cli/cli/commands/service.py +398 -0
  90. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/vehicle.py +153 -0
  91. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/automation.py +98 -4
  92. tesla_cli-4.9.0/src/tesla_cli/core/backends/energy_prices.py +169 -0
  93. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/backends/fleet.py +65 -0
  94. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/backends/teslaMate.py +25 -0
  95. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/config.py +3 -0
  96. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/models/automation.py +15 -1
  97. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/sources.py +319 -96
  98. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_api_routes.py +9 -7
  99. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_api_routes_new.py +32 -0
  100. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_new_commands.py +90 -0
  101. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_sources.py +4 -0
  102. tesla_cli-4.9.0/ui/public/favicon.png +0 -0
  103. tesla_cli-4.9.0/ui/public/manifest.json +24 -0
  104. tesla_cli-4.9.0/ui/src/App.tsx +224 -0
  105. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/api/client.ts +269 -9
  106. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/BatteryGauge.tsx +3 -3
  107. tesla_cli-4.9.0/ui/src/components/ErrorBoundary.tsx +31 -0
  108. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/ModelYSilhouette.tsx +1 -1
  109. tesla_cli-4.9.0/ui/src/components/OrderProcessTracker.tsx +473 -0
  110. tesla_cli-4.9.0/ui/src/components/RecentCharges.tsx +57 -0
  111. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/VehicleMap.tsx +34 -8
  112. tesla_cli-4.9.0/ui/src/hooks/useDashboardTiles.ts +89 -0
  113. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/hooks/useVehicleData.ts +41 -2
  114. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/pages/Action.tsx +2 -1
  115. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/pages/Analytics.tsx +219 -23
  116. tesla_cli-4.9.0/ui/src/pages/Automations.tsx +579 -0
  117. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/pages/Dashboard.tsx +241 -72
  118. tesla_cli-4.9.0/ui/src/pages/Dossier.tsx +606 -0
  119. tesla_cli-4.9.0/ui/src/pages/Energy.tsx +455 -0
  120. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/pages/Navigation.tsx +22 -2
  121. tesla_cli-4.9.0/ui/src/pages/Order.tsx +373 -0
  122. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/pages/Settings.tsx +264 -6
  123. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/pages/Vehicle.tsx +18 -15
  124. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/pages/vehicle/ScheduleContent.tsx +56 -18
  125. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/theme/variables.css +26 -0
  126. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/vite.config.ts +1 -0
  127. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/uv.lock +2 -1467
  128. tesla_cli-4.8.0/src/tesla_cli/api/routes/charge.py +0 -178
  129. tesla_cli-4.8.0/src/tesla_cli/api/routes/notify.py +0 -86
  130. tesla_cli-4.8.0/src/tesla_cli/api/routes/order.py +0 -25
  131. tesla_cli-4.8.0/ui/src/App.tsx +0 -119
  132. tesla_cli-4.8.0/ui/src/components/RecentCharges.tsx +0 -64
  133. tesla_cli-4.8.0/ui/src/pages/Dossier.tsx +0 -350
  134. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/.dockerignore +0 -0
  135. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/.env.example +0 -0
  136. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  137. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  138. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/.github/workflows/ci.yml +0 -0
  139. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/.github/workflows/publish.yml +0 -0
  140. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/.python-version +0 -0
  141. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/CONTRIBUTING.md +0 -0
  142. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/Dockerfile +0 -0
  143. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/Formula/tesla-cli.rb +0 -0
  144. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/LICENSE +0 -0
  145. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/Makefile +0 -0
  146. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/README.md +0 -0
  147. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/SECURITY.md +0 -0
  148. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/docker-compose.full.yml +0 -0
  149. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/docker-compose.yml +0 -0
  150. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/docs/api-reference.md +0 -0
  151. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/docs/architecture.md +0 -0
  152. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/docs/configuration.md +0 -0
  153. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/docs/data-sources.md +0 -0
  154. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/docs/research/competitive-analysis.md +0 -0
  155. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/docs/user-guide.md +0 -0
  156. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/docs/why-tesla-cli.md +0 -0
  157. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/.claude-plugin/marketplace.json +0 -0
  158. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/.claude-plugin/plugin.json +0 -0
  159. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/.gitignore +0 -0
  160. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/CHANGELOG.md +0 -0
  161. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/CLAUDE.md +0 -0
  162. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/LICENSE +0 -0
  163. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/README.md +0 -0
  164. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/bin/tesla-check +0 -0
  165. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/docs/design.md +0 -0
  166. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/skills/analytics/SKILL.md +0 -0
  167. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/skills/automations/SKILL.md +0 -0
  168. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/skills/dossier/SKILL.md +0 -0
  169. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/skills/serve/SKILL.md +0 -0
  170. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/skills/setup/SKILL.md +0 -0
  171. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/skills/telemetry/SKILL.md +0 -0
  172. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/plugins/claude-code/skills/tesla-context/SKILL.md +0 -0
  173. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/__main__.py +0 -0
  174. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/api/__init__.py +0 -0
  175. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/api/auth.py +0 -0
  176. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/api/routes/__init__.py +0 -0
  177. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/api/routes/auth.py +0 -0
  178. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/api/routes/climate.py +0 -0
  179. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/api/routes/colombia.py +0 -0
  180. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/api/routes/dossier.py +0 -0
  181. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/api/routes/geofence.py +0 -0
  182. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/api/routes/security.py +0 -0
  183. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/api/routes/sources.py +0 -0
  184. {tesla_cli-4.8.0/ui/public → tesla_cli-4.9.0/src/tesla_cli/api/ui_dist}/favicon.png +0 -0
  185. {tesla_cli-4.8.0/ui/public → tesla_cli-4.9.0/src/tesla_cli/api/ui_dist}/manifest.json +0 -0
  186. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/__init__.py +0 -0
  187. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/__init__.py +0 -0
  188. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/abrp.py +0 -0
  189. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/config_cmd.py +0 -0
  190. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/dossier.py +0 -0
  191. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/energy.py +0 -0
  192. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/geofence.py +0 -0
  193. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/ha.py +0 -0
  194. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/media.py +0 -0
  195. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/mqtt_cmd.py +0 -0
  196. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/notify.py +0 -0
  197. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/order.py +0 -0
  198. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/providers_cmd.py +0 -0
  199. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/scenes.py +0 -0
  200. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/setup.py +0 -0
  201. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/telemetry.py +0 -0
  202. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/commands/teslaMate.py +0 -0
  203. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/i18n.py +0 -0
  204. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/cli/output.py +0 -0
  205. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/__init__.py +0 -0
  206. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/auth/__init__.py +0 -0
  207. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/auth/browser_login.py +0 -0
  208. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/auth/encryption.py +0 -0
  209. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/auth/oauth.py +0 -0
  210. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/auth/portal_scrape.py +0 -0
  211. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/auth/tessie.py +0 -0
  212. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/auth/tokens.py +0 -0
  213. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/backends/__init__.py +0 -0
  214. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/backends/base.py +0 -0
  215. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/backends/dossier.py +0 -0
  216. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/backends/energy.py +0 -0
  217. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/backends/fleet_signed.py +0 -0
  218. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/backends/fleet_telemetry.py +0 -0
  219. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/backends/http.py +0 -0
  220. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/backends/order.py +0 -0
  221. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/backends/owner.py +0 -0
  222. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/backends/runt.py +0 -0
  223. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/backends/simit.py +0 -0
  224. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/backends/tessie.py +0 -0
  225. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/exceptions.py +0 -0
  226. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/models/__init__.py +0 -0
  227. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/models/charge.py +0 -0
  228. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/models/climate.py +0 -0
  229. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/models/dossier.py +0 -0
  230. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/models/drive.py +0 -0
  231. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/models/energy.py +0 -0
  232. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/models/order.py +0 -0
  233. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/models/vehicle.py +0 -0
  234. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/providers/__init__.py +0 -0
  235. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/providers/base.py +0 -0
  236. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/providers/impl/__init__.py +0 -0
  237. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/providers/impl/abrp.py +0 -0
  238. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/providers/impl/apprise_notify.py +0 -0
  239. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/providers/impl/ble.py +0 -0
  240. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/providers/impl/ha.py +0 -0
  241. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/providers/impl/mqtt.py +0 -0
  242. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/providers/impl/teslaMate.py +0 -0
  243. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/providers/impl/vehicle_api.py +0 -0
  244. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/providers/loader.py +0 -0
  245. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/core/providers/registry.py +0 -0
  246. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/endpoints.json +0 -0
  247. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/infra/__init__.py +0 -0
  248. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/infra/fleet_telemetry_stack.py +0 -0
  249. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/infra/teslamate_stack.py +0 -0
  250. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/src/tesla_cli/py.typed +0 -0
  251. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tesla-config-backup.json +0 -0
  252. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/__init__.py +0 -0
  253. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/conftest.py +0 -0
  254. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_auth.py +0 -0
  255. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_browser_login.py +0 -0
  256. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_commands.py +0 -0
  257. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_models.py +0 -0
  258. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_order_backend.py +0 -0
  259. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_pipeline.py +0 -0
  260. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_providers.py +0 -0
  261. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_providers_new.py +0 -0
  262. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_runt.py +0 -0
  263. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_runt_integration.py +0 -0
  264. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_server.py +0 -0
  265. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_simit.py +0 -0
  266. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_simit_integration.py +0 -0
  267. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_teslamate_stack.py +0 -0
  268. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_v260.py +0 -0
  269. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_v270.py +0 -0
  270. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_v280.py +0 -0
  271. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_v290.py +0 -0
  272. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_v300.py +0 -0
  273. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_v310.py +0 -0
  274. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_v320.py +0 -0
  275. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_v330.py +0 -0
  276. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/tests/test_v340.py +0 -0
  277. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/.browserslistrc +0 -0
  278. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/.gitignore +0 -0
  279. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/cypress/e2e/test.cy.ts +0 -0
  280. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/cypress/fixtures/example.json +0 -0
  281. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/cypress/support/commands.ts +0 -0
  282. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/cypress/support/e2e.ts +0 -0
  283. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/cypress.config.ts +0 -0
  284. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/eslint.config.js +0 -0
  285. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/index.html +0 -0
  286. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/ionic.config.json +0 -0
  287. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/ionic.starter.json +0 -0
  288. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/package-lock.json +0 -0
  289. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/package.json +0 -0
  290. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/App.test.tsx +0 -0
  291. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/CommandButton.tsx +0 -0
  292. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/ExploreContainer.css +0 -0
  293. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/ExploreContainer.tsx +0 -0
  294. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/SeatHeaterGrid.tsx +0 -0
  295. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/StatusBadge.tsx +0 -0
  296. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/dossier/CollapsibleSection.tsx +0 -0
  297. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/dossier/LogisticsCard.tsx +0 -0
  298. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/dossier/OptionCodesPills.tsx +0 -0
  299. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/dossier/RuntCard.tsx +0 -0
  300. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/dossier/SimitCard.tsx +0 -0
  301. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/dossier/SpecsGrid.tsx +0 -0
  302. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/dossier/StatusPipeline.tsx +0 -0
  303. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/icons/Icons.tsx +0 -0
  304. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/components/icons/Spinner.tsx +0 -0
  305. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/hooks/useDossierData.ts +0 -0
  306. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/main.tsx +0 -0
  307. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/pages/Home.css +0 -0
  308. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/pages/vehicle/ChargeContent.tsx +0 -0
  309. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/pages/vehicle/ClimateContent.tsx +0 -0
  310. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/pages/vehicle/ControlsContent.tsx +0 -0
  311. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/setupTests.ts +0 -0
  312. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/src/vite-env.d.ts +0 -0
  313. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/tsconfig.json +0 -0
  314. {tesla_cli-4.8.0 → tesla_cli-4.9.0}/ui/tsconfig.node.json +0 -0
@@ -53,7 +53,6 @@ IMPLEMENTATION-PLAN.md
53
53
  ui/node_modules/
54
54
  ui/dist/
55
55
  ui/.vscode/
56
- src/tesla_cli/api/ui_dist/
57
56
 
58
57
  # Test artifacts
59
58
  .coverage
@@ -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.8.0 | **Python**: 3.12+ | **Package manager**: uv | **Tests**: 1527
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/ # 14 Typer command groups (100+ 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.8.0
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 20 groups, 1527 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.
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
- #### 7. Powerwall / Solar Integration
87
- Fleet API energy endpoints exist but require energy product ownership.
88
- - `tesla energy status` — solar production, battery level, grid usage
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
- #### 8. Additional Tessie Data
91
- - `firmware_alerts`, `tire_pressure` history, `weather`, `consumption`
92
- - Low priority — most available via TeslaMate already
54
+ #### 4. Smart Home Integrations
55
+ - HomeKit via HomeBridge plugin
56
+ - Google Home / IFTTT webhooks
57
+ - Alexa skill for voice control
93
58
 
94
- #### 9. TeslaMate/TeslaFi Data Import
95
- - `tesla teslaMate import` from CSV/JSON/TeslaFi export
96
- - For users migrating from other platforms
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
- | Powerwall / Solar | ⏳ Not yet | TeslaMate, TeslaFi |
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 # 13-gate delivery journey tracker
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 13 gates have been passed)
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.8.0"
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]
@@ -1,3 +1,3 @@
1
1
  """Tesla CLI - Order tracking and vehicle control."""
2
2
 
3
- __version__ = "4.0.0"
3
+ __version__ = "4.8.1"