]> git.basschouten.com Git - openhab-addons.git/commitdiff
[tesla] Adapt calls to new products API endpoint (#16331)
authorKai Kreuzer <kai@openhab.org>
Sat, 27 Jan 2024 19:11:08 +0000 (20:11 +0100)
committerGitHub <noreply@github.com>
Sat, 27 Jan 2024 19:11:08 +0000 (20:11 +0100)
Signed-off-by: Paul Smedley <paul@smedley.id.au>
bundles/org.openhab.binding.tesla/src/main/java/org/openhab/binding/tesla/internal/TeslaBindingConstants.java
bundles/org.openhab.binding.tesla/src/main/java/org/openhab/binding/tesla/internal/handler/TeslaAccountHandler.java
bundles/org.openhab.binding.tesla/src/main/java/org/openhab/binding/tesla/internal/handler/TeslaVehicleHandler.java

index 351fdcd8c941545c3cf68b8fd47b634011b04aab..943e5e0f3390239da2eb84311b63984a3e1fdfb7 100644 (file)
@@ -36,6 +36,7 @@ public class TeslaBindingConstants {
     public static final String URI_OWNERS = "https://owner-api.teslamotors.com";
     public static final String VALETPIN = "valetpin";
     public static final String VEHICLES = "vehicles";
+    public static final String PRODUCTS = "products";
     public static final String VIN = "vin";
 
     // SSO URI constants
index 21267343d5e067cdaa67351419618963e3ab0b51..59e92f8c61cf8538747ed7af25b70ef85b771fe4 100644 (file)
@@ -76,6 +76,7 @@ public class TeslaAccountHandler extends BaseBridgeHandler {
     // REST Client API variables
     private final WebTarget teslaTarget;
     WebTarget vehiclesTarget; // this cannot be marked final as it is used in the runnable
+    WebTarget productsTarget; // this cannot be marked final as it is used in the runnable
     final WebTarget vehicleTarget;
     final WebTarget dataRequestTarget;
     final WebTarget commandTarget;
@@ -107,6 +108,7 @@ public class TeslaAccountHandler extends BaseBridgeHandler {
         this.thingTypeMigrationService = thingTypeMigrationService;
 
         this.vehiclesTarget = teslaTarget.path(API_VERSION).path(VEHICLES);
+        this.productsTarget = teslaTarget.path(API_VERSION).path(PRODUCTS);
         this.vehicleTarget = vehiclesTarget.path(PATH_VEHICLE_ID);
         this.dataRequestTarget = vehicleTarget.path(PATH_DATA_REQUEST).queryParam("endpoints",
                 "location_data;charge_state;climate_state;vehicle_state;gui_settings;vehicle_config");
@@ -211,7 +213,7 @@ public class TeslaAccountHandler extends BaseBridgeHandler {
 
         if (authHeader != null) {
             // get a list of vehicles
-            Response response = vehiclesTarget.request(MediaType.APPLICATION_JSON_TYPE)
+            Response response = productsTarget.request(MediaType.APPLICATION_JSON_TYPE)
                     .header("Authorization", authHeader).get();
 
             logger.debug("Querying the vehicle: Response: {}: {}", response.getStatus(),
@@ -374,7 +376,7 @@ public class TeslaAccountHandler extends BaseBridgeHandler {
 
                 if (authenticationResult.getStatus() == ThingStatus.ONLINE) {
                     // get a list of vehicles
-                    Response response = vehiclesTarget.request(MediaType.APPLICATION_JSON_TYPE)
+                    Response response = productsTarget.request(MediaType.APPLICATION_JSON_TYPE)
                             .header("Authorization", "Bearer " + logonToken.access_token).get();
 
                     if (response != null && response.getStatus() == 200 && response.hasEntity()) {
index 7902f8eeaf05f8654dc8665cfeff64efd6671a01..b4af61a80b250fe1b011f8656ec998004c63ca96 100644 (file)
@@ -791,8 +791,8 @@ public class TeslaVehicleHandler extends BaseThingHandler {
         if (authHeader != null) {
             try {
                 // get a list of vehicles
-                synchronized (account.vehiclesTarget) {
-                    Response response = account.vehiclesTarget.request(MediaType.APPLICATION_JSON_TYPE)
+                synchronized (account.productsTarget) {
+                    Response response = account.productsTarget.request(MediaType.APPLICATION_JSON_TYPE)
                             .header("Authorization", authHeader).get();
 
                     logger.debug("Querying the vehicle, response : {}, {}", response.getStatus(),