From 9ab5bd54fadd8fc9c542b48c99a117a4e182669b Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期四, 14 十月 2021 16:37:56 +0800
Subject: [PATCH] 智能空开能源界面数据更新

---
 HDL_ON/Entity/Function/Function.cs |  865 +++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 744 insertions(+), 121 deletions(-)

diff --git a/HDL_ON/Entity/Function/Function.cs b/HDL_ON/Entity/Function/Function.cs
index 6bf5e6d..64bc159 100644
--- a/HDL_ON/Entity/Function/Function.cs
+++ b/HDL_ON/Entity/Function/Function.cs
@@ -1,4 +1,4 @@
-锘縰sing System;
+using System;
 using System.Collections.Generic;
 using HDL_ON.Common;
 using HDL_ON.DAL.Server;
@@ -126,7 +126,6 @@
         /// <returns>淇敼缁撴灉</returns>
         public bool SetAttrState(string key, object value)
         {
-            //var attrState = status.Find((s) => s.key == key.ToString());
             var attr = attributes.Find((s) => s.key == key);
             if (attr == null)
             {
@@ -140,8 +139,63 @@
             return true;
         }
 
+        /// <summary>
+        /// icon鏂囦欢鍚嶇О
+        /// </summary>
+        public string IconName
+        {
+            get
+            {
+                string iconPath = spk.Replace(".", "");
+                switch (spk)
+                {
+                    case SPK.PanelSocket:
+                        iconPath = "electricalsocket";
+                        break;
+                    case SPK.SenesorMegahealth2:
+                        iconPath = "sensormegahealth";
+                        break;
+                    case SPK.SensorEnvironmentHailin:
+                        iconPath = "sensorenvironment";
+                        break;
+                    case SPK.HvacAirFresh:
+                        iconPath = "airFreshstandard";
+                        break;
+                    case SPK.HvacAirFreshJinmao:
+                        iconPath = "airFreshjinmao";
+                        break;
+                    case SPK.HvacAC:
+                        iconPath = "acstandard";
+                        break;
+                    case SPK.HvacFan:
+                        iconPath = "electricalfan";
+                        break;
+                    case SPK.ElectricTuyaFan2:
+                        iconPath = "electricaltyqborgovyzytytz";
+                        break;
+                    case SPK.ElectricTuyaAirCleaner2:
+                        iconPath = "electricalQ1RsefNf91tIXyyQ";
+                        break;
+                    case SPK.ElectricTuyaWaterValve2:
+                        iconPath = "electricalkoiGhMKwLf2ZP81g";
+                        break;
+                    case SPK.ElectricTuyaWeepRobot2:
+                        iconPath = "electricalai6HtccKFIw3dxo3";
+                        break;
+                    case SPK.AvMusic:
+                        iconPath = "musicstandard";
+                        break;
+
+                }
+                return iconPath;
+            }
+        }
 
 
+        /// <summary>
+        /// 鐗堟湰鏁版嵁鍒楄〃
+        /// </summary>
+        public List<VersionInfo> versions = new List<VersionInfo>();
 
         /// <summary>
         /// 涓婁竴娆℃墦寮�鐨勪寒搴�
@@ -159,7 +213,7 @@
         #endregion
 
 
-        #region base info
+        #region base info    
         public string sid = "0301011234567801012301230123";
         /// <summary>
         /// 澶囨敞
@@ -175,24 +229,87 @@
         /// </summary>
         public string spk = "";
 
-        string spk_Prefix;
+        private string _SpkCategory = string.Empty;
         /// <summary>
-        /// spk鍓嶇紑
-        /// 澶х被
-        /// 鍔熻兘绫诲埆
-        /// 濡傦細绌鸿皟绫汇�佺伅鍏夌被銆佺獥甯樼被
+        /// spk  浜у搧鐨勫搧绫�
         /// </summary>
-        public string Spk_Prefix
+        public string SpkCategory
         {
             get
             {
-                if (string.IsNullOrEmpty(spk_Prefix))
+                if (string.IsNullOrEmpty(_SpkCategory))
                 {
-                    spk_Prefix = spk.Split(".")[0];
+                    var arr = spk.Split(".");
+                    if (arr.Length > 0)
+                    {
+                        _SpkCategory = arr[0];
+                    }
                 }
-                return spk_Prefix;
+                return _SpkCategory;
             }
         }
+
+        private string _SpkClassification = string.Empty;
+        /// <summary>
+        /// spk 浜у搧鍝佺被涓嬬殑鍒嗙被
+        /// </summary>
+        public string SpkClassification
+        {
+            get
+            {
+                if (string.IsNullOrEmpty(_SpkClassification))
+                {
+                    var arr = spk.Split(".");
+                    if (arr.Length > 1)
+                    {
+                        _SpkClassification = arr[1];
+                    }
+                }
+                return _SpkClassification;
+            }
+        }
+
+        string _SpkManufacturer = string.Empty;
+        /// <summary>
+        /// spk 浜у搧鐨勫巶鍟�
+        /// </summary>
+        public string SpkManufacturer
+        {
+            get
+            {
+                if (string.IsNullOrEmpty(_SpkManufacturer))
+                {
+                    var arr = spk.Split(".");
+                    if (arr.Length > 2)
+                    {
+                        _SpkManufacturer = arr[2];
+                    }
+                }
+                return _SpkManufacturer;
+            }
+        }
+
+
+        //string spk_Prefix;
+        ///// <summary>
+        ///// spk鍓嶇紑
+        ///// 澶х被
+        ///// 鍔熻兘绫诲埆
+        ///// 濡傦細绌鸿皟绫汇�佺伅鍏夌被銆佺獥甯樼被
+        ///// </summary>
+        //public string Spk_Prefix
+        //{
+        //    get
+        //    {
+        //        if (string.IsNullOrEmpty(spk_Prefix))
+        //        {
+        //            spk_Prefix = spk.Split(".")[0];
+        //        }
+        //        return spk_Prefix;
+        //    }
+        //}
+
+
         /// <summary>
         /// A鍗忚鍔熻兘鐨勭壒鎬�
         /// 濡傦細鏄疉C鍔熻兘锛氱壒鎬э細on_off,mode,fan,temperature
@@ -268,6 +385,21 @@
                 return _trait_on_off;
             }
         }
