#pragma warning disable RCS1213 // Remove unused member declaration.
        private static async Task Test3()
#pragma warning restore RCS1213 // Remove unused member declaration.
        {
            using (var client = new SmartHomeClient())
            {
                client.Start();

                await Task.Delay(1000).ConfigureAwait(false);

                System.Collections.Generic.IEnumerable <IDevice> devices = client
                                                                           .GetDevices();
                Plug bulb = devices.OfType <Plug>().First();

                while (true)
                {
                    Console.Write($"State ({bulb.RelayState}): ");
                    string value = Console.ReadLine();
                    if (string.Equals(value, "exit", StringComparison.CurrentCultureIgnoreCase))
                    {
                        break;
                    }

                    if (bool.TryParse(value, out bool flag))
                    {
                        await bulb.SetRelayStateAsync(flag?SwitchState.On : SwitchState.Off).ConfigureAwait(false);
                    }
                    Console.Clear();
                }

                await bulb.SetRelayStateAsync(SwitchState.Off).ConfigureAwait(false);

                Console.WriteLine("Press any key to exit...");
                Console.Read();
            }
        }
Example #2
0
        public int OnExecute(IConsole console)
        {
            DeviceType[] deviceFilter = null;

            if (Filter != null)
            {
                if (Enum.TryParse(Filter, true, out DeviceType filterType))
                {
                    deviceFilter = new[] { filterType };
                }
            }

            using (var client = new SmartHomeClient(deviceFilter))
            {
                client.DeviceDiscovered += (s, e) =>
                {
                    if (ShowJson)
                    {
                        console.WriteLine(_jsonService.Serialize(e.Device));
                        console.WriteLine();
                    }
                    else
                    {
                        console.WriteLine($"{e.Device.Type,-20}{e.Device.Alias,-20}{e.Device.IPAddress} ");
                    }
                };
                client.DeviceUpdated += (s, e) => Console.WriteLine($"Device updated: {e.Device.Alias}");
                client.Start();

                Console.ReadKey();

                return(0);
            }
        }
        private static void Test()
        {
            using (var client = new SmartHomeClient())
            {
                client.DeviceDiscovered += (s, e) =>
                {
                    //Console.WriteLine($"{DateTime.Now}: {e.Device.DeviceId}");
                    Console.WriteLine(JsonConvert.SerializeObject(e.Device, Formatting.Indented));
                    Console.WriteLine();
                };
                client.Start();

                Console.WriteLine("Press any key to exit...");
                Console.Read();
            }
        }
#pragma warning disable RCS1213 // Remove unused member declaration.
        private static async Task Test2()
#pragma warning restore RCS1213 // Remove unused member declaration.
        {
            using (var client = new SmartHomeClient())
            {
                client.Start();

                await Task.Delay(1000).ConfigureAwait(false);

                System.Collections.Generic.IEnumerable <IDevice> devices = client
                                                                           .GetDevices();
                LightBulb bulb = devices.OfType <LightBulb>().First();

                while (true)
                {
                    Console.Write($"Brightness ({bulb.State.Brightness}): ");
                    string value = Console.ReadLine();
                    if (string.Equals(value, "exit", StringComparison.CurrentCultureIgnoreCase))
                    {
                        break;
                    }

                    await bulb.TransitionStateAsync(new RequestedBulbState()
                    {
                        PowerState = SwitchState.On,
                        Brightness = int.Parse(value)
                    }).ConfigureAwait(false);

                    Console.Clear();
                }

                await bulb.TransitionStateAsync(SwitchState.Off).ConfigureAwait(false);

                Console.WriteLine("Press any key to exit...");
                Console.Read();
            }
        }
#pragma warning disable RCS1213 // Remove unused member declaration.
        private static async Task Main2()
#pragma warning restore RCS1213 // Remove unused member declaration.
        {
            using (var client = new SmartHomeClient())
            {
                client.Start();

                await Task.Delay(1000).ConfigureAwait(false);

                Console.WriteLine("Client initialized.");

                while (true)
                {
                    Console.Write("Command: ");
                    string command = Console.ReadLine();
                    if (command?.ToLower() == "exit")
                    {
                        return;
                    }

                    foreach (Device device in client.GetDevices())
                    {
                        if (device is LightBulb lb)
                        {
                            SwitchState state = string.Equals(command, "x", StringComparison.CurrentCultureIgnoreCase) ? SwitchState.On : SwitchState.Off;

                            await lb.TransitionStateAsync(state).ConfigureAwait(false);

                            LightBulbState state2 = lb.State;

                            Console.WriteLine($"{lb.Alias} ({lb.DeviceId}): {state2.PowerState}");
                        }
                    }
                }
            }
        }
Example #6
0
 internal Plug(SmartHomeClient client) : base(client)
 {
     Type = DeviceType.Plug;
 }
 internal LightBulb(SmartHomeClient client) : base(client)
 {
     Type = DeviceType.LightBulb;
 }