private DeviceStatuses GetStatus()
        {
            Console.WriteLine($"[HS1xx ({Id})] - GetStatus");

            var cmd = JsonConvert.SerializeObject(new
            {
                system = new
                {
                    get_sysinfo = new
                    {
                    }
                }
            });

            try
            {
                var resp       = TPLinkSmartPlugHS1xxClient.SendToSmartPlugOrSwitch(IpAddress, cmd, _port);
                var relayState = resp["system"]["get_sysinfo"]["relay_state"].ToString();

                if (string.IsNullOrEmpty(relayState))
                {
                    return(DeviceStatuses.Unknown);
                }

                int i;

                if (int.TryParse(relayState, out i))
                {
                    if (i == 0)
                    {
                        return(DeviceStatuses.Off);
                    }
                    if (i == 1)
                    {
                        return(DeviceStatuses.On);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"[HS1xx ({Id})] - GetStatus Error: {ex.Message}");
                return(DeviceStatuses.Unavailable);
            }

            return(DeviceStatuses.Unknown);
        }
        public override void TurnOff()
        {
            Console.WriteLine($"[HS1xx ({Id})] - TurnOff");

            var cmd = JsonConvert.SerializeObject(new
            {
                system = new
                {
                    set_relay_state = new
                    {
                        state = 0
                    }
                }
            });

            TPLinkSmartPlugHS1xxClient.SendToSmartPlugOrSwitch(IpAddress, cmd, _port);
        }