From ec9e37b92075752cd96c558a7d8bffbbc4adc07e Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期三, 13 十月 2021 11:35:43 +0800
Subject: [PATCH] 金茂新风湿度控制

---
 HDL-ON_Android/Properties/AndroidManifest.xml                        |    2 
 HDL_ON/UI/UI2/1-HomePage/HomePage.cs                                 |   19 ++
 HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AirFreshControlPage.cs |  252 +++++++++++++++++++++++++++++++++++-
 HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs       |    5 
 HDL-ON_iOS/HDL-ON_iOS.csproj                                         |    3 
 HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs    |    1 
 HDL_ON/DAL/DriverLayer/Control_Udp.cs                                |   10 +
 HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs       |    2 
 HDL-ON_Android/HDL-ON_Android.csproj                                 |    3 
 HDL-ON_Android/Assets/Phone/FunctionIcon/AirFresh/HumiIcon.png       |    0 
 HDL-ON_iOS/Info.plist                                                |    4 
 HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs               |   12 +
 HDL-ON_iOS/Resources/Phone/FunctionIcon/AirFresh/btnCloseIcon.png    |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/AirFresh/btnInfoIcon.png    |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/AirFresh/btnCloseIcon.png   |    0 
 .vs/HDL_APP_Project/xs/UserPrefs.xml                                 |   61 +++-----
 HDL-ON_iOS/Resources/Phone/FunctionIcon/AirFresh/btnInfoIcon.png     |    0 
 HDL_ON/DAL/DriverLayer/Control.cs                                    |    6 
 HDL_ON/UI/MainPage.cs                                                |    2 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/AirFresh/HumiIcon.png        |    0 
 HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddInputPage.cs           |    5 
 21 files changed, 325 insertions(+), 62 deletions(-)

diff --git a/.vs/HDL_APP_Project/xs/UserPrefs.xml b/.vs/HDL_APP_Project/xs/UserPrefs.xml
index 0c5476a..551ff4d 100644
--- a/.vs/HDL_APP_Project/xs/UserPrefs.xml
+++ b/.vs/HDL_APP_Project/xs/UserPrefs.xml
@@ -1,45 +1,30 @@
-锘�<Properties StartupConfiguration="{09712674-2A38-407B-B1E2-560B2C352F9A}|Default">
-  <MonoDevelop.Ide.ItemProperties.HDL-ON__iOS PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneSimulatorTarget." />
-  <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/DAL/DriverLayer/Packet.cs">
+锘�<Properties StartupConfiguration="{D998E133-F0DD-4760-BE3C-461632F54DA4}|Default">
+  <MonoDevelop.Ide.ItemProperties.HDL-ON__iOS PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneDeviceTarget" />
+  <MonoDevelop.Ide.Workbench ActiveDocument="HDL-ON_iOS/Info.plist">
     <Files>
-      <File FileName="HDL_ON/DAL/Server/HttpUtil.cs" Line="21" Column="89" />
-      <File FileName="HDL_ON/UI/UI1-Login/LoginPage.cs" Line="237" Column="59" />
-      <File FileName="HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AcControlPage.cs" Line="741" Column="23" />
-      <File FileName="HDL_ON/UI/UI2/1-HomePage/HomePage.cs" Line="853" Column="21" />
-      <File FileName="HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs" Line="340" Column="36" />
-      <File FileName="HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs" Line="170" Column="1" />
-      <File FileName="HDL_ON/DAL/Mqtt/MqttClient.cs" Line="315" Column="1" />
-      <File FileName="HDL_ON/UI/MainPage.cs" Line="28" Column="55" />
-      <File FileName="HDL_ON/DAL/DriverLayer/Control.cs" Line="1050" Column="1" />
-      <File FileName="HDL_ON/DAL/DriverLayer/Control_Udp.cs" Line="272" Column="45" />
-      <File FileName="HDL_ON/Entity/Function/Function.cs" Line="1326" Column="32" />
-      <File FileName="HDL_ON/UI/UI2/FuntionControlView/AC/ACPage.cs" Line="8" Column="28" />
-      <File FileName="HDL_ON/DAL/DriverLayer/Packet.cs" Line="384" Column="1" />
+      <File FileName="HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AirFreshControlPage.cs" Line="211" Column="33" />
+      <File FileName="HDL_ON/DAL/DriverLayer/Control.cs" Line="356" Column="21" />
+      <File FileName="HDL_ON/UI/UI2/FuntionControlView/ArmCenter/ArmCenterPage.cs" Line="331" Column="68" />
+      <File FileName="HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddAlarmDeploymentPage.cs" Line="306" Column="44" />
+      <File FileName="HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddInputPage.cs" Line="89" Column="58" />
+      <File FileName="HDL_ON/UI/MainPage.cs" Line="5" Column="17" />
+      <File FileName="HDL_ON/DAL/Server/HttpUtil.cs" Line="21" Column="36" />
+      <File FileName="HDL_ON/DAL/Mqtt/MqttClient.cs" Line="446" Column="41" />
+      <File FileName="HDL-ON_iOS/Info.plist" />
     </Files>
     <Pads>
       <Pad Id="ProjectPad">
         <State name="__root__">
           <Node name="HDL_APP_Project" expanded="True">
