Ejemplo n.º 1
0
        public async Task SetGroupStateTest()
        {
            IHueRequest request = new SetGroupStateRequest(3, new SetGroupState {
                IsOn = false
            });

            IHueResponse response = await _client.GetResponseAsync(request);

            Assert.True(response is SuccessResponse);
            OnLog(response);
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> SetGroupState([FromBody] SetGroupStateRequest request)
        {
            try
            {
                await lighting.SetGroupStateAsync(request);

                return(StandardResponse());
            }
            catch (Exception exception)
            {
                return(ErrorResponse(exception));
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Modifies the state of all lights in a group.
        /// User created groups will have an ID of 1 or higher; however a special group with an ID of 0 also exists containing all the lamps known by the bridge.
        /// </summary>
        /// <param name="id">Id of the group to Update</param>
        /// <param name="cancellationToken"></param>
        /// <returns>Success</returns>
        public async Task <bool> SetGroupStateAsync(string id, SetGroupStateRequest request, CancellationToken cancellationToken = default(CancellationToken))
        {
            var json           = JsonSerializer.Serialize(request, _jsonSerializerOptions);
            var requestContent = new StringContent(json, Encoding.UTF8, "application/json");
            var response       = await _httpClient.PutAsync($"/api/{_userName}/groups/{id}/action", requestContent, cancellationToken);

            if (response.IsSuccessStatusCode)
            {
                return(true);
            }

            return(false);
        }
Ejemplo n.º 4
0
        public async Task SetGroupStateAsync(SetGroupStateRequest request)
        {
            var client = await GetClientAsync();

            var groups = await FindAllGroupsAsync();

            var lightIds = groups.Where(g => request.GroupIds.Contains(g.Id))
                           .SelectMany(g => g.Lights)
                           .Distinct();

            var command = new LightCommand
            {
                On             = request.PowerState,
                Brightness     = request.Brightness,
                TransitionTime = request.TransitionTime ?? Config.TransitionTime
            };

            await client.SendCommandAsync(command, lightIds);
        }
Ejemplo n.º 5
0
 public GroupStateBuilder()
 {
     GroupState = new SetGroupStateRequest();
 }