wxr
2023-04-07 a3313818a548d51777ae4e6cc006e9d1e2c1036e
HDL_ON/Entity/Function/Function.cs
@@ -273,6 +273,10 @@
        /// </summary>
        public string deviceId = "0";
        /// <summary>
        /// 第三方设备扩展id
        /// </summary>
        public string extDevId = string.Empty;
        /// <summary>
        /// 设备spk
        /// </summary>
        public string spk = "";
@@ -400,16 +404,20 @@
        /// 是否收藏
        /// </summary>
        public bool collect = false;
        private bool _online = false;
        /// <summary>
        /// 是否在线
        /// </summary>
        public bool online {
        public bool online
        {
            get
            {
                return true;
            }
            set {
            set
            {
                _online = value;
            }
        }
@@ -515,6 +523,14 @@
                SetAttrState(sta.key, sta.value);
            }
        }
        /// <summary>
        /// 功能列表排序
        /// </summary>
        public int FunctionOrderNumber = 9999;
        /// <summary>
        /// 房间列表排序
        /// </summary>
        public int RoomOrderNumber = 9999;
        /// <summary>
@@ -545,13 +561,27 @@
            new System.Threading.Thread(() =>
            {
                if (collect)
                {
                    result = ApiUtlis.Ins.HttpRequest.CollectDevice(deviceId).Code;
                if (spk == SPK.GroupControl) {
                    var groupControl = FunctionList.List.groupControls.Find((obj) => obj.sid == sid);
                    if (collect)
                    {
                        result = ApiUtlis.Ins.HttpRequest.CollectGroupControl(groupControl.userDeviceGroupControlId).Code;
                    }
                    else
                    {
                        result = ApiUtlis.Ins.HttpRequest.CancelCollectGroupControl(groupControl.userDeviceGroupControlId).Code;
                    }
                }
                else
                {
                    result = ApiUtlis.Ins.HttpRequest.CancelCollectDevice(deviceId).Code;
                    if (collect)
                    {
                        result = ApiUtlis.Ins.HttpRequest.CollectDevice(deviceId).Code;
                    }
                    else
                    {
                        result = ApiUtlis.Ins.HttpRequest.CancelCollectDevice(deviceId).Code;
                    }
                }
                //提示错误
                if (result != StateCode.SUCCESS)
@@ -734,6 +764,18 @@
            var sFunc = new SceneFunction();
            foreach (var attr in attributes)
            {
                //窗帘同时发送开关跟百分比会有问题,
                if(spk == SPK.CurtainRoller || spk == SPK.CurtainTrietex || spk == SPK.CurtainDream)
                {
                    if (attr.key == FunctionAttributeKey.OnOff)
                    {
                        if (attributes.Find((obj) => obj.key == FunctionAttributeKey.Percent) != null)
                        {
                            continue;
                        }
                    }
                }
                switch (attr.key)
                {
                    case FunctionAttributeKey.OnOff:
@@ -745,6 +787,7 @@
                    case FunctionAttributeKey.CCT:
                    case FunctionAttributeKey.RGB:
                    case FunctionAttributeKey.Angle:
                    case "security":
                        //case FunctionAttributeKey.FadeTime:
                        if (attr.curValue.ToString() == "{}")
                        {
@@ -769,6 +812,10 @@
                                        attr.curValue = "day";
                                    }
                                }
                            }
                            else if(attr.key == "security")
                            {
                                attr.curValue = "false";
                            }
                            else
                            {
@@ -970,6 +1017,11 @@
        /// </summary>
        public List<string> value = new List<string>();
        /// <summary>
        /// 步进
        /// 空调温度控制 0.5 1
        /// </summary>
        public string step = "1";
        /// <summary>
        /// 最大值
        /// </summary>
        public int max = 100;
@@ -998,6 +1050,10 @@
    {
        public const string _null = "";
        /// <summary>
        /// 安防布防状态
        /// </summary>
        public const string Security = "security";
        /// <summary>
        /// 开关
        /// </summary>
        public const string OnOff = "on_off";
@@ -1009,6 +1065,7 @@
        /// 颜色
        /// </summary>
        public const string RGB = "rgb";
        public const string RGBW = "rgbw";
        /// <summary>
        /// 渐变时间
        /// </summary>
@@ -1313,10 +1370,21 @@
    public static class SPK
    {
        /// <summary>
        /// 群控(自定义)
        /// </summary>
        public const string GroupControl = "GroupControl";
        /// <summary>
        /// 通用开关
        /// </summary>
        public const string OtherCommon = "other.common";
        /// <summary>
        /// 大华摄像头
        /// </summary>
        public const string IpCam_Imou = "security.ipcam.imou";
        /// <summary>
        /// 机械手
        /// </summary>
        public const string MechanicalArm = "electrical.mechanical_arm";
        /// <summary>
        /// 空调科技系统(绿建)
        /// 总控
@@ -1332,6 +1400,7 @@
        /// 门锁
        /// </summary>
        public const string DoorLock = "security.door";
        /// <summary>
        /// 门锁spk列表
        /// </summary>
@@ -1342,8 +1411,20 @@
            list.Add(DoorLock);
            return list;
        }
        /// <summary>
        /// 萤石视频门锁
        /// </summary>
        public const string VideoDoorLock="security.door.ezviz";
        /// <summary>
        /// 萤石视频门锁spk列表
        /// </summary>
        /// <returns></returns>
        public static List<string> GetVideoDoorLockSPKList()
        {
            var list = new List<string>();
            list.Add(VideoDoorLock);
            return list;
        }
        #region 灯光
        /// <summary>
@@ -1436,7 +1517,7 @@
        public const string HvacAC = "hvac.ac";
        /// <summary>
        /// 毛细管空调
        /// </summary>
        /// </summaryc
        public const string HvacCac = "hvac.cac";
        /// <summary>
@@ -1515,6 +1596,10 @@
        /// 逆变器
        /// </summary>
        public const string Inverter = "energy.inverter";
        /// <summary>
        /// 三相逆变器
        /// </summary>
        public const string InverterRst = "energy.inverter_rst";
        /// <summary>
        /// 能源模块
        /// </summary>
@@ -1609,6 +1694,10 @@
        public const string SenesorMegahealth = "sensor.megahealth";
        public const string SenesorMegahealth2 = "sensor.megahealth.zg";
        /// <summary>
        /// 毫米波传感器(姿态版)
        /// </summary>
        public const string SensorMmvPose = "sensor.mmv_pose";
        /// <summary>
        /// 紧急呼叫
        /// </summary>
        public const string SensorHelp = "sensor.help";
@@ -1633,6 +1722,7 @@
            spkList.Add(SensorDryContact2);
            spkList.Add(SenesorMegahealth);
            spkList.Add(SenesorMegahealth2);
            spkList.Add(SensorMmvPose);
            return spkList;
        }
        #endregion
@@ -1651,6 +1741,10 @@
        }
        #region 环境传感器
        /// <summary>
        /// (PM10传感器)
        /// </summary>
        public const string SensorPm10 = "sensor.pm10";
        /// <summary>
        /// (温度传感器)
        /// </summary>
@@ -1700,11 +1794,12 @@
        {
            var spkList = new List<string>();
            spkList.Add(SensorTemperature);
            spkList.Add(SensorPm10);
            spkList.Add(SensorPm25);
            spkList.Add(SensorCO2);
            spkList.Add(SensorTVOC);
            spkList.Add(SensorHumidity);
            spkList.Add(SensorEnvironment);
            spkList.Add(SensorEnvironment); spkList.Add(SensorEnvironmentHailin);
            spkList.Add(SensorEnvironment2);
            spkList.Add(SensorEnvironment3);
            spkList.Add(SensorHcho);
@@ -1718,6 +1813,7 @@
        {
            var spkList = new List<string>();
            spkList.Add(SensorTemperature);
            spkList.Add(SensorPm10);
            spkList.Add(SensorPm25);
            spkList.Add(SensorCO2);
            spkList.Add(SensorTVOC);
@@ -1733,7 +1829,7 @@
        public static List<string> EvironmentSensorList()
        {
            var spkList = new List<string>();
            spkList.Add(SensorEnvironment);
            spkList.Add(SensorEnvironment); spkList.Add(SensorEnvironmentHailin);
            spkList.Add(SensorEnvironment2);
            spkList.Add(SensorEnvironment3);
            return spkList;
@@ -1904,6 +2000,7 @@
            spkList.Add(ElectricTuyaWaterValve2);
            spkList.Add(ElectricTuyaWeepRobot);
            spkList.Add(ElectricTuyaWeepRobot2);
            spkList.Add(SensorMmvPose);
            spkList.Add(SenesorMegahealth);
            spkList.Add(SenesorMegahealth2);
            return spkList;
@@ -1929,7 +2026,7 @@
                    list.Add(ElectricTuyaWeepRobot2);
                    break;
                case BrandType.All3tyBrand:
                    list.Add(SenesorMegahealth);//兆观
                    list.Add(SenesorMegahealth2);//兆观
                    break;
            }
            return list;