private async Task <bool> ShouldLightBeSwitchedOn() { var laptopEthernet = await connector.LoadEntityFromStates <Sensor>(Sensor.Name.LaptopEthernet.GetEntityId()); var businessLaptop = await connector.LoadEntityFromStates <Sensor>(Sensor.Name.BusinessLaptopWifi.GetEntityId()); var computer = await connector.LoadEntityFromStates <Sensor>(Sensor.Name.DesktopComputer.GetEntityId()); var sunlight = await connector.LoadEntityFromStates <Sensor>(Sensor.Name.Sunlight.GetEntityId()); var minimumLightForLight = await InputNumber.LoadFromEntityId(connector, InputNumber.Name.MinimumLightForLight); if (laptopEthernet.State == "on" || businessLaptop.State == "on" || computer.State == "on") { if (!int.TryParse(sunlight.State, out var result)) { return(false); } var minimumSunState = minimumLightForLight.Value; if (dateTimeHelper.Now.TimeOfDay > new TimeSpan(12, 0, 0)) { minimumSunState = minimumLightForLight.Value - 5; } return(result <= minimumSunState); } return(false); }
public async Task Activated(CancellationToken cancellationToken = default) { var lightsToSwitchOn = await Light.LoadFromEntitiesId(connector, Light.Name.Halogen2, Light.Name.Halogen3); var allLights = await Light.LoadAllLights(connector, Light.Name.Halogen2, Light.Name.Halogen3); var allRgbLights = await RgbLight.LoadAllLights(connector); var allSwitches = await Switch.LoadAllLights(connector); var stairsLight = await InputNumber.LoadFromEntityId(connector, InputNumber.Name.StairsMinimumBrightness); var mediaPlayers = await MediaPlayer.LoadAll(connector); var cover = await Cover.LoadFromEntityId(connector, Cover.Name.Salon); await lightsToSwitchOn.TurnOnAll(); await stairsLight.SetValue(30); await cover.CloseCover(); await mediaPlayers.TurnOffAll(); await allLights.TurnOffAll(); await allRgbLights.TurnOffAll(); await allSwitches.TurnOffAll(); await Task.Delay(TimeSpan.FromSeconds(10), cancellationToken); await allRgbLights.TurnOffAll(); await Task.Delay(TimeSpan.FromMinutes(5), cancellationToken); await lightsToSwitchOn.TurnOffAll(); await stairsLight.SetValue(0); await Task.Delay(TimeSpan.FromSeconds(10), cancellationToken); await allLights.TurnOffAll(); await allRgbLights.TurnOffAll(); await lightsToSwitchOn.TurnOffAll(); await stairsLight.SetValue(0); }
public async Task Activated(CancellationToken cancellationToken = default) { var lightsToSwitchOn = await Light.LoadFromEntitiesId(connector, Light.Name.Halogen2, Light.Name.Halogen3, Light.Name.ExternalLight); var allLights = await Light.LoadAllLights(connector, Light.Name.Halogen2, Light.Name.Halogen3); var allRgbLights = await RgbLight.LoadAllLights(connector); var allSwitches = await Switch.LoadAllLights(connector, Switch.Name.GardenLight); var stairsLight = await InputNumber.LoadFromEntityId(connector, InputNumber.Name.StairsMinimumBrightness); var mediaPlayers = await MediaPlayer.LoadAll(connector); var cover = await Cover.LoadFromEntityId(connector, Cover.Name.Salon); var gardenLight = await Switch.LoadFromEntityId(connector, Switch.Name.GardenLight); await lightsToSwitchOn.TurnOnAll(); await gardenLight.TurnOn(); var sunlight = await connector.LoadEntityFromStates <Sensor>(Sensor.Name.Sunlight.GetEntityId()); if (int.TryParse(sunlight.State, out var result) && result < 4) { await cover.CloseCover(); } await mediaPlayers.TurnOffAll(); await allLights.TurnOffAll(); await allRgbLights.TurnOffAll(); await allSwitches.TurnOffAll(); await stairsLight.SetValue(0); await Task.Delay(TimeSpan.FromMinutes(15), cancellationToken); await lightsToSwitchOn.TurnOffAll(); await gardenLight.TurnOff(); }
public async Task Activated(CancellationToken cancellationToken = default) { var mushroom = await RgbLight.LoadFromEntityId(connector, RgbLight.Name.Mushroom); var tvleds = await RgbLight.LoadFromEntityId(connector, RgbLight.Name.TvLEDs); var stairs = await InputNumber.LoadFromEntityId(connector, InputNumber.Name.StairsMinimumBrightness); var lights = await Light.LoadFromEntitiesId(connector, Light.Name.Halogen1); await tvleds.TurnOnStandardWhite(); await lights.TurnOnAll(); await stairs.SetValueBasedOnTvState(); await mushroom.TurnOnWithRandomColor(); }