diff --git a/TeslaSolarCharger/Server/Services/ChargingService.cs b/TeslaSolarCharger/Server/Services/ChargingService.cs index 351f6e39f..43d60c98c 100644 --- a/TeslaSolarCharger/Server/Services/ChargingService.cs +++ b/TeslaSolarCharger/Server/Services/ChargingService.cs @@ -165,7 +165,9 @@ private async Task CalculateGeofences() .Select(c => new { c.UseFleetTelemetry, c.IncludeTrackingRelevantFields }) .FirstAsync(); - if (fleetTelemetrySettings.UseFleetTelemetry && !fleetTelemetrySettings.IncludeTrackingRelevantFields) + if (fleetTelemetrySettings.UseFleetTelemetry + && !fleetTelemetrySettings.IncludeTrackingRelevantFields + && configurationWrapper.GetVehicleDataFromTesla()) { logger.LogDebug("Car {carId} uses fleet telemetry but does not include tracking relevant fields. Do not calculate geofence", car.Id); car.DistanceToHomeGeofence = null; diff --git a/TeslaSolarCharger/Server/Services/TeslaFleetApiService.cs b/TeslaSolarCharger/Server/Services/TeslaFleetApiService.cs index 0f2cd5066..2b2256e4b 100644 --- a/TeslaSolarCharger/Server/Services/TeslaFleetApiService.cs +++ b/TeslaSolarCharger/Server/Services/TeslaFleetApiService.cs @@ -960,6 +960,16 @@ await errorHandlingService.HandleError(nameof(TeslaFleetApiService), nameof(Send } await errorHandlingService.HandleErrorResolved(issueKeys.FleetApiNotLicensed, car.Vin); + if (fleetApiRequest.RequestUrl == WakeUpRequest.RequestUrl) + { + var lastWakeUp = car.WakeUpCalls.OrderByDescending(c => c).FirstOrDefault(); + if (lastWakeUp != default && lastWakeUp > dateTimeProvider.UtcNow().AddMinutes(-30)) + { + logger.LogDebug("Do not send wake up command as last wake up was at {lastWakeUp}", lastWakeUp); + return null; + } + } + var accessToken = await teslaSolarChargerContext.BackendTokens.SingleOrDefaultAsync(); if (accessToken == default) {