+        /// <summary>
+        /// 鍔熻兘鐨勫睘鎬х姸鎬佸垪琛�
+        /// </summary>
+        public List<AttributesStatus> status = new List<AttributesStatus>();
+        /// <summary>
+        /// 閫氳繃鐘舵�佸垪琛ㄧ粍瑁呭睘鎬ч噷闈㈢殑鐘舵��
+        /// </summary>
+        public void AssembleStatus()
+        {
+            foreach (var sta in status)
+            {
+                SetAttrState(sta.key, sta.value);
+            }
+        }
+
 
         /// <summary>
         /// 浣跨敤娆℃暟
@@ -487,6 +619,8 @@
                     case FunctionAttributeKey.SetTemp:
                     case FunctionAttributeKey.FanSpeed:
                     case FunctionAttributeKey.Percent:
+                    case FunctionAttributeKey.CCT:
+                    case FunctionAttributeKey.RGB:
                     //case FunctionAttributeKey.FadeTime:
                         if (attr.curValue.ToString() == "{}")
                         {
@@ -494,7 +628,25 @@
                             {
                                 attr.curValue = "off";
                             }
-                            else
+                            else if (attr.key == FunctionAttributeKey.Mode )
+                            {
+                                if (DB_ResidenceData.Instance.GatewayType == 0)
+                                {
+                                    attr.curValue = "0";
+                                }
+                                else
+                                {
+                                    if (SPK.AcSpkList().Contains(spk))
+                                    {
+                                        attr.curValue = "cool";
+                                    }
+                                    else if (SPK.FhSpkList().Contains(spk))
+                                    {
+                                        attr.curValue = "day";
+                                    }
+                                }
+                            }
+                            else 
                             {
                                 attr.curValue = "0";
                             }
@@ -503,12 +655,17 @@
                         {
                             double vv = 16;
                             Double.TryParse(attr.curValue.ToString(), out vv);
-                            sFunc.status.Add(new SceneFunctionStatus() { key = attr.key, value = Convert.ToInt32(vv).ToString() });
+                            if (vv == 0)
+                            {
+                                vv = 26;
+                            }
+                            sFunc.status.Add(new SceneFunctionStatus() { key = attr.key, value = Convert.ToInt32(vv).ToString(), max = attr.max, min = attr.min });
                         }
                         else
                         {
-                            sFunc.status.Add(new SceneFunctionStatus() { key = attr.key, value = attr.curValue.ToString() });
+                            sFunc.status.Add(new SceneFunctionStatus() { key = attr.key, value = attr.curValue.ToString(), max = attr.max, min = attr.min });
                         }
+
                         break;
                 }
             }
@@ -529,8 +686,6 @@
             var sendDataObj = new AlinkFunctionStatusObj();
             sendDataObj.id = Control.Ins.msg_id.ToString();
             sendDataObj.time_stamp = Utlis.GetTimestamp();
-
-
             var acd = new AlinkStatusData();
             acd.sid = sid;
             foreach (var dic in commandDictionary)
@@ -540,9 +695,7 @@
                 aca.value = dic.Value;
                 acd.status.Add(aca);
             }
-
             sendDataObj.objects.Add(acd);
-
             return sendDataObj;
         }
         /// <summary>
@@ -629,7 +782,7 @@
         public List<AttributesStatus> status = new List<AttributesStatus>();
     }
     /// <summary>
