public async Task Update(BaseEntity oldStateBaseEntity, BaseEntity newStateBaseEntity) { var oldState = InputNumber.CreateBasedOnBaseEntity(oldStateBaseEntity); var newState = InputNumber.CreateBasedOnBaseEntity(newStateBaseEntity); if (oldState.State == "not_home" && newState.State == "home") { logger.LogDebug("{User} came home", newState.EntityId); var sun = await Sun.Load(connector, dateTimeHelper); logger.LogDebug("Sun: {SunNextSettingUtc}, CurrentDate {DateUtc}", sun.NextSettingUtc, dateTimeHelper.UtcNow); if (sun.AfterSunset(TimeSpan.FromMinutes(-30))) { logger.LogInformation("There is after sunset minus 30 mins. Executing external lights"); var externalLight = await Light.LoadFromEntityId(connector, Light.Name.ExternalLight); var gardenLight = await Switch.LoadFromEntityId(connector, Switch.Name.GardenLight); await externalLight.TurnOn(); await gardenLight.TurnOn(); await Task.Delay(TimeSpan.FromMinutes(10)); await externalLight.TurnOff(); if (!Consts.Christmas || dateTimeHelper.UtcNow.TimeOfDay > ChristmasAutomation.SwitchOffOn) { await gardenLight.TurnOff(); } } } }