コード例 #1
0
        public static async Task UpdateLightBulbColor(string philipsHueBridgeIPAddress, string philipsHueBridgeUsername, int hue)
        {
            var isBridgeReachable = IsBridgeReachable(philipsHueBridgeIPAddress);

            if (!isBridgeReachable)
            {
                throw new Exception(GetBridgeNotFoundErrorMessage());
            }

            var hueRequest = new LightModel
            {
                On         = true,
                Hue        = hue,
                Saturation = hue >= 0 ? 255 : 0,
                Brightness = 255
            };

            var numberOfLights = await GetNumberOfLights(philipsHueBridgeIPAddress, philipsHueBridgeUsername).ConfigureAwait(false);

            var lightAPIPutList = new List <Task>();

            for (int lightNumber = 1; lightNumber <= numberOfLights; lightNumber++)
            {
                lightAPIPutList.Add(PutObjectToAPI($"http://{philipsHueBridgeIPAddress}/api/{philipsHueBridgeUsername}/lights/{lightNumber}/state", hueRequest));
            }

            await Task.WhenAll(lightAPIPutList).ConfigureAwait(false);
        }
コード例 #2
0
        public async Task UpdateLightBulbColor(string philipsHueBridgeUsername, int hue)
        {
            var isBridgeReachable = await IsBridgeReachable().ConfigureAwait(false);

            if (!isBridgeReachable)
            {
                throw new Exception(GetBridgeNotFoundErrorMessage());
            }

            var hueRequest = new LightModel(true, 255, hue, hue >= 0 ? 255 : 0);

            var numberOfLights = await GetNumberOfLights(philipsHueBridgeUsername).ConfigureAwait(false);

            var lightAPIPutList = new List <Task>();

            for (int lightNumber = 1; lightNumber <= numberOfLights; lightNumber++)
            {
                lightAPIPutList.Add(_philipsHueBridgeApiClient.UpdateLightBulbColor(hueRequest, philipsHueBridgeUsername, lightNumber));
            }

            await Task.WhenAll(lightAPIPutList).ConfigureAwait(false);
        }