-            <Node name="HDL_ON" expanded="True">
-              <Node name="DAL" expanded="True">
-                <Node name="DriverLayer" expanded="True">
-                  <Node name="Packet.cs" selected="True" />
-                </Node>
-                <Node name="Server" expanded="True" />
-              </Node>
-              <Node name="Entity" expanded="True">
-                <Node name="Function" expanded="True" />
-              </Node>
-              <Node name="UI" expanded="True">
-                <Node name="UI0-Public" expanded="True" />
-                <Node name="UI2" expanded="True">
-                  <Node name="FuntionControlView" expanded="True">
-                    <Node name="AC" expanded="True" />
-                  </Node>
-                </Node>
-              </Node>
+            <Node name="HDL-ON_iOS" expanded="True">
+              <Node name="Info.plist" selected="True" />
             </Node>
           </Node>
+        </State>
+      </Pad>
+      <Pad Id="MonoDevelop.Debugger.WatchPad">
+        <State>
+          <Value>function.spk</Value>
         </State>
       </Pad>
     </Pads>
@@ -50,23 +35,20 @@
     <String>Shared.Droid.TouchID/Shared.Droid.TouchID.csproj</String>
     <String>Shared.IOS/Shared.IOS.csproj</String>
   </DisabledProjects>
-  <MonoDevelop.Ide.Workspace ActiveConfiguration="Debug|iPhone" />
-  <MonoDevelop.Ide.ItemProperties.HDL-ON__Android PreferredExecutionTarget="Android.364c4b3158493098" />
+  <MonoDevelop.Ide.Workspace ActiveConfiguration="Release|iPhone" />
+  <MonoDevelop.Ide.ItemProperties.HDL-ON__Android PreferredExecutionTarget="Android.SelectDevice" />
   <MonoDevelop.Ide.DebuggingService.Breakpoints>
     <BreakpointStore>
       <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/FuntionControlView/Electrical/IrFanPage.cs" relfile="HDL_ON/UI/UI2/FuntionControlView/Electrical/IrFanPage.cs" line="42" column="1" />
       <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/DAL/Mqtt/MqttClient.cs" relfile="HDL_ON/DAL/Mqtt/MqttClient.cs" line="431" column="1" />
       <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs" relfile="HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs" line="758" column="1" />
       <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/TransferUserConfirmPage.cs" relfile="HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/TransferUserConfirmPage.cs" line="106" column="1" />
-      <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPageBLL.cs" relfile="HDL_ON/UI/UI2/FuntionControlView/Light/RGBPageBLL.cs" line="168" column="1" />
       <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/4-PersonalCenter/FaceManagement/FacePassagePage.cs" relfile="HDL_ON/UI/UI2/4-PersonalCenter/FaceManagement/FacePassagePage.cs" line="481" column="1" />
       <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/4-PersonalCenter/FaceManagement/FacePassagePage.cs" relfile="HDL_ON/UI/UI2/4-PersonalCenter/FaceManagement/FacePassagePage.cs" line="541" column="1" />
       <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/Entity/Function/Scene.cs" relfile="HDL_ON/Entity/Function/Scene.cs" line="343" column="1" />
-      <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddInputPage.cs" relfile="HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddInputPage.cs" line="148" column="1" />
       <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs" relfile="HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs" line="865" column="1" />
       <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/DAL/Server/HttpServerRequest.cs" relfile="HDL_ON/DAL/Server/HttpServerRequest.cs" line="2691" column="1" />
       <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/DAL/Server/HttpServerRequest.cs" relfile="HDL_ON/DAL/Server/HttpServerRequest.cs" line="2687" column="1" />
-      <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/FuntionControlView/Energy/EnergyMainPage.cs" relfile="HDL_ON/UI/UI2/FuntionControlView/Energy/EnergyMainPage.cs" line="524" column="1" />
       <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/Entity/Function/Scene.cs" relfile="HDL_ON/Entity/Function/Scene.cs" line="322" column="1" />
       <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalPage.cs" relfile="HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalPage.cs" line="798" column="1" />
       <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalPage.cs" relfile="HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalPage.cs" line="852" column="11" />
@@ -74,6 +56,7 @@
       <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalPage.cs" relfile="HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalPage.cs" line="835" column="12" />
       <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/FuntionControlView/Light/ColorTureLampPage.cs" relfile="HDL_ON/UI/UI2/FuntionControlView/Light/ColorTureLampPage.cs" line="200" column="1" />
       <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/DAL/DriverLayer/Control.cs" relfile="HDL_ON/DAL/DriverLayer/Control.cs" line="727" column="1" />
+      <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddInputPage.cs" relfile="HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddInputPage.cs" line="178" column="1" />
     </BreakpointStore>
   </MonoDevelop.Ide.DebuggingService.Breakpoints>
   <MultiItemStartupConfigurations />
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/AirFresh/HumiIcon.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/AirFresh/HumiIcon.png
new file mode 100644
index 0000000..59b2f44
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/AirFresh/HumiIcon.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/AirFresh/btnCloseIcon.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/AirFresh/btnCloseIcon.png
new file mode 100644
index 0000000..261e62c
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/AirFresh/btnCloseIcon.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/AirFresh/btnInfoIcon.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/AirFresh/btnInfoIcon.png
new file mode 100644
index 0000000..416d299
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/AirFresh/btnInfoIcon.png
Binary files differ
diff --git a/HDL-ON_Android/HDL-ON_Android.csproj b/HDL-ON_Android/HDL-ON_Android.csproj
index fa5f97f..8fe9c65 100644
--- a/HDL-ON_Android/HDL-ON_Android.csproj
+++ b/HDL-ON_Android/HDL-ON_Android.csproj
@@ -208,6 +208,9 @@
     <None Include="Resources\AboutResources.txt" />
     <None Include="Properties\AndroidManifest.xml" />
     <None Include="Assets\AboutAssets.txt" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\AirFresh\HumiIcon.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\AirFresh\btnCloseIcon.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\AirFresh\btnInfoIcon.png" />
   </ItemGroup>
   <ItemGroup>
     <AndroidResource Include="Resources\values\colors.xml" />
