tesla-fleet-api 0.9.7__tar.gz → 0.9.9__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. {tesla_fleet_api-0.9.7/tesla_fleet_api.egg-info → tesla_fleet_api-0.9.9}/PKG-INFO +1 -1
  2. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/setup.py +1 -1
  3. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/const.py +1 -1
  4. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/teslafleetapi.py +3 -3
  5. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/vehicle.py +85 -0
  6. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/vehiclespecific.py +54 -0
  7. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9/tesla_fleet_api.egg-info}/PKG-INFO +1 -1
  8. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/LICENSE +0 -0
  9. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/README.md +0 -0
  10. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/setup.cfg +0 -0
  11. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/__init__.py +0 -0
  12. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/charging.py +0 -0
  13. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/energy.py +0 -0
  14. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/energyspecific.py +0 -0
  15. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/exceptions.py +0 -0
  16. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/partner.py +0 -0
  17. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/pb2/__init__.py +0 -0
  18. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/pb2/__init__.pyi +0 -0
  19. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/pb2/car_server_pb2.py +0 -0
  20. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/pb2/car_server_pb2.pyi +0 -0
  21. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/pb2/common_pb2.py +0 -0
  22. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/pb2/common_pb2.pyi +0 -0
  23. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/pb2/errors_pb2.py +0 -0
  24. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/pb2/errors_pb2.pyi +0 -0
  25. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/pb2/keys_pb2.py +0 -0
  26. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/pb2/keys_pb2.pyi +0 -0
  27. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/pb2/managed_charging_pb2.py +0 -0
  28. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/pb2/managed_charging_pb2.pyi +0 -0
  29. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/pb2/signatures_pb2.py +0 -0
  30. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/pb2/signatures_pb2.pyi +0 -0
  31. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/pb2/universal_message_pb2.py +0 -0
  32. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/pb2/universal_message_pb2.pyi +0 -0
  33. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/pb2/vcsec_pb2.py +0 -0
  34. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/pb2/vcsec_pb2.pyi +0 -0
  35. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/pb2/vehicle_pb2.py +0 -0
  36. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/pb2/vehicle_pb2.pyi +0 -0
  37. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/ratecalculator.py +0 -0
  38. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/teslafleetoauth.py +0 -0
  39. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/teslafleetopensource.py +0 -0
  40. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/teslemetry.py +0 -0
  41. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/tessie.py +0 -0
  42. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/user.py +0 -0
  43. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api/vehiclesigned.py +0 -0
  44. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api.egg-info/SOURCES.txt +0 -0
  45. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api.egg-info/dependency_links.txt +0 -0
  46. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api.egg-info/requires.txt +0 -0
  47. {tesla_fleet_api-0.9.7 → tesla_fleet_api-0.9.9}/tesla_fleet_api.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: tesla_fleet_api
3
- Version: 0.9.7
3
+ Version: 0.9.9
4
4
  Summary: Tesla Fleet API library for Python
5
5
  Home-page: https://github.com/Teslemetry/python-tesla-fleet-api
6
6
  Author: Brett Adams
@@ -5,7 +5,7 @@ with open("README.md", "r") as fh:
5
5
 