-    /// a鍗忚鎺у埗鍔ㄤ綔鏁版嵁
+    /// 鍔熻兘灞炴�х姸鎬�
     /// </summary>
     public class AttributesStatus
     {
@@ -649,7 +802,7 @@
     /// 鍔熻兘灞炴��
     /// 灞炴�у瓧娈佃В鏋愶細attri :灞炴�у唴瀹癸紝value 灞炴�х殑鍊硷紝max 鏈�澶у�� min 鏈�灏忓��
     /// </summary>
-    [System.Serializable]
+    [Serializable]
     public class FunctionAttributes
     {
         /// <summary>
@@ -681,6 +834,7 @@
         /// </summary>
         public object curValue = new object();
     }
+
     /// <summary>
     /// 鍔熻兘灞炴�ч敭鍚嶅垪琛�
     /// </summary>
@@ -708,6 +862,10 @@
         /// </summary>
         public const string Mode = "mode";
         /// <summary>
+        /// 鎵
+        /// </summary>
+        public const string Swing = "swing";
+        /// <summary>
         /// 宸ヤ綔妯″紡
         /// 鍦扮儹/鍦板喎/鍔熺巼鍦扮儹/鍔熺巼鍦板喎
         /// </summary>
@@ -717,14 +875,28 @@
         /// </summary>
         public const string FanSpeed = "fan";
         /// <summary>
+        /// 鎵嬪姩椋庡悜
+        /// </summary>
+        public const string FanManual = "fan_manual";
+        /// <summary>
+        /// 鑷姩椋庡悜
+        /// </summary>
+        public const string FanAuto = "fan_auto";
+
+        /// <summary>
         /// 璁剧疆娓╁害
         /// </summary>
         public const string SetTemp = "set_temp";
+        /// <summary>
+        /// 娓╁害鍔犲噺
+        /// </summary>
+        public const string SetTempStep = "set_temp_step";
         /// <summary>
         /// 娓╁害妯″紡
         /// 绌鸿皟銆佸湴鐑�//app鑷姞
         /// </summary>
         public const string TempType = "temperature_type";
+
         /// <summary>
         /// 鏃堕棿鏍囪
         /// 鍦扮儹//app鑷姞
@@ -745,15 +917,38 @@
         /// <summary>
         /// 瀹ゅ唴娓╁害
         /// </summary>
-        public const string IndoorTemp = "room_temp";
+        public const string RoomTemp = "room_temp";
         /// <summary>
         /// value
         /// </summary>
         public const string Value = "value";
+
+        public const string Co2 = "co2";
+        public const string Temperature = "temperature";
+        public const string Hcho = "hcho";
+        public const string Humidity = "humidity";
+        public const string Pm25 = "pm25";
+        public const string Tvoc = "tvoc";
         /// <summary>
         /// 鐘舵��,浼犳劅鍣�
         /// </summary>
         public const string Status = "status";
+        /// <summary>
+        /// 鐘舵��(鏈夋棤浜�)
+        /// </summary>
+        public const string PeopleStatus = "people_status";
+        /// <summary>
+        /// 鐘舵��(鎶ヨ)
+        /// </summary>
+        public const string AlarmStatus = "alarm_status";
+        /// <summary>
+        /// 鐘舵��(闂悎銆佹墦寮�)
+        /// </summary>
+        public const string ContactStatus = "contact_status";
+        /// <summary>
+        /// 姣背娉紶鎰熷櫒锛屽姩浣滅姸鎬�
+        /// </summary>
+        public const string ActionStatus = "action_state";
         /// <summary>
         /// 鐢甸噺鐘舵��
         /// </summary>
@@ -815,10 +1010,34 @@
         /// </summary>
         public const string AnionTimeLeft = "anion_time_surplus";
         /// <summary>
-        /// 鎵撳紑鐧昏(椋庢墖)
+        /// 鎵撳紑绛夌骇(椋庢墖)
         /// </summary>
         public const string OpenLevel = "openLevel";
+        /// <summary>
+        /// 绾㈠鎸夐敭
+        /// </summary>
+        public const string Key = "key";
 
+        /// <summary>
+        /// 鑺傝兘
+        /// </summary>
+        public const string Energy = "energy";
+        /// <summary>
+        /// 瀹ゅ唴娓╁害
+        /// </summary>
+        public const string IndoorTemp = "indoor_temp";
+        /// <summary>
+        /// 瀹ゅ唴婀垮害
+        /// </summary>
+        public const string IndoorHumidity = "indoor_humidity";
+        /// <summary>
+        /// 杩囨护缃戝墿浣欓噺
+        /// </summary>
+        public const string FilterRemain = "filter_remain";
+        /// <summary>
+        /// 杩囨护缃戞槸鍚﹁秴鏃惰鍛� 
+        /// </summary>
+        public const string FilterTimeout = "filter_timeout";
 
         #region tuya
         /// <summary>
@@ -826,6 +1045,14 @@
         /// </summary>
         public const string TuyaWaterTime = "countdown_1";
         #endregion
+        /// <summary>
+        /// 鍔熺巼
+        /// </summary>
+        public const string Power = "power";
+        /// <summary>
+        /// 鎬荤數閲�
+        /// </summary>
+        public const string TotalElectricity = "total_electricity";
 
 
     }