diff --git a/HDL-ON_Android/Properties/AndroidManifest.xml b/HDL-ON_Android/Properties/AndroidManifest.xml
index 0ec5c06..7920cfd 100644
--- a/HDL-ON_Android/Properties/AndroidManifest.xml
+++ b/HDL-ON_Android/Properties/AndroidManifest.xml
@@ -1,5 +1,5 @@
 锘�<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="202110112" android:versionName="1.2.202110112" package="com.hdl.onpro">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="202110131" android:versionName="1.2.202110131" package="com.hdl.onpro">
 	<uses-sdk android:minSdkVersion="23" android:targetSdkVersion="28" />
 	<!-- 涔愭鍙瀵硅闇�瑕佺殑鏉冮檺 -->
 	<!--<uses-permission android:name="android.permission.INTERNET" />-->
diff --git a/HDL-ON_iOS/HDL-ON_iOS.csproj b/HDL-ON_iOS/HDL-ON_iOS.csproj
index 1ea9ff9..c4e15fc 100644
--- a/HDL-ON_iOS/HDL-ON_iOS.csproj
+++ b/HDL-ON_iOS/HDL-ON_iOS.csproj
@@ -1353,6 +1353,9 @@
       <BundleResource Include="Resources\Phone\Public\HookIcon.png" />
       <BundleResource Include="Resources\Phone\Collection\MesCenter\Property.png" />
       <BundleResource Include="Resources\Phone\Collection\MesCenter\PropertyOn.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\AirFresh\HumiIcon.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\AirFresh\btnCloseIcon.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\AirFresh\btnInfoIcon.png" />
     </ItemGroup>
     <ItemGroup>
       <ITunesArtwork Include="iTunesArtwork" />
diff --git a/HDL-ON_iOS/Info.plist b/HDL-ON_iOS/Info.plist
index b9cecc9..2922c21 100644
--- a/HDL-ON_iOS/Info.plist
+++ b/HDL-ON_iOS/Info.plist
@@ -100,9 +100,9 @@
 	<key>UIStatusBarStyle</key>
 	<string>UIStatusBarStyleLightContent</string>
 	<key>CFBundleShortVersionString</key>
-	<string>1.2.202109261</string>
+	<string>1.2.202110131</string>
 	<key>CFBundleVersion</key>
-	<string>1.2.09261</string>
+	<string>1.2.10131</string>
 	<key>NSLocationWhenInUseUsageDescription</key>
 	<string>Use geographic location to provide services such as weather</string>
 	<key>NSAppleMusicUsageDescription</key>
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/AirFresh/HumiIcon.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/AirFresh/HumiIcon.png
new file mode 100644
index 0000000..59b2f44
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/AirFresh/HumiIcon.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/AirFresh/btnCloseIcon.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/AirFresh/btnCloseIcon.png
new file mode 100644
index 0000000..261e62c
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/AirFresh/btnCloseIcon.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/AirFresh/btnInfoIcon.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/AirFresh/btnInfoIcon.png
new file mode 100644
index 0000000..416d299
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/AirFresh/btnInfoIcon.png
Binary files differ
diff --git a/HDL_ON/DAL/DriverLayer/Control.cs b/HDL_ON/DAL/DriverLayer/Control.cs
index d117157..4b93d06 100644
--- a/HDL_ON/DAL/DriverLayer/Control.cs
+++ b/HDL_ON/DAL/DriverLayer/Control.cs
@@ -1008,6 +1008,8 @@
                             case SPK.CurtainShades:
                                 break;
                             case SPK.AcStandard:
+                            case SPK.HvacAC:
+                            case SPK.AcIr:
                                 Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(updateTemp.sid, updateTemp.status);
                                 if (localFunction != null)
                                 {
@@ -1046,7 +1048,7 @@
                                             break;
                                     }
                                     localFunction.lastState += " " + localFunction.GetAttrState(FunctionAttributeKey.SetTemp) + new AC().GetTempUnitString(localFunction);
-                                    ACPage.UpdataStates(localFunction);
+
                                 }
                                 break;
                             case SPK.HvacFloorHeat:
@@ -1123,8 +1125,6 @@
                             case SPK.SensorSmoke:
                             case SPK.SensorWater:
                             case SPK.ClothesHanger:
-                            case SPK.AcIr:
-                            case SPK.HvacAC:
                             case SPK.SenesorMegahealth:
                             case SPK.SenesorMegahealth2:
                             case SPK.AirFreshStandard:
diff --git a/HDL_ON/DAL/DriverLayer/Control_Udp.cs b/HDL_ON/DAL/DriverLayer/Control_Udp.cs
index 2179b3d..e5fb38e 100644
--- a/HDL_ON/DAL/DriverLayer/Control_Udp.cs
+++ b/HDL_ON/DAL/DriverLayer/Control_Udp.cs
@@ -198,6 +198,7 @@
                             }
                             break;
                         case SPK.AcStandard:
+                        case SPK.HvacAC:
                             AC acTemp = new AC();
                             byte onoff = 0;
                             byte mode = 0;
@@ -552,6 +553,7 @@
                         }
                         break;
                     case SPK.AcStandard:
+                    case SPK.HvacAC:
                         var ac = new AC();
                         foreach (var dic in commandDictionary)
                         {
@@ -742,6 +744,11 @@
                             }
                         }
                         //7   婀垮害璁惧畾 %
+                        byte hum = 0;
+                        if (commandDictionary.ContainsKey(FunctionAttributeKey.Humidity) == true)
+                        {
+                            hum = Convert.ToByte(commandDictionary[FunctionAttributeKey.Humidity]);
+                        }
                         //8   瀹ゅ唴娓╁害鍊�   鈩�
                         byte indoorTemp_airFrsh = 0;
                         if (commandDictionary.ContainsKey(FunctionAttributeKey.IndoorTemp) == true)
@@ -760,7 +767,7 @@
                                     function.bus.LoopId,0, switchValue ,
                                     airFreshMode,airFreshEnergy,
                                     airFreshFan,
-                                    Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Humidity)),
+                                    hum,
                                     indoorTemp_airFrsh,
                                     indoorHumidity_airFrsh,
                                     //Convert.ToByte( function.GetAttrState(FunctionAttributeKey.FilterRemain)),
@@ -812,6 +819,7 @@
                         ControlBytesSend(Command.ReadCurtainStatus, subnetId, deviceId, new byte[] { function.bus.LoopId });
                         break;
                     case SPK.AcStandard:
+                    case SPK.HvacAC:
                         ControlBytesSend(Command.ReadACMode, subnetId, deviceId, new byte[] { function.bus.LoopId });
                         break;
                     case SPK.HvacFloorHeat:case SPK.FloorHeatStandard:
diff --git a/HDL_ON/UI/MainPage.cs b/HDL_ON/UI/MainPage.cs
index 31e48ec..1e4cb9e 100644
--- a/HDL_ON/UI/MainPage.cs
+++ b/HDL_ON/UI/MainPage.cs
@@ -25,7 +25,7 @@
         /// <summary>
         /// 鐗堟湰鍙�
         /// </summary>
-        public static string VersionString = "1.2.1012";
+        public static string VersionString = "1.2.1013";
         ///// <summary>
         ///// 瀹㈡埛绔被鍨�
         ///// </summary>
diff --git a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
index e936a60..7de95a3 100644
--- a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
+++ b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
@@ -582,6 +582,25 @@
             //    },
             //});
 
+
+            FunctionList.List.Functions.Add(new Function()
+            {
+                spk = SPK.HvacAirFreshJinmao,
+                name = "娴嬭瘯閲戣寕鏂伴",
+                attributes = new List<FunctionAttributes>()
+                {
+                    new FunctionAttributes(){ key = "on_off",curValue= "on",state = "on" },
+                    new FunctionAttributes(){ key = "mode",curValue= "humidification",state = "humidification" ,value = new List<string>(){ "humidification", "fan" } },
+                    new FunctionAttributes(){ key = "energy",curValue= "true",state = "true" ,value = new List<string>(){ "true", "false" } },
+                    new FunctionAttributes(){ key = "fan",curValue= "level_1",state = "level_1" ,value = new List<string>(){ "level_1", "level_2", "level_3","auto" } },
+                    new FunctionAttributes(){ key = "humidity",curValue= "0",state = "0" ,value = new List<string>(){  },min = 0,max = 100 },
+                    new FunctionAttributes(){ key = "indoor_temp",curValue= "26",state = "26" ,value = new List<string>(){  },min = 0,max = 100 },
+                    new FunctionAttributes(){ key = "indoor_humidity",curValue= "0",state = "0" ,value = new List<string>(){  },min = 0,max = 100 },
+                    new FunctionAttributes(){ key = "filter_remain",curValue= "0",state = "0" ,value = new List<string>(){  },min = 0,max = 100 },
+                    new FunctionAttributes(){ key = "filter_timeout",curValue= "false",state = "false" ,value = new List<string>(){ "true", "false"  }},
+                },
+            });
+
             //FunctionList.List.Functions.Add(new Function()
             //{
             //    spk = SPK.SensorGas,
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
index 4b91725..4d390cb 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
@@ -59,6 +59,7 @@
                 case SPK.CurtainTrietex:
                 //绌鸿皟
                 case SPK.AcStandard:
+                case SPK.HvacAC:
                 //鍦扮儹
                 case SPK.FloorHeatStandard:
                 case SPK.HvacFloorHeat:
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
index 5173eb6..02d31f8 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
@@ -146,7 +146,7 @@
                                 case SPK.CurtainRoller:
                                 case SPK.CurtainTrietex:
                                 //绌鸿皟
-                                case SPK.AcStandard:
+                                case SPK.AcStandard:case SPK.HvacAC:
                                 //鍦扮儹
                                 case SPK.HvacFloorHeat:case SPK.FloorHeatStandard:
                                 //鏂伴