6
6
  setuptools.setup(
7
7
  name="tesla_fleet_api",
8
- version="0.9.7",
8
+ version="0.9.9",
9
9
  author="Brett Adams",
10
10
  author_email="hello@teslemetry.com",
11
11
  description="Tesla Fleet API library for Python",
@@ -3,7 +3,7 @@
3
3
  from enum import Enum
4
4
  import logging
5
5
 
6
- VERSION = "0.9.7"
6
+ VERSION = "0.9.9"
7
7
  LOGGER = logging.getLogger(__package__)
8
8
  SERVERS = {
9
9
  "na": "https://fleet-api.prd.na.vn.cloud.tesla.com",
@@ -91,15 +91,15 @@ class TeslaFleetApi:
91
91
  method: Method,
92
92
  path: str,
93
93
  params: dict[str, Any] | None = None,
94
- json: dict[str, Any] | None = None,
94
+ json: dict[str, Any] | None = {},
95
95
  ) -> dict[str, Any]:
96
96
  """Send a request to the Tesla Fleet API."""
97
97
 
98
98
  if not self.server:
99
99
  raise ValueError("Server was not set at init. Call find_server() first.")
100
100
 
101
- if method == Method.GET and json is not None:
102
- raise ValueError("GET requests cannot have a body.")
101
+ if method == Method.GET:
102
+ json = None
103
103
 
104
104
  # Call a pre-request hook if provided
105
105
  if self.refresh_hook is not None:
@@ -791,3 +791,88 @@ class Vehicle:
791
791
  return await self._request(
792
792
  Method.DELETE, f"api/1/vehicles/{vehicle_tag}/fleet_telemetry_config"
793
793
  )
794
+
795
+ async def add_charge_schedule(
796
+ self,
797
+ vehicle_tag: str | int,
798
+ days_of_week: str,
799
+ enabled: bool,
800
+ lat: float,
801
+ lon: float,
802
+ start_time: int | None = None,
803
+ end_time: int | None = None,
804
+ one_time: bool | None = None,
805
+ id: int | None = None,
806
+
807
+ ) -> dict[str, Any]:
808
+ """Add a schedule for vehicle charging."""
809
+ if not start_time and not end_time:
810
+ raise ValueError("Either start_time or end_time or both must be provided")
811
+ json_payload = {
812
+ "days_of_week": days_of_week,
813
+ "enabled": enabled,
814
+ "end_enabled": end_time is not None,
815
+ "lat": lat,
816
+ "lon": lon,
817
+ "start_enabled": start_time is not None,
818
+ }
819
+ if start_time is not None:
820
+ json_payload["start_time"] = start_time
821
+ if end_time is not None:
822
+ json_payload["end_time"] = end_time
823
+ if id is not None:
824
+ json_payload["id"] = id
825
+ if one_time is not None:
826
+ json_payload["one_time"] = one_time
827
+
828
+ return await self._request(
829
+ Method.POST,
830
+ f"api/1/vehicles/{vehicle_tag}/command/add_charge_schedule",
831
+ json=json_payload,
832
+ )
833
+
834
+ async def add_precondition_schedule(
835
+ self,
836
+ vehicle_tag: str | int,
837
+ days_of_week: str,
838
+ enabled: bool,
839
+ lat: float,
840
+ lon: float,
841
+ precondition_time: int,
842
+ id: int | None = None,
843
+ one_time: bool | None = None,
844
+ ) -> dict[str, Any]:
845
+ """Add or modify a preconditioning schedule."""
846
+ json_payload = {
847
+ "days_of_week": days_of_week,
848
+ "enabled": enabled,
849
+ "lat": lat,
850
+ "lon": lon,
851
+ "precondition_time": precondition_time,
852
+ }
853
+ if id is not None:
854
+ json_payload["id"] = id
855
+ if one_time is not None:
856
+ json_payload["one_time"] = one_time
857
+
858
+ return await self._request(
859
+ Method.POST,
860
+ f"api/1/vehicles/{vehicle_tag}/command/add_precondition_schedule",
861
+ json=json_payload,
862
+ )
863
+
864
+ async def remove_charge_schedule(
865
+ self, vehicle_tag: str | int, id: int
866
+ ) -> dict[str, Any]:
867
+ """Removes the scheduled charging settings."""
868
+ return await self._request(
869
+ Method.POST, f"api/1/vehicles/{vehicle_tag}/command/remove_charge_schedule", json={"id": id}
870
+ )
871
+
872
+ async def remove_precondition_schedule(
873
+ self, vehicle_tag: str | int, id: int
874
+ ) -> dict[str, Any]:
875
+ """Removes the scheduled precondition settings."""
876
+ return await self._request(
877
+ Method.POST, f"api/1/vehicles/{vehicle_tag}/command/remove_precondition_schedule", json={"id": id}
878
+ )
@@ -449,3 +449,57 @@ class VehicleSpecific:
449
449
  async def fleet_telemetry_config_delete(self) -> dict[str, Any]:
450
450
  """Configures fleet telemetry."""
451
451
  return await self._parent.fleet_telemetry_config_delete(self.vin)
452
+
453
+ async def add_charge_schedule(
454
+ self,
455
+ days_of_week: str,
456
+ enabled: bool,
457
+ lat: float,
458
+ lon: float,
459
+ start_time: int | None = None,
460
+ end_time: int | None = None,
461
+ one_time: bool | None = None,
462
+ id: int | None = None,
463
+ ) -> dict[str, Any]:
464
+ """Adds a scheduled charging setting."""
465
+ return await self._parent.add_charge_schedule(
466
+ self.vin,
467
+ days_of_week,
468
+ enabled,
469
+ lat,
470
+ lon,
471
+ start_time,
472
+ end_time,
473
+ one_time,
474
+ id,
475
+ )
476
+
477
+ async def add_precondition_schedule(
478
+ self,
479
+ days_of_week: str,
480
+ enabled: bool,
481
+ lat: float,
482
+ lon: float,
483
+ precondition_time: int,
484
+ id: int | None = None,
485
+ one_time: bool | None = None,
486
+ ) -> dict[str, Any]:
487
+ """Adds a scheduled precondition setting."""
488
+ return await self._parent.add_precondition_schedule(
489
+ self.vin,
490
+ days_of_week,
491
+ enabled,
492
+ lat,
493
+ lon,
494
+ precondition_time,
495
+ id,
496
+ one_time,
497
+ )
498
+
499
+ async def remove_charge_schedule(self, id: int) -> dict[str, Any]:
500
+ """Removes the scheduled charging settings."""
501
+ return await self._parent.remove_charge_schedule(self.vin, id)
502
+
503
+ async def remove_precondition_schedule(self, id: int) -> dict[str, Any]:
504
+ """Removes the scheduled precondition settings."""
505
+ return await self._parent.remove_precondition_schedule(self.vin, id)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: tesla_fleet_api
3
- Version: 0.9.7
3
+ Version: 0.9.9
4
4
  Summary: Tesla Fleet API library for Python
5
5
  Home-page: https://github.com/Teslemetry/python-tesla-fleet-api
6
6
  Author: Brett Adams
File without changes