@@ -868,7 +1095,13 @@
         {
             get
             {
-                return Convert.ToByte(loopId, 16);
+                try
+                {
+                    return Convert.ToByte(loopId, 16);
+                }catch
+                {
+                    return 0;
+                }
             }
         }
 
@@ -877,6 +1110,10 @@
 
     public static class SPK
     {
+       
+
+
+        #region 鐏厜
         /// <summary>
         /// 锛堝紑鍏崇伅锛�
         /// </summary>
@@ -897,6 +1134,24 @@
         /// 锛圕CT鐏級
         /// </summary>
         public const string LightCCT = "light.cct";
+
+        /// <summary>
+        /// 鐏厜spk鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        public static List<string> LightSpkList()
+        {
+            var spkList = new List<string>();
+            spkList.Add(LightCCT);
+            spkList.Add(LightDimming);
+            spkList.Add(LightRGB);
+            spkList.Add(LightRGBW);
+            spkList.Add(LightSwitch);
+            return spkList;
+        }
+        #endregion
+
+        #region 绐楀笜
         /// <summary>
         /// 锛堝紑鍏崇獥甯橈級
         /// </summary>
@@ -913,6 +1168,23 @@
         /// 锛堝嵎甯橈級
         /// </summary>
         public const string CurtainRoller = "curtain.roller";
+
+        /// <summary>
+        /// 绐楀笜spk鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        public static List<string> CurtainSpkList()
+        {
+            var spkList = new List<string>();
+            spkList.Add(CurtainRoller);
+            spkList.Add(CurtainSwitch);
+            spkList.Add(CurtainShades);
+            spkList.Add(CurtainTrietex);
+            return spkList;
+        }
+        #endregion
+
+        #region 绌鸿皟
         /// <summary>
         /// 锛堢┖璋冿級
         /// </summary>
@@ -922,21 +1194,199 @@
         /// </summary>
         public const string AcIr= "ir.ac";
         /// <summary>
+        /// 绌鸿皟
+        /// </summary>
+        public const string HvacAC = "hvac.ac";
+
+        /// <summary>
+        /// 绌鸿皟spk鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        public static List<string> AcSpkList()
+        {
+            var spkList = new List<string>();
+            spkList.Add(AcStandard);
+            spkList.Add(HvacAC);
+            spkList.Add(AcIr);
+            return spkList;
+        }
+        #endregion
+
+        #region 鍦扮儹
+        /// <summary>
         /// 锛堝湴鐑級
         /// </summary>
         public const string FloorHeatStandard = "floorHeat.standard";
+        /// <summary>
+        /// 鍦版殩
+        /// </summary>
+        public const string HvacFloorHeat = "hvac.floorHeat";
+
+        /// <summary>
+        /// 鍦扮儹spk鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        public static List<string> FhSpkList()
+        {
+            var spkList = new List<string>();
+            spkList.Add(FloorHeatStandard);
+            spkList.Add(HvacFloorHeat);
+            return spkList;
+        }
+        #endregion
+
+        #region 鏂伴
         /// <summary>
         /// 锛堟柊椋庯級
         /// </summary>
         public const string AirFreshStandard = "airFresh.standard";
         /// <summary>
+        /// 鏂伴
+        /// </summary>
+        public const string HvacAirFresh = "hvac.airFresh";
+        /// <summary>
+        /// 鏂伴 鈥斺�旈噾鑼傚畾鍒�
+        /// </summary>
+        public const string AirFreshJinmao = "airFresh.jinmao";
+        /// <summary>
+        /// 鏂伴 鈥斺�旈噾鑼傚畾鍒�
+        /// </summary>
+        public const string HvacAirFreshJinmao = "hvac.airFresh.jinmao";
+
+        /// <summary>
+        /// 鏂伴spk鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        public static List<string> AirFreshSpkList()
+        {
+            var spkList = new List<string>();
+            spkList.Add(AirFreshStandard);
+            spkList.Add(AirFreshJinmao);
+            spkList.Add(HvacAirFresh);
+            spkList.Add(HvacAirFreshJinmao);
+            return spkList;
+        }
+        #endregion
+
+        #region 鑳芥簮
+        /// <summary>
+        /// 鑳芥簮妯″潡
+        /// </summary>
+        public const string EnergyStandard = "energy.standard";
+
+        /// <summary>
+        /// 鑳芥簮-鐢佃兘
+        /// </summary>
+        public const string ElectricEnergy = "energy.electric";
+        /// <summary>
+        /// 鑳芥簮spk鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        public static List<string> EnergySpkList()
+        {
+            var spkList = new List<string>();
+            spkList.Add(ElectricEnergy);
+            return spkList;
+        }
+        #endregion
+
+        #region 闊充箰
+        /// <summary>
         /// 锛堥煶涔愶級
         /// </summary>
         public const string MusicStandard = "music.standard";
         /// <summary>
+        /// 闊充箰
+        /// </summary>
+        public const string AvMusic = "av.music";
+
+        /// <summary>
+        /// 闊充箰spk鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        public static List<string> MusicSpkList()
+        {
+            var spkList = new List<string>();
+            spkList.Add(MusicStandard);
+            spkList.Add(AvMusic);
+            return spkList;
+        }
+        #endregion
+
+        #region 浼犳劅鍣�
+
+        #region 瀹夐槻浼犳劅鍣�
+        /// <summary>
         /// 锛堜寒搴︿紶鎰熷櫒锛�
         /// </summary>
         public const string SensorLight = "sensor.light";
+        /// <summary>
+        /// (绾㈠绉诲姩浼犳劅鍣�)
+        /// </summary>
+        public const string SensorPir = "sensor.pir";
+        /// <summary>
+        /// 锛堥棬绐椾紶鎰熷櫒锛�
+        /// </summary>
+        public const string SensorDoorWindow = "sensor.doorwindow";
+        /// <summary>
+        /// 鐑熼浘浼犳劅鍣�
+        /// </summary>
+        public const string SensorSmoke = "sensor.smoke";
+        /// <summary>
+        /// 姘存蹈浼犳劅鍣�
+        /// </summary>
+        public const string SensorWater = "sensor.water";
+        /// <summary>
+        /// 鐕冩皵浼犳劅鍣�
+        /// </summary>
+        public const string SensorGas = "sensor.gas";
+        /// <summary>
+        /// 绾㈠鐝婃爮浼犳劅鍣�      
+        /// </summary>
+        public const string SensorShanLan = "sensor.shanlan";
+        /// <summary>
+        /// 绾㈠瀵瑰皠浼犳劅鍣�
+        /// </summary>
+        public const string SensorDuiShe = "sensor.duishe";
+        /// <summary>
+        /// 瓒呭0娉紶鎰熷櫒
+        /// </summary>
+        public const string SensorUtrasonic = "sensor.ultrasonic";
+        /// <summary>
+        /// 锛堝共鎺ョ偣锛�
+        /// </summary>
+        public const string SensorDryContact = "sensor.dryContact";
+        public const string SensorDryContact2 = "dryContact.standard";
+        /// <summary>
+        /// 姣背娉紶鎰熷櫒
+        /// </summary>
+        public const string SenesorMegahealth = "sensor.megahealth";
+        public const string SenesorMegahealth2 = "sensor.megahealth.zg";
+        /// <summary>
+        /// 瀹夐槻浼犳劅鍣╯pk鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        public static List<string> ArmSensorSpkList()
+        {
+            var spkList = new List<string>();
+            //spkList.Add(SensorLight);
+            spkList.Add(SensorPir);
+            spkList.Add(SensorDoorWindow);
+            spkList.Add(SensorSmoke);
+            spkList.Add(SensorWater);
+            spkList.Add(SensorGas);
+            //spkList.Add(SensorShanLan);
+            //spkList.Add(SensorDuiShe);
+            //spkList.Add(SensoruUtrasonic);
+            spkList.Add(SensorDryContact);
+            spkList.Add(SensorDryContact2);
+            spkList.Add(SenesorMegahealth);
+            spkList.Add(SenesorMegahealth2);
+            return spkList;
+        }
+        #endregion
+
+        #region 鐜浼犳劅鍣�
         /// <summary>
         /// 锛堟俯搴︿紶鎰熷櫒锛�
         /// </summary>
@@ -957,86 +1407,236 @@
         /// 婀垮害浼犳劅鍣�
         /// </summary>
         public const string SensorHumidity = "sensor.humidity";
+        /// <summary>
+        /// 鐜浼犳劅鍣�
+        /// 鐜妫�娴嬩紶鎰熷櫒
+        /// 鐗规畩绫籹pk
+        /// 璇pk鍔熻兘鏄幆澧冧紶鎰熷櫒鍔熻兘鐨勯泦鎴�
+        /// </summary>
+        public const string SensorEnvironment = "sensor.environment";
+        /// <summary>
+        /// 闈掕悕鐜浼犳劅鍣�
+        /// </summary>
+        public const string SensorEnvironment2 = "sensor.environment2";
+        /// <summary>
+        /// 闈掕悕鐜浼犳劅鍣�
+        /// </summary>
+        public const string SensorEnvironment3 = "sensor.environment3";
+        public const string SensorEnvironmentHailin = "sensor.environment.hailin";
+        /// <summary>
+        /// 鐢查啗
+        /// </summary>
+        public const string SensorHcho = "sensor.hcho";
 
         /// <summary>
-        /// (绾㈠绉诲姩浼犳劅鍣�)
+        /// 鐜浼犳劅鍣ㄨ澶噑pk鍒楄〃
         /// </summary>
-        public const string SensorPir = "sensor.pir";
+        /// <returns></returns>
+        public static List<string> EnvironDeviceSpkList()
+        {
+            var spkList = new List<string>();
+            spkList.Add(SensorTemperature);
+            spkList.Add(SensorPm25);
+            spkList.Add(SensorCO2);
+            spkList.Add(SensorTVOC);
+            spkList.Add(SensorHumidity);
+            spkList.Add(SensorEnvironment);
+            spkList.Add(SensorEnvironment2);
+            spkList.Add(SensorEnvironment3);
+            spkList.Add(SensorHcho);
+            return spkList;
+        }
         /// <summary>
-        /// 锛堥棬绐椾紶鎰熷櫒锛�
+        /// 鐜浼犳劅鍣╯pk鍒楄〃
         /// </summary>
-        public const string SensorDoorWindow = "sensor.doorwindow";
-        /// <summary>
-        /// 鐑熼浘浼犳劅鍣�
-        /// </summary>
-        public const string SensorSmoke = "sensor.smoke";
-        /// <summary>
-        /// 姘存蹈浼犳劅鍣�
-        /// </summary>
-        public const string SensorWater = "sensor.water";
-        /// <summary>
-        /// 鐕冩皵浼犳劅鍣�
-        /// </summary>
-        public const string SensorGas= "sensor.gas";
-        /// <summary>
-        /// 绾㈠鐝婃爮浼犳劅鍣�      
-        /// </summary>
-        public const string SensorShanLan = "sensor.shanlan";
-        /// <summary>
-        /// 绾㈠瀵瑰皠浼犳劅鍣�
-        /// </summary>
-        public const string SensorDuiShe = "sensor.duishe";
-        /// <summary>
-        /// 瓒呭0娉紶鎰熷櫒
-        /// </summary>
-        public const string SensoruUtrasonic = "sensor.ultrasonic";
+        /// <returns></returns>
+        public static List<string> EnvironSpkList()
+        {
+            var spkList = new List<string>();
+            spkList.Add(SensorTemperature);
+            spkList.Add(SensorPm25);
+            spkList.Add(SensorCO2);
+            spkList.Add(SensorTVOC);
+            spkList.Add(SensorHumidity);
+            spkList.Add(SensorHcho);
+            return spkList;
+        }
 
         /// <summary>
-        /// 锛堝共鎺ョ偣锛�
+        /// 鐜浼犳劅鍣ㄨ澶囧垪琛�
         /// </summary>
-        public const string SensorDryContact = "sensor.dryContact";
+        /// <returns></returns>
+        public static List<string> EvironmentSensorList()
+        {
+            var spkList = new List<string>();
+            spkList.Add(SensorEnvironment);
+            spkList.Add(SensorEnvironment2);
+            spkList.Add(SensorEnvironment3);
+            return spkList;
+        }
+
+        #endregion
+        #endregion
+
+        #region 瀹剁數
         /// <summary>
         /// 瀹剁數銆佹彃搴�
         /// </summary>
         public const string ElectricSocket = "electrical.socket";
         /// <summary>
+        /// 闈㈡澘銆佹彃搴с�侀潰鏉�
+        /// </summary>
+        public const string PanelSocket = "panel.socket";
+        /// <summary>
         /// 瀹剁數銆佺數瑙�
         /// </summary>
         public const string ElectricTV = "electrical.tv";
         /// <summary>
+        /// 绾㈠銆佺數瑙�
+        /// </summary>
+        public const string TvIr = "ir.tv";
+        /// <summary>
+        /// 绾㈠銆佸皬绫崇數瑙�
+        /// </summary>
+        public const string TvXmIr = "ir.tvxm";
+        /// <summary>
         /// 瀹剁數銆侀鎵�
         /// </summary>
-        public const string ElectricFan = "electrical.fan";
-        /// <summary>
-        /// 瀹剁數銆佹秱楦︾┖姘斿噣鍖栧櫒
-        /// </summary>
-        public const string ElectricTuyaAirCleaner = "electrical.Q1RsefNf91tIXyyQ";
-        /// <summary>
-        /// 瀹剁數銆佹秱楦︾數椋庢墖
-        /// </summary>
-        public const string ElectricTuyaFan = "electrical.tyqborgovyzytytz";
-        /// <summary>
-        /// 瀹剁數銆佹秱楦︽壂鍦版満鍣ㄤ汉
-        /// </summary>
-        public const string ElectricTuyaWeepRobot = "electrical.ai6HtccKFIw3dxo3";
-        /// <summary>
-        /// 瀹剁數銆佹秱楦︽按闃�
-        /// </summary>
-        public const string ElectricTuyaWaterValve = "electrical.koiGhMKwLf2ZP81g";
+        public const string ElectricFan = "electrical.fan";
+        public const string HvacFan = "hvac.fan";
         /// <summary>
         /// 鍑夐湼
         /// </summary>
         public const string ClothesHanger = "electrical.racks";
         /// <summary>
+        /// 绾㈠閬ユ帶鍣�
+        /// </summary>
+        public const string IrLearn = "ir.learn";
+        /// <summary>
+        /// 绾㈠鎶曞奖浠�
+        /// </summary>
+        public const string PjtIr = "ir.pjt";
+        /// <summary>
+        /// 绾㈠鏈洪《鐩�
+        /// </summary>
+        public const string StbIr = "ir.stb";
+        /// <summary>
+        /// 绾㈠褰辩鏈�
+        /// </summary>
+        public const string DvDIr = "ir.dvd";
+        /// <summary>
+        /// 绾㈠绌烘皵鍑�鍖栧櫒
+        /// </summary>
+        public const string PurifierIr = "ir.air_purifier";
+        /// <summary>
+        /// 绾㈠鐑按鍣�
+        /// </summary>
+        public const string HeaterIr = " ir.water_heater";
+        /// <summary>
+        /// 绾㈠椋庢墖
+        /// </summary>
+        public const string FanIr = "ir.fan";
+        /// <summary>
+        /// 鏅鸿兘绌哄紑
+        /// </summary>
+        public const string AirSwitch = "electrical.breaker";
+
+        #region 娑傞甫
+        /// <summary>
+        /// 瀹剁數銆佹秱楦︾┖姘斿噣鍖栧櫒
+        /// </summary>
+        public const string ElectricTuyaAirCleaner = "electrical.Q1RsefNf91tIXyyQ";
+        public const string ElectricTuyaAirCleaner2 = "hvac.air.tuya_epi345";
+        /// <summary>
+        /// 瀹剁數銆佹秱楦︾數椋庢墖
+        /// </summary>
+        public const string ElectricTuyaFan = "electrical.tyqborgovyzytytz";
+        public const string ElectricTuyaFan2 = "hvac.fan.tuya_ef101";
+        /// <summary>
+        /// 瀹剁數銆佹秱楦︽壂鍦版満鍣ㄤ汉
+        /// </summary>
+        public const string ElectricTuyaWeepRobot = "electrical.ai6HtccKFIw3dxo3";
+        public const string ElectricTuyaWeepRobot2 = "electrical.sweep.tuya";
+        /// <summary>
+        /// 瀹剁數銆佹秱楦︽按闃�
+        /// </summary>
+        public const string ElectricTuyaWaterValve = "electrical.koiGhMKwLf2ZP81g";
+        public const string ElectricTuyaWaterValve2 = "electrical.watervalve.tuya_aw713";
+        #endregion
+
+
+        /// <summary>
+        /// 瀹剁數spk鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        public static List<string> ElectricalSpkList()
+        {
+            var spkList = new List<string>();
+            spkList.Add(ElectricSocket);
+            spkList.Add(PanelSocket);
+            spkList.Add(ElectricTV);
+            spkList.Add(TvIr);
+            spkList.Add(TvXmIr);
+            spkList.Add(ElectricFan);
+            spkList.Add(HvacFan);
+            spkList.Add(FanIr);
+            spkList.Add(ClothesHanger);
+            spkList.Add(IrLearn);
+            spkList.Add(PjtIr);
+            spkList.Add(StbIr);
+            spkList.Add(ElectricTuyaAirCleaner);
+            spkList.Add(ElectricTuyaAirCleaner2);
+            spkList.Add(ElectricTuyaFan);
+            spkList.Add(ElectricTuyaFan2);
+            spkList.Add(ElectricTuyaWeepRobot);
+            spkList.Add(ElectricTuyaWeepRobot2);
+            spkList.Add(ElectricTuyaWaterValve);
+            spkList.Add(ElectricTuyaWaterValve2);
+            spkList.Add(AirSwitch);
+            return spkList;
+        }
+
+
+        #endregion
+
+        #region 璁惧绫�
+        /// <summary>
         /// 绾㈠瀹�
         /// </summary>
         public const string IrModule = "ir.module";
+
         /// <summary>
-        /// 绾㈠绌鸿皟
+        /// 璁惧绫籹pk鍒楄〃
         /// </summary>
-        public const string IrAC = "ir.ac";
+        /// <returns></returns>
+        public static List<string> DeviceSpkList()
+        {
+            var spkList = new List<string>();
+            spkList.Add(IrModule);
+            return spkList;
+        }
+        #endregion
 
-
+        #region 绗笁鏂箂pk鍒楄〃
+        /// <summary>
+        /// 鑾峰彇鎵�鏈夌涓夋柟鍝佺墝鍔熻兘鐨剆pk
+        /// </summary>
+        /// <returns></returns>
+        public static List<string> GetAll3tySPK()
+        {
+            var spkList = new List<string>();
+            spkList.Add(ElectricTuyaAirCleaner);
+            spkList.Add(ElectricTuyaAirCleaner2);
+            spkList.Add(ElectricTuyaFan);
+            spkList.Add(ElectricTuyaFan2);
+            spkList.Add(ElectricTuyaWaterValve);
+            spkList.Add(ElectricTuyaWaterValve2);
+            spkList.Add(ElectricTuyaWeepRobot);
+            spkList.Add(ElectricTuyaWeepRobot2);
+            spkList.Add(SenesorMegahealth);
+            spkList.Add(SenesorMegahealth2);
+            return spkList;
+        }
         /// <summary>
         /// 鑾峰彇绗笁鏂硅澶噑pk
         /// </summary>
@@ -1047,16 +1647,30 @@
 
             switch (brandType)
             {
-                case BrandType.All3tyBrand:
                 case BrandType.Tuya:
                     list.Add(ElectricTuyaAirCleaner);
                     list.Add(ElectricTuyaFan);
                     list.Add(ElectricTuyaWaterValve);
                     list.Add(ElectricTuyaWeepRobot);
+                    list.Add(ElectricTuyaAirCleaner2);
+                    list.Add(ElectricTuyaFan2);
+                    list.Add(ElectricTuyaWaterValve2);
+                    list.Add(ElectricTuyaWeepRobot2);
+                    break;
+                case BrandType.All3tyBrand:
+                    list.Add(SenesorMegahealth);//鍏嗚
                     break;
             }
             return list;
         }