@@ -978,6 +978,7 @@
                                     }
                                     break;
                                 case SPK.AcStandard:
+                                case SPK.HvacAC:
                                     {
                                         string on_off = GetKeyValue("on_off", dicList);
                                         string set_temp = GetKeyValue("set_temp", dicList);
@@ -1436,6 +1437,7 @@
                     }
                     break;
                 case SPK.AcStandard:
+                case SPK.HvacAC:
                     {
                         foreach (var dic in dicList)
                         {
@@ -1990,6 +1992,7 @@
                                     }
                                     break;
                                 case SPK.AcStandard:
+                                case SPK.HvacAC:
                                 case SPK.FloorHeatStandard:case SPK.HvacFloorHeat:
                                     {
                                         foreach (var dic in dicList)
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
index bffa5c8..d521916 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
@@ -335,6 +335,7 @@
                     }
                     break;
                 case SPK.AcStandard:
+                case SPK.HvacAC:
                     {
                         strPath = "LogicIcon/airconditionerlogic.png";
                     }
@@ -407,7 +408,7 @@
                 deviceStrTypeList.Add(Language.StringByID(StringId.Curtain));
             }
 
-            var ac = deviceList.Find((device) => device.spk == SPK.AcStandard);
+            var ac = deviceList.Find((device) => device.spk == SPK.AcStandard || device.spk == SPK.HvacAC);
             if (ac != null)
             {
                 deviceStrTypeList.Add(Language.StringByID(StringId.AC));
@@ -476,6 +477,7 @@
             else if (deviceType == Language.StringByID(StringId.AC))
             {
                 functionTypeList.Add(SPK.AcStandard);
+                functionTypeList.Add(SPK.HvacAC);
             }
             else if (deviceType == Language.StringByID(StringId.FloorHeating))
             {
@@ -532,8 +534,8 @@
                         deviceTypeList.Add(SPK.CurtainSwitch);
                         deviceTypeList.Add(SPK.CurtainRoller);
                         deviceTypeList.Add(SPK.CurtainTrietex);
-                        deviceTypeList.Add(SPK.AcStandard); deviceTypeList.Add(SPK.HvacAirFresh);
-                        deviceTypeList.Add(SPK.AirFreshStandard);
+                        deviceTypeList.Add(SPK.AcStandard); deviceTypeList.Add(SPK.HvacAC);
+                        deviceTypeList.Add(SPK.AirFreshStandard); deviceTypeList.Add(SPK.HvacAirFresh);
                         deviceTypeList.Add(SPK.FloorHeatStandard); deviceTypeList.Add(SPK.HvacFloorHeat);
                         deviceTypeList.Add(SPK.SensorSmoke);
                         deviceTypeList.Add(SPK.SensorWater);
@@ -568,9 +570,9 @@
                         deviceTypeList.Add(SPK.CurtainSwitch);
                         deviceTypeList.Add(SPK.CurtainRoller);
                         deviceTypeList.Add(SPK.CurtainTrietex);
-                        deviceTypeList.Add(SPK.AcStandard); deviceTypeList.Add(SPK.HvacAirFresh);
+                        deviceTypeList.Add(SPK.AcStandard); deviceTypeList.Add(SPK.HvacAC);
                         deviceTypeList.Add(SPK.FloorHeatStandard); deviceTypeList.Add(SPK.HvacFloorHeat);
-                        deviceTypeList.Add(SPK.AirFreshStandard);
+                        deviceTypeList.Add(SPK.AirFreshStandard); deviceTypeList.Add(SPK.HvacAirFresh);
                     }
                     break;
             }
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs
index 51ee8b6..dcbac35 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs
@@ -132,6 +132,7 @@
                     }
                     break;
                 case SPK.AcStandard:
+                case SPK.HvacAC:
                     {
                         #region 鐣岄潰
                         ///寮�鍏�
@@ -437,6 +438,7 @@
                                 }
                                 break;
                             }
