internal static async Task <List <CountDownRule> > RetrieveCountDownRules(this ICountDown device, string ns)
        {
            dynamic result    = await((TPLinkSmartDevice)device).Execute(ns, "get_rules").ConfigureAwait(false);
            string  rule_list = Convert.ToString(result.rule_list);

            return(JsonConvert.DeserializeObject <List <CountDownRule> >(rule_list));
        }
        internal static async Task <CountDownRule> AddCountDownRule(this ICountDown device, string ns, CountDownRule cdr)
        {
            JObject payload = JObject.FromObject(cdr);
            dynamic result  = await((TPLinkSmartDevice)device).Execute(ns, "add_rule", payload).ConfigureAwait(false);

            cdr.Id = (string)result.id;
            return(cdr);
        }
 internal static async Task EditCountDownRule(this ICountDown device, string ns, CountDownRule cdr)
 {
     JObject payload = JObject.FromObject(cdr);
     dynamic result  = await((TPLinkSmartDevice)device).Execute(ns, "edit_rule", payload).ConfigureAwait(false);
 }