+        #endregion
+
+        /// <summary>
+        /// 娌℃湁鐘舵�佹樉绀虹殑鍔熻兘spk鍒楄〃
+        /// </summary>
+        public static List<string> NotStatusSpkList = new List<string> {
+            ElectricTV, FanIr, TvIr, TvXmIr, StbIr, PjtIr, IrLearn
+        };
 
         /// <summary>
         /// 绗笁鏂瑰搧鐗屽垪琛�
@@ -1066,6 +1680,10 @@
             All = 0,
             Hdl = 1,
             Tuya = 2,
+            /// <summary>
+            /// 鍏嗚
+            /// </summary>
+            Megahealth = 3,
 
 
             All3tyBrand = 999,
@@ -1075,56 +1693,61 @@
     }
 
 
-    /// <summary>
-    /// 鍔熻兘绫诲埆
-    /// </summary>
-    public static class FunctionCategory
-    {
-        /// <summary>
-        ///锛堢伅锛�
-        /// </summary>
-        public const string Light = "light";
-        /// <summary>
-        /// 锛堢獥甯橈級
-        /// </summary>
-        public const string Curtain = "curtain";
-        /// <summary>
-        /// 锛堢┖璋冿級
-        /// </summary>
-        public const string AC = "ac";
-        /// <summary>
-        /// 锛堝湴鐑級
-        /// </summary>
-        public const string FloorHeat = "floorHeat";
-        /// <summary>
-        /// 锛堟柊椋庯級
-        /// </summary>
-        public const string AirFresh = "airFresh";
-        /// <summary>
-        /// 锛堥煶涔愶級
-        /// </summary>
-        public const string Music = "music";
-        /// <summary>
-        /// 锛堜紶鎰熷櫒锛�
-        /// </summary>
-        public const string Sensor = "sensor";
-        /// <summary>
-        /// 锛堝共鎺ョ偣锛�
-        /// </summary>
-        public const string DryContact = "dryContact";
-        /// <summary>
-        /// 瀹剁數
-        /// </summary>
-        public const string Electric = "electrical";
-        /// <summary>
-        /// 绾㈠璁惧
-        /// </summary>
-        public const string IR = "ir";
+    ///// <summary>
+    ///// 鍔熻兘绫诲埆
+    ///// </summary>
+    //public static class FunctionCategory
+    //{
+    //    /// <summary>
+    //    ///锛堢伅锛�
+    //    /// </summary>
+    //    public const string Light = "light";
+    //    /// <summary>
+    //    /// 锛堢獥甯橈級
+    //    /// </summary>
+    //    public const string Curtain = "curtain";
+    //    /// <summary>
+    //    /// 锛堢┖璋冿級
+    //    /// </summary>
+    //    public const string AC = "ac";
+    //    /// <summary>
+    //    /// 锛堝湴鐑級
+    //    /// </summary>
+    //    public const string FloorHeat = "floorHeat";
+    //    /// <summary>
+    //    /// 锛堟柊椋庯級
+    //    /// </summary>
+    //    public const string AirFresh = "airFresh";
+    //    /// <summary>
+    //    /// 锛堥煶涔愶級
+    //    /// </summary>
+    //    public const string Music = "music";
+    //    /// <summary>
+    //    /// 锛堜紶鎰熷櫒锛�
+    //    /// </summary>
+    //    public const string Sensor = "sensor";
+    //    /// <summary>
+    //    /// 锛堝共鎺ョ偣锛�
+    //    /// </summary>
+    //    public const string DryContact = "dryContact";
+    //    /// <summary>
+    //    /// 瀹剁數
+    //    /// </summary>
+    //    public const string Electric = "electrical";
+    //    /// <summary>
+    //    /// 绾㈠璁惧
+    //    /// </summary>
+    //    public const string IR = "ir";
 
 
 
 
-    }
+    //}
 
 
+public class VersionInfo
+{
+    public string module = "";
+    public string version = "";
+}
 }

--
Gitblit v1.8.0