+                        case SPK.HvacAC:
                         case SPK.AcStandard:
                         case SPK.FloorHeatStandard:case SPK.HvacFloorHeat:
                             {
diff --git a/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AirFreshControlPage.cs b/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AirFreshControlPage.cs
index e0a5cfe..283d38c 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AirFreshControlPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AirFreshControlPage.cs
@@ -37,6 +37,11 @@
         /// </summary>
         private NormalViewControl btnFilterScreen = null;
         /// <summary>
+        /// 婊ょ綉浣跨敤瓒呮椂鎻愮ず
+        /// </summary>
+        FrameLayout filterScreenTipView;
+
+        /// <summary>
         /// 鑺傝兘/鑸掗�傚浘鏍囨帶浠�
         /// </summary>
         private IconViewControl btnMode1 = null;
@@ -60,6 +65,14 @@
         /// 椋庨�熸枃鏈帶浠�
         /// </summary>
         private NormalViewControl btnFanView = null;
+        /// <summary>
+        /// 婀垮害璁剧疆鍥炬爣鎺т欢
+        /// </summary>
+        private IconViewControl btnSetHumidity = null;
+        /// <summary>
+        /// 婀垮害璁剧疆鏂囨湰鎺т欢
+        /// </summary>
+        private NormalViewControl btnSetHumidityView = null;
         /// <summary>
         /// 寮�鍏冲浘鏍�
         /// </summary>
@@ -186,6 +199,52 @@
             btnFilterScreen.TextColor = CSS_Color.MainColor;
             this.FrameWhiteCentet1.AddChidren(btnFilterScreen);
 
+            #region 婊ょ綉浣跨敤瓒呮椂鎻愰啋
+            filterScreenTipView = new FrameLayout()
+            {
+                Y = btnFilterScreen.Bottom + Application.GetRealWidth(8),
+                Gravity = Gravity.CenterHorizontal,
+                Width = Application.GetRealWidth(295),
+                Height = Application.GetRealHeight(28),
+                Radius = (uint)Application.GetRealWidth(4),
+                BackgroundColor = 0xFFffE8E8,
+                Visible = false,
+            };
+            this.FrameWhiteCentet1.AddChidren(filterScreenTipView);
+
+            Button btnFilterScreenUseTip = new Button()
+            {
+                X = Application.GetRealWidth(8),
+                Gravity = Gravity.CenterVertical,
+                Width = Application.GetRealWidth(20),
+                Height = Application.GetRealWidth(20),
+                UnSelectedImagePath = "FunctionIcon/AirFresh/btnInfoIcon.png"
+            };
+            filterScreenTipView.AddChidren(btnFilterScreenUseTip);
+
+            Button btnFilterScreenUseTipText = new Button()
+            {
+                X = Application.GetRealWidth(32),
+                Width = Application.GetRealWidth(340),
+                TextAlignment = TextAlignment.CenterLeft,
+                TextColor = 0xFFFF4747,
+                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+            };
+            if(Language.CurrentLanguage == "Chinese")
+            {
+                btnFilterScreenUseTipText.Text = "杩囨护缃戜娇鐢ㄨ秴鏃�";
+            }
+            else
+            {
+                btnFilterScreenUseTipText.Text = "Filter use timeout";
+            }
+            filterScreenTipView.AddChidren(btnFilterScreenUseTipText);
+
+
+            #endregion
+
+
+            #region 鑺傝兘
             //鑺傝兘/鑸掗�傚浘鏍�
             this.btnMode1 = new IconViewControl(28);
             btnMode1.X = Application.GetRealWidth(42);
@@ -197,17 +256,20 @@
                 this.ShowMode1SelectView();
             };
             //鑺傝兘/鑸掗�傛枃鏈�
-            this.btnMode1View = new NormalViewControl(this.FrameWhiteCentet1.Width / 3, Application.GetRealHeight(18), false);
+            this.btnMode1View = new NormalViewControl(Application.GetRealWidth(72), Application.GetRealHeight(18), false);
+            btnMode1View.X = Application.GetRealWidth(21);
             btnMode1View.Y = btnMode1.Bottom + Application.GetRealHeight(6);
             btnMode1View.TextAlignment = TextAlignment.Center;
             btnMode1View.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
             btnMode1View.TextColor = CSS_Color.TextualColor;
             this.FrameWhiteCentet1.AddChidren(btnMode1View);
+            #endregion
 
+            #region 妯″紡
             //閫氶/鍔犳箍鍥炬爣
             this.btnMode2 = new IconViewControl(28);
             btnMode2.Y = btnMode1.Y;
-            btnMode2.Gravity = Gravity.CenterHorizontal;
+            btnMode2.X = Application.GetRealWidth(114);
             this.FrameWhiteCentet1.AddChidren(btnMode2);
             btnMode2.ButtonClickEvent += (sender, e) =>
             {
@@ -215,17 +277,20 @@
                 this.ShowMode2SelectView();
             };
             //閫氶/鍔犳箍鏂囨湰
-            this.btnMode2View = new NormalViewControl(this.FrameWhiteCentet1.Width / 3, Application.GetRealHeight(18), false);
+            this.btnMode2View = new NormalViewControl(Application.GetRealWidth(72), Application.GetRealHeight(18), false);
             btnMode2View.X = btnMode1View.Right;
             btnMode2View.Y = btnMode2.Bottom + Application.GetRealHeight(6);
             btnMode2View.TextAlignment = TextAlignment.Center;
             btnMode2View.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
             btnMode2View.TextColor = CSS_Color.TextualColor;
             this.FrameWhiteCentet1.AddChidren(btnMode2View);
+            #endregion
 
+            #region 椋庨��
             //椋庨�熷浘鏍�
             this.btnFan = new IconViewControl(28);
-            btnFan.X = this.FrameWhiteCentet1.Width - btnMode1.X - btnFan.IconSize;
+            //btnFan.X = this.FrameWhiteCentet1.Width - btnMode1.X - btnFan.IconSize;
+            btnFan.X = Application.GetRealWidth(186);
             btnFan.Y = btnMode1.Y;
             this.FrameWhiteCentet1.AddChidren(btnFan);
             btnFan.ButtonClickEvent += (sender, e) =>
@@ -234,13 +299,38 @@
                 this.ShowFanSelectView();
             };
             //椋庨�熸枃鏈�
-            this.btnFanView = new NormalViewControl(this.FrameWhiteCentet1.Width / 3, Application.GetRealHeight(18), false);
+            this.btnFanView = new NormalViewControl(Application.GetRealWidth(72), Application.GetRealHeight(18), false);
             btnFanView.X = btnMode2View.Right;
             btnFanView.Y = btnFan.Bottom + Application.GetRealHeight(6);
             btnFanView.TextAlignment = TextAlignment.Center;
             btnFanView.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
             btnFanView.TextColor = CSS_Color.TextualColor;
             this.FrameWhiteCentet1.AddChidren(btnFanView);
