From e77534559c7c936b233de93023868a303561c860 Mon Sep 17 00:00:00 2001 From: "Christian P." Date: Sun, 19 Jan 2025 23:57:58 +0100 Subject: [PATCH] missing_key handling --- TeslaLogger/TelemetryParser.cs | 43 +++++++++++++++++++++++++--------- 1 file changed, 32 insertions(+), 11 deletions(-) diff --git a/TeslaLogger/TelemetryParser.cs b/TeslaLogger/TelemetryParser.cs index 619c5cb7a..cfab08dda 100644 --- a/TeslaLogger/TelemetryParser.cs +++ b/TeslaLogger/TelemetryParser.cs @@ -906,27 +906,48 @@ private void handleLoginResponse(dynamic j) { dynamic response = j["Response"]; dynamic updated_vehicles = response["updated_vehicles"]; + if (updated_vehicles == "1") { string cfg = j["Config"]; Log("LoginRespone: OK / Config: " + cfg); + return; } - else + + dynamic skipped_vehicles = response["skipped_vehicles"]; + + if (skipped_vehicles != null) { - Log("LoginRespone ERROR: " + response); - car.CurrentJSON.FatalError = "Telemetry Login Error!!! Check Logfile!"; - car.CurrentJSON.CreateCurrentJSON(); + dynamic missing_key = skipped_vehicles["missing_key"]; - if (response.ToString().Contains("not_found")) + if (missing_key is JArray arrayMissing_key) { - Thread.Sleep(10 * 60 * 1000); - } - else if (response.ToString().Contains("token expired")) - { - Log("Login Error: token expired!"); - car.webhelper.GetToken(); + if (arrayMissing_key?.Count == 1) + { + dynamic mkvin = arrayMissing_key[0]; + if (mkvin?.ToString() == car.Vin) + { + Log("LoginRespone: missing_key"); + car.CurrentJSON.FatalError = "missing_key"; + car.CurrentJSON.CreateCurrentJSON(); + } + } } } + + Log("LoginRespone ERROR: " + response); + car.CurrentJSON.FatalError = "Telemetry Login Error!!! Check Logfile!"; + car.CurrentJSON.CreateCurrentJSON(); + + if (response.ToString().Contains("not_found")) + { + Thread.Sleep(10 * 60 * 1000); + } + else if (response.ToString().Contains("token expired")) + { + Log("Login Error: token expired!"); + car.webhelper.GetToken(); + } } catch (Exception ex) {