From c00da77d00a479fa5d022346a6d9075f90a5c087 Mon Sep 17 00:00:00 2001
From: wxr <wxr@hdlchina.com.cn>
Date: 星期六, 14 九月 2024 10:05:34 +0800
Subject: [PATCH] 退出登录时间调整,新风,音乐
---
HDL_ON/Entity/Function/Function.cs | 252 +++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 226 insertions(+), 26 deletions(-)
diff --git a/HDL_ON/Entity/Function/Function.cs b/HDL_ON/Entity/Function/Function.cs
index 4f6404c..aaa2157 100644
--- a/HDL_ON/Entity/Function/Function.cs
+++ b/HDL_ON/Entity/Function/Function.cs
@@ -108,6 +108,7 @@
/// 鑾峰彇灞炴�у綋鍓嶇姸鎬�
/// </summary>
/// <param name="key"></param>
+ /// <param name="defaultValue">榛樿鍊�</param>
/// <returns></returns>
public string GetAttrState(string key, string defaultValue = "0")
{
@@ -120,7 +121,7 @@
if (string.IsNullOrEmpty(attrState.state))
{
//浜岀骇鏌ヨkeyValue鍊�
- return GetOriginalState(key);
+ return GetOriginalState(key, defaultValue);
}
return attrState.state;
}
@@ -130,13 +131,14 @@
/// 榛樿鍊硷細0
/// </summary>
/// <param name="key">璇泙瀹氫箟鐨勫睘鎬у��</param>
+ /// <param name="defaultValue">榛樿鍊�</param>
/// <returns></returns>
- public string GetOriginalState(string key)
+ public string GetOriginalState(string key, string defaultValue)
{
var originalState = status.Find((s) => s.key == key.ToString());
if (originalState == null || string.IsNullOrEmpty(originalState.value))
{
- return "0";
+ return defaultValue;
}
return originalState.value;
}
@@ -171,6 +173,13 @@
string iconPath = spk.Replace(".", "");
switch (spk)
{
+ case SPK.SensorDryContact2:
+ case SPK.OtherCommon:
+ iconPath = "sensordryContact";
+ break;
+ //case SPK.SensorLight:
+ // iconPath = "lightswitch";
+ // break;
case SPK.AirSwitchP3:
iconPath = "electricalbreaker";
break;
@@ -195,7 +204,7 @@
case SPK.HvacFan:
iconPath = "electricalfan";
break;
- case SPK.HvacFloorHeat:
+ case SPK.HvacFloorHeat:case SPK.HvacFloorHeatPanel:
iconPath = "floorHeatstandard";
break;
case SPK.ElectricTuyaFan2:
@@ -287,6 +296,11 @@
/// 璁惧spk
/// </summary>
public string spk = "";
+ /// <summary>
+ /// 鎵╁睍淇℃伅
+ /// 瀛楃涓�
+ /// </summary>
+ public string extend = "";
private string _SpkCategory = string.Empty;
/// <summary>
@@ -445,20 +459,52 @@
/// </summary>
public bool collect = false;
- private bool _online = false;
- /// <summary>
- /// 鏄惁鍦ㄧ嚎
- /// </summary>
- public bool online
- {
+ private bool _online;
+ public bool online {
get
{
+ if (spk == SPK.AirSwitchP3|| spk == SPK.ElectricalTvHisense)
+ {
+ return _online;
+ }
return true;
}
set
{
_online = value;
}
+ }
+ ///// <summary>
+ ///// 鏄惁鍦ㄧ嚎
+ ///// </summary>
+ //public bool online
+ //{
+ // get
+ // {
+ // if(spk == SPK.AirSwitchP3)
+ // {
+ // return _online;
+ // }
+ // return true;
+ // }
+ // set
+ // {
+ // _online = value;
+ // }
+ //}
+
+ public bool isOnline()
+ {
+ if (spk == SPK.AirSwitchP3)
+ {
+ return online;
+ }
+ return true;
+ }
+
+ public void setOnine(bool isOnline)
+ {
+ online = isOnline;
}
/// <summary>
@@ -730,9 +776,9 @@
/// <summary>
/// 淇濆瓨鎴块棿缁戝畾淇℃伅
/// </summary>
- public void UpdataRoomIds()
+ public async void UpdataRoomIds()
{
- new System.Threading.Thread(() =>
+ new System.Threading.Thread( () =>
{
var pack = ApiUtlis.Ins.HttpRequest.UpdataDevcieBindRoomInfo(this);
//鐩存帴淇濆瓨鏈湴锛�
@@ -813,10 +859,10 @@
{
foreach (var temp in gc.sids)
{
- var light = FunctionList.List.GetLightList().Find((obj) => obj.sid == temp.sid);
- if (light != null)
+ var tempDevice = FunctionList.List.GetLightList().Find((obj) => obj.sid == temp.sid);
+ if (tempDevice != null)
{
- foreach (var attr in light.attributes)
+ foreach (var attr in tempDevice.attributes)
{
if (list.Find((obj) => obj.key == attr.key) == null)
{
@@ -828,6 +874,43 @@
}
}
}
+ else if (spk == SPK.MusicStandard || spk == SPK.AvMusic)
+ {
+ list.Add(new FunctionAttributes
+ {
+ key = FunctionAttributeKey.OnOff,
+ curValue = string.Empty,
+ });
+ list.Add(new FunctionAttributes
+ {
+ key = FunctionAttributeKey.Volume,
+ curValue = string.Empty,
+ });
+ list.Add(new FunctionAttributes
+ {
+ key = FunctionAttributeKey.SongName,
+ curValue = string.Empty,
+ });
+
+ }
+ else if (spk == SPK.ElectricalTvHisense)
+ {
+ list.Add(new FunctionAttributes
+ {
+ key = FunctionAttributeKey.OnOff,
+ curValue = string.Empty,
+ });
+ list.Add(new FunctionAttributes
+ {
+ key = FunctionAttributeKey.SetVolume,
+ curValue = string.Empty,
+ });
+ list.Add(new FunctionAttributes
+ {
+ key = FunctionAttributeKey.Signal,
+ curValue = string.Empty,
+ });
+ }
else
{
list.AddRange(attributes);
@@ -835,6 +918,10 @@
foreach (var attr in list)
{
+ if(attr.key == FunctionAttributeKey.ColorfulBegin || attr.key == FunctionAttributeKey.ColorfulEnd || attr.key == FunctionAttributeKey.ColorfulTime)
+ {
+ continue;
+ }
//绐楀笜鍚屾椂鍙戦�佸紑鍏宠窡鐧惧垎姣斾細鏈夐棶棰橈紝
if(spk == SPK.CurtainRoller || spk == SPK.CurtainTrietex || spk == SPK.CurtainDream)
{
@@ -850,33 +937,64 @@
sFunc.type = "5";
}
- string us = "";
switch (attr.key)
{
case FunctionAttributeKey.SetTemp:
+ var tt = GetAttribute(FunctionAttributeKey.TempType);
+ if (tt == null)
+ {
+ attr.unit = "掳C";
+ }
+ else
+ {
+ if (tt.unit == string.Empty)
+ {
+ attr.unit = "掳C";
+ }
+ else
+ {
+ if (tt.unit == "C")
+ {
+ attr.unit = "掳C";
+ }
+ else if (tt.unit == "F")
+ {
+ attr.unit = "掳F";
+ }
+ else
+ {
+ attr.unit = tt.unit;
+ }
+ }
+ }
+ break;
case FunctionAttributeKey.RoomTemp:
- us = "掳C";
+ attr.unit = "掳C";
var tempType = attributes.Find((obj) => obj.key == FunctionAttributeKey.TempType);
if (tempType != null)
{
- us = tempType.curValue.ToString();
+ attr.unit = tempType.curValue.ToString();
}
break;
case FunctionAttributeKey.Percent:
case FunctionAttributeKey.Brightness:
- us = "%";
+ attr.unit = "%";
break;
case FunctionAttributeKey.CCT:
- us = "K";
+ attr.unit = "K";
break;
case FunctionAttributeKey.Angle:
- us = "掳";
+ attr.unit = "掳";
break;
}
switch (attr.key)
{
+ case FunctionAttributeKey.SongName:
+ case FunctionAttributeKey.Volume:
+ case FunctionAttributeKey.SetVolume:
+ case FunctionAttributeKey.Signal:
case FunctionAttributeKey.OnOff:
case FunctionAttributeKey.Brightness:
case FunctionAttributeKey.Mode:
@@ -934,13 +1052,13 @@
vv = 26;
}
sFunc.status.Add(new SceneFunctionStatus() {
- UintString = us,
+ UintString = attr.unit,
key = attr.key, value = Convert.ToInt32(vv).ToString(), max = attr.max, min = attr.min }) ;
}
else
{
sFunc.status.Add(new SceneFunctionStatus() {
- UintString = us,
+ UintString = attr.unit,
key = attr.key, value = attr.curValue.ToString(), max = attr.max, min = attr.min });
}
break;
@@ -954,6 +1072,11 @@
/// 鏇存柊鏃堕棿
/// </summary>
public DateTime refreshTime = DateTime.MinValue;
+ /// <summary>
+ /// 鏈�鍚庢洿鏂扮姸鎬佺殑鏃堕棿
+ /// </summary>
+ [Newtonsoft.Json.JsonIgnore]
+ public DateTime updateTime = DateTime.MinValue;
/// <summary>
/// 鑾峰彇鏈湴鎺у埗鏁版嵁
@@ -1088,6 +1211,10 @@
/// 浜戠璐熻矗鐢熸垚
/// </summary>
public string deviceId = "0";
+ /// <summary>
+ /// 鍦ㄧ嚎鐘舵��
+ /// </summary>
+ public bool online = true;
public List<AttributesStatus> status = new List<AttributesStatus>();
}
/// <summary>
@@ -1372,7 +1499,12 @@
public const string Temperature = "temperature";
public const string Hcho = "hcho";
public const string Humidity = "humidity";
+ /// <summary>
+ /// 鐓у害
+ /// </summary>
+ public const string Illuminance = "illuminance";
public const string Pm25 = "pm25";
+ public const string Pm10 = "pm10";
public const string Tvoc = "tvoc";
/// <summary>
/// 鐘舵��,浼犳劅鍣�
@@ -1510,6 +1642,32 @@
/// </summary>
public const string TotalElectricity = "total_electricity";
+ /// <summary>
+ /// 娴蜂俊tv闊抽噺
+ /// </summary>
+ public const string SetVolume = "set_volume";
+ /// <summary>
+ /// 娴蜂俊tv淇″彿婧�(0:LiveTV;2:PS;3:HDMI_1;4:HDMI_2;5:HDMI_3;6:HDMI_4;11:AV;)
+ /// </summary>
+ public const string Signal = "signal";
+
+ /// <summary>
+ /// 闊充箰闊抽噺
+ /// </summary>
+ public const string Volume = "volume";
+ /// <summary>
+ /// 姝屾洸鍚�
+ /// </summary>
+ public const string SongName = "song_name";
+ /// <summary>
+ /// 鍒楄〃鍚�
+ /// </summary>
+ public const string PlaylistName = "playlist_name";
+ /// <summary>
+ /// 鎾斁璺緞
+ /// </summary>
+ public const string Url = "url";
+
}
/// <summary>
@@ -1598,6 +1756,16 @@
/// 瀛愭帶
/// </summary>
public const string AcstSub = "acst.sub";
+ /// <summary>
+ /// 鐑按鍣�
+ /// 閲戣寕
+ /// </summary>
+ public const string WaterHeaterJinmao = "electrical.water_heater.jinmao";
+ /// <summary>
+ /// 閫嗗彉鍣�/鏂拌兘婧�
+ /// 閲戣寕
+ /// </summary>
+ public const string InverterJinmao = "energy.inverter.jinmao";
/// <summary>
/// 闂ㄩ攣
@@ -1634,6 +1802,11 @@
/// </summary>
public const string Ev_Ipcam = "security.ipcam.ez";
/// <summary>
+ /// 褰遍煶涓帶
+ /// </summary>
+ public const string AvZkAiks = "av.zk.aiks";
+
+ /// <summary>
/// 钀ょ煶瑙嗛闂ㄩ攣spk鍒楄〃
/// </summary>
/// <returns></returns>
@@ -1641,6 +1814,20 @@
{
var list = new List<string>();
list.Add(VideoDoorLock);
+ return list;
+ }
+
+
+ /// <summary>
+ /// 褰遍煶涓帶spk鍒楄〃
+ /// </summary>
+ /// <returns></returns>
+ public static List<string> GetVideoControlsSPKList()
+ {
+ var list = new List<string>
+ {
+ AvZkAiks
+ };
return list;
}
@@ -1773,6 +1960,10 @@
/// 鍦版殩
/// </summary>
public const string HvacFloorHeat = "hvac.floorHeat";
+ /// <summary>
+ /// 闈㈡澘鍦版殩
+ /// </summary>
+ public const string HvacFloorHeatPanel = "hvac.floorHeat_panel";
/// <summary>
/// 鍦扮儹spk鍒楄〃
@@ -1782,7 +1973,7 @@
{
var spkList = new List<string>();
spkList.Add(FloorHeatStandard);
- spkList.Add(HvacFloorHeat);
+ spkList.Add(HvacFloorHeat); spkList.Add(HvacFloorHeatPanel);
return spkList;
}
#endregion
@@ -1846,6 +2037,8 @@
{
var spkList = new List<string>();
spkList.Add(ElectricEnergy);
+ spkList.Add(AirSwitch);
+ spkList.Add(AirSwitchP3);
return spkList;
}
#endregion
@@ -2037,6 +2230,7 @@
spkList.Add(SensorEnvironment2);
spkList.Add(SensorEnvironment3);
spkList.Add(SensorHcho);
+ spkList.Add(SensorLight);
return spkList;
}
/// <summary>
@@ -2053,6 +2247,7 @@
spkList.Add(SensorTVOC);
spkList.Add(SensorHumidity);
spkList.Add(SensorHcho);
+ spkList.Add(SensorLight);
return spkList;
}
@@ -2066,6 +2261,7 @@
spkList.Add(SensorEnvironment); spkList.Add(SensorEnvironmentHailin);
spkList.Add(SensorEnvironment2);
spkList.Add(SensorEnvironment3);
+
return spkList;
}
@@ -2073,6 +2269,10 @@
#endregion
#region 瀹剁數
+ /// <summary>
+ /// 娴蜂俊鐢佃
+ /// </summary>
+ public const string ElectricalTvHisense = "electrical.tv.hisense";
/// <summary>
/// 瀹剁數銆佹彃搴�
/// </summary>
@@ -2125,7 +2325,7 @@
/// <summary>
/// 绾㈠鐑按鍣�
/// </summary>
- public const string HeaterIr = " ir.water_heater";
+ public const string HeaterIr = "ir.water_heater";
/// <summary>
/// 绾㈠椋庢墖
/// </summary>
@@ -2191,7 +2391,7 @@
spkList.Add(ElectricTuyaWaterValve);
spkList.Add(ElectricTuyaWaterValve2);
spkList.Add(AirSwitch);
- spkList.Add(AirSwitchP3);
+ spkList.Add(ElectricalTvHisense);
return spkList;
}
--
Gitblit v1.8.0