+            #endregion
+
+
+            #region 婀垮害
+            //婀垮害鍥炬爣
+            this.btnSetHumidity = new IconViewControl(28);
+            btnSetHumidity.X = this.FrameWhiteCentet1.Width - btnMode1.X - btnSetHumidity.IconSize;
+            btnSetHumidity.Y = btnMode1.Y;
+            btnSetHumidity.UnSelectedImagePath = "FunctionIcon/AirFresh/HumiIcon.png";
+            this.FrameWhiteCentet1.AddChidren(btnSetHumidity);
+
+            btnSetHumidity.ButtonClickEvent += (sender, e) =>
+            {
+                LoadEditDialog_Humi();
+            };
+            //婀垮害鏂囨湰
+            this.btnSetHumidityView = new NormalViewControl(Application.GetRealWidth(72), Application.GetRealHeight(18), false);
+            btnSetHumidityView.X = btnFanView.Right;
+            btnSetHumidityView.Y = btnSetHumidity.Bottom + Application.GetRealHeight(6);
+            btnSetHumidityView.TextAlignment = TextAlignment.Center;
+            btnSetHumidityView.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
+            btnSetHumidityView.TextColor = CSS_Color.TextualColor;
+            btnSetHumidityView.Text = "0%";
+            this.FrameWhiteCentet1.AddChidren(btnSetHumidityView);
+            #endregion
 
             //寮�鍏冲浘鏍�
             this.btnSwitch = new IconViewControl(32);
@@ -329,7 +419,7 @@
             //鑿滃崟鎺т欢(妯″紡)
             var menuContr = new DialogTitleMenuControl(2, Language.StringByID(StringId.Mode));
             menuContr.Y = Application.GetRealHeight(277);
-            menuContr.Gravity = Gravity.CenterHorizontal;
+            menuContr.X = Application.GetRealWidth(72);
             menuContr.Width = Application.GetRealWidth(160);
             menuContr.Height = Application.GetRealHeight(154);
             dialogBody.AddChidren(menuContr);
@@ -355,6 +445,132 @@
 
         #endregion
 
+
+        /// <summary>
+        /// 鍔犺浇婀垮害閫夋嫨寮圭獥
+        /// </summary>
+        /// <param name="function"></param>
+        /// <param name="btn"></param>
+        void LoadEditDialog_Humi()
+        {
+            List<string> pickerItems = new List<string>();
+
+            Dialog dialog = new Dialog();
+
+            var pView = new FrameLayout()
+            {
+                BackgroundColor = CSS_Color.DialogTransparentColor1,
+            };
+            dialog.AddChidren(pView);
+
+            var optionBaseView = new FrameLayout()
+            {
+                Y = Application.GetRealHeight(456 - 60),
+                Gravity = Gravity.CenterHorizontal,
+                Width = Application.GetRealWidth(343),
+                Height = Application.GetRealHeight(260),
+                AnimateSpeed = 0.3f,
+                Animate = Animate.DownToUp,
+                BackgroundColor = CSS_Color.MainBackgroundColor,
+                Radius = (uint)Application.GetRealWidth(12),
+            };
+            pView.AddChidren(optionBaseView);
+
+            var topView = new FrameLayout()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Width = Application.GetRealWidth(343),
+                Height = Application.GetRealHeight(40),
+                BackgroundColor = CSS_Color.MainBackgroundColor,
+                Radius = (uint)Application.GetRealWidth(12),
+            };
+            optionBaseView.AddChidren(topView);
+            topView.AddChidren(new Button() { Y = Application.GetRealHeight(39), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.DividingLineColor });
+
+            var btnTilteText = new Button()
+            {
+                Width = Application.GetRealWidth(200),
+                Gravity = Gravity.CenterHorizontal,
+                TextAlignment = TextAlignment.Center,
+                TextSize = CSS_FontSize.SubheadingFontSize,
+                IsBold = true,
+                TextColor = CSS_Color.FirstLevelTitleColor,
+            };
+            if(Language.CurrentLanguage == "Chinese")
+            {
+                btnTilteText.Text = "婀垮害璁惧畾";
+            }
+            else
+            {
+                btnTilteText.Text = "Humidity setting";
+            }
+            topView.AddChidren(btnTilteText);
+
+            var btnCancel = new Button()
+            {
+                X = Application.GetRealWidth(21),
+                Width = Application.GetRealWidth(100),
+                TextAlignment = TextAlignment.CenterLeft,
+                TextColor = CSS_Color.PromptingColor1,
+                TextSize = CSS_FontSize.TextFontSize,
+                TextID = StringId.Cancel,
+            };
+            topView.AddChidren(btnCancel);
+
+            var btnConfrim = new Button()
+            {
+                Width = Application.GetRealWidth(320),
+                TextAlignment = TextAlignment.CenterRight,
+                TextColor = CSS_Color.MainColor,
+                TextSize = CSS_FontSize.TextFontSize,
+                TextID = StringId.Confirm,
+            };
+            topView.AddChidren(btnConfrim);
+
+            UIPickerView uIPickerView = new UIPickerView()
+            {
+                Y = Application.GetRealHeight(40),
+                Height = Application.GetRealHeight(210),
+                Radius = (uint)Application.GetRealWidth(12),
+            };
+            for (int i = 0; i <= 100; i ++)
+            {
+                pickerItems.Add(i.ToString());
+            }
+            uIPickerView.setNPicker(pickerItems, null, null);
+            optionBaseView.AddChidren(uIPickerView);
+            //uIPickerView.setCurrentItems(pickerItems.IndexOf(trait.value.ToString()), 4, 5);
+
+            string selectItem = pickerItems[0];
+            //if (pickerItems.Contains(trait.value + trait.GetUintString()))
+            //{
+            //    selectItem = trait.value.ToString() + trait.GetUintString();
+            //}
+
+            dialog.Show();
+
+            pView.MouseUpEventHandler = (sender, e) => {
+                dialog.Close();
+            };
+
+            btnCancel.MouseUpEventHandler = (sender, e) => {
+                dialog.Close();
+            };
+            uIPickerView.OnSelectChangeEvent = (int1, int2, int3) => {
+                selectItem = pickerItems[int1];
+            };
+            btnConfrim.MouseUpEventHandler = (sender, e) => {
+                dialog.Close();
+                this.SendOtherComand(this.btnSetHumidity, FunctionAttributeKey.Humidity, selectItem);
+                this.btnSetHumidityView.Text = selectItem + "%";
+                //btn.Text = selectItem;
+                //sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.OnOff).value = trait.value.ToString() ;
+                //trait.value = selectItem.Replace(trait.GetUintString(), "");
+            };
+
+        }
+
+
         #region 鈻� 鏄剧ず椋庨�熼�夋嫨鐣岄潰___________________
 
         /// <summary>
