diff --git a/TeslaSolarCharger/Server/ServerValidators/CarBasicConfigurationValidator.cs b/TeslaSolarCharger/Server/ServerValidators/CarBasicConfigurationValidator.cs index e1577e2dc..c1b02c257 100644 --- a/TeslaSolarCharger/Server/ServerValidators/CarBasicConfigurationValidator.cs +++ b/TeslaSolarCharger/Server/ServerValidators/CarBasicConfigurationValidator.cs @@ -58,15 +58,9 @@ public CarBasicConfigurationValidator(IConfigurationWrapper configurationWrapper }); - - RuleFor(x => x.UseFleetTelemetry) .CustomAsync(async (fleetTelemetryEnabled, context, cancellationToken) => { - if (fleetTelemetryEnabled != true) - { - return; - } var tokenState = await tokenHelper.GetFleetApiTokenState(true); if (tokenState != TokenState.UpToDate) { @@ -80,6 +74,10 @@ public CarBasicConfigurationValidator(IConfigurationWrapper configurationWrapper { context.AddFailure("The selected car is not compatible with Fleet Telemetry. Please disable Fleet Telemetry."); } + else if (fleetTelemetryEnabled != true) + { + context.AddFailure("Enabling Fleet Telemetry is required and will be autodisabled if your car does not support it"); + } }); When(x => x.UseBle, () => diff --git a/TeslaSolarCharger/Server/Services/FleetTelemetryWebSocketService.cs b/TeslaSolarCharger/Server/Services/FleetTelemetryWebSocketService.cs index fda3556cd..9dd6496e5 100644 --- a/TeslaSolarCharger/Server/Services/FleetTelemetryWebSocketService.cs +++ b/TeslaSolarCharger/Server/Services/FleetTelemetryWebSocketService.cs @@ -142,6 +142,7 @@ private async Task ConnectToFleetTelemetryApi(string vin, bool includeTrackingRe using var client = new ClientWebSocket(); try { + logger.LogInformation("Connecting Fleet Telemetry for car {vin}.", vin); client.Options.SetRequestHeader("Authorization", $"Bearer {authToken.AccessToken}"); await client.ConnectAsync(new Uri(url), new CancellationTokenSource(_heartbeatsendTimeout).Token).ConfigureAwait(false); var cancellation = new CancellationTokenSource(); diff --git a/TeslaSolarCharger/Server/Services/TeslaFleetApiService.cs b/TeslaSolarCharger/Server/Services/TeslaFleetApiService.cs index 0c0c7e59a..1a711dc0f 100644 --- a/TeslaSolarCharger/Server/Services/TeslaFleetApiService.cs +++ b/TeslaSolarCharger/Server/Services/TeslaFleetApiService.cs @@ -937,15 +937,12 @@ await errorHandlingService.HandleError(nameof(TeslaFleetApiService), nameof(Send } } - if (fleetApiRequest.BleCompatible && (!await backendApiService.IsFleetApiLicensed(car.Vin, true))) + if (fleetApiRequest.RequestUrl != VehicleRequest.RequestUrl && (!await backendApiService.IsFleetApiLicensed(car.Vin, true))) { - if (!car.UseBle) - { - await errorHandlingService.HandleError(nameof(TeslaFleetApiService), nameof(SendCommandToTeslaApi), $"Fleet API not licensed for car {car.Vin}", - "Can not send Fleet API commands to car as Fleet API is not licensed", - issueKeys.FleetApiNotLicensed, car.Vin, null).ConfigureAwait(false); - } - + await errorHandlingService.HandleError(nameof(TeslaFleetApiService), nameof(SendCommandToTeslaApi), $"Fleet API not licensed for car {car.Vin}", + "Can not send Fleet API commands to car as Fleet API is not licensed", + issueKeys.FleetApiNotLicensed, car.Vin, null).ConfigureAwait(false); + logger.LogError("Can not send Fleet API commands to car {vin} as car is not licensed", car.Vin); return null; } diff --git a/TeslaSolarCharger/Shared/Dtos/CarBasicConfiguration.cs b/TeslaSolarCharger/Shared/Dtos/CarBasicConfiguration.cs index c110277d0..e881dc33a 100644 --- a/TeslaSolarCharger/Shared/Dtos/CarBasicConfiguration.cs +++ b/TeslaSolarCharger/Shared/Dtos/CarBasicConfiguration.cs @@ -61,7 +61,6 @@ public CarBasicConfigurationValidator() .WithMessage("MaximumAmpere must be greater than MinimumAmpere."); RuleFor(x => x.UsableEnergy).GreaterThan(5); RuleFor(x => x.ChargingPriority).GreaterThan(0); - RuleFor(x => x.UseFleetTelemetry).Equal(true).WithMessage("Enabling Fleet Telemetry is required and will be autodisabled if your car does not support it."); }); }