@@ -375,7 +591,7 @@
 
             //鑿滃崟鎺т欢(椋庨��)
             var menuContr = new DialogTitleMenuControl(3, Language.StringByID(StringId.FanSpeed));
-            menuContr.X = Application.GetRealWidth(209);
+            menuContr.X = Application.GetRealWidth(80+62);
             menuContr.Y = Application.GetRealHeight(231);
             menuContr.Width = Application.GetRealWidth(160);
             menuContr.Height = Application.GetRealHeight(199);
@@ -441,6 +657,12 @@
             this.btnSwitch.IsSelected = this.airFreshData.Open;
             //婊ょ綉鍓╀綑
             this.btnFilterScreen.Text = this.dicText["婊ょ綉鍓╀綑"] + this.airFreshData.Filter_remain + "%";
+
+            if(this.airFreshData.Filter_timeout)
+            {
+                this.filterScreenTipView.Visible = true;
+            }
+
 
             //瀹ゅ唴婀垮害
             if (this.btnHumidity.Text == string.Empty || Convert.ToDecimal(this.btnHumidity.Text) != this.airFreshData.Indoor_humidity)
@@ -516,6 +738,8 @@
             }
             this.btnFan.IsSelected = this.airFreshData.Open;
             this.btnFan.CanClick = this.airFreshData.Open;
+
+            this.btnSetHumidityView.Text = this.airFreshData.Humidity.ToString() + "%";
         }
 
         #endregion
@@ -581,6 +805,8 @@
             dic[FunctionAttributeKey.Energy] = this.airFreshData.Energy;
             //椋庨��
             dic[FunctionAttributeKey.FanSpeed] = this.airFreshData.Fan ;
+            //婀垮害
+            dic[FunctionAttributeKey.Humidity] = this.airFreshData.Humidity.ToString();
             //瀹ゅ唴娓╁害
             dic[FunctionAttributeKey.IndoorTemp] =  this.airFreshData.Indoor_temp.ToString();
             ///瀹ゅ唴婀垮害
@@ -641,6 +867,14 @@
                         this.airFreshData.Filter_remain = Convert.ToInt32(data.state);
                     }
                 }
+                //杩囨护缃戞槸鍚﹁秴鏃惰鍛�
+                else if (data.key == FunctionAttributeKey.FilterTimeout)
+                {
+                    if(data.state != string.Empty)
+                    {
+                        this.airFreshData.Filter_timeout = Convert.ToBoolean(data.state);
+                    }
+                }
             }
         }
 
@@ -685,6 +919,10 @@
             /// 鍓╀綑婊ょ綉(%)
             /// </summary>
             public int Filter_remain = 0;
+            /// <summary>
+            /// 杩囨护缃戞槸鍚﹁秴鏃惰鍛�
+            /// </summary>
+            public bool Filter_timeout = false;
         }
 
         #endregion
diff --git a/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddInputPage.cs b/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddInputPage.cs
index 969d913..167b453 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddInputPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddInputPage.cs
@@ -86,7 +86,7 @@
             functionListView = new VerticalScrolViewLayout()
             {
                 Y = showdFunctionTypeRow.Bottom,
-                Height = Application.GetRealHeight(530),
+                Height = Application.GetRealHeight(530-60),
                 BackgroundColor = CSS_Color.BackgroundColor,
             };
             bodyView.AddChidren(functionListView);
@@ -168,7 +168,8 @@
                     switch(function.spk)
                     {
                         case SPK.SensorWater:
-                            inKey = "";
+                            inKey = "alarm_status";
+                            inValue = "alarm";
                             break;
                         case SPK.SensorPir:
                             inKey = "people_status";

--
Gitblit v1.8.0