From 23fb45dd846ed8b62304c408c6bbe64265d4ac8b Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期五, 20 十二月 2019 18:57:16 +0800
Subject: [PATCH] 代码合并

---
 ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu2_3.png                                  |    0 
 ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockAddDevice.cs                                  |   40 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/LightSelected.png                                       |    0 
 ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png                                |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/RepeaterZigbeeSelected.png                                |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs                                 |   80 
 ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs                                                   |   17 
 ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayHistoryFirmwareVersionForm.cs               |    2 
 ZigbeeApp/Shared/DLL/Android/Shared.Droid.HDLWidget.dll                                             |    0 
 ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png                                |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/AirConditionerZbGatewaySelected.png                       |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu1_1.png                                    |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorDoorWindowSelected.png                            |    0 
 ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png                                |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Room/ItemSelected.png                                            |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Relay/RelayThreeLoadBackLightSettionForm.cs                |   12 
 ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu2_2.png                                    |    0 
 ZigbeeApp/Shared/Phone/Device/Category/SelectScene.cs                                               |   13 
 ZigbeeApp/Shared/Phone/ZigBee/Device/DoorLock.cs                                                    |  149 +
 ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/Contents.json                                 |  368 -
 ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu1_5.png                                    |    0 
 ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicCommunalPage.cs                          |   28 
 ZigbeeApp/Shared/Phone/UserCenter/Member/AddMemberByIdForm.cs                                       |    4 
 ZigbeeApp/Shared/Phone/Device/Room/RoomManagement.cs                                                |    2 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/IntelligentLocksH06CSelected.png                        |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/AirConditionerEpointSelected.png                          |    0 
 ZigbeeApp/Shared/Phone/UserCenter/SharedContent/AddNewSharedContentForm.cs                          |   38 
 ZigbeeApp/Home.Ios/Entitlements.plist                                                               |    2 
 ZigbeeApp/Shared/Phone/Device/Logic/LogicDevicePage.cs                                              |   55 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorCarbonMonoxideSelected.png                          |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/RepeaterSelected.png                                      |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DryContactSelected.png                                  |    0 
 ZigbeeApp/Shared/Phone/Device/CommonForm/DeviceInfoRow.cs                                           |   10 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ConverterZb485Selected.png                              |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerSelected.png                              |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DimmableLightOneLoadSelected.png                        |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/ColorLightSelected.png                                    |    0 
 ZigbeeApp/Shared/DLL/Android/Shared.Droid.dll                                                       |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorFireSelected.png                                    |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Password/EditorAccountPasswordForm.cs                             |   10 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorHumiditySelected.png                                |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelFourSelected.png                             |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorTemperatureHumiditySelected.png                   |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Password/ForgotSecondaryPasswordForm.cs                           |    2 
 ZigbeeApp/Shared/Phone/Device/Room/EditRoom.cs                                                      |   27 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorInfraredSelected.png                                |    0 
 ZigbeeApp/Shared/Phone/Device/Account/AccountLogic.cs                                               |   11 
 ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayFirmwareUpdateForm.cs                       |    8 
 ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu1_3.png                                  |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelTwoSelected.png                                |    0 
 ZigbeeApp/Shared/Phone/ZigBee/Device/Panel.cs                                                       |   11 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs                                    |  158 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/AddDeviceTypeListForm.cs                         |    5 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/BottomMenuSelectForm.cs                           |    5 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/AirConditionerEpoint.png                                  |    0 
 ZigbeeApp/Shared/Phone/Device/CommonForm/FunctionIconButton.cs                                      |    6 
 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceGeneralInformationForm.cs                            |   12 
 ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png                                |    0 
 ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs                                                     |    9 
 ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs                                                     |   29 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelSelected.png                                   |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorPir.png                                           |    0 
 ZigbeeApp/Shared/DLL/IOS/Shared.IOS.dll                                                             |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Password/CheckNewEmailForm.cs                                     |    2 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorPirSelected.png                                   |    0 
 ZigbeeApp/Shared/Phone/Device/Room/RoomTemperatureSetting.cs                                        |    7 
 ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj                                                        |  159 +
 ZigbeeApp/Shared/Common/CommonPage.cs                                                               |    2 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalListControl.cs |    8 
 ZigbeeApp/Shared/Phone/Device/Logic/Send.cs                                                         |   64 
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UndistributeDoorlockUserPage.cs                          |  237 +
 ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionMainForm.cs                                  |   35 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Sensor.png                                              |    0 
 ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-20-ipad.png                              |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ColorLightSelected.png                                  |    0 
 ZigbeeApp/GateWay.Droid/Properties/AndroidManifest.xml                                              |    2 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindInfo.cs                                           |   92 
 ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-1024.png                                 |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerEpointSelected.png                        |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu1_4.png                                    |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorWaterSelected.png                                   |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirSwitchCloudContrSelected.png                         |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelOneSelected.png                                |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Room/ItemUnSelected_Black.png                                  |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/Sensor.png                                                |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu2_1.png                                    |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Room/AddBackground.png                                           |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/RelayEpointSelected.png                                   |    0 
 ZigbeeApp/Shared/Phone/Device/CommonForm/FunctionButton.cs                                          |   10 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/AirSwitchSelected.png                                     |    0 
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs                                      |  275 +
 ZigbeeApp/Home.Ios/Home.IOS.csproj                                                                  |  144 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SwitchSelected.png                                      |    0 
 ZigbeeApp/Shared/R.cs                                                                               |  123 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/MessageControls/ShowMsgControl.cs             |    4 
 ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu1_2.png                                  |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/LightSelected.png                                         |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/AirConditionerSelected.png                                |    0 
 ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-76.png                                   |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/CurtainAutoOpenSelected.png                               |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceHistoryFirmwareVersionForm.cs                        |    2 
 ZigbeeApp/Shared/Phone/Device/Category/CategoryAddScene.cs                                          |    2 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelThreeSelected.png                            |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelThreeSelected.png                              |    0 
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs                                    |  319 +
 ZigbeeApp/Home.Ios/Resources/Phone/Device/RelayThreeLoadSelected.png                                |    0 
 ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png                                |    0 
 ZigbeeApp/Shared/Phone/Device/CommonForm/SelectFunctionView.cs                                      |   31 
 ZigbeeApp/Shared/Phone/UserCenter/SharedContent/LookSharedContentForm.cs                            |   38 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ConverterSelected.png                                   |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Instruct/SensorTemperatureHumidity.png                           |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Resourse/FirmwareUpdateResourse.cs                     |   37 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Instruct/SensorPir.png                                         |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlACZbGatewayUpdateLogic.cs                     |  498 +++
 ZigbeeApp/Shared/Phone/UserCenter/Residence/LookRoomSettionForm.cs                                  |   54 
 ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu2_2.png                                  |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu2_5.png                                    |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerZbGatewaySelected.png                     |    0 
 ZigbeeApp/Shared/Common/Room.cs                                                                     |  140 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/AirSwitchCloudContrSelected.png                           |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/IntelligentLocksSelected.png                              |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetStatuSelectCurtainForm.cs                       |    2 
 ZigbeeApp/GateWay.Droid/Assets/Language.ini                                                         |   41 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorSelected.png                                        |    0 
 ZigbeeApp/Shared/Phone/UserCenter/UserMain/UserMainForm.cs                                          |    1 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorFireSelected.png                                  |    0 
 ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-20@2x-ipad.png                           |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/SwitchSelected.png                                        |    0 
 ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png                                |    0 
 ZigbeeApp/Shared/Phone/Device/Category/Category.cs                                                  | 1467 ++++++-----
 ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorTemperatureSelected.png                             |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorTemperatureHumidity.png                           |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/Socket1Selected.png                                       |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Password/CheckNewPhoneForm.cs                                     |    2 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RepeaterSelected.png                                    |    0 
 ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-29@2x-ipad.png                           |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Room/ItemUnSelected_Black.png                                    |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFirmwareUpdateForm.cs                                |    8 
 ZigbeeApp/Shared/Phone/UserView/UserPage.cs                                                         |    4 
 ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png                                |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelBackLightSettionForm.cs                         |   44 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Instruct/SensorTemperatureHumidity.png                         |    0 
 ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-29-ipad.png                              |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu2_5.png                                  |    0 
 ZigbeeApp/Shared/DLL/IOS/Shared.IOS.TBL.dll                                                         |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindCommonLayout.cs                                   |    2 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/DimmableLightSelected.png                                 |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu1_3.png                                    |    0 
 ZigbeeApp/Shared/Phone/Device/CommonForm/DeviceInfoEditRow.cs                                       |    4 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelFourSelected.png                               |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs                               |    2 
 ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu1_1.png                                  |    0 
 ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png                                |    0 
 ZigbeeApp/Shared/Phone/Device/CommonForm/RoomView.cs                                                |   21 
 ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs                                            |   60 
 ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/ACZbGatewayUpdateMenuForm.cs                |   15 
 ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu2_4.png                                    |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelTwoSelected.png                              |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainAutoOpenSelected.png                             |    0 
 ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-40.png                                   |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/RelaySelected.png                                         |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/CurtainSiphonateSelected.png                              |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Abount/AbountForm.cs                                              |    8 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorDoorWindowSelected.png                              |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/NormalSelectControl.cs       |   23 
 ZigbeeApp/Shared/Phone/Device/CommonForm/ButtonLineForm.cs                                          |   41 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelayThreeLoadSelected.png                              |    0 
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs                                        |   12 
 ZigbeeApp/Shared/Phone/Device/Account/AccountForgetPWD.cs                                           |   10 
 ZigbeeApp/Shared/Phone/Device/Room/RoomHumiditySetting.cs                                           |   18 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/BottomItemSelectForm.cs                           |    2 
 ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png                                |    0 
 ZigbeeApp/Shared/Phone/Device/CommonForm/RoomMainView.cs                                            |    4 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/SensorTemperatureHumidityForm.cs                 |   98 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/IMessageCommon.cs                               |    4 
 ZigbeeApp/Shared/Phone/UserView/LoginLoading.cs                                                     |   88 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainSiphonateSelected.png                            |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerEpoint.png                                |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu2_1.png                                  |    0 
 ZigbeeApp/Shared/Phone/Device/CommonForm/LeftIconButtonRow.cs                                       |   10 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs                        |   42 
 ZigbeeApp/Shared/Shared.projitems                                                                   |    4 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelColorSelectForm.cs                              |   10 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/DimmableLightOneLoadSelected.png                          |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs                                       |   15 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/ConverterZb485Selected.png                                |    0 
 ZigbeeApp/Shared/Phone/Device/CommonForm/RoomNoNameMainView.cs                                      |    3 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Room/ItemSelected.png                                          |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs                                      |   12 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorTemperatureHumidity.png                             |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Logo/2.jpg                                                     |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelOneSelected.png                              |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelayEpointSelected.png                                 |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Logo/2.jpg                                                       |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu1_5.png                                  |    0 
 ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-29.png                                   |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/Base/EditorCommonForm.cs                          |    6 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceUpdateLogic.cs                          |   26 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/ConverterSelected.png                                     |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu1_2.png                                    |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu2_4.png                                  |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DimmableLightSelected.png                               |    0 
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UnLockMethod.cs                                          |    4 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/DryContactSelected.png                                    |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorHumiditySelected.png                              |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Suggestion/FeedbackForm.cs                                        |    1 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/DeviceControls/DeviceObjectControl.cs         |   13 
 ZigbeeApp/Shared/Phone/Device/Category/SelectFloor.cs                                               |    4 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/ProgressFormBar.cs           |    8 
 ZigbeeApp/Shared/Phone/UserCenter/Password/ForgotAccountPasswordForm.cs                             |    2 
 ZigbeeApp/Shared/Phone/Device/Room/UnallocatedRoom.cs                                               |  288 +
 ZigbeeApp/GateWay.Droid/Assets/Phone/Room/AddBackground.png                                         |    0 
 ZigbeeApp/Shared/Phone/UserCenter/OtherParty/OtherPartyAccountMenuForm.cs                           |   14 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorWaterSelected.png                                 |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/BaseCommonControl/Base/TextInputBase.cs       |   43 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/SensorPirDirectionForm.cs                        |  111 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/ChooseKeyModePage.cs                                  |  384 ++
 ZigbeeApp/Home.Ios/Resources/Phone/Device/CurtainSelected.png                                       |    0 
 ZigbeeApp/Shared/Phone/Device/CommonForm/SelectZone.cs                                              |   12 
 ZigbeeApp/Shared/Phone/UserCenter/UserMain/UserInformationForm.cs                                   |    9 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainSelected.png                                     |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirSwitchSelected.png                                   |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelaySelected.png                                       |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorTemperatureSelected.png                           |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelSelected.png                                 |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Socket1Selected.png                                     |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorInfraredSelected.png                              |    0 
 ZigbeeApp/Home.Ios/Resources/Language.ini                                                           |   41 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorSelected.png                                      |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDevicePanelLogic.cs                           |    4 
 ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetAddMenuForm.cs                                  |   43 
 ZigbeeApp/Shared/Phone/UserCenter/Safety/CoercePswAddContactForm.cs                                 |    2 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorCarbonMonoxideSelected.png                        |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetStatuSelectLightForm.cs                         |    2 
 ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu2_3.png                                    |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/TextInputControls/TextInputControl.cs         |    9 
 ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png                              |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Instruct/SensorPir.png                                           |    0 
 ZigbeeApp/Shared/Common/Device.cs                                                                   |  154 +
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs                               |    8 
 ZigbeeApp/Shared/Phone/Device/Logic/AddLogicPage.cs                                                 |    5 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RepeaterZigbeeSelected.png                              |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/FrameLayoutControls/FrameRowControl.cs        |   51 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/UserCenterEnumCommon.cs                         |    6 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/IntelligentLocksH06CSelected.png                          |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorTemperatureHumiditySelected.png                     |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceListForm.cs                                    |    2 
 /dev/null                                                                                           |  703 -----
 ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorPirSelected.png                                     |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/IntelligentLocksSelected.png                            |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorPir.png                                             |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu1_4.png                                  |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Device/DoorLock/DoorLockScreeningTypeForm.cs                      |    3 
 ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetStatuSelectSwitchForm.cs                        |    2 
 ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/ACZbGatewayModuleUpdateForm.cs              |  221 +
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayUpdateLogic.cs                         |   21 
 256 files changed, 4,593 insertions(+), 3,084 deletions(-)

diff --git a/ZigbeeApp/GateWay.Droid/Assets/Language.ini b/ZigbeeApp/GateWay.Droid/Assets/Language.ini
index 4fa0bd3..0634da9 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Language.ini
+++ b/ZigbeeApp/GateWay.Droid/Assets/Language.ini
@@ -609,6 +609,7 @@
 5370=璇烽�夋嫨鐢ㄦ埛锛屽惁鍒欐棤娉曟墽琛屼笅涓�姝�.
 5371=璇烽�夋嫨鍦烘櫙锛屽惁鍒欐棤娉曟墽琛屼笅涓�姝�.
 5372=璇烽�夋嫨瀹夐槻妯″紡锛屽惁鍒欐棤娉曟墽琛屼笅涓�姝�.
+5373=鑷姩鍖栧凡鎵ц.
 
 
 
@@ -657,6 +658,8 @@
 10139=鎵嬫満鍙烽敊璇紝璇烽噸鏂拌緭鍏�
 10140=璇疯緭鍏ラ暱搴︿负6-13涓瓧绗︾殑瀵嗙爜
 10141=浣犲凡琚己鍒朵笅绾匡紒
+10142=鏂板瘑鐮佸拰鍘熷瘑鐮佷竴鑷�
+
 
 
 10150=鏀规埧闂村悕绉板凡瀛樺湪
@@ -791,9 +794,8 @@
 
 13600=娌″姛鑳� {\r\n} 璇峰厛娣诲姞
 13601=娌″満鏅� {\r\n} 璇峰厛娣诲姞
-
-
-
+13602=鏃�
+13603=鑾峰彇涓�...
 
 
 15000=瀵嗙爜闀垮害涓簕0}涓瓧绗�
@@ -1138,7 +1140,7 @@
 15378=褰╃伅
 15379=寮�鍚堝笜
 15380=杩愬姩浼犳劅鍣�
-15382=鏅鸿兘绌烘皵寮�鍏�
+15382=鏅鸿兘绌哄紑
 15383=纭畾鏄惁瑕佸仠姝㈠崌绾э紵
 15384=鍝嶅簲瓒呮椂,鍗囩骇澶辫触
 15385=缃戝叧绠$悊
@@ -1733,6 +1735,25 @@
 16004=鑾峰彇澶辫触
 16005=鏃犳硶璇嗗埆
 16006=姝e湪閲嶇疆鐢垫満
+16007=澶ч噾绌鸿皟妯″潡
+16008=娌℃湁鍙崌绾х殑绌鸿皟妯″潡
+16009=绌鸿皟鍗囩骇妯″潡
+16010=鑾峰彇绌鸿皟妯″潡鐗堟湰澶辫触
+16011=鍙戦�佸崌绾у懡浠ゅけ璐�
+16012=鐗堟湰鍙风浉鍚�,鍗囩骇澶辫触
+16013=鏍¢獙鐗堟湰鍙峰け璐�
+16014=妫�娴嬭澶囩増鏈�
+16015=鍝嶅簲瓒呮椂,妫�娴嬭澶囩増鏈け璐�
+16016=姝e湪鍙戦�佸崌绾у畬鎴愮殑鍛戒护
+16017=鍝嶅簲瓒呮椂,鍙戦�佸崌绾у畬鎴愮殑鍛戒护澶辫触
+16018=閲嶅伐绌鸿皟妯″潡
+16019=鎸囩ず鐏彉缁裤�侀棯鐑�
+16020=閽堝瓟寮忛噸缃寜閿�
+16021=淇″彿鍥炬爣蹇棯
+16022=淇″彿鍥炬爣
+16023=鎻愰啋
+16024=缁戝畾鎴愬姛锛佷笅娆′綘鍙互鐢ㄥ井淇0}璐﹀彿蹇�熺櫥褰曞暒
+16025=濂界殑
 
 ;鈽呪槄鈽呪槄涓嬮潰杩欎簺鏄帴鍙g殑杩斿洖淇℃伅缈昏瘧,浠�18000寮�濮嬧槄鈽呪槄鈽�
 18004=鎸囧畾缃戝叧宸茬粡琚粦瀹�
@@ -1745,7 +1766,7 @@
 18013=楠岃瘉鐮佸彂閫佸け璐�
 18015=璐﹀彿宸茬粡瀛樺湪
 18016=楠岃瘉鐮侀敊璇�
-18017=鏈彂閫侀獙璇佺爜鍒版璐﹀彿
+18017=楠岃瘉鐮佸凡澶辨晥
 18018=缁戝畾鐨勮处鍙蜂笉瀛樺湪
 18019=鎸囧畾璐﹀彿宸插瓨鍦�
 18022=楠岃瘉鐮佸彂閫佸け璐�
@@ -1803,7 +1824,10 @@
 21014=闀挎寜鍥剧ず鎸夐敭5绉掍互涓婏紝鎸囩ず鐏彉缁块棯鐑亄0}杩涘叆閰嶇綉鐘舵�侊紝缁跨伅鐔勭伃鍒欏叆缃戞垚鍔�
 ;绌鸿皟鍏ョ綉鎿嶄綔鎸囩ず
 21015=闀挎寜鍥剧ず鎸夐敭5绉掍互涓婏紝鎸囩ず鐏瘂0}鍙樼豢闂儊,杩涘叆閰嶇綉鐘舵�亄0}缁跨伅姣�5绉掗棯鐑佷竴娆″垯鍏ョ綉鎴愬姛
-
+;pir浼犳劅鍣ㄥ叆缃戞搷浣滄寚绀�
+21016=闀挎寜鍥剧ず鎸夐敭5绉掍互涓婏紝鎸囩ず鐏彉缁裤�亄0}闂儊杩涘叆閰嶇綉鐘舵�併�傜豢鐏唲鐏垯閰嶇綉鎴愬姛
+;娓╂箍搴︿紶鎰熷櫒鍏ョ綉鎿嶄綔鎸囩ず
+21017=闀挎寜鍥剧ず鎸夐敭5绉掍互涓婏紝淇″彿鍥炬爣{0}蹇棯锛� 杩涘叆閰嶇綉鐘舵�併�傚浘鏍囧父浜垯閰嶇綉鎴愬姛
 
 ;鈽呪槄鈽呪槄涓嬮潰杩欎簺鏄ā鍧桰D鐨勭炕璇戝悕瀛�,浠�30000寮�濮嬧槄鈽呪槄鈽�
 30000=绱ф�ユ寜閽�
@@ -1845,9 +1869,10 @@
 40005=鏅鸿兘闂ㄩ攣
 40006=绌鸿皟
 40007=涓户鍣�
-40008=鏅鸿兘绌烘皵寮�鍏�
+40008=鏅鸿兘绌哄叧
 40009=杞崲鍣�
 40010=褰╃伅
 40011=娓╂箍搴︿紶鎰熷櫒
 40012=娓╁害浼犳劅鍣�
-40013=婀垮害浼犳劅鍣�
\ No newline at end of file
+40013=婀垮害浼犳劅鍣�
+40014=骞叉帴鐐�
\ No newline at end of file
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerEpoint.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerEpoint.png
index 2f09584..f986f11 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerEpoint.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerEpoint.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerEpointSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerEpointSelected.png
index 2d86133..080812f 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerEpointSelected.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerEpointSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerSelected.png
new file mode 100755
index 0000000..4d303e2
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerZbGatewaySelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerZbGatewaySelected.png
new file mode 100755
index 0000000..4d303e2
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerZbGatewaySelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirSwitchCloudContrSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirSwitchCloudContrSelected.png
new file mode 100755
index 0000000..2f9ec35
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirSwitchCloudContrSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirSwitchSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirSwitchSelected.png
new file mode 100755
index 0000000..2f9ec35
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirSwitchSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelFourSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelFourSelected.png
new file mode 100755
index 0000000..c418fcf
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelFourSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelOneSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelOneSelected.png
new file mode 100755
index 0000000..25e7ea1
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelOneSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelSelected.png
new file mode 100755
index 0000000..c418fcf
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelThreeSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelThreeSelected.png
new file mode 100755
index 0000000..013bd0d
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelThreeSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelTwoSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelTwoSelected.png
new file mode 100755
index 0000000..930bf30
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelTwoSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ColorLightSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ColorLightSelected.png
new file mode 100755
index 0000000..563072b
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ColorLightSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ConverterSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ConverterSelected.png
new file mode 100755
index 0000000..2c98858
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ConverterSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ConverterZb485Selected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ConverterZb485Selected.png
new file mode 100755
index 0000000..2c98858
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ConverterZb485Selected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainAutoOpenSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainAutoOpenSelected.png
new file mode 100755
index 0000000..2bbd7c1
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainAutoOpenSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainSelected.png
new file mode 100755
index 0000000..2bbd7c1
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainSiphonateSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainSiphonateSelected.png
new file mode 100755
index 0000000..2bbd7c1
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainSiphonateSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DimmableLightOneLoadSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DimmableLightOneLoadSelected.png
new file mode 100755
index 0000000..9927a96
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DimmableLightOneLoadSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DimmableLightSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DimmableLightSelected.png
new file mode 100755
index 0000000..9927a96
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DimmableLightSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DryContactSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DryContactSelected.png
new file mode 100755
index 0000000..c705daa
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DryContactSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/IntelligentLocksH06CSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/IntelligentLocksH06CSelected.png
new file mode 100755
index 0000000..1fb40e4
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/IntelligentLocksH06CSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/IntelligentLocksSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/IntelligentLocksSelected.png
new file mode 100755
index 0000000..1fb40e4
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/IntelligentLocksSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/LightSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/LightSelected.png
new file mode 100755
index 0000000..563072b
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/LightSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelayEpointSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelayEpointSelected.png
new file mode 100755
index 0000000..eb2794e
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelayEpointSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelaySelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelaySelected.png
new file mode 100755
index 0000000..4b33106
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelaySelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelayThreeLoadSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelayThreeLoadSelected.png
new file mode 100755
index 0000000..4b33106
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelayThreeLoadSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RepeaterSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RepeaterSelected.png
new file mode 100755
index 0000000..83a6cee
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RepeaterSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RepeaterZigbeeSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RepeaterZigbeeSelected.png
new file mode 100755
index 0000000..83a6cee
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RepeaterZigbeeSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Sensor.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Sensor.png
index 80a9bcb..8b3140e 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Sensor.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Sensor.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorCarbonMonoxideSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorCarbonMonoxideSelected.png
new file mode 100755
index 0000000..5d94caf
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorCarbonMonoxideSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorDoorWindowSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorDoorWindowSelected.png
new file mode 100755
index 0000000..18222cf
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorDoorWindowSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorFireSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorFireSelected.png
new file mode 100755
index 0000000..ed2e458
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorFireSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorHumiditySelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorHumiditySelected.png
new file mode 100755
index 0000000..339a2d2
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorHumiditySelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorInfraredSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorInfraredSelected.png
new file mode 100755
index 0000000..84f9243
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorInfraredSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorPir.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorPir.png
index 8b3140e..f4c9ead 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorPir.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorPir.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorPirSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorPirSelected.png
new file mode 100755
index 0000000..bccf5a9
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorPirSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorSelected.png
new file mode 100755
index 0000000..8e70ce3
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorTemperatureHumidity.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorTemperatureHumidity.png
new file mode 100755
index 0000000..34d07f9
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorTemperatureHumidity.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorTemperatureHumiditySelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorTemperatureHumiditySelected.png
new file mode 100755
index 0000000..273a304
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorTemperatureHumiditySelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorTemperatureSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorTemperatureSelected.png
new file mode 100755
index 0000000..310a744
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorTemperatureSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorWaterSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorWaterSelected.png
new file mode 100755
index 0000000..db71e68
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorWaterSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Socket1Selected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Socket1Selected.png
new file mode 100755
index 0000000..267e1a7
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Socket1Selected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SwitchSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SwitchSelected.png
new file mode 100755
index 0000000..2f9ec35
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SwitchSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Instruct/SensorPir.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Instruct/SensorPir.png
new file mode 100755
index 0000000..ea5bd7e
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Instruct/SensorPir.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Instruct/SensorTemperatureHumidity.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Instruct/SensorTemperatureHumidity.png
new file mode 100755
index 0000000..efc7f36
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Instruct/SensorTemperatureHumidity.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Logo/2.jpg b/ZigbeeApp/GateWay.Droid/Assets/Phone/Logo/2.jpg
new file mode 100755
index 0000000..c0c53ac
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Logo/2.jpg
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu1_1.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu1_1.png
new file mode 100755
index 0000000..e73c188
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu1_1.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu1_2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu1_2.png
new file mode 100755
index 0000000..b5dc978
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu1_2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu1_3.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu1_3.png
new file mode 100755
index 0000000..33f910b
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu1_3.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu1_4.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu1_4.png
new file mode 100755
index 0000000..9922753
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu1_4.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu1_5.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu1_5.png
new file mode 100755
index 0000000..47ae664
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu1_5.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu2_1.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu2_1.png
new file mode 100755
index 0000000..7eb3f1a
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu2_1.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu2_2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu2_2.png
new file mode 100755
index 0000000..6a44c5d
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu2_2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu2_3.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu2_3.png
new file mode 100755
index 0000000..7b6d109
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu2_3.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu2_4.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu2_4.png
new file mode 100755
index 0000000..6b0a53f
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu2_4.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu2_5.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu2_5.png
new file mode 100755
index 0000000..91b8619
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/MenuGroud/TopRightMenu2_5.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Room/AddBackground.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Room/AddBackground.png
new file mode 100755
index 0000000..0eca2b8
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Room/AddBackground.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Room/ItemSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Room/ItemSelected.png
index 526ab07..e4e9740 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Room/ItemSelected.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Room/ItemSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Room/ItemUnSelected_Black.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Room/ItemUnSelected_Black.png
index fb408e5..9e28cc9 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Room/ItemUnSelected_Black.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Room/ItemUnSelected_Black.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj b/ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj
index 9981784..9f7ee17 100644
--- a/ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj
+++ b/ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj
@@ -1308,6 +1308,165 @@
   <ItemGroup>
     <AndroidAsset Include="Assets\Phone\ZigeeLogic\progressbtn2.png" />
   </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Instruct\SensorPir.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Instruct\SensorTemperatureHumidity.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\SensorTemperatureHumidity.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\AirConditionerSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\MenuGroud\TopRightMenu1_1.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\MenuGroud\TopRightMenu1_2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\MenuGroud\TopRightMenu1_3.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\MenuGroud\TopRightMenu1_4.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\MenuGroud\TopRightMenu1_5.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\MenuGroud\TopRightMenu2_1.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\MenuGroud\TopRightMenu2_2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\MenuGroud\TopRightMenu2_3.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\MenuGroud\TopRightMenu2_4.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\MenuGroud\TopRightMenu2_5.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\AirConditionerZbGatewaySelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\AirSwitchCloudContrSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\AirSwitchSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\ButtonPanelFourSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\ButtonPanelOneSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\ButtonPanelSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\ButtonPanelThreeSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\ButtonPanelTwoSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\ColorLightSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\ConverterSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\ConverterZb485Selected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\CurtainAutoOpenSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\CurtainSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\CurtainSiphonateSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\DimmableLightOneLoadSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\DimmableLightSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\DryContactSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\IntelligentLocksH06CSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\IntelligentLocksSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\LightSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\RelayEpointSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\RelaySelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\RelayThreeLoadSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\RepeaterSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\RepeaterZigbeeSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\SensorCarbonMonoxideSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\SensorDoorWindowSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\SensorFireSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\SensorHumiditySelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\SensorInfraredSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\SensorPirSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\SensorSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\SensorTemperatureHumiditySelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\SensorTemperatureSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\SensorWaterSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\Socket1Selected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\SwitchSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Logo\2.jpg" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Room\AddBackground.png" />
+  </ItemGroup>
   <Import Project="..\Shared\Shared.projitems" Label="Shared" Condition="Exists('..\Shared\Shared.projitems')" />
   <Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
   <Import Project="..\packages\Xamarin.Android.Support.Annotations.26.0.2\build\MonoAndroid80\Xamarin.Android.Support.Annotations.targets" Condition="Exists('..\packages\Xamarin.Android.Support.Annotations.26.0.2\build\MonoAndroid80\Xamarin.Android.Support.Annotations.targets')" />
diff --git a/ZigbeeApp/GateWay.Droid/Properties/AndroidManifest.xml b/ZigbeeApp/GateWay.Droid/Properties/AndroidManifest.xml
index 9b115d9..2794d8d 100644
--- a/ZigbeeApp/GateWay.Droid/Properties/AndroidManifest.xml
+++ b/ZigbeeApp/GateWay.Droid/Properties/AndroidManifest.xml
@@ -1,5 +1,5 @@
 锘�<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hdl.home" android:versionCode="2019121601" android:installLocation="auto" android:versionName="1.0.19121601">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hdl.home" android:versionCode="2019122001" android:installLocation="auto" android:versionName="1.0.19122001">
 	<uses-sdk android:minSdkVersion="23" android:targetSdkVersion="26" />
 	<permission android:name="com.hdl.home.permission.JPUSH_MESSAGE" android:protectionLevel="signature" />
 	<uses-permission android:name="android.permission.WAKE_LOCK" />
diff --git a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/Contents.json b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/Contents.json
index c8e5caa..728e6c3 100755
--- a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/Contents.json
+++ b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/Contents.json
@@ -1,252 +1,122 @@
 {
-  "images": [
-    {
-      "filename": "icon-20@2x.png",
-      "size": "20x20",
-      "scale": "2x",
-      "idiom": "iphone"
-    },
-    {
-      "filename": "icon-20@3x.png",
-      "size": "20x20",
-      "scale": "3x",
-      "idiom": "iphone"
-    },
-    {
-      "filename": "icon-29@2x.png",
-      "size": "29x29",
-      "scale": "2x",
-      "idiom": "iphone"
-    },
-    {
-      "filename": "icon-29@3x.png",
-      "size": "29x29",
-      "scale": "3x",
-      "idiom": "iphone"
-    },
-    {
-      "filename": "icon-40@2x.png",
-      "size": "40x40",
-      "scale": "2x",
-      "idiom": "iphone"
-    },
-    {
-      "filename": "icon-40@3x.png",
-      "size": "40x40",
-      "scale": "3x",
-      "idiom": "iphone"
-    },
-    {
-      "filename": "icon-60@2x.png",
-      "size": "60x60",
-      "scale": "2x",
-      "idiom": "iphone"
-    },
-    {
-      "filename": "icon-60@3x.png",
-      "size": "60x60",
-      "scale": "3x",
-      "idiom": "iphone"
-    },
-    {
-      "filename": "icon-20-ipad.png",
-      "size": "20x20",
-      "scale": "1x",
-      "idiom": "ipad"
-    },
-    {
-      "filename": "icon-20@2x-ipad.png",
-      "size": "20x20",
-      "scale": "2x",
-      "idiom": "ipad"
-    },
-    {
-      "filename": "icon-29-ipad.png",
-      "size": "29x29",
-      "scale": "1x",
-      "idiom": "ipad"
-    },
-    {
-      "filename": "icon-29@2x-ipad.png",
-      "size": "29x29",
-      "scale": "2x",
-      "idiom": "ipad"
-    },
-    {
-      "filename": "icon-40.png",
-      "size": "40x40",
-      "scale": "1x",
-      "idiom": "ipad"
-    },
-    {
-      "filename": "icon-40@2x-1.png",
-      "size": "40x40",
-      "scale": "2x",
-      "idiom": "ipad"
-    },
-    {
-      "filename": "icon-83.5@2x.png",
-      "size": "83.5x83.5",
-      "scale": "2x",
-      "idiom": "ipad"
-    },
-    {
-      "filename": "icon-76.png",
-      "size": "76x76",
-      "scale": "1x",
-      "idiom": "ipad"
-    },
-    {
-      "filename": "icon-76@2x.png",
-      "size": "76x76",
-      "scale": "2x",
-      "idiom": "ipad"
-    },
-    {
-      "filename": "icon-1024.png",
-      "size": "1024x1024",
-      "scale": "1x",
-      "idiom": "ios-marketing"
-    },
-    {
-      "size": "60x60",
-      "scale": "2x",
-      "idiom": "car"
-    },
-    {
-      "size": "60x60",
-      "scale": "3x",
-      "idiom": "car"
-    },
-    {
-      "role": "notificationCenter",
-      "size": "24x24",
-      "subtype": "38mm",
-      "scale": "2x",
-      "idiom": "watch"
-    },
-    {
-      "role": "notificationCenter",
-      "size": "27.5x27.5",
-      "subtype": "42mm",
-      "scale": "2x",
-      "idiom": "watch"
-    },
-    {
-      "role": "companionSettings",
-      "size": "29x29",
-      "scale": "2x",
-      "idiom": "watch"
-    },
-    {
-      "role": "companionSettings",
-      "size": "29x29",
-      "scale": "3x",
-      "idiom": "watch"
-    },
-    {
-      "role": "appLauncher",
-      "size": "40x40",
-      "subtype": "38mm",
-      "scale": "2x",
-      "idiom": "watch"
-    },
-    {
-      "role": "appLauncher",
-      "size": "44x44",
-      "subtype": "40mm",
-      "scale": "2x",
-      "idiom": "watch"
-    },
-    {
-      "role": "appLauncher",
-      "size": "50x50",
-      "subtype": "44mm",
-      "scale": "2x",
-      "idiom": "watch"
-    },
-    {
-      "role": "quickLook",
-      "size": "86x86",
-      "subtype": "38mm",
-      "scale": "2x",
-      "idiom": "watch"
-    },
-    {
-      "role": "quickLook",
-      "size": "98x98",
-      "subtype": "42mm",
-      "scale": "2x",
-      "idiom": "watch"
-    },
-    {
-      "role": "quickLook",
-      "size": "108x108",
-      "subtype": "44mm",
-      "scale": "2x",
-      "idiom": "watch"
-    },
-    {
-      "size": "1024x1024",
-      "scale": "1x",
-      "idiom": "watch-marketing"
-    },
-    {
-      "size": "16x16",
-      "scale": "1x",
-      "idiom": "mac"
-    },
-    {
-      "size": "16x16",
-      "scale": "2x",
-      "idiom": "mac"
-    },
-    {
-      "size": "32x32",
-      "scale": "1x",
-      "idiom": "mac"
-    },
-    {
-      "size": "32x32",
-      "scale": "2x",
-      "idiom": "mac"
-    },
-    {
-      "size": "128x128",
-      "scale": "1x",
-      "idiom": "mac"
-    },
-    {
-      "size": "128x128",
-      "scale": "2x",
-      "idiom": "mac"
-    },
-    {
-      "size": "256x256",
-      "scale": "1x",
-      "idiom": "mac"
-    },
-    {
-      "size": "256x256",
-      "scale": "2x",
-      "idiom": "mac"
-    },
-    {
-      "size": "512x512",
-      "scale": "1x",
-      "idiom": "mac"
-    },
-    {
-      "size": "512x512",
-      "scale": "2x",
-      "idiom": "mac"
+    "images": [
+        {
+            "size": "20x20",
+            "idiom": "iphone",
+            "filename": "icon-20@2x.png",
+            "scale": "2x"
+        },
+        {
+            "size": "20x20",
+            "idiom": "iphone",
+            "filename": "icon-20@3x.png",
+            "scale": "3x"
+        },
+        {
+            "size": "29x29",
+            "idiom": "iphone",
+            "filename": "icon-29.png",
+            "scale": "1x"
+        },
+        {
+            "size": "29x29",
+            "idiom": "iphone",
+            "filename": "icon-29@2x.png",
+            "scale": "2x"
+        },
+        {
+            "size": "29x29",
+            "idiom": "iphone",
+            "filename": "icon-29@3x.png",
+            "scale": "3x"
+        },
+        {
+            "size": "40x40",
+            "idiom": "iphone",
+            "filename": "icon-40@2x.png",
+            "scale": "2x"
+        },
+        {
+            "size": "40x40",
+            "idiom": "iphone",
+            "filename": "icon-40@3x.png",
+            "scale": "3x"
+        },
+        {
+            "size": "60x60",
+            "idiom": "iphone",
+            "filename": "icon-60@2x.png",
+            "scale": "2x"
+        },
+        {
+            "size": "60x60",
+            "idiom": "iphone",
+            "filename": "icon-60@3x.png",
+            "scale": "3x"
+        },
+        {
+            "size": "20x20",
+            "idiom": "ipad",
+            "filename": "icon-20-ipad.png",
+            "scale": "1x"
+        },
+        {
+            "size": "20x20",
+            "idiom": "ipad",
+            "filename": "icon-20@2x-ipad.png",
+            "scale": "2x"
+        },
+        {
+            "size": "29x29",
+            "idiom": "ipad",
+            "filename": "icon-29-ipad.png",
+            "scale": "1x"
+        },
+        {
+            "size": "29x29",
+            "idiom": "ipad",
+            "filename": "icon-29@2x-ipad.png",
+            "scale": "2x"
+        },
+        {
+            "size": "40x40",
+            "idiom": "ipad",
+            "filename": "icon-40.png",
+            "scale": "1x"
+        },
+        {
+            "size": "40x40",
+            "idiom": "ipad",
+            "filename": "icon-40@2x.png",
+            "scale": "2x"
+        },
+        {
+            "size": "76x76",
+            "idiom": "ipad",
+            "filename": "icon-76.png",
+            "scale": "1x"
+        },
+        {
+            "size": "76x76",
+            "idiom": "ipad",
+            "filename": "icon-76@2x.png",
+            "scale": "2x"
+        },
+        {
+            "size": "83.5x83.5",
+            "idiom": "ipad",
+            "filename": "icon-83.5@2x.png",
+            "scale": "2x"
+        },
+        {
+            "size": "1024x1024",
+            "idiom": "ios-marketing",
+            "filename": "icon-1024.png",
+            "scale": "1x"
+        }
+    ],
+    "info": {
+        "version": 1,
+        "author": "icon.wuruihong.com"
     }
-  ],
-  "info": {
-    "version": 1,
-    "author": "xcode"
-  },
-  "properties": {
-    "pre-rendered": true
-  }
 }
\ No newline at end of file
diff --git a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-1024.png b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-1024.png
index 731e237..cd71df7 100755
--- a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-1024.png
+++ b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-1024.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-20-ipad.png b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-20-ipad.png
index a070305..7222c6b 100755
--- a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-20-ipad.png
+++ b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-20-ipad.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-20@2x-ipad.png b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-20@2x-ipad.png
index 0d936a9..dd8484b 100755
--- a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-20@2x-ipad.png
+++ b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-20@2x-ipad.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png
index 81c414d..f1e3ace 100755
--- a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png
+++ b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png
index 1a2b9bc..f369e54 100755
--- a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png
+++ b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-29-ipad.png b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-29-ipad.png
index 5ec7082..50e5d52 100755
--- a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-29-ipad.png
+++ b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-29-ipad.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-29.png b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-29.png
new file mode 100755
index 0000000..1d13130
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-29.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-29@2x-ipad.png b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-29@2x-ipad.png
index 60679d1..1e92c26 100755
--- a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-29@2x-ipad.png
+++ b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-29@2x-ipad.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png
index e4e59cd..4f727b0 100755
--- a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png
+++ b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png
index 13da1d2..e4e085e 100755
--- a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png
+++ b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-40.png b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-40.png
index 0d936a9..dd8484b 100755
--- a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-40.png
+++ b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-40.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-40@2x-1.png b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-40@2x-1.png
deleted file mode 100755
index 3bb92e2..0000000
--- a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-40@2x-1.png
+++ /dev/null
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png
index 3bb92e2..b6110a5 100755
--- a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png
+++ b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png
index 30cc699..39b6b04 100755
--- a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png
+++ b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png
index 923748e..39b6b04 100755
--- a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png
+++ b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png
index 131f750..b20e576 100755
--- a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png
+++ b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-76.png b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-76.png
index 2259bd3..ef3ba5f 100755
--- a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-76.png
+++ b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-76.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png
index 03ebbfa..7349c28 100755
--- a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png
+++ b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png
index 9d890c0..c690bdc 100755
--- a/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png
+++ b/ZigbeeApp/Home.Ios/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Entitlements.plist b/ZigbeeApp/Home.Ios/Entitlements.plist
index d8bde0c..0704a76 100755
--- a/ZigbeeApp/Home.Ios/Entitlements.plist
+++ b/ZigbeeApp/Home.Ios/Entitlements.plist
@@ -9,4 +9,4 @@
 		<string>applinks:hdlcontrol.com</string>
 	</array>
 </dict>
-</plist>
\ No newline at end of file
+</plist>
diff --git a/ZigbeeApp/Home.Ios/Home.IOS.csproj b/ZigbeeApp/Home.Ios/Home.IOS.csproj
index 7bca522..9d84fa5 100644
--- a/ZigbeeApp/Home.Ios/Home.IOS.csproj
+++ b/ZigbeeApp/Home.Ios/Home.IOS.csproj
@@ -130,51 +130,6 @@
         <Compile Include="Reachability.cs" />
     </ItemGroup>
     <ItemGroup>
-      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-76%402x.png" />
-      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-40%402x.png" />
-      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-40%403x.png" />
-      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-83.5%402x.png" />
-      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-60%403x.png" />
-      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-29%402x.png" />
-      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-20-ipad.png" />
-      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-40%402x-1.png" />
-      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-76.png" />
-      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-1024.png" />
-      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-29%403x.png" />
-      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-60%402x.png" />
-      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-29%402x-ipad.png" />
-      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-20%403x.png" />
-      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-20%402x-ipad.png" />
-      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-40.png" />
-      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Contents.json" />
-      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-20%402x.png" />
-      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-29-ipad.png" />
-      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1242X2688.png" />
-      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\640X960.png" />
-      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1920X1080.png" />
-      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1024X768.png" />
-      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1125X2436.png" />
-      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2048X1496.png" />
-      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2048X1536.png" />
-      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\750X1334.png" />
-      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1536X2008.png" />
-      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\768X1024.png" />
-      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\3840X2160.png" />
-      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2436X1125.png" />
-      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\640X1136.png" />
-      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2208X1242.png" />
-      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\828X1792.png" />
-      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\Contents.json" />
-      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1242X2208.png" />
-      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\768X1004.png" />
-      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1792X828.png" />
-      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2048X2732.png" />
-      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1024X748.png" />
-      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\320X480.png" />
-      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1536X2048.png" />
-      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2688X1242.png" />
-    </ItemGroup>
-    <ItemGroup>
       <BundleResource Include="Resources\Language.ini" />
       <BundleResource Include="Resources\Phone\Room\RoomCardView.png" />
       <BundleResource Include="Resources\Phone\Room\ItemSelected.png" />
@@ -187,11 +142,14 @@
       <BundleResource Include="Resources\Phone\Room\Room_Rectangle.png" />
       <BundleResource Include="Resources\Phone\Room\RoomCardView_Name.png" />
       <BundleResource Include="Resources\Phone\Room\Humidity.png" />
+      <BundleResource Include="Resources\Phone\Room\AddBackground.png" />
       <BundleResource Include="Resources\Phone\Instruct\CurtainSiphonate.png" />
+      <BundleResource Include="Resources\Phone\Instruct\SensorPir.png" />
       <BundleResource Include="Resources\Phone\Instruct\RelayThreeLoad.png" />
       <BundleResource Include="Resources\Phone\Instruct\CurtainAutoOpen.png" />
       <BundleResource Include="Resources\Phone\Instruct\SensorInfrared.png" />
       <BundleResource Include="Resources\Phone\Instruct\AirSwitchCloudContr.png" />
+      <BundleResource Include="Resources\Phone\Instruct\SensorTemperatureHumidity.png" />
       <BundleResource Include="Resources\Phone\Instruct\PanelFourButton.png" />
       <BundleResource Include="Resources\Phone\Instruct\AirConditionerZbGateway.png" />
       <BundleResource Include="Resources\Phone\Instruct\IntelligentLocksH06C.png" />
@@ -278,6 +236,16 @@
       <BundleResource Include="Resources\Phone\Loading\2.png" />
       <BundleResource Include="Resources\Phone\Loading\3.png" />
       <BundleResource Include="Resources\Phone\Loading\1.png" />
+      <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu1_2.png" />
+      <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu1_3.png" />
+      <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu1_1.png" />
+      <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu1_4.png" />
+      <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu1_5.png" />
+      <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu2_3.png" />
+      <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu2_2.png" />
+      <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu2_1.png" />
+      <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu2_5.png" />
+      <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu2_4.png" />
       <BundleResource Include="Resources\Phone\Center\Abount.png" />
       <BundleResource Include="Resources\Phone\Center\ResidenceManagement.png" />
       <BundleResource Include="Resources\Phone\Center\Backup.png" />
@@ -375,6 +343,7 @@
       <BundleResource Include="Resources\Phone\DoorLock\UnLockSideslipIcon.png" />
       <BundleResource Include="Resources\Phone\DoorLock\UndistributeIcon.png" />
       <BundleResource Include="Resources\Phone\Logo\Logo.png" />
+      <BundleResource Include="Resources\Phone\Logo\2.jpg" />
       <BundleResource Include="Resources\Phone\Item\Shared.png" />
       <BundleResource Include="Resources\Phone\Item\RoomIcon.png" />
       <BundleResource Include="Resources\Phone\Item\Add.png" />
@@ -576,49 +545,88 @@
       <BundleResource Include="Resources\Phone\ZigeeLogic\drop-down.png" />
       <BundleResource Include="Resources\Phone\ZigeeLogic\logicopen.png" />
       <BundleResource Include="Resources\Phone\ZigeeLogic\sensor42.png" />
+      <BundleResource Include="Resources\Phone\Device\DimmableLightSelected.png" />
       <BundleResource Include="Resources\Phone\Device\CurtainSiphonate.png" />
       <BundleResource Include="Resources\Phone\Device\DimmableLight.png" />
       <BundleResource Include="Resources\Phone\Device\ButtonPanelTwo.png" />
       <BundleResource Include="Resources\Phone\Device\SensorPir.png" />
+      <BundleResource Include="Resources\Phone\Device\LightSelected.png" />
+      <BundleResource Include="Resources\Phone\Device\SensorHumiditySelected.png" />
       <BundleResource Include="Resources\Phone\Device\RelayThreeLoad.png" />
       <BundleResource Include="Resources\Phone\Device\CurtainAutoOpen.png" />
+      <BundleResource Include="Resources\Phone\Device\IntelligentLocksH06CSelected.png" />
       <BundleResource Include="Resources\Phone\Device\Relay.png" />
+      <BundleResource Include="Resources\Phone\Device\SensorWaterSelected.png" />
       <BundleResource Include="Resources\Phone\Device\SensorInfrared.png" />
       <BundleResource Include="Resources\Phone\Device\Curtain.png" />
       <BundleResource Include="Resources\Phone\Device\AirSwitchCloudContr.png" />
       <BundleResource Include="Resources\Phone\Device\Socket1.png" />
+      <BundleResource Include="Resources\Phone\Device\SensorCarbonMonoxideSelected.png" />
       <BundleResource Include="Resources\Phone\Device\ButtonPanelFour.png" />
+      <BundleResource Include="Resources\Phone\Device\RelayEpointSelected.png" />
+      <BundleResource Include="Resources\Phone\Device\ButtonPanelSelected.png" />
+      <BundleResource Include="Resources\Phone\Device\SensorTemperatureHumidity.png" />
+      <BundleResource Include="Resources\Phone\Device\RelayThreeLoadSelected.png" />
       <BundleResource Include="Resources\Phone\Device\ConverterZb485.png" />
       <BundleResource Include="Resources\Phone\Device\Repeater.png" />
       <BundleResource Include="Resources\Phone\Device\SensorHumidity.png" />
       <BundleResource Include="Resources\Phone\Device\AirConditionerEpointSelected.png" />
+      <BundleResource Include="Resources\Phone\Device\CurtainAutoOpenSelected.png" />
       <BundleResource Include="Resources\Phone\Device\PanelTable.png" />
       <BundleResource Include="Resources\Phone\Device\Sensor.png" />
+      <BundleResource Include="Resources\Phone\Device\RepeaterSelected.png" />
+      <BundleResource Include="Resources\Phone\Device\AirSwitchSelected.png" />
+      <BundleResource Include="Resources\Phone\Device\IntelligentLocksSelected.png" />
+      <BundleResource Include="Resources\Phone\Device\RelaySelected.png" />
+      <BundleResource Include="Resources\Phone\Device\Socket1Selected.png" />
       <BundleResource Include="Resources\Phone\Device\IntelligentLocks.png" />
+      <BundleResource Include="Resources\Phone\Device\ConverterZb485Selected.png" />
+      <BundleResource Include="Resources\Phone\Device\ColorLightSelected.png" />
       <BundleResource Include="Resources\Phone\Device\SensorEmergencyButton.png" />
       <BundleResource Include="Resources\Phone\Device\AirSwitch.png" />
+      <BundleResource Include="Resources\Phone\Device\SwitchSelected.png" />
+      <BundleResource Include="Resources\Phone\Device\ButtonPanelTwoSelected.png" />
+      <BundleResource Include="Resources\Phone\Device\SensorDoorWindowSelected.png" />
       <BundleResource Include="Resources\Phone\Device\Light.png" />
       <BundleResource Include="Resources\Phone\Device\ThirdPartyDevice.png" />
       <BundleResource Include="Resources\Phone\Device\SensorMotion.png" />
       <BundleResource Include="Resources\Phone\Device\AirConditionerEpoint.png" />
+      <BundleResource Include="Resources\Phone\Device\DryContactSelected.png" />
+      <BundleResource Include="Resources\Phone\Device\CurtainSelected.png" />
       <BundleResource Include="Resources\Phone\Device\Converter.png" />
       <BundleResource Include="Resources\Phone\Device\AirConditioner.png" />
+      <BundleResource Include="Resources\Phone\Device\SensorFireSelected.png" />
       <BundleResource Include="Resources\Phone\Device\ColorLight.png" />
+      <BundleResource Include="Resources\Phone\Device\AirConditionerZbGatewaySelected.png" />
       <BundleResource Include="Resources\Phone\Device\Switch.png" />
+      <BundleResource Include="Resources\Phone\Device\AirConditionerSelected.png" />
       <BundleResource Include="Resources\Phone\Device\ButtonPanel.png" />
       <BundleResource Include="Resources\Phone\Device\AirConditionerZbGateway.png" />
       <BundleResource Include="Resources\Phone\Device\DryContact.png" />
+      <BundleResource Include="Resources\Phone\Device\ButtonPanelFourSelected.png" />
+      <BundleResource Include="Resources\Phone\Device\ButtonPanelOneSelected.png" />
+      <BundleResource Include="Resources\Phone\Device\SensorPirSelected.png" />
+      <BundleResource Include="Resources\Phone\Device\ButtonPanelThreeSelected.png" />
       <BundleResource Include="Resources\Phone\Device\IntelligentLocksH06C.png" />
+      <BundleResource Include="Resources\Phone\Device\CurtainSiphonateSelected.png" />
       <BundleResource Include="Resources\Phone\Device\SensorDoorWindow.png" />
       <BundleResource Include="Resources\Phone\Device\ButtonPanelOne.png" />
       <BundleResource Include="Resources\Phone\Device\SensorTemperature.png" />
       <BundleResource Include="Resources\Phone\Device\SensorFire.png" />
+      <BundleResource Include="Resources\Phone\Device\DimmableLightOneLoadSelected.png" />
+      <BundleResource Include="Resources\Phone\Device\SensorTemperatureSelected.png" />
       <BundleResource Include="Resources\Phone\Device\ButtonPanelThree.png" />
+      <BundleResource Include="Resources\Phone\Device\SensorInfraredSelected.png" />
+      <BundleResource Include="Resources\Phone\Device\ConverterSelected.png" />
+      <BundleResource Include="Resources\Phone\Device\RepeaterZigbeeSelected.png" />
       <BundleResource Include="Resources\Phone\Device\SensorCarbonMonoxide.png" />
       <BundleResource Include="Resources\Phone\Device\DimmableLightOneLoad.png" />
+      <BundleResource Include="Resources\Phone\Device\AirSwitchCloudContrSelected.png" />
       <BundleResource Include="Resources\Phone\Device\RelayEpoint.png" />
       <BundleResource Include="Resources\Phone\Device\RepeaterZigbee.png" />
       <BundleResource Include="Resources\Phone\Device\SensorWater.png" />
+      <BundleResource Include="Resources\Phone\Device\SensorSelected.png" />
+      <BundleResource Include="Resources\Phone\Device\SensorTemperatureHumiditySelected.png" />
       <BundleResource Include="Resources\Phone\Light\DeskLampSelected.png" />
       <BundleResource Include="Resources\Phone\Light\ON.png" />
       <BundleResource Include="Resources\Phone\Light\Plug.png" />
@@ -738,6 +746,52 @@
         <Name>Elian.iOS</Name>
       </ProjectReference>
     </ItemGroup>
+    <ItemGroup>
+      <ImageAsset Include="Assets.xcassets\.DS_Store" />
+      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-29.png" />
+      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-76%402x.png" />
+      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-40%402x.png" />
+      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-40%403x.png" />
+      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-83.5%402x.png" />
+      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-60%403x.png" />
+      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-29%402x.png" />
+      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-20-ipad.png" />
+      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-76.png" />
+      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-1024.png" />
+      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-29%403x.png" />
+      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-60%402x.png" />
+      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-29%402x-ipad.png" />
+      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-20%403x.png" />
+      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-20%402x-ipad.png" />
+      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-40.png" />
+      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Contents.json" />
+      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-20%402x.png" />
+      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-29-ipad.png" />
+      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1242X2688.png" />
+      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\640X960.png" />
+      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1920X1080.png" />
+      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1024X768.png" />
+      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1125X2436.png" />
+      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2048X1496.png" />
+      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2048X1536.png" />
+      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\750X1334.png" />
+      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1536X2008.png" />
+      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\768X1024.png" />
+      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\3840X2160.png" />
+      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2436X1125.png" />
+      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\640X1136.png" />
+      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2208X1242.png" />
+      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\828X1792.png" />
+      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\Contents.json" />
+      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1242X2208.png" />
+      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\768X1004.png" />
+      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1792X828.png" />
+      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2048X2732.png" />
+      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1024X748.png" />
+      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\320X480.png" />
+      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1536X2048.png" />
+      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2688X1242.png" />
+    </ItemGroup>
     <Import Project="..\Shared\Shared.projitems" Label="Shared" Condition="Exists('..\Shared\Shared.projitems')" />
     <Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
 </Project>
\ No newline at end of file
diff --git a/ZigbeeApp/Home.Ios/Resources/Language.ini b/ZigbeeApp/Home.Ios/Resources/Language.ini
index 4fa0bd3..0634da9 100755
--- a/ZigbeeApp/Home.Ios/Resources/Language.ini
+++ b/ZigbeeApp/Home.Ios/Resources/Language.ini
@@ -609,6 +609,7 @@
 5370=璇烽�夋嫨鐢ㄦ埛锛屽惁鍒欐棤娉曟墽琛屼笅涓�姝�.
 5371=璇烽�夋嫨鍦烘櫙锛屽惁鍒欐棤娉曟墽琛屼笅涓�姝�.
 5372=璇烽�夋嫨瀹夐槻妯″紡锛屽惁鍒欐棤娉曟墽琛屼笅涓�姝�.
+5373=鑷姩鍖栧凡鎵ц.
 
 
 
@@ -657,6 +658,8 @@
 10139=鎵嬫満鍙烽敊璇紝璇烽噸鏂拌緭鍏�
 10140=璇疯緭鍏ラ暱搴︿负6-13涓瓧绗︾殑瀵嗙爜
 10141=浣犲凡琚己鍒朵笅绾匡紒
+10142=鏂板瘑鐮佸拰鍘熷瘑鐮佷竴鑷�
+
 
 
 10150=鏀规埧闂村悕绉板凡瀛樺湪
@@ -791,9 +794,8 @@
 
 13600=娌″姛鑳� {\r\n} 璇峰厛娣诲姞
 13601=娌″満鏅� {\r\n} 璇峰厛娣诲姞
-
-
-
+13602=鏃�
+13603=鑾峰彇涓�...
 
 
 15000=瀵嗙爜闀垮害涓簕0}涓瓧绗�
@@ -1138,7 +1140,7 @@
 15378=褰╃伅
 15379=寮�鍚堝笜
 15380=杩愬姩浼犳劅鍣�
-15382=鏅鸿兘绌烘皵寮�鍏�
+15382=鏅鸿兘绌哄紑
 15383=纭畾鏄惁瑕佸仠姝㈠崌绾э紵
 15384=鍝嶅簲瓒呮椂,鍗囩骇澶辫触
 15385=缃戝叧绠$悊
@@ -1733,6 +1735,25 @@
 16004=鑾峰彇澶辫触
 16005=鏃犳硶璇嗗埆
 16006=姝e湪閲嶇疆鐢垫満
+16007=澶ч噾绌鸿皟妯″潡
+16008=娌℃湁鍙崌绾х殑绌鸿皟妯″潡
+16009=绌鸿皟鍗囩骇妯″潡
+16010=鑾峰彇绌鸿皟妯″潡鐗堟湰澶辫触
+16011=鍙戦�佸崌绾у懡浠ゅけ璐�
+16012=鐗堟湰鍙风浉鍚�,鍗囩骇澶辫触
+16013=鏍¢獙鐗堟湰鍙峰け璐�
+16014=妫�娴嬭澶囩増鏈�
+16015=鍝嶅簲瓒呮椂,妫�娴嬭澶囩増鏈け璐�
+16016=姝e湪鍙戦�佸崌绾у畬鎴愮殑鍛戒护
+16017=鍝嶅簲瓒呮椂,鍙戦�佸崌绾у畬鎴愮殑鍛戒护澶辫触
+16018=閲嶅伐绌鸿皟妯″潡
+16019=鎸囩ず鐏彉缁裤�侀棯鐑�
+16020=閽堝瓟寮忛噸缃寜閿�
+16021=淇″彿鍥炬爣蹇棯
+16022=淇″彿鍥炬爣
+16023=鎻愰啋
+16024=缁戝畾鎴愬姛锛佷笅娆′綘鍙互鐢ㄥ井淇0}璐﹀彿蹇�熺櫥褰曞暒
+16025=濂界殑
 
 ;鈽呪槄鈽呪槄涓嬮潰杩欎簺鏄帴鍙g殑杩斿洖淇℃伅缈昏瘧,浠�18000寮�濮嬧槄鈽呪槄鈽�
 18004=鎸囧畾缃戝叧宸茬粡琚粦瀹�
@@ -1745,7 +1766,7 @@
 18013=楠岃瘉鐮佸彂閫佸け璐�
 18015=璐﹀彿宸茬粡瀛樺湪
 18016=楠岃瘉鐮侀敊璇�
-18017=鏈彂閫侀獙璇佺爜鍒版璐﹀彿
+18017=楠岃瘉鐮佸凡澶辨晥
 18018=缁戝畾鐨勮处鍙蜂笉瀛樺湪
 18019=鎸囧畾璐﹀彿宸插瓨鍦�
 18022=楠岃瘉鐮佸彂閫佸け璐�
@@ -1803,7 +1824,10 @@
 21014=闀挎寜鍥剧ず鎸夐敭5绉掍互涓婏紝鎸囩ず鐏彉缁块棯鐑亄0}杩涘叆閰嶇綉鐘舵�侊紝缁跨伅鐔勭伃鍒欏叆缃戞垚鍔�
 ;绌鸿皟鍏ョ綉鎿嶄綔鎸囩ず
 21015=闀挎寜鍥剧ず鎸夐敭5绉掍互涓婏紝鎸囩ず鐏瘂0}鍙樼豢闂儊,杩涘叆閰嶇綉鐘舵�亄0}缁跨伅姣�5绉掗棯鐑佷竴娆″垯鍏ョ綉鎴愬姛
-
+;pir浼犳劅鍣ㄥ叆缃戞搷浣滄寚绀�
+21016=闀挎寜鍥剧ず鎸夐敭5绉掍互涓婏紝鎸囩ず鐏彉缁裤�亄0}闂儊杩涘叆閰嶇綉鐘舵�併�傜豢鐏唲鐏垯閰嶇綉鎴愬姛
+;娓╂箍搴︿紶鎰熷櫒鍏ョ綉鎿嶄綔鎸囩ず
+21017=闀挎寜鍥剧ず鎸夐敭5绉掍互涓婏紝淇″彿鍥炬爣{0}蹇棯锛� 杩涘叆閰嶇綉鐘舵�併�傚浘鏍囧父浜垯閰嶇綉鎴愬姛
 
 ;鈽呪槄鈽呪槄涓嬮潰杩欎簺鏄ā鍧桰D鐨勭炕璇戝悕瀛�,浠�30000寮�濮嬧槄鈽呪槄鈽�
 30000=绱ф�ユ寜閽�
@@ -1845,9 +1869,10 @@
 40005=鏅鸿兘闂ㄩ攣
 40006=绌鸿皟
 40007=涓户鍣�
-40008=鏅鸿兘绌烘皵寮�鍏�
+40008=鏅鸿兘绌哄叧
 40009=杞崲鍣�
 40010=褰╃伅
 40011=娓╂箍搴︿紶鎰熷櫒
 40012=娓╁害浼犳劅鍣�
-40013=婀垮害浼犳劅鍣�
\ No newline at end of file
+40013=婀垮害浼犳劅鍣�
+40014=骞叉帴鐐�
\ No newline at end of file
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirConditionerEpoint.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirConditionerEpoint.png
index 2f09584..f986f11 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirConditionerEpoint.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirConditionerEpoint.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirConditionerEpointSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirConditionerEpointSelected.png
index 2d86133..080812f 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirConditionerEpointSelected.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirConditionerEpointSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirConditionerSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirConditionerSelected.png
new file mode 100755
index 0000000..4d303e2
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirConditionerSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirConditionerZbGatewaySelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirConditionerZbGatewaySelected.png
new file mode 100755
index 0000000..4d303e2
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirConditionerZbGatewaySelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirSwitchCloudContrSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirSwitchCloudContrSelected.png
new file mode 100755
index 0000000..2f9ec35
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirSwitchCloudContrSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirSwitchSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirSwitchSelected.png
new file mode 100755
index 0000000..2f9ec35
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirSwitchSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelFourSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelFourSelected.png
new file mode 100755
index 0000000..c418fcf
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelFourSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelOneSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelOneSelected.png
new file mode 100755
index 0000000..25e7ea1
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelOneSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelSelected.png
new file mode 100755
index 0000000..c418fcf
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelThreeSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelThreeSelected.png
new file mode 100755
index 0000000..013bd0d
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelThreeSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelTwoSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelTwoSelected.png
new file mode 100755
index 0000000..930bf30
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelTwoSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/ColorLightSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ColorLightSelected.png
new file mode 100755
index 0000000..563072b
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ColorLightSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/ConverterSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ConverterSelected.png
new file mode 100755
index 0000000..2c98858
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ConverterSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/ConverterZb485Selected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ConverterZb485Selected.png
new file mode 100755
index 0000000..2c98858
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ConverterZb485Selected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/CurtainAutoOpenSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/CurtainAutoOpenSelected.png
new file mode 100755
index 0000000..2bbd7c1
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/CurtainAutoOpenSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/CurtainSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/CurtainSelected.png
new file mode 100755
index 0000000..2bbd7c1
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/CurtainSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/CurtainSiphonateSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/CurtainSiphonateSelected.png
new file mode 100755
index 0000000..2bbd7c1
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/CurtainSiphonateSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/DimmableLightOneLoadSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/DimmableLightOneLoadSelected.png
new file mode 100755
index 0000000..9927a96
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/DimmableLightOneLoadSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/DimmableLightSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/DimmableLightSelected.png
new file mode 100755
index 0000000..9927a96
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/DimmableLightSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/DryContactSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/DryContactSelected.png
new file mode 100755
index 0000000..c705daa
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/DryContactSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/IntelligentLocksH06CSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/IntelligentLocksH06CSelected.png
new file mode 100755
index 0000000..1fb40e4
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/IntelligentLocksH06CSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/IntelligentLocksSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/IntelligentLocksSelected.png
new file mode 100755
index 0000000..1fb40e4
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/IntelligentLocksSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/LightSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/LightSelected.png
new file mode 100755
index 0000000..563072b
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/LightSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/RelayEpointSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/RelayEpointSelected.png
new file mode 100755
index 0000000..eb2794e
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/RelayEpointSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/RelaySelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/RelaySelected.png
new file mode 100755
index 0000000..4b33106
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/RelaySelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/RelayThreeLoadSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/RelayThreeLoadSelected.png
new file mode 100755
index 0000000..4b33106
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/RelayThreeLoadSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/RepeaterSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/RepeaterSelected.png
new file mode 100755
index 0000000..83a6cee
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/RepeaterSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/RepeaterZigbeeSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/RepeaterZigbeeSelected.png
new file mode 100755
index 0000000..83a6cee
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/RepeaterZigbeeSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/Sensor.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/Sensor.png
index 80a9bcb..8b3140e 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/Device/Sensor.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/Sensor.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorCarbonMonoxideSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorCarbonMonoxideSelected.png
new file mode 100755
index 0000000..5d94caf
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorCarbonMonoxideSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorDoorWindowSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorDoorWindowSelected.png
new file mode 100755
index 0000000..18222cf
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorDoorWindowSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorFireSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorFireSelected.png
new file mode 100755
index 0000000..ed2e458
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorFireSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorHumiditySelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorHumiditySelected.png
new file mode 100755
index 0000000..339a2d2
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorHumiditySelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorInfraredSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorInfraredSelected.png
new file mode 100755
index 0000000..84f9243
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorInfraredSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorPir.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorPir.png
index 8b3140e..f4c9ead 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorPir.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorPir.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorPirSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorPirSelected.png
new file mode 100755
index 0000000..bccf5a9
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorPirSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorSelected.png
new file mode 100755
index 0000000..8e70ce3
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorTemperatureHumidity.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorTemperatureHumidity.png
new file mode 100755
index 0000000..34d07f9
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorTemperatureHumidity.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorTemperatureHumiditySelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorTemperatureHumiditySelected.png
new file mode 100755
index 0000000..273a304
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorTemperatureHumiditySelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorTemperatureSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorTemperatureSelected.png
new file mode 100755
index 0000000..310a744
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorTemperatureSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorWaterSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorWaterSelected.png
new file mode 100755
index 0000000..db71e68
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorWaterSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/Socket1Selected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/Socket1Selected.png
new file mode 100755
index 0000000..267e1a7
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/Socket1Selected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/SwitchSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SwitchSelected.png
new file mode 100755
index 0000000..2f9ec35
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SwitchSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Instruct/SensorPir.png b/ZigbeeApp/Home.Ios/Resources/Phone/Instruct/SensorPir.png
new file mode 100755
index 0000000..ea5bd7e
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Instruct/SensorPir.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Instruct/SensorTemperatureHumidity.png b/ZigbeeApp/Home.Ios/Resources/Phone/Instruct/SensorTemperatureHumidity.png
new file mode 100755
index 0000000..efc7f36
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Instruct/SensorTemperatureHumidity.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Logo/2.jpg b/ZigbeeApp/Home.Ios/Resources/Phone/Logo/2.jpg
new file mode 100755
index 0000000..c0c53ac
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Logo/2.jpg
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu1_1.png b/ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu1_1.png
new file mode 100755
index 0000000..e73c188
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu1_1.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu1_2.png b/ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu1_2.png
new file mode 100755
index 0000000..b5dc978
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu1_2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu1_3.png b/ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu1_3.png
new file mode 100755
index 0000000..33f910b
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu1_3.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu1_4.png b/ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu1_4.png
new file mode 100755
index 0000000..9922753
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu1_4.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu1_5.png b/ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu1_5.png
new file mode 100755
index 0000000..47ae664
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu1_5.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu2_1.png b/ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu2_1.png
new file mode 100755
index 0000000..7eb3f1a
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu2_1.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu2_2.png b/ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu2_2.png
new file mode 100755
index 0000000..6a44c5d
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu2_2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu2_3.png b/ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu2_3.png
new file mode 100755
index 0000000..7b6d109
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu2_3.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu2_4.png b/ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu2_4.png
new file mode 100755
index 0000000..6b0a53f
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu2_4.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu2_5.png b/ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu2_5.png
new file mode 100755
index 0000000..91b8619
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/MenuGroud/TopRightMenu2_5.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Room/AddBackground.png b/ZigbeeApp/Home.Ios/Resources/Phone/Room/AddBackground.png
new file mode 100755
index 0000000..0eca2b8
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Room/AddBackground.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Room/ItemSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Room/ItemSelected.png
index 526ab07..e4e9740 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/Room/ItemSelected.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Room/ItemSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Room/ItemUnSelected_Black.png b/ZigbeeApp/Home.Ios/Resources/Phone/Room/ItemUnSelected_Black.png
index fb408e5..9e28cc9 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/Room/ItemUnSelected_Black.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Room/ItemUnSelected_Black.png
Binary files differ
diff --git a/ZigbeeApp/Shared/Common/CommonPage.cs b/ZigbeeApp/Shared/Common/CommonPage.cs
index 9941514..4ee5e03 100755
--- a/ZigbeeApp/Shared/Common/CommonPage.cs
+++ b/ZigbeeApp/Shared/Common/CommonPage.cs
@@ -62,7 +62,7 @@
         /// <summary>
         /// 鐗堟湰鍙�
         /// </summary>
-        public static string CodeIDString = "1.0.19121601";
+        public static string CodeIDString = "1.0.19122001";
         /// <summary>
         /// 娉ㄥ唽鏉ユ簮(0:HDL On 1:Zigbee)
         /// </summary>
diff --git a/ZigbeeApp/Shared/Common/Device.cs b/ZigbeeApp/Shared/Common/Device.cs
index acbcb17..1a25f6f 100755
--- a/ZigbeeApp/Shared/Common/Device.cs
+++ b/ZigbeeApp/Shared/Common/Device.cs
@@ -725,11 +725,12 @@
         }
 
         /// <summary>
-        /// 鏍规嵁MAC鍦板潃,鑾峰彇鍏ㄩ儴鍥炶矾鐨勮澶囧璞�(宸茬粡鎺掑簭)
+        /// 鏍规嵁MAC鍦板潃,鑾峰彇鍏ㄩ儴鍥炶矾鐨勮澶囧璞�
         /// </summary>
         /// <param name="DeviceAddr">Mac鍦板潃</param>
+        /// <param name="sort">鏄惁鎺掑簭</param>
         /// <returns></returns>
-        public List<CommonDevice> GetDevicesByMac(string DeviceAddr)
+        public List<CommonDevice> GetDevicesByMac(string DeviceAddr, bool sort = true)
         {
             var list = new List<CommonDevice>();
             if (dicDeviceEpoint.ContainsKey(DeviceAddr) == false)
@@ -744,6 +745,11 @@
                     list.Add(device);
                 }
             }
+            if (sort == false)
+            {
+                return list;
+            }
+
             //鎺掑簭
             list.Sort((obj1, obj2) =>
             {
@@ -1216,7 +1222,7 @@
                 return info;
             }
             //鑾峰彇绗笁鏂硅澶囩殑銆愯澶囩被鍨嬨��
-            return this.GetNotHdlMyDeviceEnumInfo(listdevice);
+            return this.GetNotHdlMyDeviceEnumInfo(listdevice, false);
         }
 
         /// <summary>
@@ -1246,7 +1252,7 @@
             else
             {
                 //鑾峰彇绗笁鏂硅澶囩殑銆愯澶囩被鍨嬨��
-                var myDeviceType = this.GetNotHdlMyDeviceEnumInfo(listDevice);
+                var myDeviceType = this.GetNotHdlMyDeviceEnumInfo(listDevice, false);
                 strName = Language.StringByID(myDeviceType.ConcreteTextId);
             }
             if (ApendFalge == true && listDevice[0].DriveCode > 0)
@@ -1314,9 +1320,29 @@
         /// <summary>
         /// 鑾峰彇绗笁鏂硅澶囩殑銆愯澶囩被鍨嬨��
         /// </summary>
-        /// <param name="listdevice"></param>
+        /// <param name="device">璁惧鍥炶矾</param>
+        /// <param name="margeSensor">
+        /// <para>鏄惁灏嗘墍鏈夌被鍨嬬殑浼犳劅鍣ㄩ兘褰掍负銆愪紶鎰熷櫒銆�,</para> 
+        /// <para>false鐨勬椂鍊欙細銆怌oncreteType銆戝拰銆怌oncreteTextId銆戝彲鑳戒細鏈変笉鍚岀殑鍊�</para> 
+        /// <para>true鐨勬椂鍊欙細銆怌oncreteType銆戠粺涓�涓篠ensor,銆怌oncreteTextId銆戠粺涓�涓轰紶鎰熷櫒</para> 
+        /// </param>
         /// <returns></returns>
-        public DeviceEnumInfo GetNotHdlMyDeviceEnumInfo(List<CommonDevice> listdevice)
+        public DeviceEnumInfo GetNotHdlMyDeviceEnumInfo(CommonDevice device, bool margeSensor = true)
+        {
+            return this.GetNotHdlMyDeviceEnumInfo(new List<CommonDevice>() { device }, margeSensor);
+        }
+
+        /// <summary>
+        /// 鑾峰彇绗笁鏂硅澶囩殑銆愯澶囩被鍨嬨��(涓嶅缓璁娇鐢�)
+        /// </summary>
+        /// <param name="listdevice">Mac閮戒竴鏍风殑璁惧鍒楄〃</param>
+        /// <param name="margeSensor">
+        /// <para>鏄惁灏嗘墍鏈夌被鍨嬬殑浼犳劅鍣ㄩ兘褰掍负銆愪紶鎰熷櫒銆�,</para> 
+        /// <para>false鐨勬椂鍊欙細銆怌oncreteType銆戝拰銆怌oncreteTextId銆戝彲鑳戒細鏈変笉鍚岀殑鍊�</para> 
+        /// <para>true鐨勬椂鍊欙細銆怌oncreteType銆戠粺涓�涓篠ensor,銆怌oncreteTextId銆戠粺涓�涓轰紶鎰熷櫒</para> 
+        /// </param>
+        /// <returns></returns>
+        public DeviceEnumInfo GetNotHdlMyDeviceEnumInfo(List<CommonDevice> listdevice, bool margeSensor = true)
         {
             var dicType = new Dictionary<DeviceType, CommonDevice>();
             foreach (CommonDevice device in listdevice)
@@ -1331,9 +1357,18 @@
             //1鍖呭惈闈㈡澘鐨勮瘽,褰撻潰鏉垮鐞�
             if (dicType.ContainsKey(DeviceType.OnOffSwitch) == true)
             {
-                info.ConcreteTextId = R.MyInternationalizationString.uDeviceBelongId200;
-                info.BeloneType = DeviceBeloneType.A鎸夐敭闈㈡澘;
-                info.ConcreteType = DeviceConcreteType.ButtonPanel;
+                if (listdevice.Count > 1)
+                {
+                    info.ConcreteTextId = R.MyInternationalizationString.uDeviceBelongId200;
+                    info.BeloneType = DeviceBeloneType.A鎸夐敭闈㈡澘;
+                    info.ConcreteType = DeviceConcreteType.ButtonPanel;
+                }
+                else
+                {
+                    info.ConcreteTextId = R.MyInternationalizationString.uDeviceBelongId16;
+                    info.BeloneType = DeviceBeloneType.A骞叉帴鐐�;
+                    info.ConcreteType = DeviceConcreteType.DryContact;
+                }
             }
             //3鍖呭惈绐楀笜鐨勮瘽,褰撶獥甯樺鐞�
             else if (dicType.ContainsKey(DeviceType.WindowCoveringDevice) == true)
@@ -1345,16 +1380,56 @@
             //4绌烘皵寮�鍏�
             else if (dicType.ContainsKey(DeviceType.AirSwitch) == true)
             {
+                //榛樿鍊�
                 info.ConcreteTextId = R.MyInternationalizationString.uDeviceBelongId4100;
-                info.BeloneType = DeviceBeloneType.A绌烘皵寮�鍏�;
+                info.BeloneType = DeviceBeloneType.A鏅鸿兘绌哄紑;
                 info.ConcreteType = DeviceConcreteType.AirSwitch;
+
+                if (dicType[DeviceType.AirSwitch].DfunctionType == DeviceFunctionType.A寮�鍏�)
+                {
+                    info.ConcreteTextId = R.MyInternationalizationString.uDeviceBelongId13;
+                    info.BeloneType = DeviceBeloneType.A寮�鍏�;
+                    info.ConcreteType = DeviceConcreteType.Switch;
+                }
+                else if (dicType[DeviceType.AirSwitch].DfunctionType == DeviceFunctionType.A鎻掑骇)
+                {
+                    info.ConcreteTextId = R.MyInternationalizationString.uDeviceBelongId14;
+                    info.BeloneType = DeviceBeloneType.A鎻掑骇;
+                    info.ConcreteType = DeviceConcreteType.Socket1;
+                }
+                else if (dicType[DeviceType.AirSwitch].DfunctionType == DeviceFunctionType.A鐏厜)
+                {
+                    info.ConcreteTextId = R.MyInternationalizationString.uDeviceBelongId15;
+                    info.BeloneType = DeviceBeloneType.A鐏厜;
+                    info.ConcreteType = DeviceConcreteType.Light;
+                }
             }
             //5缁х數鍣�
             else if (dicType.ContainsKey(DeviceType.OnOffOutput) == true)
             {
+                //榛樿鍊�
                 info.ConcreteTextId = R.MyInternationalizationString.uDeviceBelongId2300;
                 info.BeloneType = DeviceBeloneType.A缁х數鍣�;
                 info.ConcreteType = DeviceConcreteType.Relay;
+
+                if (dicType[DeviceType.OnOffOutput].DfunctionType == DeviceFunctionType.A寮�鍏�)
+                {
+                    info.ConcreteTextId = R.MyInternationalizationString.uDeviceBelongId13;
+                    info.BeloneType = DeviceBeloneType.A寮�鍏�;
+                    info.ConcreteType = DeviceConcreteType.Switch;
+                }
+                else if (dicType[DeviceType.OnOffOutput].DfunctionType == DeviceFunctionType.A鎻掑骇)
+                {
+                    info.ConcreteTextId = R.MyInternationalizationString.uDeviceBelongId14;
+                    info.BeloneType = DeviceBeloneType.A鎻掑骇;
+                    info.ConcreteType = DeviceConcreteType.Socket1;
+                }
+                else if (dicType[DeviceType.OnOffOutput].DfunctionType == DeviceFunctionType.A鐏厜)
+                {
+                    info.ConcreteTextId = R.MyInternationalizationString.uDeviceBelongId15;
+                    info.BeloneType = DeviceBeloneType.A鐏厜;
+                    info.ConcreteType = DeviceConcreteType.Light;
+                }
             }
             //6璋冨厜鍣�
             else if (dicType.ContainsKey(DeviceType.DimmableLight) == true)
@@ -1401,16 +1476,23 @@
             //12鍖呭惈浼犳劅鍣ㄧ殑璇�,褰撲紶鎰熷櫒澶勭悊
             else if (dicType.ContainsKey(DeviceType.IASZone) == true)
             {
-                //璁剧疆浼犳劅鍣ㄥ叿浣撶殑绫诲瀷
                 info.BeloneType = DeviceBeloneType.A浼犳劅鍣�;
-                this.SetSensorDeviceSpecificType(ref info, listdevice);
+                info.ConcreteType = DeviceConcreteType.Sensor;
+                info.ConcreteTextId = R.MyInternationalizationString.uDeviceBelongId1200;
+                if (margeSensor == false)
+                {
+                    //璁剧疆浼犳劅鍣ㄥ叿浣撶殑绫诲瀷
+                    this.SetSensorDeviceSpecificType(ref info, listdevice);
+                }
             }
             //13鍖呭惈娓╁害浼犳劅鍣ㄧ殑璇�
             else if (dicType.ContainsKey(DeviceType.TemperatureSensor) == true)
             {
                 bool temperatrue = false;
                 bool humidity = false;
-                foreach (var device in listdevice)
+                //鑾峰彇鍏ㄩ儴鐨勫洖璺�
+                var listTemp = this.GetDevicesByMac(listdevice[0].DeviceAddr, false);
+                foreach (var device in listTemp)
                 {
                     if (device is TemperatureSensor)
                     {
@@ -1470,10 +1552,6 @@
         /// <param name="listdevice">璁惧瀵硅薄</param>
         private void SetSensorDeviceSpecificType(ref DeviceEnumInfo info, List<CommonDevice> listdevice)
         {
-            //榛樿鍚嶅瓧:浼犳劅鍣�
-            info.ConcreteType = DeviceConcreteType.Sensor;
-            info.ConcreteTextId = R.MyInternationalizationString.uDeviceBelongId1200;
-
             //濡傛灉杩欎釜璁惧鎷ユ湁澶氫釜鍥炶矾鐨勮瘽,鎴戜篃涓嶇煡閬撴�庝箞鍛藉悕,鍙兘缁欎釜榛樿鍚嶅瓧
             if (listdevice.Count > 1)
             {
@@ -2314,7 +2392,7 @@
 
         //=========鈽呪槄绌烘皵寮�鍏崇被(4100-????)鈽呪槄=========
         /// <summary>
-        /// 鏅鸿兘绌烘皵寮�鍏�
+        /// 鏅鸿兘绌哄紑
         /// </summary>
         AirSwitch = -4100,
         /// <summary>
@@ -2335,6 +2413,24 @@
         /// zigbee杞琤uspro鍗忚杞崲鍣�
         /// </summary>
         Converter_ZbBuspro = 4201,
+
+        //=========鈽呪槄鍏朵粬绫�(????-????)鈽呪槄=========
+        /// <summary>
+        /// 骞叉帴鐐�
+        /// </summary>
+        DryContact = -10000,
+        /// <summary>
+        /// 鐏厜(娉ㄦ剰,瀹冭緭鍏ュ叾浠栫被,涓嶆槸璁惧绫诲瀷)
+        /// </summary>
+        Light = -10001,
+        /// <summary>
+        /// 鎻掑骇
+        /// </summary>
+        Socket1 = -10002,
+        /// <summary>
+        /// 寮�鍏�
+        /// </summary>
+        Switch = -10003,
     }
 
     /// <summary>
@@ -2380,9 +2476,9 @@
         /// </summary>
         A涓户鍣� = 3900,
         /// <summary>
-        /// 绌烘皵寮�鍏�(4100-4199)
+        /// 鏅鸿兘绌哄紑(4100-4199)
         /// </summary>
-        A绌烘皵寮�鍏� = 4100,
+        A鏅鸿兘绌哄紑 = 4100,
         /// <summary>
         /// 杞崲鍣�(4200-4699)
         /// </summary>
@@ -2402,7 +2498,23 @@
         /// <summary>
         /// 婀垮害浼犳劅鍣�
         /// </summary>
-        A婀垮害浼犳劅鍣� = 12
+        A婀垮害浼犳劅鍣� = 12,
+        /// <summary>
+        /// 寮�鍏�
+        /// </summary>
+        A寮�鍏� = 13,
+        /// <summary>
+        /// 鎻掑骇
+        /// </summary>
+        A鎻掑骇 = 14,
+        /// <summary>
+        /// 鐏厜
+        /// </summary>
+        A鐏厜 = 15,
+        /// <summary>
+        /// 骞叉帴鐐�
+        /// </summary>
+        A骞叉帴鐐� = 16
     }
 
     #endregion
diff --git a/ZigbeeApp/Shared/Common/Room.cs b/ZigbeeApp/Shared/Common/Room.cs
index 9f1c2a6..c6005c0 100755
--- a/ZigbeeApp/Shared/Common/Room.cs
+++ b/ZigbeeApp/Shared/Common/Room.cs
@@ -69,12 +69,20 @@
 
         /// <summary>
         /// 娓╁害浼犳劅鍣�(璁惧涓婚敭)
-        /// </summary>
+        /// </summary>   
         public string TemperatrueDevice = string.Empty;
         /// <summary>
         /// 婀垮害浼犳劅鍣�(璁惧涓婚敭)
         /// </summary>
         public string HumidityDevice = string.Empty;
+        /// <summary>
+        /// 娓╁害
+        /// </summary>
+        public double Temperatrue;
+        /// <summary>
+        /// 婀垮害
+        /// </summary>
+        public double Humidity;
 
         /// <summary>
         /// 褰撳墠閫夋嫨鐨勬埧闂�
@@ -201,6 +209,32 @@
                 return sceneList;
             }
         }
+
+        /// <summary>
+        /// 鑾峰彇鎵�鏈夋埧闂寸殑鎵�鏈夊満鏅矾寰�
+        /// </summary>
+        /// <value>All room scene UIL ist.</value>
+        [Newtonsoft.Json.JsonIgnore]
+        public  List<string> AllRoomSceneUIFilepathList
+        {
+            get
+            {
+                var pathList = new List<string> { };
+                foreach (var r in Lists)
+                {
+                    if (r.SceneUIFilePathList.Count == 0)
+                    {
+                        continue;
+                    }
+                    foreach (var path in r.SceneUIFilePathList)
+                    {
+                        pathList.Add(path);
+                    }
+                }
+                return pathList;
+            }
+        }
+
         /// <summary>
         /// 鍦烘櫙鍒楄〃---涓嶅啀搴忓垪鍖�
         /// </summary>
@@ -978,35 +1012,34 @@
         }
 
         /// <summary>
-        /// 鑾峰彇璇ユゼ灞傜殑鍦烘櫙
+        /// 鑾峰彇鏈垎閰嶅尯鍩熻澶�
         /// </summary>
-        /// <param name="floorId"></param>
         /// <returns></returns>
-        public List<SceneUI> GetSceneUIsByFloorId(string floorId)
+        public List<DeviceUI> GetUnalloctedDeviceUIs()
         {
-            var rooms = GetRoomsByFloorId(floorId);
-            if (rooms == null)
+            List<DeviceUI> deviceUIs = new List<DeviceUI> { };
+            var dList = AllRoomDeviceUIList;
+            var commonDeviceList = Common.LocalDevice.Current.listAllDevice;
+
+            if (dList.Count == 0)
             {
                 return null;
             }
-            var sceneList = new List<SceneUI> { };
-            foreach (var r in rooms)
+            foreach (var device in commonDeviceList)
             {
-                if (r.SceneUIList.Count == 0)
+                if (dList.Find((obj) => obj.CommonDevice == device) == null)
                 {
-                    continue;
-                }
-                foreach (var sceneUI in r.SceneUIList)
-                {
-                    if (sceneUI == null)
-                    {
-                        continue;
-                    }
-                    sceneList.Add(sceneUI);
+                    deviceUIs.Add(Common.LocalDevice.Current.GetDeviceUI(device));
                 }
             }
-            return sceneList;
+            if (deviceUIs.Count == 0)
+            {
+                return null;
+            }
+            return deviceUIs;
         }
+
+        //public List<DeviceUI> GetUnalloctedDeviceUITypes
 
         #endregion
 
@@ -1266,6 +1299,7 @@
             }
             return null;
         }
+
         /// <summary>
         /// 鑾峰彇璇ユゼ灞傛墍鏈夊満鏅�
         /// </summary>
@@ -1281,6 +1315,74 @@
             }
             return sceneUIs;
         }
+
+        /// <summary>
+        /// 鑾峰彇璇ユゼ灞傜殑鍦烘櫙
+        /// </summary>
+        /// <param name="floorId"></param>
+        /// <returns></returns>
+        public List<SceneUI> GetSceneUIsByFloorId(string floorId)
+        {
+            var rooms = GetRoomsByFloorId(floorId);
+            if (rooms == null)
+            {
+                return null;
+            }
+            var sceneList = new List<SceneUI> { };
+            foreach (var r in rooms)
+            {
+                if (r.SceneUIList.Count == 0)
+                {
+                    continue;
+                }
+                foreach (var sceneUI in r.SceneUIList)
+                {
+                    if (sceneUI == null)
+                    {
+                        continue;
+                    }
+                    sceneList.Add(sceneUI);
+                }
+            }
+            return sceneList;
+        }
+
+        /// <summary>
+        /// 鑾峰彇鏈垎閰嶅尯鍩熷満鏅�
+        /// </summary>
+        /// <returns></returns>
+        public List<SceneUI> GetUnalloctedScenes()
+        {
+            List<SceneUI> sceneUIs = new List<SceneUI> { };
+            var sList = AllRoomSceneUIFilepathList;
+
+            List<string> sfile = new List<string> { };
+            foreach (var path in Global.FileListByHomeId())
+            {
+                if (path.StartsWith("Scene_", StringComparison.Ordinal))
+                {
+                    sfile.Add(path);
+                }
+            }
+            foreach (var path in sfile)
+            {
+                if (sList.Find((obj) => obj == path) == null)
+                {
+                    var jsonInfo = Encoding.UTF8.GetString(Global.ReadFileByHomeId(path));
+                    var tempSceneUI = Newtonsoft.Json.JsonConvert.DeserializeObject<SceneUI>(jsonInfo);
+                    if (tempSceneUI != null)
+                    {
+                        sceneUIs.Add(tempSceneUI);
+                    }
+                }
+            }
+            if (sceneUIs.Count == 0)
+            {
+                return null;
+            }
+            return sceneUIs;
+        }
+
         #endregion
 
         #region 鈼� 鍒锋柊鍦烘櫙_________________________
diff --git a/ZigbeeApp/Shared/DLL/Android/Shared.Droid.HDLWidget.dll b/ZigbeeApp/Shared/DLL/Android/Shared.Droid.HDLWidget.dll
index 866897a..4d88dec 100755
--- a/ZigbeeApp/Shared/DLL/Android/Shared.Droid.HDLWidget.dll
+++ b/ZigbeeApp/Shared/DLL/Android/Shared.Droid.HDLWidget.dll
Binary files differ
diff --git a/ZigbeeApp/Shared/DLL/Android/Shared.Droid.dll b/ZigbeeApp/Shared/DLL/Android/Shared.Droid.dll
index ac2ea32..fcc575e 100755
--- a/ZigbeeApp/Shared/DLL/Android/Shared.Droid.dll
+++ b/ZigbeeApp/Shared/DLL/Android/Shared.Droid.dll
Binary files differ
diff --git a/ZigbeeApp/Shared/DLL/IOS/Shared.IOS.TBL.dll b/ZigbeeApp/Shared/DLL/IOS/Shared.IOS.TBL.dll
index 05d277f..55be85a 100755
--- a/ZigbeeApp/Shared/DLL/IOS/Shared.IOS.TBL.dll
+++ b/ZigbeeApp/Shared/DLL/IOS/Shared.IOS.TBL.dll
Binary files differ
diff --git a/ZigbeeApp/Shared/DLL/IOS/Shared.IOS.dll b/ZigbeeApp/Shared/DLL/IOS/Shared.IOS.dll
index 9d2ff26..13526c4 100755
--- a/ZigbeeApp/Shared/DLL/IOS/Shared.IOS.dll
+++ b/ZigbeeApp/Shared/DLL/IOS/Shared.IOS.dll
Binary files differ
diff --git a/ZigbeeApp/Shared/Phone/Device/Account/AccountForgetPWD.cs b/ZigbeeApp/Shared/Phone/Device/Account/AccountForgetPWD.cs
index 9d5bd88..8147fd7 100755
--- a/ZigbeeApp/Shared/Phone/Device/Account/AccountForgetPWD.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Account/AccountForgetPWD.cs
@@ -331,10 +331,10 @@
                     errorBtn.TextID = R.MyInternationalizationString.SENDFAIL;
                     (sender as Button).Enable = (sender as Button).IsSelected = true;
                 }
-                else if (stateCodeStr == "EXIST")
+                else if (stateCodeStr == "ACCOUNTNOEXISTS")
                 {
-                    //璐﹀彿瀛樺湪
-                    errorBtn.TextID = R.MyInternationalizationString.AccountHasBeenRegistered;
+                    //璐﹀彿涓嶅瓨鍦�
+                    errorBtn.TextID = R.MyInternationalizationString.ACCOUNTNOEXISTS;
                     (sender as Button).Enable = (sender as Button).IsSelected = true;
                 }
                 else
@@ -466,6 +466,10 @@
                         //鎿嶄綔澶辫触
                         errorBtn.TextID = R.MyInternationalizationString.FAIL;
                     }
+                    else if(stateStr == "NEWPASSWORDANDOLDPASSWORDEQUAL")
+                    {
+                        errorBtn.TextID = R.MyInternationalizationString.NEWPASSWORDANDOLDPASSWORDEQUAL;
+                    }
                     else
                     {
                         errorBtn.TextID = R.MyInternationalizationString.RequestServerFailed;
diff --git a/ZigbeeApp/Shared/Phone/Device/Account/AccountLogic.cs b/ZigbeeApp/Shared/Phone/Device/Account/AccountLogic.cs
index 97aaec9..da33ab7 100755
--- a/ZigbeeApp/Shared/Phone/Device/Account/AccountLogic.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Account/AccountLogic.cs
@@ -105,14 +105,14 @@
         /// </summary>
         /// <param name="lat"></param>
         /// <param name="lon"></param>
-        public async void ReceiveAppLatAndLon(string lat, string lon)
+        public async void ReceiveAppLatAndLon(string lon, string lat)
         {
             try
             {
                 var requestObj = new SendDataToServer.ReceiveAppLatAndLonObj
                 {
-                    Latitude = lat,
-                    Longitude = lon
+                    Longitude = lon,
+                    Latitude = lat
                 };
                 var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestObj);
                 var revertObj = await RequestHttpsZigbeeAsync("ProcessRange/ReceiveAppLatAndLon", System.Text.Encoding.UTF8.GetBytes(requestJson));
@@ -177,8 +177,9 @@
         public async System.Threading.Tasks.Task<byte[]> RequestHttpsZigbeeBytesResultAsync(string requestUrl, byte[] byteData, string requestMethod = "POST")
         {
             //璇锋眰Url鐨勫畬鎴愯矾寰�
-            var fullUrl = $"{CommonPage.RequestHttpsHost}/{requestUrl}";
-            return await CommonPage.Instance.DoRequestZigbeeHttpsInterface(fullUrl, byteData, Config.Instance.LoginToken, requestMethod);
+            var requestHost = "https://global.hdlcontrol.com/GeofenceService";
+            var fullUrl = $"{requestHost}/{requestUrl}";
+            return await CommonPage.Instance.DoRequestZigbeeHttpsInterface(fullUrl, byteData, Config.Instance.Token, requestMethod);
         }
 
         #endregion
diff --git a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs
index 36ef4af..15b55a2 100755
--- a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs
@@ -85,7 +85,7 @@
         /// <summary>
         /// 鍔熻兘绫诲瀷鎸夐挳
         /// </summary>
-        private FunctionButton functionTypeIMG;
+        //private FunctionButton functionTypeIMG;
         /// <summary>
         /// 鍔熻兘绫诲瀷
         /// </summary>
@@ -93,7 +93,7 @@
         /// <summary>
         /// 璁惧绫诲瀷RowLayout
         /// </summary>
-        private FrameLayout typeRowLayout;
+        //private FrameLayout typeRowLayout;
         /// <summary>
         /// 妤煎眰
         /// </summary>
@@ -103,6 +103,26 @@
         /// </summary>
         private Button selectFloorBtn;
 
+        /// <summary>
+        /// 鐩稿悓绫诲瀷鐨勮澶囧垪琛�
+        /// </summary>
+        private Dictionary<int, List<DeviceUI>> typeDeviceDic;
+        /// <summary>
+        /// 璁惧绫诲瀷鐨勫浘id
+        /// </summary>
+        private Dictionary<int, DeviceConcreteType> typeIdDic;
+        /// <summary>
+        /// dList
+        /// </summary>
+        private List<DeviceUI> devList;
+        /// <summary>
+        /// sceneList
+        /// </summary>
+        private List<SceneUI> sceneList;
+        /// <summary>
+        /// 褰撳墠閫変腑鎴块棿
+        /// </summary>
+        private Common.Room curRoom;
         #endregion
 
         #region 鈼� 鎺ュ彛____________________________
@@ -456,6 +476,8 @@
         /// <param name="selectedBtn">閫変腑閭d釜鐣岄潰 0--鍔熻兘 1--鍦烘櫙 2--鑷姩鍖� </param>
         public void Show(int selectedBtn = 1)
         {
+            InitData();
+
             RemoveAll();
 
             #region topview
@@ -510,19 +532,21 @@
             midFL.AddChidren(functionSceneAutoBG);
 
             //鍦烘櫙
-            sceneBtn = new ButtonLineForm(CommonFormResouce.X_Left, 34, 150, 68);
+            sceneBtn = new ButtonLineForm(CommonFormResouce.X_Left, 34);
             functionSceneAutoBG.AddChidren(sceneBtn);
             sceneBtn.Init();
             sceneBtn.SetTitle(R.MyInternationalizationString.Scence);
             //鍔熻兘
-            functionBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 + 20, 34, 150, 68);
+            functionBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 + 20, 34);
             functionSceneAutoBG.AddChidren(functionBtn);
             functionBtn.Init();
             functionBtn.SetTitle(R.MyInternationalizationString.Function);
+            functionBtn.X = sceneBtn.Right;
             //鑷姩鍖�
-            automationBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 * 2 + 20+50, 34, 150, 68);
+            automationBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 * 2 + 20+50, 34);
             automationBtn.Init();
             automationBtn.SetTitle(R.MyInternationalizationString.Automation);
+            automationBtn.X = functionBtn.Right;
             //闅愯棌鑷姩鍖�
             if (UserCenter.UserCenterResourse.UserInfo.AuthorityNo != 3)
             {
@@ -537,6 +561,8 @@
                 Gravity = Gravity.CenterVertical,
                 TextAlignment = TextAlignment.CenterRight,
                 TextColor = ZigbeeColor.Current.GXCTextBlackColor,
+                TextSize=14,
+                IsBold=true
             };
 
             selectFloorBtn = new Button()
@@ -583,6 +609,7 @@
             #endregion
             //缁戝畾鎸夐挳浜嬩欢
             BindEvent();
+
         }
         #endregion
 
@@ -756,6 +783,45 @@
             }
         }
 
+        /// <summary>
+        /// InitData
+        /// </summary>
+        private void InitData()
+        {
+            typeDeviceDic = new Dictionary<int, List<DeviceUI>> { };
+            typeIdDic = new Dictionary<int, DeviceConcreteType> { };
+        }
+
+        /// <summary>
+        /// RefreshData
+        /// </summary>
+        private void RefreshData(Common.Room room)
+        {
+            devList = room.DeviceUIList;
+            sceneList = room.SceneUIList;
+            typeDeviceDic.Clear();
+            typeIdDic.Clear();
+            foreach (var device in devList)
+            {
+                var info = Common.LocalDevice.Current.GetNotHdlMyDeviceEnumInfo(new List<CommonDevice> { device.CommonDevice });
+                if (info.BeloneType == DeviceBeloneType.A骞叉帴鐐� || info.BeloneType == DeviceBeloneType.A涓户鍣�)
+                {
+                    continue;
+                }
+                if (typeDeviceDic.ContainsKey(info.BeloneTextId) == false)
+                {
+                    var sameDevList = new List<DeviceUI> { };
+                    sameDevList.Add(device);
+                    typeDeviceDic[info.BeloneTextId] = sameDevList;
+                }
+                else
+                {
+                    typeDeviceDic[info.BeloneTextId].Add(device);
+                }
+                typeIdDic[info.BeloneTextId] = info.ConcreteType;
+            }
+        }
+
         #endregion
 
         #region 鈼� 鍔熻兘____________________________
@@ -802,735 +868,750 @@
         /// <param name="room"></param>
         private void RefreshFunction(Common.Room room)
         {
+            RefreshData(room);
             //绉婚櫎鐩戝惉
             RemoveAllUpdateControlDeviceStatuAction();
             functionSceneBodyView.RemoveAll();
 
-            if (room.DeviceUIList.Count == 0)
+            if (typeDeviceDic.Count == 0)
             {
                 ShowNoFunctionTip();
             }
             else
             {
+                var functionTypeView1 = new FrameLayout
+                {
+                    X = Application.GetRealWidth(CommonFormResouce.X_Left),
+                    Height = Application.GetRealHeight(160),
+                    Width = Application.GetRealWidth(1028),
+                    BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+                };
+                functionSceneBodyView.AddChidren(functionTypeView1);
+                functionTypeView1.SetCornerWithSameRadius(Application.GetRealHeight(17), HDLUtils.RectCornerTopLeft);
+
+                var functionTypeView2 = new FrameLayout
+                {
+                    X = Application.GetRealWidth(CommonFormResouce.X_Left),
+                    Y = Application.GetRealHeight(150),
+                    Height = Application.GetRealHeight(279 - 150),
+                    Width = Application.GetRealWidth(1028),
+                    BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+                };
+                functionSceneBodyView.AddChidren(functionTypeView2);
+                functionTypeView2.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerBottomLeft);
+
                 functionTypeScrowView = new HorizontalScrolViewLayout
                 {
                     X = Application.GetRealWidth(CommonFormResouce.X_Left),
                     Height = Application.GetRealHeight(279),
                     Width = Application.GetRealWidth(1028),
-                    BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
                 };
                 functionSceneBodyView.AddChidren(functionTypeScrowView);
-                //functionSceneBodyView.SetCornerWithSameRadius(Application.GetRealHeight(50), HDLUtils.RectCornerBottomLeft);
 
                 deviceListScrolView = new VerticalScrolViewLayout
                 {
                     X = Application.GetRealWidth(CommonFormResouce.X_Left),
                     Y = Application.GetRealHeight(35+275),
                     Width = Application.GetRealWidth(1028),
-                    Height = Application.GetRealHeight(938) - 1,
+                    Height = Application.GetRealHeight(939),
                     BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
                 };
                 functionSceneBodyView.AddChidren(deviceListScrolView);
-                //deviceListScrolView.SetCornerWithSameRadius(Application.GetRealHeight(50), HDLUtils.RectCornerTopLeft);
+                deviceListScrolView.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft);
 
                 tempFunctionTypeBtn = new FunctionButton();
                 tempFunctionTypeBtn.Init("","");
 
-                EventHandler<MouseEventArgs> ShowSameTypeFunction = (object typeSender, MouseEventArgs mouseEventArgs) =>
+                foreach (var deviceType in typeIdDic)
                 {
-                    tempFunctionTypeBtn.IsSelected = false;
-                    tempFunctionTypeBtn = (typeSender as Button).Parent as FunctionButton;
-                    ((typeSender as Button).Parent as FunctionButton).IsSelected = true;
-
-                    deviceListScrolView.RemoveAll();
-
-                    var sameTypeList = new List<DeviceUI> { };
-                    foreach (var devieceUI in room.DeviceUIList)
+                    var typeRowLayout = new FrameLayout()
                     {
-                        if (devieceUI == null || devieceUI.CommonDevice == null)
-                        {
-                            continue;
-                        }
-                        if (devieceUI.CommonDevice.Type.ToString() == (typeSender as Button).Tag.ToString())
-                        {
-                            if (!sameTypeList.Contains(devieceUI))
-                            {
-                                sameTypeList.Add(devieceUI);
-                            }
-                        }
-                    }
-                    for (int i=0;i<sameTypeList.Count;i++)
-                    {
-                        var deviceUI = sameTypeList[i];
-                        new System.Threading.Thread(() =>
-                        {
-                            Application.RunOnMainThread(() =>
-                            {
-                                try
-                                {
-                                    //鍒犻櫎璁惧
-                                    EventHandler<MouseEventArgs> delEvent = (delSender, delE) =>
-                                    {
-                                        var alert = new CustomAlert();
-                                        AddChidren(alert);
-                                        alert.Show(Language.StringByID(R.MyInternationalizationString.DeleteFunction));
-                                        alert.ResultEventHandler += (e2) =>
-                                        {
-                                            if (e2)
-                                            {
-                                                Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.CommonDevice);
-                                                deviceListScrolView.RemoveViewByTag((delSender as Button).Tag);
-                                                sameTypeList.Remove(deviceUI);
-                                                if (sameTypeList.Count == 0)
-                                                {
-                                                    RefreshBodyView();
-                                                }
-                                            }
-                                        };
-                                    };
-                                    EventHandler<MouseEventArgs> deviceDetailHandler = (send2, e2) =>
-                                    {
-                                        var detailInfo = new Device.CommonForm.DeviceDetailInfo { };
-                                        UserView.HomePage.Instance.AddChidren(detailInfo);
-                                        UserView.HomePage.Instance.PageIndex += 1;
-                                        detailInfo.Show(deviceUI, Shared.Common.Room.CurrentRoom);
-                                        detailInfo.action = RefreshBodyView;
-                                    };
-
-                                    if (deviceUI.CommonDevice.Type == DeviceType.OnOffOutput)
-                                    {
-                                        //鐏�
-                                        var light = deviceUI.CommonDevice as ToggleLight;
-                                        if (light.Gateway != null)
-                                        {
-                                            new System.Threading.Thread(() =>
-                                            {
-                                                System.Threading.Thread.Sleep(100 * i);
-                                                if (light.Gateway.IsVirtual)
-                                                {
-                                                    UserHomeView.ReadStatus(light, () =>
-                                                    {
-                                                        ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice);
-                                                    });
-                                                }
-                                                else
-                                                {
-                                                    //闃叉鐭椂闂村唴澶氭璇诲彇鐘舵��
-                                                    if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - light.LastDateTime).TotalSeconds)
-                                                    {
-                                                        ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice);
-                                                    }
-                                                }
-                                            })
-                                            { IsBackground = true }.Start();
-
-                                            var deviceTypeRowLayout = new RowLayout()
-                                            {
-                                                Height = Application.GetRealHeight(129 + 35),
-                                                LineColor = ZigbeeColor.Current.GXCBackgroundColor,
-                                                Tag = deviceUI
-                                            };
-                                            deviceListScrolView.AddChidren(deviceTypeRowLayout);
-
-                                            var deviceRow = new CategoryFunctionRow(0, 35);
-                                            deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
-                                            deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
-                                            deviceRow.SetOnLineStatu(light.IsOnline == 1);
-                                            deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
-                                            deviceRow.SetStatu(light.OnOffStatus == 1);
-                                            deviceTypeRowLayout.AddChidren(deviceRow);
-
-                                            deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
-                                            {
-                                                zbGateway = deviceUI.CommonDevice.Gateway;
-                                                sendedControlCommand = false;
-                                                zbGateway.ReportAction += UpdateDeviceControllStatu;
-                                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
-                                                (send2 as Button).IsSelected = !(send2 as Button).IsSelected;
-                                                deviceRow.IsSelected = (send2 as Button).IsSelected;
-                                                if ((send2 as Button).IsSelected)
-                                                {
-                                                    light.SwitchControl(1);
-                                                }
-                                                else
-                                                {
-                                                    light.SwitchControl(0);
-                                                }
-                                                deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
-                                                //鎺у埗寤舵椂鍥炶皟
-                                                DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
-                                                {
-                                                    if (Parent == null)
-                                                    {
-                                                        return;
-                                                    }
-                                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
-                                                    if (sendedControlCommand == false)
-                                                    {
-                                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
-                                                    }
-                                                });
-                                            };
-
-                                            deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) =>
-                                            {
-                                                if (deviceUI.CommonDevice.DfunctionType == DeviceFunctionType.A寮�鍏�)
-                                                {
-                                                    var lightControl = new Phone.Device.Light.OnOffControl();
-                                                    UserView.HomePage.Instance.AddChidren(lightControl);
-                                                    UserView.HomePage.Instance.PageIndex += 1;
-                                                    //lightControl.action = RefreshBodyView;
-                                                    lightControl.Show(deviceUI, room);
-                                                }
-                                                else if (deviceUI.CommonDevice.DfunctionType == DeviceFunctionType.A鎻掑骇)
-                                                {
-                                                    var lightControl = new Phone.Device.Light.PlugControl();
-                                                    UserView.HomePage.Instance.AddChidren(lightControl);
-                                                    UserView.HomePage.Instance.PageIndex += 1;
-                                                    //lightControl.action = RefreshBodyView;
-                                                    lightControl.Show(deviceUI, room);
-                                                }
-                                                else
-                                                {
-                                                    var lightControl = new Phone.Device.Light.LightControl();
-                                                    UserView.HomePage.Instance.AddChidren(lightControl);
-                                                    UserView.HomePage.Instance.PageIndex += 1;
-                                                    //lightControl.action = RefreshBodyView;
-                                                    lightControl.Show(deviceUI, room);
-                                                }
-                                            };
-
-                                            var editBtn = new CommonForm.RowLayoutEditButton()
-                                            {
-                                                Tag = deviceUI,
-                                                Radius = 0
-                                            };
-                                            var delBtn = new CommonForm.RowLayoutDeleteButton()
-                                            {
-                                                Tag = deviceUI,
-                                                Radius = 0
-                                            };
-                                            if (room.IsSharedRoom == false)
-                                            {
-                                                deviceTypeRowLayout.AddRightView(editBtn);
-                                                editBtn.MouseUpEventHandler += deviceDetailHandler;
-                                                deviceTypeRowLayout.AddRightView(delBtn);
-                                                delBtn.MouseUpEventHandler += delEvent;
-                                            }
-                                        }
-                                    }
-                                    else if (deviceUI.CommonDevice.Type == DeviceType.AirSwitch)
-                                    {
-                                        //绌烘皵寮�鍏�
-                                        var airSwitch = deviceUI.CommonDevice as AirSwitch;
-                                        if (airSwitch.Gateway != null)
-                                        {
-                                            new System.Threading.Thread(() =>
-                                            {
-                                                System.Threading.Thread.Sleep(100 * i);
-                                                if (airSwitch.Gateway.IsVirtual)
-                                                {
-                                                    UserHomeView.ReadStatus(airSwitch, () =>
-                                                    {
-                                                        ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice);
-                                                    });
-                                                }
-                                                else
-                                                {
-                                                    if ((DateTime.Now - airSwitch.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
-                                                    {
-                                                        ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice);
-                                                    }
-                                                }
-                                            })
-                                            { IsBackground = true }.Start();
-
-                                            var deviceTypeRowLayout = new RowLayout()
-                                            {
-                                                Height = Application.GetRealHeight(129 + 35),
-                                                LineColor = ZigbeeColor.Current.GXCBackgroundColor,
-                                                Tag = deviceUI
-                                            };
-                                            deviceListScrolView.AddChidren(deviceTypeRowLayout);
-
-                                            var deviceRow = new CategoryFunctionRow(0, 35);
-                                            deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
-                                            deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
-                                            deviceRow.SetOnLineStatu(airSwitch.IsOnline == 1);
-                                            deviceRow.SetStatu(airSwitch.OnOffStatus == 1);
-                                            deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
-                                            deviceTypeRowLayout.AddChidren(deviceRow);
-
-                                            deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
-                                            {
-                                                zbGateway = deviceUI.CommonDevice.Gateway;
-                                                sendedControlCommand = false;
-                                                zbGateway.ReportAction += UpdateDeviceControllStatu;
-                                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
-
-                                                (send2 as Button).IsSelected = !(send2 as Button).IsSelected;
-                                                if ((send2 as Button).IsSelected)
-                                                {
-                                                    airSwitch.SwitchControl(1);
-                                                }
-                                                else
-                                                {
-                                                    airSwitch.SwitchControl(0);
-                                                }
-                                                deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
-                                                //鎺у埗寤舵椂鍥炶皟
-                                                DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
-                                                {
-                                                    if (Parent == null)
-                                                    {
-                                                        return;
-                                                    }
-                                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
-                                                    if (sendedControlCommand == false)
-                                                    {
-                                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
-                                                    }
-                                                });
-                                            };
-
-                                            deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) =>
-                                            {
-
-                                                var lightControl = new Phone.Device.Light.AirSwitchControl();
-                                                UserView.HomePage.Instance.AddChidren(lightControl);
-                                                UserView.HomePage.Instance.PageIndex += 1;
-                                                //lightControl.action = RefreshBodyView;
-                                                lightControl.Show(deviceUI, room);
-                                            };
-
-                                            var editBtn = new CommonForm.RowLayoutEditButton()
-                                            {
-                                                Tag = deviceUI,
-                                                Radius = 0
-                                            };
-                                            var delBtn = new CommonForm.RowLayoutDeleteButton()
-                                            {
-                                                Tag = deviceUI,
-                                                Radius = 0
-                                            };
-                                            if (room.IsSharedRoom == false)
-                                            {
-                                                deviceTypeRowLayout.AddRightView(editBtn);
-                                                editBtn.MouseUpEventHandler += deviceDetailHandler;
-                                                deviceTypeRowLayout.AddRightView(delBtn);
-                                                delBtn.MouseUpEventHandler += delEvent;
-                                            }
-                                        }
-                                    }
-                                    else if (deviceUI.CommonDevice.Type == DeviceType.DimmableLight)
-                                    {
-                                        //璋冨厜鐏�
-                                        var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight;
-                                        if (dimmableLight.Gateway != null)
-                                        {
-                                            new System.Threading.Thread(() =>
-                                            {
-                                                System.Threading.Thread.Sleep(100 * i);
-                                                if (dimmableLight.Gateway.IsVirtual)
-                                                {
-                                                    UserHomeView.ReadStatus(dimmableLight, () =>
-                                                    {
-                                                        ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(deviceUI.CommonDevice);
-                                                    });
-                                                }
-                                                else
-                                                {
-                                                    if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
-                                                    {
-                                                        ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(deviceUI.CommonDevice);
-                                                    }
-                                                }
-                                            })
-                                            { IsBackground = true }.Start();
-
-                                            var deviceTypeRowLayout = new RowLayout()
-                                            {
-                                                Height = Application.GetRealHeight(129 + 35),
-                                                LineColor = ZigbeeColor.Current.GXCBackgroundColor,
-                                                Tag = deviceUI
-                                            };
-                                            deviceListScrolView.AddChidren(deviceTypeRowLayout);
-
-                                            var deviceRow = new CategoryFunctionRow(0, 35);
-                                            deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
-                                            deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
-                                            deviceRow.SetOnLineStatu(dimmableLight.IsOnline == 1);
-                                            deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
-                                            deviceRow.SetStatu(dimmableLight.OnOffStatus == 1);
-                                            deviceTypeRowLayout.AddChidren(deviceRow);
-
-                                            deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
-                                            {
-                                                zbGateway = deviceUI.CommonDevice.Gateway;
-                                                sendedControlCommand = false;
-                                                zbGateway.ReportAction += UpdateDeviceControllStatu;
-                                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
-
-                                                (send2 as Button).IsSelected = !(send2 as Button).IsSelected;
-                                                if ((send2 as Button).IsSelected)
-                                                {
-                                                    dimmableLight.SwitchControl(1);
-                                                }
-                                                else
-                                                {
-                                                    dimmableLight.SwitchControl(0);
-                                                }
-                                                deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
-                                                //鎺у埗寤舵椂鍥炶皟
-                                                DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
-                                                {
-                                                    if (Parent == null)
-                                                    {
-                                                        return;
-                                                    }
-                                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
-                                                    if (sendedControlCommand == false)
-                                                    {
-                                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
-                                                    }
-                                                });
-                                            };
-
-                                            deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) =>
-                                            {
-                                                var dimmableLightControl = new Phone.Device.Light.DimmableLightControl();
-                                                UserView.HomePage.Instance.AddChidren(dimmableLightControl);
-                                                UserView.HomePage.Instance.PageIndex += 1;
-                                                UserView.HomePage.Instance.ScrollEnabled = false;
-                                                //dimmableLightControl.action = RefreshBodyView;
-                                                dimmableLightControl.Show(deviceUI, room);
-                                            };
-
-                                            var editBtn = new CommonForm.RowLayoutEditButton()
-                                            {
-                                                Tag = deviceUI,
-                                                Radius = 0
-                                            };
-                                            var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
-                                            {
-                                                Tag = deviceUI,
-                                                Radius = 0
-                                            };
-                                            if (room.IsSharedRoom == false)
-                                            {
-                                                deviceTypeRowLayout.AddRightView(editBtn);
-                                                editBtn.MouseUpEventHandler += deviceDetailHandler;
-                                                deviceTypeRowLayout.AddRightView(delBtn);
-                                                delBtn.MouseUpEventHandler += delEvent;
-                                            }
-                                        }
-                                    }
-                                    else if (deviceUI.CommonDevice.Type == DeviceType.Thermostat)
-                                    {
-                                        //绌鸿皟
-                                        var ac = deviceUI.CommonDevice as ZigBee.Device.AC;
-                                        if (ac.Gateway != null)
-                                        {
-                                            new System.Threading.Thread(() =>
-                                            {
-                                                System.Threading.Thread.Sleep(100 * i);
-                                                if (ac.Gateway.IsVirtual)
-                                                {
-                                                    //鍙戦�佽鍙栫姸鎬佸懡浠�
-                                                    UserView.UserHomeView.ReadStatus(ac, () =>
-                                                    {
-                                                        ReadDeviceAttributeLogic.Instance.SendACStatuComand(deviceUI.CommonDevice);
-                                                    });
-                                                }
-                                                else
-                                                {
-                                                    //闃叉鐭椂闂村唴澶氭璇诲彇璁惧鐘舵��
-                                                    if ((DateTime.Now - ac.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
-                                                    {
-                                                        ReadDeviceAttributeLogic.Instance.SendACStatuComand(deviceUI.CommonDevice);
-                                                    }
-                                                }
-                                            })
-                                            { IsBackground = true }.Start();
-
-                                            var deviceTypeRowLayout = new RowLayout()
-                                            {
-                                                Height = Application.GetRealHeight(129 + 35),
-                                                LineColor = ZigbeeColor.Current.GXCBackgroundColor,
-                                                Tag = deviceUI
-                                            };
-                                            deviceListScrolView.AddChidren(deviceTypeRowLayout);
-
-                                            var deviceRow = new CategoryFunctionRow(0, 35);
-                                            deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
-                                            deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
-                                            deviceRow.SetOnLineStatu(ac.IsOnline == 1);
-                                            deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
-                                            deviceRow.SetStatu(ac.currentSystemMode != 1);
-                                            deviceTypeRowLayout.AddChidren(deviceRow);
-
-                                            deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
-                                            {
-                                                zbGateway = deviceUI.CommonDevice.Gateway;
-                                                sendedControlCommand = false;
-                                                zbGateway.ReportAction += UpdateDeviceControllStatu;
-                                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
-
-                                                (send2 as Button).IsSelected = !(send2 as Button).IsSelected;
-                                                if ((send2 as Button).IsSelected)
-                                                {
-                                                    ac.Open();
-                                                }
-                                                else
-                                                {
-                                                    ac.Close();
-                                                }
-                                                deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
-                                                //鎺у埗寤舵椂鍥炶皟
-                                                DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
-                                                {
-                                                    if (Parent == null)
-                                                    {
-                                                        return;
-                                                    }
-                                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
-                                                    if (sendedControlCommand == false)
-                                                    {
-                                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
-                                                    }
-                                                });
-                                            };
-
-                                            var editBtn = new CommonForm.RowLayoutEditButton()
-                                            {
-                                                Tag = deviceUI,
-                                                Radius = 0
-                                            };
-                                            var delBtn = new CommonForm.RowLayoutDeleteButton()
-                                            {
-                                                Tag = deviceUI,
-                                                Radius = 0
-                                            };
-                                            if (room.IsSharedRoom == false)
-                                            {
-                                                deviceTypeRowLayout.AddRightView(editBtn);
-                                                editBtn.MouseUpEventHandler += deviceDetailHandler;
-                                                deviceTypeRowLayout.AddRightView(delBtn);
-                                                delBtn.MouseUpEventHandler += delEvent;
-                                            }
-
-                                            deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) =>
-                                            {
-                                                var acControl = new Phone.Device.AC.ACControl();
-                                                UserView.HomePage.Instance.AddChidren(acControl);
-                                                UserView.HomePage.Instance.PageIndex += 1;
-                                                UserView.HomePage.Instance.ScrollEnabled = false;
-                                                //rollerShadeControl.action = RefreshBodyView;
-                                                acControl.Show(deviceUI, room);
-                                            };
-                                        }
-                                    }
-                                    else if (deviceUI.CommonDevice.Type == DeviceType.WindowCoveringDevice)
-                                    {
-                                        //鍗峰笜
-                                        var rollerShade = deviceUI.CommonDevice as ZigBee.Device.Rollershade;
-                                        if (rollerShade.Gateway != null)
-                                        {
-                                            new System.Threading.Thread(() =>
-                                            {
-                                                System.Threading.Thread.Sleep(100 * i);
-                                                if (rollerShade.Gateway.IsVirtual)
-                                                {
-                                                    UserHomeView.ReadStatus(rollerShade, () =>
-                                                    {
-                                                        ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(deviceUI.CommonDevice);
-                                                    });
-                                                }
-                                                else
-                                                {
-                                                    //闃叉鐭椂闂村唴澶氭璇诲彇
-                                                    if ((DateTime.Now - rollerShade.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
-                                                    {
-                                                        ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(deviceUI.CommonDevice);
-                                                    }
-                                                }
-                                            })
-                                            { IsBackground = true }.Start();
-
-                                            var deviceTypeRowLayout = new RowLayout()
-                                            {
-                                                Height = Application.GetRealHeight(129 + 35),
-                                                LineColor = ZigbeeColor.Current.GXCBackgroundColor,
-                                                Tag = deviceUI
-                                            };
-                                            deviceListScrolView.AddChidren(deviceTypeRowLayout);
-
-                                            var deviceRow = new CategoryFunctionForWinRow(0, 35);
-                                            deviceRow.Init(deviceUI);
-                                            deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
-                                            deviceRow.SetOnLineStatu(rollerShade.IsOnline == 1);
-                                            deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
-                                            deviceRow.SetStatu(rollerShade.WcdCurrentPositionLiftPercentage != 0);
-                                            deviceRow.SetRollerShadeIcon(rollerShade.WcdType);
-                                            deviceTypeRowLayout.AddChidren(deviceRow);
-
-                                            if (rollerShade.WcdType == -1)
-                                            {
-                                                CommonPage.Loading.Start();
-                                                new System.Threading.Thread(() =>
-                                                {
-                                                    Rollershade.ReadWcdTypeAction(rollerShade, () =>
-                                                    {
-                                                        Application.RunOnMainThread(() =>
-                                                        {
-                                                            deviceRow.SetRollerShadeIcon(rollerShade.WcdType);
-                                                            CommonPage.Loading.Hide();
-                                                        });
-                                                    });
-                                                })
-                                                { IsBackground = true }.Start();
-                                            }
-
-                                            var editBtn = new CommonForm.RowLayoutEditButton()
-                                            {
-                                                Tag = deviceUI,
-                                                Radius = 0
-                                            };
-                                            var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
-                                            {
-                                                Tag = deviceUI,
-                                                Radius = 0
-                                            };
-                                            if (room.IsSharedRoom == false)
-                                            {
-                                                deviceTypeRowLayout.AddRightView(editBtn);
-                                                editBtn.MouseUpEventHandler += deviceDetailHandler;
-                                                deviceTypeRowLayout.AddRightView(delBtn);
-                                                delBtn.MouseUpEventHandler += delEvent;
-                                            }
-
-                                            deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) =>
-                                            {
-                                                var rollerShadeControl = new Phone.Device.Curtain.RollerShadeControl();
-                                                UserView.HomePage.Instance.AddChidren(rollerShadeControl);
-                                                UserView.HomePage.Instance.PageIndex += 1;
-                                                UserView.HomePage.Instance.ScrollEnabled = false;
-                                                //rollerShadeControl.action = RefreshBodyView;
-                                                rollerShadeControl.Show(deviceUI, room);
-                                            };
-                                        }
-                                    }
-                                    else if (deviceUI.CommonDevice.Type == DeviceType.DoorLock)
-                                    {
-                                        var deviceTypeRowLayout = new RowLayout()
-                                        {
-                                            Height = Application.GetRealHeight(129 + 35),
-                                            LineColor = ZigbeeColor.Current.GXCBackgroundColor,
-                                            Tag = deviceUI
-                                        };
-                                        deviceListScrolView.AddChidren(deviceTypeRowLayout);
-
-                                        var deviceRow = new CategoryFunctionRow(0, 35);
-                                        deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
-                                        deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
-                                        deviceRow.SetOnLineStatu(deviceUI.CommonDevice.IsOnline == 1);
-                                        deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
-                                        deviceRow.HideSwitchBtn(true);
-                                        deviceTypeRowLayout.AddChidren(deviceRow);
-
-                                        deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) =>
-                                        {
-                                            var userDoorLockPage = new UserDoorLockPage(room, deviceUI);
-                                            HomePage.Instance.AddChidren(userDoorLockPage);
-                                            HomePage.Instance.PageIndex += 1;
-                                            userDoorLockPage.Show();
-                                        };
-
-                                        var editBtn = new CommonForm.RowLayoutEditButton()
-                                        {
-                                            Tag = deviceUI
-                                        };
-                                        var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
-                                        {
-                                            Tag = deviceUI
-                                        };
-                                        if (room.IsSharedRoom == false)
-                                        {
-                                            deviceTypeRowLayout.AddRightView(editBtn);
-                                            editBtn.MouseUpEventHandler += deviceDetailHandler;
-                                            deviceTypeRowLayout.AddRightView(delBtn);
-                                            delBtn.MouseUpEventHandler += delEvent;
-                                        }
-                                    }
-                                    else
-                                    {
-                                        var deviceTypeRowLayout = new RowLayout()
-                                        {
-                                            Height = Application.GetRealHeight(129 + 35),
-                                            LineColor = ZigbeeColor.Current.GXCBackgroundColor,
-                                            Tag = deviceUI
-                                        };
-                                        deviceListScrolView.AddChidren(deviceTypeRowLayout);
-
-                                        var deviceRow = new CategoryFunctionRow(0, 35);
-                                        deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
-                                        deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
-                                        deviceRow.SetOnLineStatu(deviceUI.CommonDevice.IsOnline == 1);
-                                        deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
-                                        deviceRow.HideSwitchBtn(true);
-                                        deviceTypeRowLayout.AddChidren(deviceRow);
-
-                                        var editBtn = new CommonForm.RowLayoutEditButton()
-                                        {
-                                            Tag = deviceUI
-                                        };
-                                        var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
-                                        {
-                                            Tag = deviceUI
-                                        };
-                                        if (room.IsSharedRoom == false)
-                                        {
-                                            deviceTypeRowLayout.AddRightView(editBtn);
-                                            editBtn.MouseUpEventHandler += deviceDetailHandler;
-                                            deviceTypeRowLayout.AddRightView(delBtn);
-                                            delBtn.MouseUpEventHandler += delEvent;
-                                        }
-                                    }
-                                }
-                                catch
-                                {
-
-                                }
-                            });
-                        })
-                        { IsBackground=true}.Start();
-                    }
-                };
-
-                foreach (var deviceType in Common.Room.GetdeviceTypes(room))
-                {
-                    typeRowLayout = new FrameLayout()
-                    {
-                        Width = Application.GetRealWidth(CommonPage.AppRealWidth / 5),
-                        Tag = deviceType
+                        Width = Application.GetRealWidth(220),
                     };
                     functionTypeScrowView.AddChidren(typeRowLayout);
 
-                    functionTypeIMG = new FunctionButton()
+                    var functionTypeIMG = new FunctionButton()
                     {
-                        Tag = deviceType
+                        Tag = deviceType.Key
                     };
-                    functionTypeIMG.Init(DeviceUI.GetDeviceTypeUnSelectedImagePath(deviceType), DeviceUI.GetDeviceTypeUnSelectedImagePath(deviceType));
-                    functionTypeIMG.SetTitle(DeviceUI.GetDeviceTypeName(deviceType));
+                    string imgPath = string.Empty;
+                    string imgSeletedPath = string.Empty;
+                    Common.LocalDevice.Current.GetDeviceBeloneIcon(deviceType.Value, ref imgPath, ref imgSeletedPath);
+                    functionTypeIMG.Init(imgPath, imgSeletedPath);
+                    functionTypeIMG.SetTitle(deviceType.Key);
                     typeRowLayout.AddChidren(functionTypeIMG);
 
                     functionTypeIMG.ClickBtn.MouseUpEventHandler += ShowSameTypeFunction;
 
-                    if (deviceType == room.DeviceUIList[0].CommonDevice.Type)
+                    if (functionTypeScrowView.ChildrenCount == 1)
                     {
                         ShowSameTypeFunction(functionTypeIMG.ImageBtn, null);
                     }
                 }
+            }
+        }
+
+        /// <summary>
+        /// 鏄剧ず鐩稿悓绫诲瀷鐨勫姛鑳�
+        /// </summary>
+        /// <param name="typeSender">typeSender.</param>
+        /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param>
+        private void ShowSameTypeFunction(object typeSender, MouseEventArgs mouseEventArgs)
+        {
+            tempFunctionTypeBtn.IsSelected = false;
+            tempFunctionTypeBtn = (typeSender as Button).Parent as FunctionButton;
+            ((typeSender as Button).Parent as FunctionButton).IsSelected = true;
+
+            deviceListScrolView.RemoveAll();
+
+            var sameTypeList = new List<DeviceUI> { };
+            sameTypeList = typeDeviceDic[int.Parse((typeSender as Button).Tag.ToString())];
+
+            for (int i = 0; i < sameTypeList.Count; i++)
+            {
+                var deviceUI = sameTypeList[i];
+                new System.Threading.Thread(() =>
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        try
+                        {
+                            //鍒犻櫎璁惧
+                            EventHandler<MouseEventArgs> delEvent = (delSender, delE) =>
+                            {
+                                var alert = new CustomAlert();
+                                AddChidren(alert);
+                                alert.Show(Language.StringByID(R.MyInternationalizationString.DeleteFunction));
+                                alert.ResultEventHandler += (e2) =>
+                                {
+                                    if (e2)
+                                    {
+                                        Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.CommonDevice);
+                                        deviceListScrolView.RemoveViewByTag((delSender as Button).Tag);
+                                        sameTypeList.Remove(deviceUI);
+                                        if (sameTypeList.Count == 0)
+                                        {
+                                            RefreshBodyView();
+                                        }
+                                    }
+                                };
+                            };
+                            EventHandler<MouseEventArgs> deviceDetailHandler = (send2, e2) =>
+                            {
+                                var detailInfo = new Device.CommonForm.DeviceDetailInfo { };
+                                UserView.HomePage.Instance.AddChidren(detailInfo);
+                                UserView.HomePage.Instance.PageIndex += 1;
+                                detailInfo.Show(deviceUI, Shared.Common.Room.CurrentRoom);
+                                detailInfo.action = RefreshBodyView;
+                            };
+
+                            if (deviceUI.CommonDevice.Type == DeviceType.OnOffOutput)
+                            {
+                                //鐏�
+                                var light = deviceUI.CommonDevice as ToggleLight;
+                                if (light.Gateway != null)
+                                {
+                                    new System.Threading.Thread(() =>
+                                    {
+                                        System.Threading.Thread.Sleep(100 * i);
+                                        if (light.Gateway.IsVirtual)
+                                        {
+                                            UserHomeView.ReadStatus(light, () =>
+                                            {
+                                                ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice);
+                                            });
+                                        }
+                                        else
+                                        {
+                                            //闃叉鐭椂闂村唴澶氭璇诲彇鐘舵��
+                                            if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - light.LastDateTime).TotalSeconds)
+                                            {
+                                                ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice);
+                                            }
+                                        }
+                                    })
+                                    { IsBackground = true }.Start();
+
+                                    var deviceTypeRowLayout = new RowLayout()
+                                    {
+                                        Height = Application.GetRealHeight(129 + 35),
+                                        LineColor = ZigbeeColor.Current.GXCBackgroundColor,
+                                        Tag = deviceUI
+                                    };
+                                    deviceListScrolView.AddChidren(deviceTypeRowLayout);
+
+                                    var deviceRow = new CategoryFunctionRow(0, 35);
+                                    deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
+                                    deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
+                                    deviceRow.SetOnLineStatu(light.IsOnline == 1);
+                                    deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                    deviceRow.SetStatu(light.OnOffStatus == 1);
+                                    deviceTypeRowLayout.AddChidren(deviceRow);
+
+                                    deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
+                                    {
+                                        zbGateway = deviceUI.CommonDevice.Gateway;
+                                        sendedControlCommand = false;
+                                        zbGateway.ReportAction += UpdateDeviceControllStatu;
+                                        AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
+                                        (send2 as Button).IsSelected = !(send2 as Button).IsSelected;
+                                        deviceRow.IsSelected = (send2 as Button).IsSelected;
+                                        if ((send2 as Button).IsSelected)
+                                        {
+                                            light.SwitchControl(1);
+                                        }
+                                        else
+                                        {
+                                            light.SwitchControl(0);
+                                        }
+                                        deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                        //鎺у埗寤舵椂鍥炶皟
+                                        DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
+                                        {
+                                            if (Parent == null)
+                                            {
+                                                return;
+                                            }
+                                            RemoveUpdateControlDeviceStatuAction(zbGateway);
+                                            if (sendedControlCommand == false)
+                                            {
+                                                DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
+                                            }
+                                        });
+                                    };
+
+                                    deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) =>
+                                    {
+                                        if (deviceUI.CommonDevice.DfunctionType == DeviceFunctionType.A寮�鍏�)
+                                        {
+                                            var lightControl = new Phone.Device.Light.OnOffControl();
+                                            UserView.HomePage.Instance.AddChidren(lightControl);
+                                            UserView.HomePage.Instance.PageIndex += 1;
+                                            //lightControl.action = RefreshBodyView;
+                                            lightControl.Show(deviceUI, curRoom);
+                                        }
+                                        else if (deviceUI.CommonDevice.DfunctionType == DeviceFunctionType.A鎻掑骇)
+                                        {
+                                            var lightControl = new Phone.Device.Light.PlugControl();
+                                            UserView.HomePage.Instance.AddChidren(lightControl);
+                                            UserView.HomePage.Instance.PageIndex += 1;
+                                            //lightControl.action = RefreshBodyView;
+                                            lightControl.Show(deviceUI, curRoom);
+                                        }
+                                        else
+                                        {
+                                            var lightControl = new Phone.Device.Light.LightControl();
+                                            UserView.HomePage.Instance.AddChidren(lightControl);
+                                            UserView.HomePage.Instance.PageIndex += 1;
+                                            //lightControl.action = RefreshBodyView;
+                                            lightControl.Show(deviceUI, curRoom);
+                                        }
+                                    };
+
+                                    var editBtn = new CommonForm.RowLayoutEditButton()
+                                    {
+                                        Tag = deviceUI,
+                                        Radius = 0
+                                    };
+                                    var delBtn = new CommonForm.RowLayoutDeleteButton()
+                                    {
+                                        Tag = deviceUI,
+                                        Radius = 0
+                                    };
+                                    if (curRoom.IsSharedRoom == false)
+                                    {
+                                        deviceTypeRowLayout.AddRightView(editBtn);
+                                        editBtn.MouseUpEventHandler += deviceDetailHandler;
+                                        deviceTypeRowLayout.AddRightView(delBtn);
+                                        delBtn.MouseUpEventHandler += delEvent;
+                                    }
+                                }
+                            }
+                            else if (deviceUI.CommonDevice.Type == DeviceType.AirSwitch)
+                            {
+                                //绌烘皵寮�鍏�
+                                var airSwitch = deviceUI.CommonDevice as AirSwitch;
+                                if (airSwitch.Gateway != null)
+                                {
+                                    new System.Threading.Thread(() =>
+                                    {
+                                        System.Threading.Thread.Sleep(100 * i);
+                                        if (airSwitch.Gateway.IsVirtual)
+                                        {
+                                            UserHomeView.ReadStatus(airSwitch, () =>
+                                            {
+                                                ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice);
+                                            });
+                                        }
+                                        else
+                                        {
+                                            if ((DateTime.Now - airSwitch.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
+                                            {
+                                                ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice);
+                                            }
+                                        }
+                                    })
+                                    { IsBackground = true }.Start();
+
+                                    var deviceTypeRowLayout = new RowLayout()
+                                    {
+                                        Height = Application.GetRealHeight(129 + 35),
+                                        LineColor = ZigbeeColor.Current.GXCBackgroundColor,
+                                        Tag = deviceUI
+                                    };
+                                    deviceListScrolView.AddChidren(deviceTypeRowLayout);
+
+                                    var deviceRow = new CategoryFunctionRow(0, 35);
+                                    deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
+                                    deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
+                                    deviceRow.SetOnLineStatu(airSwitch.IsOnline == 1);
+                                    deviceRow.SetStatu(airSwitch.OnOffStatus == 1);
+                                    deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                    deviceTypeRowLayout.AddChidren(deviceRow);
+
+                                    deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
+                                    {
+                                        zbGateway = deviceUI.CommonDevice.Gateway;
+                                        sendedControlCommand = false;
+                                        zbGateway.ReportAction += UpdateDeviceControllStatu;
+                                        AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
+
+                                        (send2 as Button).IsSelected = !(send2 as Button).IsSelected;
+                                        if ((send2 as Button).IsSelected)
+                                        {
+                                            airSwitch.SwitchControl(1);
+                                        }
+                                        else
+                                        {
+                                            airSwitch.SwitchControl(0);
+                                        }
+                                        deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                        //鎺у埗寤舵椂鍥炶皟
+                                        DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
+                                        {
+                                            if (Parent == null)
+                                            {
+                                                return;
+                                            }
+                                            RemoveUpdateControlDeviceStatuAction(zbGateway);
+                                            if (sendedControlCommand == false)
+                                            {
+                                                DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
+                                            }
+                                        });
+                                    };
+
+                                    deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) =>
+                                    {
+
+                                        var lightControl = new Phone.Device.Light.AirSwitchControl();
+                                        UserView.HomePage.Instance.AddChidren(lightControl);
+                                        UserView.HomePage.Instance.PageIndex += 1;
+                                        //lightControl.action = RefreshBodyView;
+                                        lightControl.Show(deviceUI, curRoom);
+                                    };
+
+                                    var editBtn = new CommonForm.RowLayoutEditButton()
+                                    {
+                                        Tag = deviceUI,
+                                        Radius = 0
+                                    };
+                                    var delBtn = new CommonForm.RowLayoutDeleteButton()
+                                    {
+                                        Tag = deviceUI,
+                                        Radius = 0
+                                    };
+                                    if (curRoom.IsSharedRoom == false)
+                                    {
+                                        deviceTypeRowLayout.AddRightView(editBtn);
+                                        editBtn.MouseUpEventHandler += deviceDetailHandler;
+                                        deviceTypeRowLayout.AddRightView(delBtn);
+                                        delBtn.MouseUpEventHandler += delEvent;
+                                    }
+                                }
+                            }
+                            else if (deviceUI.CommonDevice.Type == DeviceType.DimmableLight)
+                            {
+                                //璋冨厜鐏�
+                                var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight;
+                                if (dimmableLight.Gateway != null)
+                                {
+                                    new System.Threading.Thread(() =>
+                                    {
+                                        System.Threading.Thread.Sleep(100 * i);
+                                        if (dimmableLight.Gateway.IsVirtual)
+                                        {
+                                            UserHomeView.ReadStatus(dimmableLight, () =>
+                                            {
+                                                ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(deviceUI.CommonDevice);
+                                            });
+                                        }
+                                        else
+                                        {
+                                            if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
+                                            {
+                                                ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(deviceUI.CommonDevice);
+                                            }
+                                        }
+                                    })
+                                    { IsBackground = true }.Start();
+
+                                    var deviceTypeRowLayout = new RowLayout()
+                                    {
+                                        Height = Application.GetRealHeight(129 + 35),
+                                        LineColor = ZigbeeColor.Current.GXCBackgroundColor,
+                                        Tag = deviceUI
+                                    };
+                                    deviceListScrolView.AddChidren(deviceTypeRowLayout);
+
+                                    var deviceRow = new CategoryFunctionRow(0, 35);
+                                    deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
+                                    deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
+                                    deviceRow.SetOnLineStatu(dimmableLight.IsOnline == 1);
+                                    deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                    deviceRow.SetStatu(dimmableLight.OnOffStatus == 1);
+                                    deviceTypeRowLayout.AddChidren(deviceRow);
+
+                                    deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
+                                    {
+                                        zbGateway = deviceUI.CommonDevice.Gateway;
+                                        sendedControlCommand = false;
+                                        zbGateway.ReportAction += UpdateDeviceControllStatu;
+                                        AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
+
+                                        (send2 as Button).IsSelected = !(send2 as Button).IsSelected;
+                                        if ((send2 as Button).IsSelected)
+                                        {
+                                            dimmableLight.SwitchControl(1);
+                                        }
+                                        else
+                                        {
+                                            dimmableLight.SwitchControl(0);
+                                        }
+                                        deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                        //鎺у埗寤舵椂鍥炶皟
+                                        DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
+                                        {
+                                            if (Parent == null)
+                                            {
+                                                return;
+                                            }
+                                            RemoveUpdateControlDeviceStatuAction(zbGateway);
+                                            if (sendedControlCommand == false)
+                                            {
+                                                DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
+                                            }
+                                        });
+                                    };
+
+                                    deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) =>
+                                    {
+                                        var dimmableLightControl = new Phone.Device.Light.DimmableLightControl();
+                                        UserView.HomePage.Instance.AddChidren(dimmableLightControl);
+                                        UserView.HomePage.Instance.PageIndex += 1;
+                                        UserView.HomePage.Instance.ScrollEnabled = false;
+                                        //dimmableLightControl.action = RefreshBodyView;
+                                        dimmableLightControl.Show(deviceUI, curRoom);
+                                    };
+
+                                    var editBtn = new CommonForm.RowLayoutEditButton()
+                                    {
+                                        Tag = deviceUI,
+                                        Radius = 0
+                                    };
+                                    var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
+                                    {
+                                        Tag = deviceUI,
+                                        Radius = 0
+                                    };
+                                    if (curRoom.IsSharedRoom == false)
+                                    {
+                                        deviceTypeRowLayout.AddRightView(editBtn);
+                                        editBtn.MouseUpEventHandler += deviceDetailHandler;
+                                        deviceTypeRowLayout.AddRightView(delBtn);
+                                        delBtn.MouseUpEventHandler += delEvent;
+                                    }
+                                }
+                            }
+                            else if (deviceUI.CommonDevice.Type == DeviceType.Thermostat)
+                            {
+                                //绌鸿皟
+                                var ac = deviceUI.CommonDevice as ZigBee.Device.AC;
+                                if (ac.Gateway != null)
+                                {
+                                    new System.Threading.Thread(() =>
+                                    {
+                                        System.Threading.Thread.Sleep(100 * i);
+                                        if (ac.Gateway.IsVirtual)
+                                        {
+                                            //鍙戦�佽鍙栫姸鎬佸懡浠�
+                                            UserView.UserHomeView.ReadStatus(ac, () =>
+                                            {
+                                                ReadDeviceAttributeLogic.Instance.SendACStatuComand(deviceUI.CommonDevice);
+                                            });
+                                        }
+                                        else
+                                        {
+                                            //闃叉鐭椂闂村唴澶氭璇诲彇璁惧鐘舵��
+                                            if ((DateTime.Now - ac.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
+                                            {
+                                                ReadDeviceAttributeLogic.Instance.SendACStatuComand(deviceUI.CommonDevice);
+                                            }
+                                        }
+                                    })
+                                    { IsBackground = true }.Start();
+
+                                    var deviceTypeRowLayout = new RowLayout()
+                                    {
+                                        Height = Application.GetRealHeight(129 + 35),
+                                        LineColor = ZigbeeColor.Current.GXCBackgroundColor,
+                                        Tag = deviceUI
+                                    };
+                                    deviceListScrolView.AddChidren(deviceTypeRowLayout);
+
+                                    var deviceRow = new CategoryFunctionRow(0, 35);
+                                    deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
+                                    deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
+                                    deviceRow.SetOnLineStatu(ac.IsOnline == 1);
+                                    deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                    deviceRow.SetStatu(ac.currentSystemMode != 1);
+                                    deviceTypeRowLayout.AddChidren(deviceRow);
+
+                                    deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
+                                    {
+                                        zbGateway = deviceUI.CommonDevice.Gateway;
+                                        sendedControlCommand = false;
+                                        zbGateway.ReportAction += UpdateDeviceControllStatu;
+                                        AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
+
+                                        (send2 as Button).IsSelected = !(send2 as Button).IsSelected;
+                                        if ((send2 as Button).IsSelected)
+                                        {
+                                            ac.Open();
+                                        }
+                                        else
+                                        {
+                                            ac.Close();
+                                        }
+                                        deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                        //鎺у埗寤舵椂鍥炶皟
+                                        DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
+                                        {
+                                            if (Parent == null)
+                                            {
+                                                return;
+                                            }
+                                            RemoveUpdateControlDeviceStatuAction(zbGateway);
+                                            if (sendedControlCommand == false)
+                                            {
+                                                DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
+                                            }
+                                        });
+                                    };
+
+                                    var editBtn = new CommonForm.RowLayoutEditButton()
+                                    {
+                                        Tag = deviceUI,
+                                        Radius = 0
+                                    };
+                                    var delBtn = new CommonForm.RowLayoutDeleteButton()
+                                    {
+                                        Tag = deviceUI,
+                                        Radius = 0
+                                    };
+                                    if (curRoom.IsSharedRoom == false)
+                                    {
+                                        deviceTypeRowLayout.AddRightView(editBtn);
+                                        editBtn.MouseUpEventHandler += deviceDetailHandler;
+                                        deviceTypeRowLayout.AddRightView(delBtn);
+                                        delBtn.MouseUpEventHandler += delEvent;
+                                    }
+
+                                    deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) =>
+                                    {
+                                        var acControl = new Phone.Device.AC.ACControl();
+                                        UserView.HomePage.Instance.AddChidren(acControl);
+                                        UserView.HomePage.Instance.PageIndex += 1;
+                                        UserView.HomePage.Instance.ScrollEnabled = false;
+                                        //rollerShadeControl.action = RefreshBodyView;
+                                        acControl.Show(deviceUI, curRoom);
+                                    };
+                                }
+                            }
+                            else if (deviceUI.CommonDevice.Type == DeviceType.WindowCoveringDevice)
+                            {
+                                //鍗峰笜
+                                var rollerShade = deviceUI.CommonDevice as ZigBee.Device.Rollershade;
+                                if (rollerShade.Gateway != null)
+                                {
+                                    new System.Threading.Thread(() =>
+                                    {
+                                        System.Threading.Thread.Sleep(100 * i);
+                                        if (rollerShade.Gateway.IsVirtual)
+                                        {
+                                            UserHomeView.ReadStatus(rollerShade, () =>
+                                            {
+                                                ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(deviceUI.CommonDevice);
+                                            });
+                                        }
+                                        else
+                                        {
+                                            //闃叉鐭椂闂村唴澶氭璇诲彇
+                                            if ((DateTime.Now - rollerShade.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
+                                            {
+                                                ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(deviceUI.CommonDevice);
+                                            }
+                                        }
+                                    })
+                                    { IsBackground = true }.Start();
+
+                                    var deviceTypeRowLayout = new RowLayout()
+                                    {
+                                        Height = Application.GetRealHeight(129 + 35),
+                                        LineColor = ZigbeeColor.Current.GXCBackgroundColor,
+                                        Tag = deviceUI
+                                    };
+                                    deviceListScrolView.AddChidren(deviceTypeRowLayout);
+
+                                    var deviceRow = new CategoryFunctionForWinRow(0, 35);
+                                    deviceRow.Init(deviceUI);
+                                    deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
+                                    deviceRow.SetOnLineStatu(rollerShade.IsOnline == 1);
+                                    deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                    deviceRow.SetStatu(rollerShade.WcdCurrentPositionLiftPercentage != 0);
+                                    deviceRow.SetRollerShadeIcon(rollerShade.WcdType);
+                                    deviceTypeRowLayout.AddChidren(deviceRow);
+
+                                    if (rollerShade.WcdType == -1)
+                                    {
+                                        CommonPage.Loading.Start();
+                                        new System.Threading.Thread(() =>
+                                        {
+                                            Rollershade.ReadWcdTypeAction(rollerShade, () =>
+                                            {
+                                                Application.RunOnMainThread(() =>
+                                                {
+                                                    deviceRow.SetRollerShadeIcon(rollerShade.WcdType);
+                                                    CommonPage.Loading.Hide();
+                                                });
+                                            });
+                                        })
+                                        { IsBackground = true }.Start();
+                                    }
+
+                                    var editBtn = new CommonForm.RowLayoutEditButton()
+                                    {
+                                        Tag = deviceUI,
+                                        Radius = 0
+                                    };
+                                    var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
+                                    {
+                                        Tag = deviceUI,
+                                        Radius = 0
+                                    };
+                                    if (curRoom.IsSharedRoom == false)
+                                    {
+                                        deviceTypeRowLayout.AddRightView(editBtn);
+                                        editBtn.MouseUpEventHandler += deviceDetailHandler;
+                                        deviceTypeRowLayout.AddRightView(delBtn);
+                                        delBtn.MouseUpEventHandler += delEvent;
+                                    }
+
+                                    deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) =>
+                                    {
+                                        var rollerShadeControl = new Phone.Device.Curtain.RollerShadeControl();
+                                        UserView.HomePage.Instance.AddChidren(rollerShadeControl);
+                                        UserView.HomePage.Instance.PageIndex += 1;
+                                        UserView.HomePage.Instance.ScrollEnabled = false;
+                                        //rollerShadeControl.action = RefreshBodyView;
+                                        rollerShadeControl.Show(deviceUI, curRoom);
+                                    };
+                                }
+                            }
+                            else if (deviceUI.CommonDevice.Type == DeviceType.DoorLock)
+                            {
+                                var deviceTypeRowLayout = new RowLayout()
+                                {
+                                    Height = Application.GetRealHeight(129 + 35),
+                                    LineColor = ZigbeeColor.Current.GXCBackgroundColor,
+                                    Tag = deviceUI
+                                };
+                                deviceListScrolView.AddChidren(deviceTypeRowLayout);
+
+                                var deviceRow = new CategoryFunctionRow(0, 35);
+                                deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
+                                deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
+                                deviceRow.SetOnLineStatu(deviceUI.CommonDevice.IsOnline == 1);
+                                deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                deviceRow.HideSwitchBtn(true);
+                                deviceTypeRowLayout.AddChidren(deviceRow);
+
+                                deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) =>
+                                {
+                                    var userDoorLockPage = new UserDoorLockPage(curRoom, deviceUI);
+                                    HomePage.Instance.AddChidren(userDoorLockPage);
+                                    HomePage.Instance.PageIndex += 1;
+                                    userDoorLockPage.Show();
+                                };
+
+                                var editBtn = new CommonForm.RowLayoutEditButton()
+                                {
+                                    Tag = deviceUI
+                                };
+                                var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
+                                {
+                                    Tag = deviceUI
+                                };
+                                if (curRoom.IsSharedRoom == false)
+                                {
+                                    deviceTypeRowLayout.AddRightView(editBtn);
+                                    editBtn.MouseUpEventHandler += deviceDetailHandler;
+                                    deviceTypeRowLayout.AddRightView(delBtn);
+                                    delBtn.MouseUpEventHandler += delEvent;
+                                }
+                            }
+                            else
+                            {
+                                var deviceTypeRowLayout = new RowLayout()
+                                {
+                                    Height = Application.GetRealHeight(129 + 35),
+                                    LineColor = ZigbeeColor.Current.GXCBackgroundColor,
+                                    Tag = deviceUI
+                                };
+                                deviceListScrolView.AddChidren(deviceTypeRowLayout);
+
+                                var deviceRow = new CategoryFunctionRow(0, 35);
+                                deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
+                                deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
+                                deviceRow.SetOnLineStatu(deviceUI.CommonDevice.IsOnline == 1);
+                                deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                                deviceRow.HideSwitchBtn(true);
+                                deviceTypeRowLayout.AddChidren(deviceRow);
+
+                                var editBtn = new CommonForm.RowLayoutEditButton()
+                                {
+                                    Tag = deviceUI
+                                };
+                                var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
+                                {
+                                    Tag = deviceUI
+                                };
+                                if (curRoom.IsSharedRoom == false)
+                                {
+                                    deviceTypeRowLayout.AddRightView(editBtn);
+                                    editBtn.MouseUpEventHandler += deviceDetailHandler;
+                                    deviceTypeRowLayout.AddRightView(delBtn);
+                                    delBtn.MouseUpEventHandler += delEvent;
+                                }
+                            }
+                        }
+                        catch
+                        {
+
+                        }
+                    });
+                })
+                { IsBackground = true }.Start();
             }
         }
 
@@ -1587,6 +1668,7 @@
                 if (room.IsLove)
                 {
                     roomBtn.IsSelected = true;
+                    this.curRoom = room;
                     curBtn = roomBtn;
 
                     if(sceneBtn.IsSelected)
@@ -1608,6 +1690,7 @@
                     (sender as Button).IsSelected = true;
                     curBtn.IsSelected = false;
                     curBtn = sender as Button;
+                    this.curRoom = room;
                     if (sceneBtn.IsSelected)
                     {
                         RefreshScene(room);
@@ -1618,7 +1701,6 @@
                     }
                 };
             }
-
         }
 
         #endregion
@@ -1764,6 +1846,7 @@
         {
 
             functionSceneAutoBodyView.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
+           
             var bjFrameLayout = new FrameLayout
             {
                 Width = Application.GetRealWidth(1080 - 58),
@@ -1823,7 +1906,7 @@
             var logicScrolView = new VerticalRefreshLayout//VerticalScrolViewLayout
             {
                 Height = functionSceneAutoBodyView.Height - bjFrameLayout.Height - bjFrameLayout.Y - scenehorizontalScrol.Height - Application.GetRealHeight(30),
-                BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
+                BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
                 X = Application.GetRealWidth(58),
                 //Radius = (uint)Application.GetRealHeight(50),
                 Y = scenehorizontalScrol.Bottom,
diff --git a/ZigbeeApp/Shared/Phone/Device/Category/CategoryAddScene.cs b/ZigbeeApp/Shared/Phone/Device/Category/CategoryAddScene.cs
index 9736448..8a43ba6 100755
--- a/ZigbeeApp/Shared/Phone/Device/Category/CategoryAddScene.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Category/CategoryAddScene.cs
@@ -236,6 +236,7 @@
                             UserView.HomePage.Instance.PageIndex += 1;
                             sceneView.sceneTargetDevice = targetDevice;
                             sceneView.sceneUI = targetDevice.SceneUI;
+                            sceneView.currentSceneUI = modifySceneUI;
                             sceneView.Show();
                             sceneView.selectedAction = (selectedScene) =>
                             {
@@ -790,6 +791,7 @@
                     UserView.HomePage.Instance.AddChidren(sceneView);
                     UserView.HomePage.Instance.PageIndex += 1;
                     sceneView.beforeSceneTargetDeviceUIs = sceneTargetDevicesList;
+                    sceneView.currentSceneUI = modifySceneUI;
                     sceneView.Show();
                     sceneView.selectedAction = (selectedScene) =>
                     {
diff --git a/ZigbeeApp/Shared/Phone/Device/Category/SelectFloor.cs b/ZigbeeApp/Shared/Phone/Device/Category/SelectFloor.cs
index b0b9fc2..85d5b7e 100755
--- a/ZigbeeApp/Shared/Phone/Device/Category/SelectFloor.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Category/SelectFloor.cs
@@ -58,7 +58,9 @@
                 Height = Application.GetRealHeight(150),
                 TextColor = ZigbeeColor.Current.GXCTextBlackColor,
                 TextAlignment = TextAlignment.CenterLeft,
-                TextID = R.MyInternationalizationString.SelectFloor
+                TextID = R.MyInternationalizationString.SelectFloor,
+                TextSize=16,
+                IsBold=true
             };
             backgroundFL.AddChidren(tip);
 
diff --git a/ZigbeeApp/Shared/Phone/Device/Category/SelectScene.cs b/ZigbeeApp/Shared/Phone/Device/Category/SelectScene.cs
index 7b3c175..74a7512 100755
--- a/ZigbeeApp/Shared/Phone/Device/Category/SelectScene.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Category/SelectScene.cs
@@ -40,7 +40,10 @@
         /// sceneUI
         /// </summary>
         public SceneUI sceneUI;
-
+        /// <summary>
+        /// 褰撳墠鍦烘櫙鏈韩锛屾坊鍔犲満鏅椂浣跨敤
+        /// </summary>
+        public SceneUI currentSceneUI;
 
         #endregion
 
@@ -270,6 +273,10 @@
                 for (int i = 0; i < sceneList.Count; i++)
                 {
                     var scene = sceneList[i];
+                    if (currentSceneUI?.Id == scene.Id)
+                    {
+                        continue;
+                    }
                     if (beforeSceneTargetDeviceUIs.Find((obj) => obj.SceneUI.Id == scene.Id) != null)
                     {
                         continue;
@@ -286,7 +293,7 @@
                     sceneRowLayout.Init();
                     sceneRowLayout.SetTitle(scene.Name);
                     sceneRowLayout.ClickButton.Tag = scene;
-                    if(sceneUI==null)
+                    if (sceneUI == null)
                     {
                         if (i == 0)
                         {
@@ -297,7 +304,7 @@
                     }
                     else
                     {
-                        if(sceneUI.Id==scene.Id)
+                        if (sceneUI.Id == scene.Id)
                         {
                             tempSceneRow = sceneRowLayout;
                             sceneUI = scene;
diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/ButtonLineForm.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/ButtonLineForm.cs
index fc27ca5..1f97860 100755
--- a/ZigbeeApp/Shared/Phone/Device/CommonForm/ButtonLineForm.cs
+++ b/ZigbeeApp/Shared/Phone/Device/CommonForm/ButtonLineForm.cs
@@ -12,7 +12,7 @@
         /// <summary>
         /// line
         /// </summary>
-        public Line Line;
+        public Button Line;
         /// <summary>
         /// isSelected
         /// </summary>
@@ -46,14 +46,12 @@
         /// </summary>
         /// <param name="x"></param>
         /// <param name="y"></param>
-        /// <param name="width"></param>
-        /// <param name="height"></param>
-        public ButtonLineForm(int x, int y, int width, int height)
+        public ButtonLineForm(int x, int y)
         {
             X = Application.GetRealWidth(x);
             Y = Application.GetRealHeight(y);
-            Width = Application.GetRealWidth(width);
-            Height = Application.GetRealHeight(height);
+            Width = Application.GetRealWidth(100);
+            Height = Application.GetRealHeight(85);
         }
 
         /// <summary>
@@ -64,14 +62,24 @@
             NameBtn = new Button()
             {
                 Width = Width,
-                Height = Height - 3,
+                Height = Height - Application.GetRealHeight(6),
                 TextColor = ZigbeeColor.Current.GXCTextGrayColor4,
                 SelectedTextColor = ZigbeeColor.Current.GXCTextDeepBlackColor,
-                TextSize = CommonFormResouce.TextSize
+                TextSize = CommonFormResouce.TextSize,
+                TextAlignment = TextAlignment.CenterLeft
             };
             AddChidren(NameBtn);
 
-            Line = new Line(Height, Width / 2, 2);
+            Line = new Button
+            {
+                X = 0,
+                Y = Height - Application.GetRealHeight(6),
+                Width = 10,
+                Height = Application.GetRealHeight(6),
+                Radius = (uint)Application.GetRealHeight(6 / 2),
+                BackgroundColor = ZigbeeColor.Current.GXCButtonSelectedColor,
+                Visible = false
+            };
             AddChidren(Line);
         }
 
@@ -82,6 +90,18 @@
         public void SetTitle(string title)
         {
             NameBtn.Text = title;
+            RefreshWidth();
+        }
+
+        /// <summary>
+        /// RefreshWidth
+        /// </summary>
+        public void RefreshWidth()
+        {
+            NameBtn.Width = NameBtn.GetTextWidth() + Application.GetRealWidth(100);
+            Width = NameBtn.Width;
+            Line.X = NameBtn.GetTextWidth() / 4;
+            Line.Width= NameBtn.GetTextWidth() / 2;
         }
 
         /// <summary>
@@ -99,9 +119,10 @@
         /// <param name="statu"></param>
         public void SetStatu(bool statu)
         {
-            NameBtn.IsSelected = Line.IsSelected = statu;
+            NameBtn.IsSelected = Line.Visible = statu;
             NameBtn.TextSize = statu ? CommonFormResouce.TextSize_Selected : CommonFormResouce.TextSize;
             NameBtn.IsBold = statu;
+            RefreshWidth();
         }
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/DeviceInfoEditRow.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/DeviceInfoEditRow.cs
index 7a7cda9..47ac9b4 100755
--- a/ZigbeeApp/Shared/Phone/Device/CommonForm/DeviceInfoEditRow.cs
+++ b/ZigbeeApp/Shared/Phone/Device/CommonForm/DeviceInfoEditRow.cs
@@ -37,7 +37,8 @@
                 Height = Application.GetRealHeight(80),
                 Gravity = Gravity.CenterVertical,
                 TextColor = ZigbeeColor.Current.GXCTextBlackColor,
-                TextAlignment = TextAlignment.CenterLeft
+                TextAlignment = TextAlignment.CenterLeft,
+                TextSize = CommonFormResouce.TextSize
             };
             AddChidren(TipBtn);
 
@@ -50,6 +51,7 @@
                 TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor2,
                 PlaceholderTextColor=ZigbeeColor.Current.GXCPlaceHolderTextColor2,
                 TextAlignment = TextAlignment.CenterLeft,
+                TextSize=CommonFormResouce.TextSize
             };
             AddChidren(NameText);
 
diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/DeviceInfoRow.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/DeviceInfoRow.cs
index ff40bd5..55df7e1 100755
--- a/ZigbeeApp/Shared/Phone/Device/CommonForm/DeviceInfoRow.cs
+++ b/ZigbeeApp/Shared/Phone/Device/CommonForm/DeviceInfoRow.cs
@@ -48,18 +48,20 @@
                 Height = Application.GetRealHeight(80),
                 Gravity = Gravity.CenterVertical,
                 TextColor = ZigbeeColor.Current.GXCTextBlackColor,
-                TextAlignment = TextAlignment.CenterLeft
+                TextAlignment = TextAlignment.CenterLeft,
+                TextSize=CommonFormResouce.TextSize
             };
             AddChidren(TipBtn);
 
             NameText = new Button
             {
-                X = Application.GetRealWidth(350),
-                Width = Application.GetRealWidth(600),
+                X = Application.GetRealWidth(300),
+                Width = Application.GetRealWidth(650),
                 Height = Application.GetRealHeight(80),
                 Gravity = Gravity.CenterVertical,
                 TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor2,
-                TextAlignment = TextAlignment.CenterLeft
+                TextAlignment = TextAlignment.CenterLeft,
+                TextSize = CommonFormResouce.TextSize
             };
             AddChidren(NameText);
 
diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/FunctionButton.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/FunctionButton.cs
index 176cd8e..fba65f2 100755
--- a/ZigbeeApp/Shared/Phone/Device/CommonForm/FunctionButton.cs
+++ b/ZigbeeApp/Shared/Phone/Device/CommonForm/FunctionButton.cs
@@ -83,19 +83,21 @@
                 Gravity = Gravity.CenterHorizontal,
                 UnSelectedImagePath = imagePath,
                 SelectedImagePath = selectedImagePath,
-                Tag = Tag
+                Tag = Tag,
+                IsSelected=true
             };
             AddChidren(ImageBtn);
 
             NameBtn = new Button()
             {
                 Y = Application.GetRealHeight(200),
-                Width = Application.GetRealWidth(160),
+                Width = Application.GetRealWidth(170),
                 Height = Application.GetRealHeight(60),
                 Gravity = Gravity.CenterHorizontal,
                 TextColor = ZigbeeColor.Current.GXCTextBlackColor,
                 SelectedTextColor = ZigbeeColor.Current.GXCTextSelectedColor,
-                Tag = Tag
+                Tag = Tag,
+                TextSize=11
             };
             AddChidren(NameBtn);
 
@@ -131,8 +133,8 @@
         public void SetStatu(bool statu)
         {
             ImageBG.IsSelected = NameBtn.IsSelected = statu;
+            NameBtn.IsBold = statu;
         }
-
 
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/FunctionIconButton.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/FunctionIconButton.cs
index 5fda24c..ac6d475 100755
--- a/ZigbeeApp/Shared/Phone/Device/CommonForm/FunctionIconButton.cs
+++ b/ZigbeeApp/Shared/Phone/Device/CommonForm/FunctionIconButton.cs
@@ -60,12 +60,12 @@
         {
             ImageBG = new Button()
             {
-                Width = Application.GetMinRealAverage(207),
-                Height = Application.GetMinRealAverage(207),
+                Width = Application.GetRealWidth(207),
+                Height = Application.GetRealWidth(207),
                 Gravity = Gravity.Center,
                 BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
                 SelectedBackgroundColor = ZigbeeColor.Current.GXCSelectedBackgroundColor,
-                Radius = (uint)Application.GetMinRealAverage(207 / 2)
+                Radius = (uint)Application.GetRealWidth(207 / 2)
             };
             AddChidren(ImageBG);
 
diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/LeftIconButtonRow.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/LeftIconButtonRow.cs
index 6ad3522..58cc755 100755
--- a/ZigbeeApp/Shared/Phone/Device/CommonForm/LeftIconButtonRow.cs
+++ b/ZigbeeApp/Shared/Phone/Device/CommonForm/LeftIconButtonRow.cs
@@ -81,7 +81,8 @@
                 Text = title,
                 TextAlignment = TextAlignment.CenterLeft,
                 Gravity = Gravity.CenterVertical,
-                Tag = this.Tag
+                Tag = this.Tag,
+                TextSize=14
             };
             AddChidren(TitleButton);
 
@@ -110,22 +111,21 @@
         {
             IconButton.IsSelected = statu;
             TitleButton.IsSelected = statu;
+            TitleButton.IsBold = statu;
         }
         /// <summary>
         /// 閫変腑
         /// </summary>
         public void SetSelectedStatu()
         {
-            IconButton.IsSelected = true;
-            TitleButton.IsSelected = true;
+            SetStatu(true);
         }
         /// <summary>
         /// 涓嶉�変腑
         /// </summary>
         public void SetUnSelectedStatu()
         {
-            IconButton.IsSelected = false;
-            TitleButton.IsSelected = false;
+            SetStatu(false);
         }
         #endregion
     }
diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/Line.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/Line.cs
deleted file mode 100755
index a913ff4..0000000
--- a/ZigbeeApp/Shared/Phone/Device/CommonForm/Line.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-锘縰sing System;
-using Shared.Common;
-
-namespace Shared.Phone.Device.CommonForm
-{
-    public class Line : SelectedStatuButton
-    {
-        /// <summary>
-        /// Line
-        /// </summary>
-        /// <param name="y"></param>
-        /// <param name="width"></param>
-        /// <param name="height"></param>
-        public Line(int y, int width, int height)
-        {
-            Y = y-2;
-            Width = width;
-            Height = height;
-            Radius = (uint)(height / 2);
-            SelectedBackgroundColor = ZigbeeColor.Current.GXCButtonSelectedColor;
-            //BackgroundColor = ZigbeeColor.Current.GXCButtonSelectedColor;
-            Gravity = Gravity.CenterHorizontal;
-        }
-
-        /// <summary>
-        /// SetStatu
-        /// </summary>
-        /// <param name="statu"></param>
-        public void SetStatu(bool statu)
-        {
-            IsSelected = statu;
-        }
-    }
-}
diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/RoomMainView.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/RoomMainView.cs
index 3ac3e26..9d32604 100755
--- a/ZigbeeApp/Shared/Phone/Device/CommonForm/RoomMainView.cs
+++ b/ZigbeeApp/Shared/Phone/Device/CommonForm/RoomMainView.cs
@@ -69,7 +69,9 @@
                 X = Application.GetMinRealAverage(14),
                 Width = Application.GetMinRealAverage(141),
                 Height = Application.GetMinRealAverage(84),
-                TextColor = ZigbeeColor.Current.GXCTextWhiteColor
+                TextColor = ZigbeeColor.Current.GXCTextWhiteColor,
+                TextSize=14,
+                IsBold=true
             };
             AddChidren(RoomNameButton);
         }
diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/RoomNoNameMainView.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/RoomNoNameMainView.cs
index e114c15..3a978ef 100755
--- a/ZigbeeApp/Shared/Phone/Device/CommonForm/RoomNoNameMainView.cs
+++ b/ZigbeeApp/Shared/Phone/Device/CommonForm/RoomNoNameMainView.cs
@@ -77,7 +77,8 @@
                 Height = Application.GetMinRealAverage(84),
                 TextColor = ZigbeeColor.Current.GXCTextWhiteColor,
                 TextID=R.MyInternationalizationString.Unallocated,
-                TextSize=14
+                TextSize=14,
+                IsBold=true
 ,            };
             AddChidren(RoomNameButton);
         }
diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/RoomView.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/RoomView.cs
index e024c63..e620358 100755
--- a/ZigbeeApp/Shared/Phone/Device/CommonForm/RoomView.cs
+++ b/ZigbeeApp/Shared/Phone/Device/CommonForm/RoomView.cs
@@ -83,7 +83,7 @@
             {
                 X = Application.GetRealWidth(29),
                 Y = Application.GetRealHeight(374),
-                Width = Application.GetRealWidth(340),
+                Width = Application.GetRealWidth(400),
                 Height = Application.GetRealHeight(80),
                 BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor2
             };
@@ -103,16 +103,16 @@
             var temperatureText = new Button
             {
                 X = Application.GetRealWidth(69),
-                Width = Application.GetRealWidth(100),
+                Width = Application.GetRealWidth(120),
                 Height = Application.GetRealHeight(58),
                 Gravity = Gravity.CenterVertical,
-                Text = "26鈩�"
+                Text = $"{room.Temperatrue}鈩�"
             };
             roomTemperatureBackground.AddChidren(temperatureText);
 
             var humidityIcon = new Button
             {
-                X = Application.GetRealWidth(179),
+                X = Application.GetRealWidth(200),
                 Width = Application.GetMinRealAverage(58),
                 Height = Application.GetMinRealAverage(58),
                 Gravity = Gravity.CenterVertical,
@@ -122,11 +122,11 @@
 
             var humidityText = new Button
             {
-                X = Application.GetRealWidth(236),
-                Width = Application.GetRealWidth(86),
+                X = Application.GetRealWidth(260),
+                Width = Application.GetRealWidth(120),
                 Height = Application.GetRealHeight(58),
                 Gravity = Gravity.CenterVertical,
-                Text = "13%"
+                Text = $"{room.Humidity}%"
             };
             roomTemperatureBackground.AddChidren(humidityText);
 
@@ -152,6 +152,7 @@
                             {
                                 //0鈩�
                                 temperatureText.Text = "0.0鈩�";
+                                room.Temperatrue = 0;
                             }
                             else if (data.AttriButeData > 32767)
                             {
@@ -160,6 +161,7 @@
                                 //灏忔暟鐐归渶瑕佷竴浣�
                                 strValue = strValue.Substring(0, strValue.Length - 1);
                                 temperatureText.Text = strValue.Insert(strValue.Length - 1, ".") + "鈩�";
+                                room.Temperatrue = int.Parse(strValue) * 0.1;
                             }
                             else
                             {
@@ -167,6 +169,7 @@
                                 string strValue = data.AttriButeData.ToString();
                                 strValue = strValue.Substring(0, strValue.Length - 1);
                                 temperatureText.Text = strValue.Insert(strValue.Length - 1, ".") + "鈩�";
+                                room.Temperatrue = int.Parse(strValue) * 0.1;
                             }
                         }
                     }
@@ -199,6 +202,7 @@
                             {
                                 //0
                                 humidityText.Text = "0.0%";
+                                room.Humidity = 0;
                             }
                             else
                             {
@@ -206,6 +210,7 @@
                                 string strValue = data.AttriButeData.ToString();
                                 strValue = strValue.Substring(0, strValue.Length - 1);
                                 humidityText.Text = strValue.Insert(strValue.Length - 1, ".") + "%";
+                                room.Humidity = int.Parse(strValue) * 0.1;
                             }
                         }
                     }
@@ -217,6 +222,7 @@
                     (dev as ZigBee.Device.TemperatureSensor).ReadTemperatureOrHumidity();
                 }
             }
+
 
             var roomListBtn = new Button()
             {
@@ -240,7 +246,6 @@
                     action?.Invoke();
                 };
             };
-
         }
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/SelectFunctionView.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/SelectFunctionView.cs
index cc7dc5a..ecb15c4 100755
--- a/ZigbeeApp/Shared/Phone/Device/CommonForm/SelectFunctionView.cs
+++ b/ZigbeeApp/Shared/Phone/Device/CommonForm/SelectFunctionView.cs
@@ -7,19 +7,23 @@
         /// <summary>
         /// name
         /// </summary>
-        public Button NameBtn;
+        private Button NameBtn;
         /// <summary>
         /// Image
         /// </summary>
-        public Button ImageBtn;
+        private Button ImageBtn;
         /// <summary>
         /// ImageBG
         /// </summary>
-        public Button ImageBG;
+        private Button ImageBG;
         /// <summary>
         /// SwitchBtn
         /// </summary>
-        public Button SelectBtn;
+        private Button SelectBtn;
+        /// <summary>
+        /// ClickBtn
+        /// </summary>
+        public Button ClickBtn;
         /// <summary>
         /// v_Selected
         /// </summary>
@@ -107,8 +111,8 @@
             SelectBtn = new Button()
             {
                 X = Application.GetRealWidth(896),
-                Width = Application.GetMinRealAverage(60),
-                Height = Application.GetMinRealAverage(60),
+                Width = Application.GetMinRealAverage(70),
+                Height = Application.GetMinRealAverage(70),
                 Gravity = Gravity.CenterVertical,
                 UnSelectedImagePath = "Room/ItemUnSelected_Black.png",
                 SelectedImagePath = "Room/ItemSelected.png",
@@ -126,6 +130,9 @@
                 Tag = Tag
             };
             AddChidren(line);
+
+            ClickBtn = new Button { };
+            AddChidren(ClickBtn);
         }
 
         /// <summary>
@@ -148,17 +155,9 @@
         /// SetStatu
         /// </summary>
         /// <param name="statu"></param>
-        public void SetStatu(bool statu)
+        private void SetStatu(bool statu)
         {
-            NameBtn.IsSelected = ImageBG.IsSelected = ImageBtn.IsSelected = statu;
-        }
-        /// <summary>
-        /// SetSelectStatu
-        /// </summary>
-        /// <param name="statu"></param>
-        public void SetSelectStatu(bool statu)
-        {
-            SelectBtn.IsSelected = statu;
+            NameBtn.IsSelected = ImageBG.IsSelected = ImageBtn.IsSelected = SelectBtn.IsSelected = statu;
         }
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/SelectZone.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/SelectZone.cs
index caedc18..78d0cef 100755
--- a/ZigbeeApp/Shared/Phone/Device/CommonForm/SelectZone.cs
+++ b/ZigbeeApp/Shared/Phone/Device/CommonForm/SelectZone.cs
@@ -43,8 +43,6 @@
             };
             dialog.AddChidren(backgroundFL);
 
-            backgroundFL.Animate = Animate.DownToUp;
-
             var topView = new FrameLayout
             {
                 Height = Application.GetRealHeight(138)
@@ -58,7 +56,7 @@
                 TextAlignment = TextAlignment.CenterLeft,
                 TextColor = ZigbeeColor.Current.GXCTextGrayColor,
                 TextID = R.MyInternationalizationString.Cancel,
-                TextSize = 16
+                TextSize = 14
             };
             topView.AddChidren(cancle);
 
@@ -79,7 +77,7 @@
                 TextAlignment = TextAlignment.CenterRight,
                 TextColor = ZigbeeColor.Current.GXCTextSelectedColor2,
                 TextID = R.MyInternationalizationString.Confrim,
-                TextSize = 16
+                TextSize = 14
             };
             topView.AddChidren(confrim);
 
@@ -96,6 +94,10 @@
             }
             foreach (var room in Shared.Common.Room.Lists)
             {
+                if(room.IsLove)
+                {
+                    continue;
+                }
                 roomList.Add(room.Name);
                 roomIdList.Add(room.Id);
             }
@@ -103,6 +105,7 @@
             if (floorList.Count == 0)
             {
                 pickView.setNPicker(roomList, null, null);
+                currentId = roomIdList[0];
                 pickView.OnSelectChangeEvent += (l1, l2, l3) =>
                 {
                     currentId = roomIdList[l1];
@@ -111,6 +114,7 @@
             else
             {
                 pickView.setNPicker(floorList, roomList, null);
+                currentId = roomIdList[0];
                 pickView.OnSelectChangeEvent += (l1, l2, l3) =>
                 {
                     currentId = roomIdList[l2];
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/AddLogicPage.cs b/ZigbeeApp/Shared/Phone/Device/Logic/AddLogicPage.cs
index a110acf..b44fd18 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/AddLogicPage.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/AddLogicPage.cs
@@ -925,8 +925,13 @@
                 {
                     LocationConditionsInfo.Remove("IsValid");
                 }
+                if (LocationConditionsInfo.ContainsKey("WhoSiteUId"))
+                {
+                    LocationConditionsInfo.Remove("WhoSiteUId");
+                }
                 LocationConditionsInfo.Add("Type", "7");
                 LocationConditionsInfo.Add("IsValid", "1");
+                LocationConditionsInfo.Add("WhoSiteUId", Config.Instance.Guid);
                 if (leavehomeSelected.Visible)
                 {
                     if (LocationConditionsInfo.ContainsKey("AtHome"))
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockAddDevice.cs b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockAddDevice.cs
index 96f0799..95980a0 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockAddDevice.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockAddDevice.cs
@@ -1756,8 +1756,14 @@
                         Dictionary<string, string> temperaturedictionary = new Dictionary<string, string>();
                         Dictionary<string, string> modedictionary = new Dictionary<string, string>();
                         Dictionary<string, string> speeddictionary = new Dictionary<string, string>();
-                     
-
+                        dictionary(temperaturedictionary, "TaskType", "5");
+                        dictionary(modedictionary, "TaskType", "5");
+                        dictionary(modedictionary, "Data1", "3");
+                        dictionary(speeddictionary, "TaskType", "5");
+                        dictionary(speeddictionary, "Data1", "6");
+                        taskListInfo.Add(temperaturedictionary);
+                        taskListInfo.Add(modedictionary);
+                        taskListInfo.Add(speeddictionary);
                         #endregion
 
                         #region  绌鸿皟View
@@ -1806,15 +1812,14 @@
                         };
                         devicefra.AddChidren(PickerViewfra);
 
-
+                        //閬尅绌鸿皟婊戝姩view锛�
                         var pausePickerViewfra = new FrameLayout
                         {
                             Y = openframelayout.Bottom,
                             Height = Application.GetRealHeight(600),
+                            BackgroundColor = 0x60ffffff,
                         };
                         devicefra.AddChidren(pausePickerViewfra);
-
-
 
                         var mUIPickerView = new UIPickerView
                         {
@@ -1849,6 +1854,9 @@
                             mList1.Add(i.ToString() + " " + "鈩�");
                         }
                         mUIPickerView.setNPicker(mList1, mList2, mList3);
+                        mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnCancelColor, 0);
+                        mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnCancelColor, 1);
+                        mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnCancelColor, 2);
                         ///榛樿鐘舵��
 
 
@@ -1887,9 +1895,13 @@
                         #endregion
 
 
-
+                        //榛樿26,鑷姩,涓
+                        int indextemperature = 10, indexmode = 2, indexspeed = 1;
                         mUIPickerView.OnSelectChangeEvent += (s1, s2, s3) =>
                         {
+                            indextemperature = s1;
+                            indexmode = s2;
+                            indexspeed = s3;
                             if (openBtnSelected.Visible)
                             {
                                 SelectedDeviceStatusaction = "yes";
@@ -1907,14 +1919,16 @@
                         };
 
                         #endregion
-                        //榛樿26,鑷姩,涓
-                        int indextemperature = 10, indexmode = 2, indexspeed = 1;
+                     
                         if (edit && TaskList != null)
                         {
                             foreach (var value in TaskList)
                             {
                                 if (TaskList.Count == 1)
                                 {
+                                    mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnCancelColor, 0);
+                                    mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnCancelColor, 1);
+                                    mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnCancelColor, 2);
                                     //鏁扮粍鍙湁涓�涓厓绱犺鏄庡綋鍓嶇┖璋冪姸鎬佷负鍏筹紱
                                     openBtnSelected.Visible = false;
                                     closeBtnSelected.Visible = true;
@@ -1925,6 +1939,9 @@
                                 }
                                 else
                                 {
+                                    mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnSelectedColor, 0);
+                                    mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnSelectedColor, 1);
+                                    mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnSelectedColor, 2);
                                     openBtnSelected.Visible = true;
                                     closeBtnSelected.Visible = false;
                                     pausePickerViewfra.Height = Application.GetRealHeight(0);
@@ -2018,6 +2035,9 @@
                         ///纭浜嬩欢
                         EventHandler<MouseEventArgs> openclick = (sender, e) =>
                         {
+                            mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnSelectedColor, 0);
+                            mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnSelectedColor, 1);
+                            mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnSelectedColor, 2);
                             //娓呴櫎涔嬪墠鏁版嵁锛�
                             taskListInfo.Clear();
                             //鍔犺浇鏂版暟鎹紱
@@ -2051,7 +2071,9 @@
                         ///鍙栨秷浜嬩欢
                         EventHandler<MouseEventArgs> closeclick = (sender, e) =>
                         {
-
+                            mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnCancelColor, 0);
+                            mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnCancelColor, 1);
+                            mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnCancelColor, 2);
                             //娓呴櫎涔嬪墠鏁版嵁锛�
                             taskListInfo.Clear();
                             dictionary(modedictionary, "TaskType", "5");
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicCommunalPage.cs b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicCommunalPage.cs
index 8c63dd5..2b0054e 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicCommunalPage.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicCommunalPage.cs
@@ -18,7 +18,7 @@
             Tag = "LockLogic";
         }
         EditText logicTextBox;
-        public void Show(Action action)
+        public async void Show(Action action)
         {
 
             #region  鏈�涓婇潰鐨勫竷灞�浠g爜
@@ -283,7 +283,8 @@
                                 var deviceinof = Common.Logic.LogicDviceList.Find((obj) => { return obj.DeviceAddr == conditions["MacAddr"] && obj.DeviceEpoint.ToString() == conditions["Epoint"]; });
                                 if (deviceinof == null)
                                 {
-                                    continue;
+                                    deviceinof = new ZigBee.Device.CommonDevice();
+                                    //continue;
                                 }
                                 ///鏄剧ず璁惧鍚嶇О
                                 var btndevice = new Button
@@ -554,7 +555,8 @@
                                 var deviceinof = Common.Logic.LogicDviceList.Find((obj) => { return ((obj.DeviceAddr == obj1) && (obj.DeviceEpoint.ToString() == obj2)); });
                                 if (deviceinof == null)
                                 {
-                                    continue;
+                                    deviceinof = new ZigBee.Device.CommonDevice();
+                                    //continue;
                                 }
 
                                 ///璁惧鍚嶇ОButton
@@ -864,12 +866,30 @@
                         case 2:
                             {
 
+                                //鍦ㄦ湰鍦版煡鎵捐鍦烘櫙;
                                 var sceneinof = Common.Room.AllRoomSceneUIList.Find((obj) => { return obj.Id.ToString() == actions["DeviceAddr"].ToString(); });
+                                //鏈湴娌℃湁瀛樺湪;
                                 if (sceneinof == null)
                                 {
-                                    continue;
+                                    //鍦ㄧ綉鍏虫煡鎵捐鍦烘櫙;
+                                    sceneinof = await Send.GetScene(int.Parse(actions["DeviceAddr"].ToString()));
+                                    //缃戝叧娌℃湁瀛樺湪;
+                                    if (sceneinof == null)
+                                    {
+
+                                        //娉ㄨВ:鏈湴鍜岀綉鍏抽兘涓嶅瓨鍦ㄨ鍦烘櫙,鐣岄潰灏嗕笉浼氭樉绀鸿鍦烘櫙;
+                                        //sceneinof = new SceneUI();
+                                        //绉婚櫎璇ュ満鏅暟鎹�;
+                                        Common.Logic.CurrentLogic.Actions.Remove(actions);
+                                        //绉婚櫎璇ュ満鏅鍥�;
+                                        devicesFrameLayout.RemoveFromParent();
+                                        continue;
+                                    }
                                 }
 
+
+
+
                                 actionsIcon.UnSelectedImagePath = "ZigeeLogic/scene.png";
                                 ///璁惧鍚嶇ОButton
                                 var btndevicename = new Button
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs b/ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs
index be44d89..a8167b2 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs
@@ -18,7 +18,7 @@
             Tag = "Logic";
         }
         EditText logicTextBox;
-        public void Show(Action action)
+        public async void Show(Action action)
         {
             
             #region  鏈�涓婇潰鐨勫竷灞�浠g爜
@@ -497,7 +497,8 @@
                                 var deviceinof = Common.Logic.LogicDviceList.Find((obj) => { return obj.DeviceAddr == conditions["MacAddr"] && obj.DeviceEpoint.ToString() == conditions["Epoint"]; });
                                 if (deviceinof == null)
                                 {
-                                    continue;
+                                    deviceinof = new ZigBee.Device.CommonDevice();
+                                    //continue;
                                 }
                                 ///鏄剧ず璁惧鍚嶇О
                                 var btndevice = new Button
@@ -1195,9 +1196,11 @@
                                 var deviceinof = Common.Logic.LogicDviceList.Find((obj) => { return ((obj.DeviceAddr == obj1) && (obj.DeviceEpoint.ToString() == obj2)); });
                                 if (deviceinof == null)
                                 {
-                                    continue;
+                                    
+                                    deviceinof = new ZigBee.Device.CommonDevice();
+                                    // continue;
                                 }
-
+                               
                                 ///璁惧鍚嶇ОButton
                                 var btndevicename = new Button
                                 {
@@ -1503,11 +1506,25 @@
                             break;
                         case 2:
                             {
-
+                                //鍦ㄦ湰鍦版煡鎵捐鍦烘櫙;
                                 var sceneinof = Common.Room.AllRoomSceneUIList.Find((obj) => { return obj.Id.ToString() == actions["DeviceAddr"].ToString(); });
+                                //鏈湴娌℃湁瀛樺湪;
                                 if (sceneinof == null)
                                 {
-                                    continue;
+                                    //鍦ㄧ綉鍏虫煡鎵捐鍦烘櫙;
+                                    sceneinof =await Send.GetScene(int.Parse(actions["DeviceAddr"].ToString()));
+                                    //缃戝叧娌℃湁瀛樺湪;
+                                    if (sceneinof == null)
+                                    {
+
+                                        //娉ㄨВ:鏈湴鍜岀綉鍏抽兘涓嶅瓨鍦ㄨ鍦烘櫙,鐣岄潰灏嗕笉浼氭樉绀鸿鍦烘櫙;
+                                        //sceneinof = new SceneUI();
+                                        //绉婚櫎璇ュ満鏅暟鎹�;
+                                        Common.Logic.CurrentLogic.Actions.Remove(actions);
+                                        //绉婚櫎璇ュ満鏅鍥�;
+                                        devicesFrameLayout.RemoveFromParent();
+                                        continue;
+                                    }
                                 }
 
                                 actionsIcon.UnSelectedImagePath = "ZigeeLogic/scene.png";
@@ -1539,7 +1556,6 @@
                                 Common.Room room = new Common.Room();
                                 btnregionname.Text = room.GetRoomNameBySceneId(sceneinof.Id);
                                 //Send.RoomNmae(btnregionname, deviceinof);
-
 
 
                             }
@@ -1752,6 +1768,7 @@
                             if (e1)
                             {
                                 Common.Logic.CurrentLogic.Actions.Remove(actions);
+                                // devicesFrameLayout.RemoveFromParent();
                                 var logicCommunalPage = new LogicCommunalPage();
                                 UserView.HomePage.Instance.AddChidren(logicCommunalPage);
                                 UserView.HomePage.Instance.PageIndex += 1;
@@ -1888,23 +1905,11 @@
                 Gravity = Gravity.CenterVertical,
             };
             pushswitchRowlayout.AddChidren(btnswitch);
-            btnswitch.MouseUpEventHandler += (sender1, e1) =>
-            {
-                btnswitch.IsSelected = !btnswitch.IsSelected;
-                if (btnswitch.IsSelected)
-                {
-
-                }
-                else
-                {
-
-                }
-            };
 
 
             var custompushFrameLayout = new FrameLayout
             {
-                Height = Application.GetRealHeight(160),
+                Height = Application.GetRealHeight(0),
                 BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
             };
             middle.AddChidren(custompushFrameLayout);
@@ -1952,7 +1957,18 @@
             btncustompush.MouseUpEventHandler += customclick;
             custompushback.MouseUpEventHandler += customclick;
             custompushRowLayout.MouseUpEventHandler += customclick;
-
+            btnswitch.MouseUpEventHandler += (sender1, e1) =>
+            {
+                btnswitch.IsSelected = !btnswitch.IsSelected;
+                if (btnswitch.IsSelected)
+                {
+                    custompushFrameLayout.Height = Application.GetRealHeight(160);
+                }
+                else
+                {
+                    custompushFrameLayout.Height = Application.GetRealHeight(0);
+                }
+            };
             #endregion
 
 
@@ -2523,7 +2539,7 @@
 
         }
         /// <summary>
-        /// 闂幇鎻愮ず妗嗙殑鏂规硶
+        /// 闂幇寮忔彁绀烘鐨勬柟娉�
         /// </summary>
         /// <param name="tipText">鎻愮ず鍐呭</param>
         /// <param name="second">鍋滅暀鏃堕棿鍗曚綅涓簊</param>
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/LogicDevicePage.cs b/ZigbeeApp/Shared/Phone/Device/Logic/LogicDevicePage.cs
index 27130ce..6b1b378 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/LogicDevicePage.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/LogicDevicePage.cs
@@ -1754,8 +1754,15 @@
                        var temperaturedictionary = new Dictionary<string, string>();
                        var modedictionary = new Dictionary<string, string>();
                         var speeddictionary = new Dictionary<string, string>();
+                        dictionary(temperaturedictionary, "TaskType", "5");
+                        dictionary(modedictionary, "TaskType", "5");
+                        dictionary(modedictionary, "Data1", "3");
+                        dictionary(speeddictionary, "TaskType", "5");
+                        dictionary(speeddictionary, "Data1", "6");
+                        taskListInfo.Add(temperaturedictionary);
+                        taskListInfo.Add(modedictionary);
+                        taskListInfo.Add(speeddictionary);
                         #endregion
-
                         #region  绌鸿皟View
 
                         devicefra.Y = Application.GetRealHeight(1920 - 600 - 210 - 160*2);
@@ -1802,11 +1809,12 @@
                         };
                         devicefra.AddChidren(PickerViewfra);
 
-
+                        //閬尅绌鸿皟婊戝姩view锛�
                         var pausePickerViewfra= new FrameLayout
                         {
                             Y = openframelayout.Bottom,
                             Height = Application.GetRealHeight(600),
+                            BackgroundColor=0x60ffffff,
                         };
                         devicefra.AddChidren(pausePickerViewfra);
 
@@ -1882,9 +1890,13 @@
                         closerowlayout.AddChidren(closeBtnSelected);
                         #endregion
 
-
+                        //榛樿26,鑷姩,涓
+                        int indextemperature = 10, indexmode = 2, indexspeed = 1;
                         mUIPickerView.OnSelectChangeEvent += (s1, s2, s3) =>
                         {
+                            indextemperature = s1;
+                            indexmode = s2;
+                            indexspeed = s3;
                             if (openBtnSelected.Visible)
                             {
                                 SelectedDeviceStatusaction = "yes";
@@ -1896,14 +1908,13 @@
                                 dictionary(temperaturedictionary, "Data2", a.ToString());
 
                                 SpeedState(speedstring, speeddictionary);
-
-
                             }
                         };
-                        
+                       mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnCancelColor, 0);
+                        mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnCancelColor, 1);
+                        mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnCancelColor, 2);
                         #endregion
-                        //榛樿26,鑷姩,涓
-                        int indextemperature = 10, indexmode = 2, indexspeed = 1;
+                       
                         if (edit && TaskList != null)
                         {
                        
@@ -1911,6 +1922,9 @@
                             {
                                 if (TaskList.Count == 1)
                                 {
+                                    mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnCancelColor, 0);
+                                    mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnCancelColor, 1);
+                                    mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnCancelColor, 2);
                                     //鏁扮粍鍙湁涓�涓厓绱犺鏄庡綋鍓嶇┖璋冪姸鎬佷负鍏筹紱
                                     openBtnSelected.Visible = false;
                                     closeBtnSelected.Visible = true;
@@ -1924,6 +1938,9 @@
                                     openBtnSelected.Visible = true;
                                     closeBtnSelected.Visible = false;
                                     pausePickerViewfra.Height = Application.GetRealHeight(0);
+                                    mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnSelectedColor, 0);
+                                    mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnSelectedColor, 1);
+                                    mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnSelectedColor, 2);
                                 }
 
 
@@ -1997,7 +2014,7 @@
                                         }
                                         indexspeed = mList3.IndexOf(speedtext);
                                     }
-                                    //4---璁剧疆鍔犵儹搴︽暟;5---璁剧疆鍒跺喎銆侀櫎婀垮害鏁�;7---璁剧疆鑷姩搴︽暟
+                                    //4-璁剧疆鍔犵儹搴︽暟;5-璁剧疆鍒跺喎銆侀櫎婀垮害鏁�;7-璁剧疆鑷姩搴︽暟
                                     else if (value["Data1"] == "4" || value["Data1"] == "5" || value["Data1"] == "7")
                                     {
                                         var s = int.Parse(value["Data2"]) / 100;
@@ -2011,10 +2028,18 @@
                         }
                         ///鏇存柊鏈�鏂扮┖璋冪姸鎬侊紱
                         mUIPickerView.setCurrentItems(indextemperature, indexmode, indexspeed);
-
+                     
                         ///纭浜嬩欢
                         EventHandler<MouseEventArgs> openclick = (sender, e) =>
                         {
+                            mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnSelectedColor, 0);
+                            mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnSelectedColor, 1);
+                            mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnSelectedColor, 2);
+                            mUIPickerView.setCurrentItems(indextemperature, indexmode, indexspeed);
+                            pausePickerViewfra.Height = Application.GetRealHeight(0);
+                            SelectedDeviceStatusaction = "yes";
+                            openBtnSelected.Visible = true;
+                            closeBtnSelected.Visible = false;
                             //娓呴櫎涔嬪墠鏁版嵁锛�
                             taskListInfo.Clear();
                             //鍔犺浇鏂版暟鎹紱
@@ -2026,10 +2051,7 @@
                             taskListInfo.Add(temperaturedictionary);
                             taskListInfo.Add(modedictionary);
                             taskListInfo.Add(speeddictionary);
-                            pausePickerViewfra.Height = Application.GetRealHeight(0);
-                            SelectedDeviceStatusaction = "yes";
-                            openBtnSelected.Visible = true;
-                            closeBtnSelected.Visible = false;
+                          
                             var temperature = mList1[indextemperature].Split(' ')[0];
                             var modestring = mList2[indexmode].Split(' ')[0];
                             var speedstring = mList3[indexspeed].Split(' ')[0];
@@ -2048,7 +2070,10 @@
                         ///鍙栨秷浜嬩欢
                         EventHandler<MouseEventArgs> closeclick = (sender, e) =>
                         {
-              
+                            mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnCancelColor, 0);
+                            mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnCancelColor, 1);
+                            mUIPickerView.setTextColorCenter(ZigbeeColor.Current.LogicBtnCancelColor, 2);
+                            mUIPickerView.setCurrentItems(indextemperature, indexmode, indexspeed);
                             //娓呴櫎涔嬪墠鏁版嵁锛�
                             taskListInfo.Clear();
                             dictionary(modedictionary, "TaskType", "5");
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs b/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs
index 146fa54..9f6f14d 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs
@@ -380,6 +380,16 @@
                                 };
                                 conditions.Add(sInfo);
                                 break;
+                            case 7:
+                                var diliInfo = new JObject
+                                {
+                                    ["Type"] = int.Parse(dictionary["Type"]),
+                                    ["IsValid"] = int.Parse(dictionary["IsValid"]),
+                                    ["AtHome"] = int.Parse(dictionary["AtHome"]),
+                                    ["WhoSiteUId"] =dictionary["WhoSiteUId"],
+                                };
+                                conditions.Add(diliInfo);
+                                break;
                         }
                     }
                     var actions = new JArray();
@@ -735,7 +745,59 @@
             //return list1;
         }
 
-       
+
+        /// <summary>
+        /// 鑾峰彇鍦烘櫙淇℃伅鐨勬柟娉�
+        /// </summary>
+        /// <param name="SceneId"></param>
+        /// <returns></returns>
+        public static async System.Threading.Tasks.Task<SceneUI> GetScene(int SceneId)
+        {
+            SceneUI sceneui = null;
+            return await System.Threading.Tasks.Task.Run(async () =>
+            {
+                Action<string, string> action = (topic, data) =>
+                {
+                    var gatewayID = topic.Split('/')[0];
+                    var jObjectdata = JObject.Parse(data);
+                    if (jObjectdata == null)
+                    {
+                        return;
+                    }
+
+                    if (topic == $"{gatewayID}/Scene/GetDeviceList_Respon")
+                    {
+                        sceneui = new SceneUI();
+                        sceneui.Name = jObjectdata["Data"]["ScenesName"].ToString();
+                        sceneui.Id = int.Parse(jObjectdata["Data"]["ScenesId"].ToString());
+                        
+                    }
+                };
+                var mainGateWay = ZbGateway.MainGateWay;
+                if (mainGateWay == null)
+                {
+                    Console.WriteLine("娌℃湁涓荤綉鍏�");
+                    return sceneui;
+                }
+                mainGateWay.GwResDataAction += action;
+
+                var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 806 } };
+                var jObjectdata1 = new JObject { { "ScenesId", SceneId } };
+                jObject.Add("Data", jObjectdata1);
+                mainGateWay?.Send("Scene/GetDeviceList", jObject.ToString());
+                var dateTime = DateTime.Now;
+                while ((DateTime.Now - dateTime).TotalMilliseconds < 3 * 1000)
+                {
+                    await System.Threading.Tasks.Task.Delay(100);
+                    if (sceneui!=null)
+                    {
+                        break;
+                    }
+                }
+                ZbGateway.MainGateWay.GwResDataAction -= action;
+                return sceneui;
+            });
+        }
         #endregion
 
         #region  ----鑾峰彇闂ㄩ攣
diff --git a/ZigbeeApp/Shared/Phone/Device/Room/EditRoom.cs b/ZigbeeApp/Shared/Phone/Device/Room/EditRoom.cs
index 2748b44..b9dc2ad 100755
--- a/ZigbeeApp/Shared/Phone/Device/Room/EditRoom.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Room/EditRoom.cs
@@ -44,7 +44,7 @@
         /// </summary>
         public int OldIconPathType;
 
-
+        
         #endregion
 
         public EditRoom()
@@ -207,6 +207,7 @@
                         return;
                     }
                     room.TemperatrueDevice = $"{selectTemp.DeviceAddr}{selectTemp.DeviceEpoint}";
+                    temperatureRow.SetTitle(R.MyInternationalizationString.Getting);
 
                     HdlGatewayReceiveLogic.Current.RemoveEvent("TemperatrueDevice");
                     HdlGatewayReceiveLogic.Current.AddAttributeEvent("TemperatrueDevice",  ReceiveComandDiv.A璁惧灞炴�т笂鎶�, ((report) =>
@@ -227,6 +228,7 @@
                                 {
                                     //0鈩�
                                     temperatureRow.NameText.Text = "0.0鈩�";
+                                    room.Temperatrue = 0;
                                 }
                                 else if (data.AttriButeData > 32767)
                                 {
@@ -235,6 +237,7 @@
                                     //灏忔暟鐐归渶瑕佷竴浣�
                                     strValue = strValue.Substring(0, strValue.Length - 1);
                                     temperatureRow.NameText.Text = strValue.Insert(strValue.Length - 1, ".") + "鈩�";
+                                    room.Temperatrue = int.Parse(strValue) * 0.1;
                                 }
                                 else
                                 {
@@ -242,6 +245,7 @@
                                     string strValue = data.AttriButeData.ToString();
                                     strValue = strValue.Substring(0, strValue.Length - 1);
                                     temperatureRow.NameText.Text = strValue.Insert(strValue.Length - 1, ".") + "鈩�";
+                                    room.Temperatrue = int.Parse(strValue) *0.1;
                                 }
                             }
                         }
@@ -252,6 +256,7 @@
             };
             if (string.IsNullOrEmpty(room.TemperatrueDevice) == false)
             {
+                temperatureRow.SetTitle(R.MyInternationalizationString.Getting);
                 HdlGatewayReceiveLogic.Current.RemoveEvent("TemperatrueDevice");
                 HdlGatewayReceiveLogic.Current.AddAttributeEvent("TemperatrueDevice",  ReceiveComandDiv.A璁惧灞炴�т笂鎶�, (Action<ZigBee.Device.CommonDevice>)((report) =>
                 {
@@ -271,6 +276,7 @@
                             {
                                 //0鈩�
                                 temperatureRow.NameText.Text = "0.0鈩�";
+                                room.Temperatrue = 0;
                             }
                             else if (data.AttriButeData > 32767)
                             {
@@ -279,6 +285,7 @@
                                 //灏忔暟鐐归渶瑕佷竴浣�
                                 strValue = strValue.Substring(0, strValue.Length - 1);
                                 temperatureRow.NameText.Text = strValue.Insert(strValue.Length - 1, ".") + "鈩�";
+                                room.Temperatrue = int.Parse(strValue) * 0.1;
                             }
                             else
                             {
@@ -286,6 +293,7 @@
                                 string strValue = data.AttriButeData.ToString();
                                 strValue = strValue.Substring(0, strValue.Length - 1);
                                 temperatureRow.NameText.Text = strValue.Insert(strValue.Length - 1, ".") + "鈩�";
+                                room.Temperatrue = int.Parse(strValue) * 0.1;
                             }
                         }
                     }
@@ -296,6 +304,10 @@
                 {
                     (dev as ZigBee.Device.TemperatureSensor).ReadTemperatureOrHumidity();
                 }
+            }
+            else
+            {
+                temperatureRow.SetTitle(R.MyInternationalizationString.No);
             }
 
 
@@ -318,6 +330,7 @@
                         return;
                     }
                     room.HumidityDevice = $"{selectTemp.DeviceAddr}{selectTemp.DeviceEpoint}";
+                    humidityRow.SetTitle(R.MyInternationalizationString.Getting);
 
                     HdlGatewayReceiveLogic.Current.RemoveEvent("HumidityDevice");
                     HdlGatewayReceiveLogic.Current.AddAttributeEvent("HumidityDevice",  ReceiveComandDiv.A璁惧灞炴�т笂鎶�, (report) =>
@@ -337,6 +350,7 @@
                                 {
                                     //0
                                     humidityRow.NameText.Text = "0.0%";
+                                    room.Humidity = 0;
                                 }
                                 else
                                 {
@@ -344,6 +358,7 @@
                                     string strValue = data.AttriButeData.ToString();
                                     strValue = strValue.Substring(0, strValue.Length - 1);
                                     humidityRow.NameText.Text = strValue.Insert(strValue.Length - 1, ".") + "%";
+                                    room.Humidity = int.Parse(strValue) * 0.1;
                                 }
                             }
                         }
@@ -354,6 +369,7 @@
             };
             if (string.IsNullOrEmpty(room.HumidityDevice) == false)
             {
+                humidityRow.SetTitle(R.MyInternationalizationString.Getting);
                 HdlGatewayReceiveLogic.Current.RemoveEvent("HumidityDevice");
                 HdlGatewayReceiveLogic.Current.AddAttributeEvent("HumidityDevice",  ReceiveComandDiv.A璁惧灞炴�т笂鎶�, (report) =>
                 {
@@ -372,6 +388,7 @@
                             {
                                 //0
                                 humidityRow.NameText.Text = "0.0%";
+                                room.Humidity = 0;
                             }
                             else
                             {
@@ -379,6 +396,7 @@
                                 string strValue = data.AttriButeData.ToString();
                                 strValue = strValue.Substring(0, strValue.Length - 1);
                                 humidityRow.NameText.Text = strValue.Insert(strValue.Length - 1, ".") + "%";
+                                room.Humidity = int.Parse(strValue) * 0.1;
                             }
                         }
                     }
@@ -390,6 +408,10 @@
                     (dev as ZigBee.Device.TemperatureSensor).ReadTemperatureOrHumidity();
                 }
             }
+            else
+            {
+                humidityRow.SetTitle(R.MyInternationalizationString.No);
+            }
 
             if (Config.Instance.Home.FloorDics.Count == 0 || room.IsLove)
             {
@@ -397,7 +419,7 @@
                 humidityRow.Y= Application.GetRealHeight(446);
             }
 
-            var confirm = new Device.CommonForm.CompleteButton(1700, 700, 127);
+            var confirm = new Device.CommonForm.CompleteButton(1700, 900, 127);
             confirm.SetTitle(R.MyInternationalizationString.Confrim);
             AddChidren(confirm);
             confirm.MouseUpEventHandler += (sender, e) =>
@@ -423,7 +445,6 @@
                 action?.Invoke();
                 RemoveFromParent();
             };
-
         }
 
         /// <summary>
diff --git a/ZigbeeApp/Shared/Phone/Device/Room/RoomHumiditySetting.cs b/ZigbeeApp/Shared/Phone/Device/Room/RoomHumiditySetting.cs
index 83195f4..c4d180f 100755
--- a/ZigbeeApp/Shared/Phone/Device/Room/RoomHumiditySetting.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Room/RoomHumiditySetting.cs
@@ -112,8 +112,8 @@
                 verticalScrolView.AddChidren(devRow);
                 devRow.Init();
                 devRow.SetIcon(device.IconPath);
-                devRow.SetName(device.DeviceName);
-                devRow.SetZone(room.FloorName + ", " + room.Name);
+                devRow.SetName(Common.LocalDevice.Current.GetDeviceEpointName(device));
+                devRow.SetZone(Common.Room.CurrentRoom.GetRoomNameByDevice(device));
 
                 if (tempDevice != null && tempDevice == device)
                 {
@@ -140,20 +140,6 @@
                 };
             }
 
-        }
-
-        /// <summary>
-        /// AddItem
-        /// </summary>
-        /// <param name="vertical"></param>
-        public void AddItem(VerticalScrolViewLayout vertical, int y)
-        {
-            var dev = new DeviceInfoWithZoneRow(y);
-            vertical.AddChidren(dev);
-            dev.Init();
-            dev.SetIcon("DeviceIcon/1.png");
-            dev.SetName("婀垮害浼犳劅鍣�" + y);
-            dev.SetZone(room.FloorName + ", " + room.Name);
         }
 
         /// <summary>
diff --git a/ZigbeeApp/Shared/Phone/Device/Room/RoomManagement.cs b/ZigbeeApp/Shared/Phone/Device/Room/RoomManagement.cs
index a476c9b..c6f94e4 100755
--- a/ZigbeeApp/Shared/Phone/Device/Room/RoomManagement.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Room/RoomManagement.cs
@@ -64,6 +64,8 @@
                 Gravity = Gravity.CenterVertical,
                 TextAlignment = TextAlignment.CenterRight,
                 TextColor = ZigbeeColor.Current.GXCTextBlackColor,
+                TextSize=14,
+                IsBold=true
             };
 
             var selectFloorBtn = new Button()
diff --git a/ZigbeeApp/Shared/Phone/Device/Room/RoomTemperatureSetting.cs b/ZigbeeApp/Shared/Phone/Device/Room/RoomTemperatureSetting.cs
index 01d8174..4691908 100755
--- a/ZigbeeApp/Shared/Phone/Device/Room/RoomTemperatureSetting.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Room/RoomTemperatureSetting.cs
@@ -90,7 +90,7 @@
             };
             bodyFrameLayout.AddChidren(verticalScrolView);
 
-            var confirm = new Device.CommonForm.CompleteButton(1700, 700, 127);
+            var confirm = new Device.CommonForm.CompleteButton(1700, 900, 127);
             confirm.SetTitle(R.MyInternationalizationString.Save);
             AddChidren(confirm);
             confirm.MouseUpEventHandler += (sender, e) =>
@@ -101,7 +101,6 @@
                     selectDeviceAction?.Invoke(tempDevice);
                 }
             };
-
             var deviceList = GetTemperatrueDevices();
             for (int i = 0; i < deviceList.Count; i++)
             {
@@ -110,8 +109,8 @@
                 verticalScrolView.AddChidren(devRow);
                 devRow.Init();
                 devRow.SetIcon(device.IconPath);
-                devRow.SetName(device.DeviceName);
-                devRow.SetZone(room.FloorName + ", " + room.Name);
+                devRow.SetName(Common.LocalDevice.Current.GetDeviceEpointName(device));
+                devRow.SetZone(Common.Room.CurrentRoom.GetRoomNameByDevice(device));
 
                 if(tempDevice!=null && tempDevice==device)
                 {
diff --git a/ZigbeeApp/Shared/Phone/Device/Room/UnallocatedRoom.cs b/ZigbeeApp/Shared/Phone/Device/Room/UnallocatedRoom.cs
index 813d7c9..6346226 100755
--- a/ZigbeeApp/Shared/Phone/Device/Room/UnallocatedRoom.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Room/UnallocatedRoom.cs
@@ -55,14 +55,34 @@
         /// <summary>
         /// 璁惧绫诲瀷RowLayout
         /// </summary>
-        private RowLayout typeRowLayout;
+        private FrameLayout typeRowLayout;
         /// <summary>
         /// 鐩稿悓鐨勮澶囧垪琛�
         /// </summary>
         public VerticalScrolViewLayout deviceListScrolView;
+        /// <summary>
+        /// dList
+        /// </summary>
+        private List<DeviceUI> devList;
+        /// <summary>
+        /// sceneList
+        /// </summary>
+        private List<SceneUI> sceneList;
+
+        /// <summary>
+        /// 鐩稿悓绫诲瀷鐨勮澶囧垪琛�
+        /// </summary>
+        private Dictionary<int ,List<DeviceUI>> typeDeviceDic;
+        /// <summary>
+        /// 璁惧绫诲瀷鐨勫浘id
+        /// </summary>
+        private Dictionary<int, DeviceConcreteType> typeIdDic;
 
         #endregion
 
+        /// <summary>
+        /// UnallocatedRoom
+        /// </summary>
         public UnallocatedRoom()
         {
             BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
@@ -73,11 +93,57 @@
         /// </summary>
         public void Show()
         {
+            InitData();
             AddTop();
-
             AddBodyView();
+            
         }
 
+        /// <summary>
+        /// InitData
+        /// </summary>
+        private void InitData()
+        {
+            typeDeviceDic = new Dictionary<int, List<DeviceUI>> { };
+            typeIdDic = new Dictionary<int, DeviceConcreteType> { };
+
+            RefreshData();
+        }
+
+        /// <summary>
+        /// RefreshData
+        /// </summary>
+        private void RefreshData()
+        {
+            devList = Shared.Common.Room.CurrentRoom.GetUnalloctedDeviceUIs();
+            sceneList = Shared.Common.Room.CurrentRoom.GetUnalloctedScenes();
+            typeDeviceDic.Clear();
+            typeIdDic.Clear();
+            foreach (var device in devList)
+            {
+                var info = Common.LocalDevice.Current.GetNotHdlMyDeviceEnumInfo(new List<CommonDevice> { device.CommonDevice });
+                if (typeDeviceDic.ContainsKey(info.BeloneTextId) == false)
+                {
+                    var sameDevList = new List<DeviceUI> { };
+                    sameDevList.Add(device);
+                    typeDeviceDic[info.BeloneTextId] = sameDevList;
+                }
+                else
+                {
+                    typeDeviceDic[info.BeloneTextId].Add(device);
+                }
+                typeIdDic[info.BeloneTextId] = info.ConcreteType;
+            }
+        }
+
+        ///// <summary>
+        ///// RefreshView
+        ///// </summary>
+        //public void RefreshView()
+        //{
+        //    InitData();
+        //    RefreshBodyView();
+        //}
 
         #region Add____________________________________
 
@@ -97,7 +163,7 @@
 
             addBtn = new Button()
             {
-                X = Application.GetRealWidth(800),
+                X = Application.GetRealWidth(1080-150-80),
                 Width = Application.GetRealWidth(150),
                 Height = Application.GetRealHeight(80),
                 Gravity = Gravity.CenterVertical,
@@ -131,18 +197,20 @@
             };
             bodyFrameLayout.AddChidren(functionSceneBG);
 
-            //鍔熻兘
-            functionBtn = new ButtonLineForm(CommonFormResouce.X_Left, 34, 150, 68);
-            functionSceneBG.AddChidren(functionBtn);
-            functionBtn.Init();
-            functionBtn.SetTitle(R.MyInternationalizationString.Function);
-            functionBtn.IsSelected = true;
-
             //鍦烘櫙
-            sceneBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 + 20, 34, 150, 68);
+            sceneBtn = new ButtonLineForm(CommonFormResouce.X_Left, 43);
             functionSceneBG.AddChidren(sceneBtn);
             sceneBtn.Init();
             sceneBtn.SetTitle(R.MyInternationalizationString.Scence);
+            sceneBtn.IsSelected = true;
+
+            //鍔熻兘
+            functionBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 + 20, 43);
+            functionSceneBG.AddChidren(functionBtn);
+            functionBtn.Init();
+            functionBtn.SetTitle(R.MyInternationalizationString.Function);
+            functionBtn.IsSelected = false;
+            functionBtn.X = sceneBtn.Right;
 
             //閫夋嫨鍔熻兘鍒嗘爮
             functionBtn.NameBtn.MouseUpEventHandler += FunctionBtn_MouseUpEventHandler;
@@ -152,7 +220,7 @@
             //鍔熻兘鍜屽満鏅痓odyView
             functionSceneBodyView = new FrameLayout()
             {
-                Y= Application.GetRealHeight(187-58),
+                Y= Application.GetRealHeight(127),
                 Height = Application.GetRealHeight(1607),
                 BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor
             };
@@ -244,68 +312,79 @@
         public void ShowFunction(bool selectAll)
         {
             SelectAll = selectAll;
-
-            var devList = Common.Room.AllRoomDeviceUIList;
-
-            //閫夋嫨鍔熻兘--鐩存帴浠庢埧闂寸殑devicelist涓幏鍙�
-            if (devList == null)
-            {
-                return;
-            }
-            if (devList.Count == 0)
+            if (typeIdDic.Count == 0)
             {
                 ShowNoFunctionTip();
             }
             else
             {
+                var functionTypeView1 = new FrameLayout
+                {
+                    X = Application.GetRealWidth(CommonFormResouce.X_Left),
+                    Y = Application.GetRealHeight(58),
+                    Height = Application.GetRealHeight(160),
+                    Width = Application.GetRealWidth(1028),
+                    BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+                };
+                functionSceneBodyView.AddChidren(functionTypeView1);
+                functionTypeView1.SetCornerWithSameRadius(Application.GetRealHeight(17), HDLUtils.RectCornerTopLeft);
+
+                var functionTypeView2 = new FrameLayout
+                {
+                    X = Application.GetRealWidth(CommonFormResouce.X_Left),
+                    Y = Application.GetRealHeight(58+150),
+                    Height = Application.GetRealHeight(279-150),
+                    Width = Application.GetRealWidth(1028),
+                    BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+                };
+                functionSceneBodyView.AddChidren(functionTypeView2);
+                functionTypeView2.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerBottomLeft);
+
                 functionTypeScrowView = new HorizontalScrolViewLayout
                 {
                     X = Application.GetRealWidth(CommonFormResouce.X_Left),
+                    Y=Application.GetRealHeight(58),
                     Height = Application.GetRealHeight(279),
-                    Width = Application.GetRealWidth(1028),
-                    BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+                    Width = Application.GetRealWidth(1028)
                 };
                 functionSceneBodyView.AddChidren(functionTypeScrowView);
-
+                
                 deviceListScrolView = new VerticalScrolViewLayout
                 {
                     X = Application.GetRealWidth(CommonFormResouce.X_Left),
-                    Y = functionTypeScrowView.Bottom + Application.GetRealHeight(50),
+                    Y = Application.GetRealHeight(372),
                     Width = Application.GetRealWidth(1028),
-                    Height = functionSceneBodyView.Height - Application.GetRealHeight(279 + 50) - 1,
-                    BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
-
+                    Height = Application.GetRealHeight(1034),
+                    BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
                 };
                 functionSceneBodyView.AddChidren(deviceListScrolView);
-
-                
+                deviceListScrolView.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft);
 
                 tempFunctionTypeBtn = new FunctionButton();
                 tempFunctionTypeBtn.Init("", "");
 
-                foreach (var deviceType in Common.Room.AllRoomDeviceTypeList)
+                foreach (var deviceType in typeIdDic)
                 {
-                    typeRowLayout = new RowLayout()
+                    typeRowLayout = new FrameLayout()
                     {
-                        Width = Application.GetRealWidth(CommonPage.AppRealWidth / 5),
-                        LineColor = ZigbeeColor.Current.GXCBackgroundColor,
-                        Tag = deviceType
+                        Width = Application.GetRealWidth(220),
                     };
                     functionTypeScrowView.AddChidren(typeRowLayout);
 
                     functionTypeIMG = new FunctionButton()
                     {
-                        Tag = deviceType
+                        Tag = deviceType.Key
                     };
-                    functionTypeIMG.Init(DeviceUI.GetDeviceTypeUnSelectedImagePath(deviceType), DeviceUI.GetDeviceTypeUnSelectedImagePath(deviceType));
-                    functionTypeIMG.SetTitle(DeviceUI.GetDeviceTypeName(deviceType));
+                    string imgPath=string.Empty;
+                    string imgSeletedPath=string.Empty;
+                    Common.LocalDevice.Current.GetDeviceBeloneIcon(deviceType.Value, ref imgPath ,ref imgSeletedPath);
+                    functionTypeIMG.Init(imgPath,imgSeletedPath);
+                    functionTypeIMG.SetTitle(deviceType.Key);
                     typeRowLayout.AddChidren(functionTypeIMG);
 
-
                     functionTypeIMG.ClickBtn.MouseUpEventHandler += ShowSameTypeFunction;
-                    
 
-                    if (deviceType == devList[0].CommonDevice.Type)
+                    if (functionTypeScrowView.ChildrenCount == 1)
                     {
                         ShowSameTypeFunction(functionTypeIMG.ImageBtn, null);
                     }
@@ -329,20 +408,7 @@
 
             var sameTypeList = new List<DeviceUI> { };
             var selectedList = new List<DeviceUI> { };
-            foreach (var devieceUI in Common.Room.AllRoomDeviceUIList)
-            {
-                if (devieceUI == null || devieceUI.CommonDevice == null)
-                {
-                    continue;
-                }
-                if (devieceUI.CommonDevice.Type.ToString() == (typeSender as Button).Tag.ToString())
-                {
-                    if (!sameTypeList.Contains(devieceUI))
-                    {
-                        sameTypeList.Add(devieceUI);
-                    }
-                }
-            }
+            sameTypeList = typeDeviceDic[int.Parse((typeSender as Button).Tag.ToString())];
 
             if (SelectAll)
             {
@@ -360,14 +426,13 @@
                 var deviceRow = new SelectFunctionView(0, 35);
                 deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
                 deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
-                deviceRow.SetStatu(deviceUI.CommonDevice.IsOnline == 1);
-                deviceRow.SetSelectStatu(SelectAll);
+                deviceRow.IsSelected = SelectAll;
                 deviceTypeRowLayout.AddChidren(deviceRow);
 
                 EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
                 {
-                    deviceRow.SelectBtn.IsSelected = !deviceRow.SelectBtn.IsSelected;
-                    if (deviceRow.SelectBtn.IsSelected)
+                    deviceRow.IsSelected = !deviceRow.IsSelected;
+                    if (deviceRow.IsSelected)
                     {
                         if (!selectedList.Contains(deviceUI))
                         {
@@ -382,11 +447,16 @@
                         }
                     }
                 };
-                deviceRow.NameBtn.MouseUpEventHandler += eventHandler;
-                deviceRow.ImageBtn.MouseUpEventHandler += eventHandler;
-                deviceRow.MouseUpEventHandler+=eventHandler;
-                deviceRow.SelectBtn.MouseUpEventHandler += eventHandler;
+                deviceRow.ClickBtn.MouseUpEventHandler += eventHandler;
 
+                var addBackground = new Button
+                {
+                    Y = Application.GetRealHeight(1405),
+                    Width = Application.GetMinRealAverage(1080),
+                    Height = Application.GetMinRealAverage(202),
+                    UnSelectedImagePath = "Room/AddBackground.png"
+                };
+                functionSceneBodyView.AddChidren(addBackground);
                 var add = new Button
                 {
                     Y = Application.GetRealHeight(1428),
@@ -394,22 +464,25 @@
                     Height = Application.GetRealHeight(156),
                     BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
                     TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
-                    Radius = (uint)Application.GetRealHeight(17),
+                    Radius = (uint)Application.GetRealHeight(35),
                     TextID = R.MyInternationalizationString.AddTo,
-                    Gravity = Gravity.CenterHorizontal
+                    Gravity = Gravity.CenterHorizontal,
+                    TextSize=17
                 };
                 functionSceneBodyView.AddChidren(add);
                 add.MouseUpEventHandler += (sender, e) =>
                 {
                     var selectZone = new SelectZone();
-                    CommonPage.Instance.AddChidren(selectZone);
+                    AddChidren(selectZone);
                     selectZone.Init();
                     selectZone.ZoneAction = (r) =>
                     {
                         foreach (var d in selectedList)
                         {
-                            r.AddDevice(d.FileName);
+                            r.AddDevice(d.CommonDevice,true);
+                            deviceListScrolView.RemoveViewByTag(d);
                         }
+                        RefreshData();
                     };
                 };
             }
@@ -420,6 +493,7 @@
         /// </summary>
         private void ShowNoFunctionTip()
         {
+            return;
             var noFunction = new Button()
             {
                 Y = Application.GetRealHeight(320),
@@ -452,52 +526,45 @@
         /// </summary>
         public void ShowScene(bool selectAll)
         {
-            //鍒锋柊鍦烘櫙
-            //var reFreshResult=await Shared.Common.Room.RefreshSceneUIList();
-            Shared.Common.SceneRoomUI.GetAllSceneRoomUIList();
-            if (SceneRoomUI.AllSceneRoomUIList == null)
-            {
-                return;
-            }
-            var sceneList = SceneRoomUI.AllSceneRoomUIList;
-            List<SceneRoomUI> selectedList = new List<SceneRoomUI>();
-            if(selectAll)
-            {
-                selectedList.AddRange(sceneList);
-            }
-            if (sceneList.Count == 0)
+            List<SceneUI> selectedList = new List<SceneUI>();
+            if (sceneList == null || sceneList.Count == 0)
             {
                 ShowNoSceneTip();
             }
             else
-            {
+            {
+                if (selectAll)
+                {
+                    selectedList.AddRange(sceneList);
+                }
                 var sceneScrolView = new VerticalScrolViewLayout
                 {
-                    Y = Application.GetRealHeight(0)
+                    Y = Application.GetRealHeight(22),
+                    Height=Application.GetRealHeight(1405-22)
                 };
                 functionSceneBodyView.AddChidren(sceneScrolView);
-                foreach (var sceneRoomUI in sceneList)
+                foreach (var sceneUI in sceneList)
                 {
                     var sceneFL = new FrameLayout()
                     {
-                        Width=Application.GetRealWidth(CommonFormResouce.AppRealWidth),
-                        Height = Application.GetRealHeight(397+58),
+                        Width = Application.GetRealWidth(CommonFormResouce.AppRealWidth),
+                        Height = Application.GetRealHeight(397 + 58),
                         Gravity = Gravity.CenterHorizontal,
                         BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor,
-                        Tag = sceneRoomUI
+                        Tag = sceneUI,
+                        Radius = (uint)Application.GetRealHeight(17)
                     };
                     sceneScrolView.AddChidren(sceneFL);
 
-                    var sceneImg = new Button()
+                    var sceneImg = new ImageView()
                     {
-                        X=Application.GetRealWidth(179),
-                        Y=Application.GetRealHeight(58),
+                        X = Application.GetRealWidth(179),
+                        Y = Application.GetRealHeight(58),
                         Width = Application.GetRealWidth(844),
                         Height = Application.GetRealHeight(397),
-                        UnSelectedImagePath = sceneRoomUI.sceneUI.IconPath,
+                        ImagePath = sceneUI.IconPath,
                         Radius = (uint)Application.GetRealHeight(17)
                     };
-                    sceneImg.UnSelectedImagePath = "Room/r0.png";
                     sceneFL.AddChidren(sceneImg);
 
                     var selectedBtn = new Button
@@ -508,7 +575,7 @@
                         Height = Application.GetMinRealAverage(60),
                         UnSelectedImagePath = "Room/ItemUnSelected.png",
                         SelectedImagePath = "Room/ItemSelected.png",
-                        IsSelected= selectAll
+                        IsSelected = selectAll
                     };
                     sceneFL.AddChidren(selectedBtn);
 
@@ -538,33 +605,42 @@
                         Width = Application.GetRealWidth(176),
                         Height = Application.GetRealHeight(200),
                         TextColor = ZigbeeColor.Current.GXCTextWhiteColor,
-                        Text = sceneRoomUI.sceneUI.Name,
+                        Text = sceneUI.Name,
                         Gravity = Gravity.Center,
                         IsMoreLines = true
                     };
                     leftFL.AddChidren(sceneNameBtn);
 
-                    EventHandler<MouseEventArgs> eventHandler = (sender,e) =>
+                    EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
                     {
                         selectedBtn.IsSelected = !selectedBtn.IsSelected;
-                        if(selectedBtn.IsSelected)
+                        if (selectedBtn.IsSelected)
                         {
-                            if(!selectedList.Contains(sceneRoomUI))
+                            if (!selectedList.Contains(sceneUI))
                             {
-                                selectedList.Add(sceneRoomUI);
+                                selectedList.Add(sceneUI);
                             }
                         }
                         else
                         {
-                            if (selectedList.Contains(sceneRoomUI))
+                            if (selectedList.Contains(sceneUI))
                             {
-                                selectedList.Remove(sceneRoomUI);
+                                selectedList.Remove(sceneUI);
                             }
                         }
                     };
                     selectedBtn.MouseUpEventHandler += eventHandler;
                     sceneImg.MouseUpEventHandler += eventHandler;
                 }
+
+                var addBackground = new Button
+                {
+                    Y = Application.GetRealHeight(1405),
+                    Width = Application.GetMinRealAverage(1080),
+                    Height = Application.GetMinRealAverage(202),
+                    UnSelectedImagePath = "Room/AddBackground.png"
+                };
+                functionSceneBodyView.AddChidren(addBackground);
 
                 var add = new Button
                 {
@@ -573,9 +649,10 @@
                     Height = Application.GetRealHeight(156),
                     BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
                     TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
-                    Radius = (uint)Application.GetRealHeight(17),
+                    Radius = (uint)Application.GetRealHeight(35),
                     TextID = R.MyInternationalizationString.AddTo,
-                    Gravity=Gravity.CenterHorizontal
+                    Gravity = Gravity.CenterHorizontal,
+                    TextSize=17,
                 };
                 functionSceneBodyView.AddChidren(add);
                 add.MouseUpEventHandler += (sender, e) =>
@@ -585,10 +662,12 @@
                     selectZone.Init();
                     selectZone.ZoneAction = (r) =>
                     {
-                        foreach(var s in selectedList)
+                        foreach (var s in selectedList)
                         {
-                            r.AddScene(s.sceneUI);
+                            r.AddScene(s);
+                            sceneScrolView.RemoveViewByTag(s);
                         }
+                        RefreshData();
                     };
                 };
             }
@@ -599,6 +678,7 @@
         /// </summary>
         private void ShowNoSceneTip()
         {
+            return;
             var noFunction = new Button()
             {
                 Y = Application.GetRealHeight(320),
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Abount/AbountForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Abount/AbountForm.cs
old mode 100755
new mode 100644
index e1f7466..c29e841
--- a/ZigbeeApp/Shared/Phone/UserCenter/Abount/AbountForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Abount/AbountForm.cs
@@ -264,7 +264,7 @@
                     {
                         return true;
                     }
-                    retuun false;
+                    return false;
                 }
                 catch
                 {
@@ -300,7 +300,7 @@
         private async void UpdateVersion()
         {
 #if iOS
-            CommonPage.Instance.OpenUrl();
+            OpenUrl();
 #elif Android
             try
             {
@@ -351,7 +351,7 @@
         /// 鑾峰彇iOS-APP鐗堟湰淇℃伅
         /// </summary>
         /// <returns>The https app version async.</returns>
-        public async System.Threading.Tasks.Task<ResponseEntity.ResultPack> RequestHttpsiOSAppVersionAsync()
+        public async System.Threading.Tasks.Task<Common.ResponseEntity.ResultPack> RequestHttpsiOSAppVersionAsync()
         {
             try
             {
@@ -361,7 +361,7 @@
                 {
                     return null;
                 }
-                return Newtonsoft.Json.JsonConvert.DeserializeObject<ResponseEntity.ResultPack>(Encoding.UTF8.GetString(result));
+                return Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.ResultPack>(Encoding.UTF8.GetString(result));
             }
             catch
             {
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/IMessageCommon.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/IMessageCommon.cs
index 2f3a945..e4fbd08 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/IMessageCommon.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/IMessageCommon.cs
@@ -113,7 +113,7 @@
             dic = dicMsg[keys];
             //楠岃瘉鐮侀敊璇�
             dic["ValidCodeAndPhoneNoEqual"] = R.MyInternationalizationString.ValidatorCode_ValidCodeAndPhoneNoEqual;
-            //鏈彂閫侀獙璇佺爜鍒版璐﹀彿
+            //楠岃瘉鐮佸凡澶辨晥
             dic["NoRecord"] = R.MyInternationalizationString.ValidatorCode_NoRecord;
 
             //缁戝畾鎴栬�呮洿鎹富璐﹀彿
@@ -499,6 +499,8 @@
             dic["Fail"] = R.MyInternationalizationString.uOperationFailed;
             //璐﹀彿涓嶅瓨鍦�
             dic["AccountNoExists"] = R.MyInternationalizationString.uAccountNoExists;
+            //鍘熷瘑鐮佸拰鏂板瘑鐮佺浉鍚�
+            dic["NewPasswordAndOldPasswordEqual"] = R.MyInternationalizationString.UpdatePassword_NewPasswordAndOldPasswordEqual;
 
             //鏇存柊鐢ㄦ埛澶寸浉
             keys = "ZigbeeUsers/UpdateHeadImage";
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/UserCenterEnumCommon.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/UserCenterEnumCommon.cs
index e2be112..d5ab323 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/UserCenterEnumCommon.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/UserCenterEnumCommon.cs
@@ -476,6 +476,10 @@
         /// <summary>
         /// Tip绫诲瀷
         /// </summary>
-        Tip = 4
+        Tip = 4,
+        /// <summary>
+        /// 鎻愰啋绫诲瀷
+        /// </summary>
+        Remind = 5
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/BaseCommonControl/Base/TextInputBase.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/BaseCommonControl/Base/TextInputBase.cs
index 86b3602..affc396 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/BaseCommonControl/Base/TextInputBase.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/BaseCommonControl/Base/TextInputBase.cs
@@ -9,6 +9,28 @@
     /// </summary>
     public class TextInputBase : EditText
     {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 鑱斿姩搴曠嚎
+        /// </summary>
+        private NormalViewControl btnLineTemp = null;
+        /// <summary>
+        /// 鑱斿姩搴曠嚎(鍊艰緭鍏ヤ箣鍚�,绾跨殑棰滆壊浼氬彉)
+        /// </summary>
+        public NormalViewControl btnLine
+        {
+            set
+            {
+                this.btnLineTemp = value;
+                //鍏夋爣浜嬩欢
+                this.FoucsChanged -= this.TxtCode_FoucsChangedEvent;
+                this.FoucsChanged += this.TxtCode_FoucsChangedEvent;
+            }
+        }
+
+        #endregion
+
         #region 鈻� 鍒濆鍖朹____________________________
 
         /// <summary>
@@ -78,6 +100,27 @@
 
         #endregion
 
+        #region 鈻� 浜嬩欢_______________________________
+
+        /// <summary>
+        /// 鐒︾偣鍙樻洿浜嬩欢
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void TxtCode_FoucsChangedEvent(object sender, FocusEventArgs e)
+        {
+            if (e.Focus == false)
+            {
+                btnLineTemp.BackgroundColor = UserCenterColor.Current.ButtomLine;
+            }
+            else
+            {
+                btnLineTemp.BackgroundColor = UserCenterColor.Current.TextFrameSelectColor;
+            }
+        }
+
+        #endregion
+
         #region 鈻� 涓�鑸柟娉昣__________________________
 
         /// <summary>
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/NormalSelectControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/NormalSelectControl.cs
index ed3b31f..dbc3daa 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/NormalSelectControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/NormalSelectControl.cs
@@ -45,6 +45,10 @@
                 }
             }
         }
+        /// <summary>
+        /// 澶勪簬闈為�変腑鐘舵�佹椂锛屾槸鍚︽妸瀛椾綋鍙樻垚鐏拌壊(榛樿鍙樻垚鐏拌壊)
+        /// </summary>
+        public bool ChangedTextColor = true;
 
         #endregion
 
@@ -63,8 +67,15 @@
         /// <summary>
         /// 鍒濆鍖栧唴閮ㄦ帶浠�
         /// </summary>
-        public void InitControl()
+        /// <param name="iconParh">宸︿晶鍥炬爣</param>
+        public void InitControl(string iconParh = "")
         {
+            //鍥剧墖
+            if (iconParh != "")
+            {
+                var btnIcon = this.AddLeftIcon();
+                btnIcon.UnSelectedImagePath = iconParh;
+            }
             //鏄剧ず鏂囨湰
             btnText = this.AddLeftCaption(this.textValue, 600);
             btnText.TextColor = UserCenterColor.Current.TextGrayColor3;
@@ -88,7 +99,10 @@
                 return;
             }
             btnSelect.Visible = true;
-            btnText.TextColor = UserCenterColor.Current.TextColor1;
+            if (this.ChangedTextColor == true)
+            {
+                btnText.TextColor = UserCenterColor.Current.TextColor1;
+            }
             //鐘舵�佸彉鏇�
             Statu = StatuMode.SELECT;
         }
@@ -103,7 +117,10 @@
                 return;
             }
             btnSelect.Visible = false;
-            btnText.TextColor = UserCenterColor.Current.TextGrayColor3;
+            if (this.ChangedTextColor == true)
+            {
+                btnText.TextColor = UserCenterColor.Current.TextGrayColor3;
+            }
             //鐘舵�佸彉鏇�
             Statu = StatuMode.UN_SELECT;
         }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/ProgressFormBar.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/ProgressFormBar.cs
index 652c262..91b3a5f 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/ProgressFormBar.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/ProgressFormBar.cs
@@ -90,11 +90,15 @@
                 //鍦嗗舰杩涘害鏉′复鏃跺叧闂�
                 Common.CommonPage.Loading.Hide();
             }
-
             //瀹瑰櫒
             bodyFrameLayout = new FrameLayout();
             bodyFrameLayout.BackgroundColor = UserCenterColor.Current.DialogBackColor;
-            Common.CommonPage.Instance.AddChidren(bodyFrameLayout);
+
+            var nowForm = UserView.HomePage.Instance.GetChildren(UserView.HomePage.Instance.ChildrenCount - 1);
+            if (nowForm != null && (nowForm is ViewGroup) == true)
+            {
+                ((ViewGroup)nowForm).AddChidren(bodyFrameLayout);
+            }
 
             var frameBack = new FrameLayout();
             frameBack.Width = Application.GetRealWidth(674);
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/DeviceControls/DeviceObjectControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/DeviceControls/DeviceObjectControl.cs
index 127b3ac..e4095fa 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/DeviceControls/DeviceObjectControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/DeviceControls/DeviceObjectControl.cs
@@ -80,21 +80,12 @@
 
             //璁惧
             string deviceName = Common.LocalDevice.Current.GetDeviceMacName(listDevice[0]);
-            btnDeviceName = frameTable.AddLeftCaption(deviceName, 800, 60, true);
-            btnDeviceName.TextSize = 15;
-            //杩欎釜鍧愭爣鏈夌偣鐗规畩
-            btnDeviceName.Y = Application.GetRealHeight(12) + this.chidrenYaxis;
-            btnDeviceName.Text = Common.LocalDevice.Current.GetDeviceObjectText(listDevice);
+            btnDeviceName = frameTable.AddTopView(deviceName, 800);
             frameTable.AddChidren(btnDeviceName, ChidrenBindMode.BindEventOnly);
 
             //鎴块棿
             string roomName = Common.LocalDevice.Current.GeteRealDeviceRoomName(listDevice[0]);
-            btnDeviceRoom = frameTable.AddLeftCaption(roomName, 800, 49, true);
-            //杩欎釜鍧愭爣鏈夌偣鐗规畩
-            btnDeviceRoom.Y = Application.GetRealHeight(72) + this.chidrenYaxis;
-            btnDeviceRoom.TextSize = 12;
-            btnDeviceRoom.TextColor = UserCenterColor.Current.TextGrayColor1;
-            frameTable.AddChidren(btnDeviceRoom, ChidrenBindMode.BindEventOnly);
+            btnDeviceRoom = frameTable.AddBottomView(roomName, 800);
 
             //搴曠嚎
             frameTable.AddBottomLine();
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/FrameLayoutControls/FrameRowControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/FrameLayoutControls/FrameRowControl.cs
index 1f8b11b..717582e 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/FrameLayoutControls/FrameRowControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/FrameLayoutControls/FrameRowControl.cs
@@ -304,5 +304,56 @@
         }
 
         #endregion
+
+        #region 鈻� 娣诲姞涓婇儴鐨勬樉绀烘枃鏈琠________________
+
+        /// <summary>
+        /// 娣诲姞涓婇儴鐨勬樉绀烘枃鏈�(濡傛灉鏈夊浘鏍囷紝鍒欏厛娣诲姞鍥炬爣锛屽啀娣诲姞鏂囨湰)
+        /// </summary>
+        /// <param name="i_caption">鍐呭</param>
+        /// <param name="i_width">瀹藉害</param>
+        /// <param name="real">鏄惁璁$畻鐪熷疄鍊�</param>
+        /// <returns></returns>
+        public NormalViewControl AddTopView(string i_caption, int i_width, bool real = true)
+        {
+            if (real == true)
+            {
+                i_width = Application.GetRealWidth(i_width);
+            }
+            var contr = this.AddLeftCaption(i_caption, i_width, Application.GetRealHeight(60), false);
+            contr.TextSize = 15;
+            contr.Y = Application.GetRealHeight(12) + this.chidrenYaxis;
+            this.AddChidren(contr, ChidrenBindMode.BindEventOnly);
+
+            return contr;
+        }
+
+        #endregion
+
+        #region 鈻� 娣诲姞涓嬮儴鐨勬樉绀烘枃鏈琠________________
+
+        /// <summary>
+        /// 娣诲姞涓嬮儴鐨勬樉绀烘枃鏈�(濡傛灉鏈夊浘鏍囷紝鍒欏厛娣诲姞鍥炬爣锛屽啀娣诲姞鏂囨湰)
+        /// </summary>
+        /// <param name="i_caption">鍐呭</param>
+        /// <param name="i_width">瀹藉害</param>
+        /// <param name="real">鏄惁璁$畻鐪熷疄鍊�</param>
+        /// <returns></returns>
+        public NormalViewControl AddBottomView(string i_caption, int i_width, bool real = true)
+        {
+            if (real == true)
+            {
+                i_width = Application.GetRealWidth(i_width);
+            }
+            var contr = this.AddLeftCaption(i_caption, i_width, Application.GetRealHeight(50), false);
+            contr.Y = Application.GetRealHeight(72) + this.chidrenYaxis;
+            contr.TextSize = 12;
+            contr.TextColor = UserCenterColor.Current.TextGrayColor1;
+            this.AddChidren(contr, ChidrenBindMode.BindEventOnly);
+
+            return contr;
+        }
+
+        #endregion
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalListControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalListControl.cs
index 780cd57..8f1f343 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalListControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalListControl.cs
@@ -97,16 +97,14 @@
         /// <param name="addSpace">褰撶湡瀹為珮搴﹁秴杩囧師鏈夐珮搴︽椂,鏄惁娣诲姞绌虹櫧</param>
         public void AdjustRealHeight(int bottomSpace, bool addSpace = true)
         {
+            //鎬讳箣,鍏堥噸缃嚦鏈�澶�
+            this.RecoverHeight();
+
             int count = this.ChildrenCount;
             if (count <= 0)
             {
                 frameBackTemp?.RemoveFromParent();
                 frameBackTemp = null;
-                if (maxHeight != -1)
-                {
-                    //杩樺師涓烘渶澶ч珮搴�
-                    this.Height = maxHeight;
-                }
                 return;
             }
 
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/MessageControls/ShowMsgControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/MessageControls/ShowMsgControl.cs
index 0276263..13650f2 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/MessageControls/ShowMsgControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/MessageControls/ShowMsgControl.cs
@@ -125,6 +125,10 @@
             {
                 btnTitle.TextID = R.MyInternationalizationString.NormalTip;
             }
+            else if (msgType == ShowMsgType.Remind)
+            {
+                btnTitle.TextID = R.MyInternationalizationString.uRemind;
+            }
 
             //娑堟伅
             var btnMsg = new NormalViewControl(frameBack.Width - Application.GetRealWidth(55 * 2), Application.GetRealHeight(180), false);
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/TextInputControls/TextInputControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/TextInputControls/TextInputControl.cs
index 4bedab0..27ad468 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/TextInputControls/TextInputControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/TextInputControls/TextInputControl.cs
@@ -9,6 +9,12 @@
     /// </summary>
     public class TextInputControl : TextInputBase
     {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
         /// <summary>
         /// 鍋氭垚涓�涓緭鍏ユ鎺т欢(姝e父鏂囨湰瀛椾綋棰滆壊)
         /// </summary>
@@ -29,5 +35,8 @@
         {
             this.InitSize(i_Width, real);
         }
+
+        #endregion
+
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/Base/EditorCommonForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/Base/EditorCommonForm.cs
index 6cc2460..ceff92c 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/Base/EditorCommonForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/Base/EditorCommonForm.cs
@@ -89,6 +89,12 @@
             topFrameLayout.Name = "topFrameLayout";
             this.AddChidren(topFrameLayout);
 
+            //绾�
+            var btnLine = new NormalViewControl(topFrameLayout.Width, 1, false);
+            btnLine.BackgroundColor = 0x40000000;
+            btnLine.Y = topFrameLayout.Height - 1;
+            topFrameLayout.AddChidren(btnLine);
+
             //杩斿洖閿�
             var btnBack = new BackViewControl();
             topFrameLayout.AddChidren(btnBack);
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/BottomItemSelectForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/BottomItemSelectForm.cs
index 6665467..09af164 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/BottomItemSelectForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/BottomItemSelectForm.cs
@@ -161,8 +161,6 @@
                     btnRow.AddBottomLine();
                 }
             }
-            //鍔ㄧ敾鏁堟灉
-            frameTransparent.Animate = Animate.DownToUp;
         }
 
         #endregion
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/BottomMenuSelectForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/BottomMenuSelectForm.cs
index 71f8de2..698d8af 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/BottomMenuSelectForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/BottomMenuSelectForm.cs
@@ -132,11 +132,6 @@
                 selectEvent?.Invoke();
                 selectEvent = null;
             };
-
-            if ((this.frameMenuTable.ChildrenCount / 2) + 1 == this.m_MenuCount)
-            {
-                this.frameAnimateTable.Animate = Animate.DownToUp;
-            }
         }
 
         #endregion
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlACZbGatewayUpdateLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlACZbGatewayUpdateLogic.cs
new file mode 100755
index 0000000..d137ebb
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlACZbGatewayUpdateLogic.cs
@@ -0,0 +1,498 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+using ZigBee.Device;
+
+namespace Shared.Phone.UserCenter
+{
+    /// <summary>
+    /// 涓ぎ绌鸿皟鐨勫崌绾ч�昏緫
+    /// </summary>
+    public class HdlACZbGatewayUpdateLogic : HdlDeviceUpdateCommonLogic
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// <para>鏇存柊鐘舵�佸彉鍖栫殑浜嬩欢</para>
+        /// <para>绗竴涓弬鏁颁负:</para>
+        /// <para>-1:鏇存柊寮傚父,鍚庨潰鐨勫�间负寮傚父淇℃伅鐨勭炕璇戞枃鏈�</para>
+        /// <para> 0:鏇存柊鐘舵�佹甯稿彉鍖�,鍚庨潰鐨勫�间负鐘舵�佸彉鏇寸殑鏂囨湰缈昏瘧</para>
+        /// <para> 1:鍗囩骇鎴愬姛</para>
+        /// <para> 2:涓诲姩缁堟鍗囩骇(涓ぎ绌鸿皟鏈ㄥ厑璁哥粓姝�)</para>
+        /// <para> 3:浠庣瓑寰呬腑鍙栨秷(鐩墠杩樻病鏈夌敤)</para>
+        /// </summary>
+        public Action<int, string> UpdateStatuChangedEvent = null;
+        /// <summary>
+        /// 杩涘害鍊间簨浠�
+        /// </summary>
+        public Action<decimal> ProgressEvent = null;
+        /// <summary>
+        /// 璁惧鏂扮増鏈殑鍥轰欢淇℃伅(澶氫釜璁惧鍗囩骇鏃�,搴旇浼氶渶瑕佸叕寮�杩欎釜瀵硅薄)
+        /// </summary>
+        public FirmwareVersionInfo deviceFirmware = null;
+        /// <summary>
+        /// 缃戝叧
+        /// </summary>
+        private ZbGateway zbGateway = null;
+        /// <summary>
+        /// 鍗囩骇鐨勮澶�
+        /// </summary>
+        private OTADevice otaDevice = null;
+        /// <summary>
+        /// 璁惧瀵硅薄
+        /// </summary>
+        private AC deviceAc = null;
+        /// <summary>
+        /// 鍓嶄竴娆$殑鏈�缁堢姸鎬�
+        /// </summary>
+        private UpdateStatuMode oldUpdateStatu = UpdateStatuMode.None;
+        /// <summary>
+        /// 鍥轰欢鐨刡yte鏁扮粍
+        /// </summary>
+        private byte[] deviceFirmwareByte = null;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// <para>HDL璁惧鍗囩骇,浠ヤ笅涓轰袱涓噸瑕佷簨浠�</para>
+        /// <para>UpdateStatuChangedEvent:鏇存柊鐘舵�佸彉鍖栫殑浜嬩欢</para>
+        /// <para>ProgressEvent:杩涘害鍊间簨浠�</para>
+        /// <para>StartUpdateReady():璁惧寮�濮嬫墽琛屽崌绾х殑鍑芥暟,鍦ㄨ皟鐢ㄨ繖涓箣鍓�,璇峰厛瀹炵幇涓婇潰涓や釜鏂规硶</para>
+        /// </summary>
+        /// <param name="i_deviceAc">璁惧</param>
+        /// <param name="i_deviceFirmware">璁惧鐨勫浐浠朵俊鎭�</param>
+        public HdlACZbGatewayUpdateLogic(AC i_deviceAc, FirmwareVersionInfo i_deviceFirmware)
+        {
+            this.ClassDiv = 2;
+            this.deviceAc = i_deviceAc;
+            this.otaDevice = Common.LocalDevice.Current.GetOTADevice(i_deviceAc.DeviceAddr);
+            this.deviceFirmware = i_deviceFirmware;
+            this.zbGateway = i_deviceAc.Gateway;
+        }
+
+        #endregion
+
+        #region 鈻� 寮�濮嬫洿鏂癬__________________________
+
+        /// <summary>
+        /// 杩涘叆鎵ц鏇存柊鎿嶄綔鍑嗗闃舵
+        /// </summary>
+        public void StartUpdateReady()
+        {
+            if (this.UpdateStatu == UpdateStatuMode.Wait)
+            {
+                //濡傛灉鏄瓑寰呮ā寮忥紝鍐嶆鐐瑰嚮鏃讹紝绉婚櫎鍒楄〃
+                if (FirmwareUpdateResourse.dicUpdateList.ContainsKey(otaDevice.DeviceAddr) == true)
+                {
+                    FirmwareUpdateResourse.dicUpdateList.Remove(otaDevice.DeviceAddr);
+                }
+                //鍙栨秷
+                this.UpdateStatu = UpdateStatuMode.None;
+                this.UpdateStatuChangedEvent?.Invoke(3, "");
+                return;
+            }
+            //濡傛灉瀹冩湁鐘舵�侊紝鍒欒〃绀轰箣鍓嶅畠琚粈涔堥敊璇腑鏂簡
+            if (this.UpdateStatu != UpdateStatuMode.None)
+            {
+                //淇濆瓨璧锋潵锛屽悗闈㈡湁鐢ㄥ
+                this.oldUpdateStatu = this.UpdateStatu;
+            }
+
+            //杩涘叆绛夊緟妯″紡
+            this.UpdateStatu = UpdateStatuMode.Wait;
+            FirmwareUpdateResourse.dicUpdateList[otaDevice.DeviceAddr] = this;
+
+            //绛夊緟涓��
+            this.UpdateStatuChangedEvent?.Invoke(0, Language.StringByID(R.MyInternationalizationString.uWaitting));
+
+            //鎵ц涓嬩竴涓彲鏇存柊鐨勫浐浠剁殑鏇存柊鎿嶄綔
+            HdlFirmwareUpdateLogic.DoUpdateNextFirmware();
+        }
+
+        /// <summary>
+        /// 寮�濮嬫墽琛屾洿鏂版搷浣�
+        /// </summary>
+        public override void DoStartUpdate()
+        {
+            //鐘舵�佸彉鏇�
+            this.IsFinishUpdate = false;
+            this.UpdateStatu = UpdateStatuMode.Action;
+            //鏍规嵁鐘舵�佹墽琛屾搷浣�
+            this.DoAdjustByStatuMode();
+        }
+
+        /// <summary>
+        /// 鏍规嵁鐘舵�佹墽琛屾搷浣�
+        /// </summary>
+        private void DoAdjustByStatuMode()
+        {
+            //鍏堣繖鏍峰啓鍚�,鏈夊彲鑳戒互鍚庝細鍒嗘儏鍐�
+            //棣栧彂鏃讹紝浠庡紑濮嬫墽琛�
+            if (this.oldUpdateStatu == UpdateStatuMode.None)
+            {
+                //鎵ц鏍¢獙鐗堟湰
+                this.DoCheckVersion();
+            }
+            //璁惧涓嬭浇澶辫触
+            else if (this.oldUpdateStatu == UpdateStatuMode.DeviceDownLoadFail)
+            {
+                //鎵ц鏍¢獙鐗堟湰
+                this.DoCheckVersion();
+            }
+            //璁惧鍗囩骇澶辫触
+            else if (this.oldUpdateStatu == UpdateStatuMode.DeviceUpdateFail)
+            {
+                //鎵ц鏍¢獙鐗堟湰
+                this.DoCheckVersion();
+            }
+            else
+            {
+                //閲嶆柊鍐嶆潵
+                this.DoCheckVersion();
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 鏍¢獙鐗堟湰___________________________
+
+        /// <summary>
+        /// 鏍¢獙鐗堟湰
+        /// </summary>
+        private async void DoCheckVersion()
+        {
+            this.UpdateStatu = UpdateStatuMode.DeviceUpdateReady;
+            //妫�娴嬭澶囩増鏈�
+            this.UpdateStatuChangedEvent?.Invoke(0, Language.StringByID(R.MyInternationalizationString.uCheckDeviceVersion));
+            //璁剧疆鍒濆鍊�
+            this.SetProgressValue(0, 100);
+
+            await System.Threading.Tasks.Task.Delay(1000);
+
+            //涓嬭浇鍥轰欢璧勬簮
+            var pra = new { RequestVersion = Common.CommonPage.RequestVersion, DistributedMark = this.deviceFirmware.DistributedMark };
+            this.deviceFirmwareByte = await Common.CommonPage.Instance.RequestHttpsZigbeeBytesResultAsync("FirmwareMana/DownloadPlatformUploadFirmware", Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(pra)));
+            if (this.deviceFirmwareByte == null)
+            {
+                //璁惧鍥轰欢璧勬簮涓嬭浇澶辫触
+                this.ShowErrorMsg(Language.StringByID(R.MyInternationalizationString.uDeviceFirmwareDownLoadFail));
+
+                //鏄剧ず閲嶆柊涓嬭浇妯″紡
+                this.ShowReDownLoadMode();
+
+                this.UpdateStatu = UpdateStatuMode.DeviceDownLoadFail;
+                return;
+            }
+
+            //鏁版嵁鍋忕Щ閲忥紝姣忎釜鍒嗗寘鍋忕Щ閲�+锛�1-43锛�
+            string offset = string.Empty;
+            //涓�娆″彂閫佺殑鏁版嵁闀垮害
+            int dataLength = -1;
+            //鎺ユ敹缃戝叧鐨勯�忎紶鏁版嵁
+            Action<string, object> receiveAction = (comand, pushData) =>
+            {
+                string receiveData = ((CommonDevice.ClientDataPassthroughResponseData)pushData).PassData;
+                if (receiveData.Length < 6)
+                {
+                    return;
+                }
+                try
+                {
+                    var command = receiveData[4].ToString() + receiveData[5].ToString() + receiveData[2].ToString() + receiveData[3].ToString();
+                    if (command == "025c")
+                    {
+                        offset = receiveData.Substring(10, 8);
+                        dataLength = Convert.ToInt32(receiveData.Substring(18, 2), 16);
+                    }
+                }
+                catch { }
+            };
+            this.zbGateway.ReportAction += receiveAction;
+
+            //璇诲彇绌鸿皟妯″潡鐗堟湰
+            var result = await deviceAc.ReadACFirewareVersionAsync();
+            if (result == null || result.readACFirewareVersionResponData == null || result.readACFirewareVersionResponData.Status != 0)
+            {
+                //鑾峰彇绌鸿皟妯″潡鐗堟湰澶辫触
+                this.ShowErrorMsg(Language.StringByID(R.MyInternationalizationString.uGetAirConditionerModelVersionFail));
+                //鏄剧ず閲嶆柊瀹夎
+                this.ShowReSetupMsg();
+                this.UpdateStatu = UpdateStatuMode.DeviceUpdateFail;
+                this.zbGateway.ReportAction -= receiveAction;
+                //鍙戦�佸け璐ョ粰璁惧
+                deviceAc.SendFinishAsync(1);
+                return;
+            }
+            //鍙戦�佸崌绾ч�氱煡
+            var result2 = await deviceAc.UpggradeACNotificationAsync(result.readACFirewareVersionResponData.FirewareVersion, this.deviceFirmwareByte.Length);
+            if (result2.responseData == null)
+            {
+                //鍙戦�佸崌绾у懡浠ゅけ璐�
+                this.ShowErrorMsg(Language.StringByID(R.MyInternationalizationString.uSendUpdateComandFail));
+                //鏄剧ず閲嶆柊瀹夎
+                this.ShowReSetupMsg();
+                this.UpdateStatu = UpdateStatuMode.DeviceUpdateFail;
+                this.zbGateway.ReportAction -= receiveAction;
+                //鍙戦�佸け璐ョ粰璁惧
+                deviceAc.SendFinishAsync(1);
+                return;
+            }
+            else if (result2.responseData.status == 1)
+            {
+                //鐗堟湰鍙风浉鍚�,鍗囩骇澶辫触
+                this.ShowErrorMsg(Language.StringByID(R.MyInternationalizationString.uVersionIsEqualAndUpdateFail));
+                //鏄剧ず閲嶆柊瀹夎
+                this.ShowReSetupMsg();
+                this.UpdateStatu = UpdateStatuMode.DeviceUpdateFail;
+                this.zbGateway.ReportAction -= receiveAction;
+                //鍙戦�佸け璐ョ粰璁惧
+                deviceAc.SendFinishAsync(1);
+                return;
+            }
+            else if (result2.responseData.status != 0)
+            {
+                //鏍¢獙鐗堟湰鍙峰け璐�
+                this.ShowErrorMsg(Language.StringByID(R.MyInternationalizationString.uCheckVersionFail));
+                //鏄剧ず閲嶆柊瀹夎
+                this.ShowReSetupMsg();
+                this.UpdateStatu = UpdateStatuMode.DeviceUpdateFail;
+                this.zbGateway.ReportAction -= receiveAction;
+                //鍙戦�佸け璐ョ粰璁惧
+                deviceAc.SendFinishAsync(1);
+                return;
+            }
+
+            int timeOut = 0;
+            //绛夊緟鎺ユ敹鍋忕Щ閲�
+            while (dataLength == -1)
+            {
+                timeOut++;
+                if (timeOut >= 30)
+                {
+                    //鍝嶅簲瓒呮椂,妫�娴嬭澶囩増鏈け璐�
+                    this.ShowErrorMsg(Language.StringByID(R.MyInternationalizationString.uResponseTimeoutsAndCheckDeviceVersionFail));
+                    //鏄剧ず閲嶆柊瀹夎
+                    this.ShowReSetupMsg();
+                    this.UpdateStatu = UpdateStatuMode.DeviceUpdateFail;
+                    this.zbGateway.ReportAction -= receiveAction;
+                    //鍙戦�佸け璐ョ粰璁惧
+                    deviceAc.SendFinishAsync(1);
+                    return;
+                }
+                await System.Threading.Tasks.Task.Delay(1000);
+                //璁剧疆杩涘害鍊�
+                this.SetProgressValue(timeOut, 30);
+            }
+            this.zbGateway.ReportAction -= receiveAction;
+
+            //鎵ц璁惧鍗囩骇鎿嶄綔
+            this.DoSetUpdateDevice(offset, dataLength);
+        }
+
+        #endregion
+
+        #region 鈻� 璁惧鍗囩骇___________________________
+
+        /// <summary>
+        /// 鎵ц璁惧鍗囩骇鎿嶄綔
+        /// </summary>
+        private async void DoSetUpdateDevice(string i_offset,int i_dataLength)
+        {
+            this.UpdateStatu = UpdateStatuMode.DeviceUpdateReady;
+            //璁惧姝e湪鍗囩骇鈥�
+            this.UpdateStatuChangedEvent?.Invoke(0, Language.StringByID(R.MyInternationalizationString.uDeviceUpdating));
+            //璁剧疆鍒濆鍊�
+            this.SetProgressValue(0, 100);
+
+            await System.Threading.Tasks.Task.Delay(1000);
+
+            //鍙戦�佹暟鎹殑绱㈠紩
+            int startIndex = 0;
+            int allDataLength = this.deviceFirmwareByte.Length;
+            int timeOut = 0;
+
+            //鎺ユ敹缃戝叧鐨勯�忎紶鏁版嵁
+            bool hadReceive = true;
+            Action<string, object> receiveAction = (comand, pushData) =>
+            {
+                if (comand != "DeviceRequestAcUpdateData")
+                {
+                    return;
+                }
+                string receiveData = ((CommonDevice.ClientDataPassthroughResponseData)pushData).PassData;
+                if (receiveData.Length < 6)
+                {
+                    return;
+                }
+                try
+                {
+                    var command = receiveData[4].ToString() + receiveData[5].ToString() + receiveData[2].ToString() + receiveData[3].ToString();
+                    if (command == "025c")
+                    {
+                        i_offset = receiveData.Substring(10, 8);
+                        i_dataLength = Convert.ToInt32(receiveData.Substring(18, 2), 16);
+                        hadReceive = true;
+                        timeOut = 0;
+                        //璁剧疆杩涘害鍊�
+                        this.SetProgressValue(startIndex, allDataLength);
+                    }
+                }
+                catch { }
+            };
+            this.zbGateway.ReportAction += receiveAction;
+
+            //鏈�鍚庝竴娆¢渶瑕佺瓑寰呭洖澶嶇粨鏋滄墠寰�涓嬭蛋
+            while (startIndex < allDataLength || hadReceive == false)
+            {
+                if (hadReceive == false)
+                {
+                    timeOut++;
+                    if (timeOut >= 1500)
+                    {
+                        //鍝嶅簲瓒呮椂,鍗囩骇澶辫触
+                        this.ShowErrorMsg(Language.StringByID(R.MyInternationalizationString.uResponseTimeoutsAndUpdateFail));
+                        //鏄剧ず閲嶆柊瀹夎
+                        this.ShowReSetupMsg();
+                        this.UpdateStatu = UpdateStatuMode.DeviceUpdateFail;
+                        this.zbGateway.ReportAction -= receiveAction;
+                        //鍙戦�佸け璐ョ粰璁惧
+                        deviceAc.SendFinishAsync(1);
+                        return;
+                    }
+                    await System.Threading.Tasks.Task.Delay(50);
+                    continue;
+                }
+                hadReceive = false;
+
+                //鑾峰彇涓�娆¤兘澶熷彂閫佺殑byte
+                var listData = new List<byte>();
+                for (; startIndex < allDataLength; startIndex++)
+                {
+                    listData.Add(this.deviceFirmwareByte[startIndex]);
+                    if (listData.Count == i_dataLength)
+                    {
+                        //寰�涓嬩竴浣嶆帹绉�
+                        startIndex++;
+                        break;
+                    }
+                }
+                //鍙戦�侀�忎紶鏁版嵁
+                var sendData = new AC.SendUpgradeData() { dataLength = i_dataLength, offset = i_offset };
+                sendData.databytes = listData.ToArray();
+                deviceAc.UpgradeAsync(sendData);
+            }
+            this.zbGateway.ReportAction -= receiveAction;
+
+            //鍙戦�佺粨鏉熷懡浠�
+            this.DoSendFinishComand();
+        }
+
+        #endregion
+
+        #region 鈻� 鍒嗗寘缁撴潫___________________________
+
+        /// <summary>
+        /// 鍙戦�佺粨鏉熷懡浠�
+        /// </summary>
+        private async void DoSendFinishComand()
+        {
+            //姝e湪鍙戦�佸崌绾у畬鎴愮殑鍛戒护
+            this.UpdateStatuChangedEvent?.Invoke(0, Language.StringByID(R.MyInternationalizationString.uSendingFinishUpdateComand));
+
+            //鍙戦�佹垚鍔熷懡浠ょ粰璁惧
+            deviceAc.SendFinishAsync(0);
+
+            //绛変釜涓ょ閽熷惂
+            await System.Threading.Tasks.Task.Delay(2000);
+
+            //鏄剧ず鍗囩骇瀹屾垚鐨勪俊鎭�
+            this.ShowFinishMsg();
+        }
+
+        #endregion
+
+        #region 鈻� 璁剧疆杩涘害___________________________
+
+        /// <summary>
+        /// 璁惧畾杩涘害鍊�
+        /// </summary>
+        /// <param name="value">杩涘害鍊�</param>
+        /// <param name="maxValue">maxValue</param>
+        private void SetProgressValue(decimal value, decimal maxValue)
+        {
+            this.ProgressEvent?.Invoke(value / maxValue);
+        }
+
+        /// <summary>
+        /// 璁剧疆閿欒淇℃伅
+        /// </summary>
+        /// <param name="value"></param>
+        private void ShowErrorMsg(string value)
+        {
+            this.UpdateStatuChangedEvent?.Invoke(-1, value);
+        }
+
+        #endregion
+
+        #region 鈻� 鍗囩骇瀹屾垚鎻愮ず_______________________
+
+        /// <summary>
+        /// 鏄剧ず鍗囩骇瀹屾垚鐨勪俊鎭�
+        /// </summary>
+        private void ShowFinishMsg()
+        {
+            //鐘舵�佸彉鏇�
+            this.IsFinishUpdate = true;
+            //鍗囩骇瀹屾垚
+            this.UpdateStatu = UpdateStatuMode.UpdateFinish;
+
+            HdlFirmwareUpdateLogic.DoUpdateNextFirmware();
+
+            //璁惧鍗囩骇鎴愬姛!
+            this.UpdateStatuChangedEvent?.Invoke(1, Language.StringByID(R.MyInternationalizationString.uDeviceUpdateSuccess));
+        }
+
+        #endregion
+
+        #region 鈻� 澶勭悊缁撴灉鎻愮ず_______________________
+
+        /// <summary>
+        /// 鏄剧ず閲嶆柊瀹夎鐨勪俊鎭�
+        /// </summary>
+        private void ShowReSetupMsg()
+        {
+            //鐘舵�佸彉鏇�
+            this.IsFinishUpdate = true;
+            //鎵ц涓嬩竴涓崌绾�
+            HdlFirmwareUpdateLogic.DoUpdateNextFirmware();
+        }
+
+        /// <summary>
+        /// 鏄剧ず閲嶆柊涓嬭浇妯″紡
+        /// </summary>
+        private void ShowReDownLoadMode()
+        {
+            //鐘舵�佸彉鏇�
+            this.IsFinishUpdate = true;
+            //鎵ц涓嬩竴涓崌绾�
+            HdlFirmwareUpdateLogic.DoUpdateNextFirmware();
+        }
+
+        #endregion
+
+        #region 鈻� 閲婃斁缂撳瓨___________________________
+
+        /// <summary>
+        /// 閲婃斁缂撳瓨
+        /// </summary>
+        public override void Dispose()
+        {
+            this.ProgressEvent = null;
+            this.UpdateStatuChangedEvent = null;
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDevicePanelLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDevicePanelLogic.cs
index ef8c355..4d6a2fe 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDevicePanelLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDevicePanelLogic.cs
@@ -153,8 +153,8 @@
         /// 璁剧疆璁惧浜害锛坲i鍙寒搴﹁皟鑺傦級
         /// </summary>
         /// <param name="panel">璁惧瀵硅薄</param>
-        /// <param name="directionsLevel">鎸囩ず鐏寒搴� 0-100(鐜伴樁娈典笉鐢ㄨ繖涓�)</param>
-        /// <param name="backlightLevel">鑳屽厜鐏寒搴� 0-100(ui鍙寒搴﹁皟鑺�)</param>
+        /// <param name="directionsLevel">0-100(杩欎釜鏄偣鍑诲悗鐨勫��)</param>
+        /// <param name="backlightLevel">0-100(杩欎釜鏄偣鍑诲墠鐨勫��)</param>
         /// <returns></returns>
         public async Task<bool> SetDeviceLightSettion(CommonDevice device, int directionsLevel, int backlightLevel)
         {
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceUpdateLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceUpdateLogic.cs
index e9135f8..c44215c 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceUpdateLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceUpdateLogic.cs
@@ -8,7 +8,7 @@
     /// <summary>
     /// HDL璁惧鍗囩骇鐨勯�昏緫
     /// </summary>
-    public class HdlDeviceUpdateLogic
+    public class HdlDeviceUpdateLogic : HdlDeviceUpdateCommonLogic
     {
         #region 鈻� 鍙橀噺澹版槑___________________________
 
@@ -27,17 +27,10 @@
         /// </summary>
         public Action<decimal> ProgressEvent = null;
         /// <summary>
-        /// 褰撳墠鎵ц鐨勭姸鎬�
-        /// </summary>
-        public UpdateStatuMode UpdateStatu = UpdateStatuMode.None;
-        /// <summary>
         /// 璁惧鏂扮増鏈殑鍥轰欢淇℃伅(澶氫釜璁惧鍗囩骇鏃�,搴旇浼氶渶瑕佸叕寮�杩欎釜瀵硅薄)
         /// </summary>
         public FirmwareVersionInfo deviceFirmware = null;
-        /// <summary>
-        /// 鍗囩骇鏄惁瀹屾垚(鍑虹幇閿欒鏃�,瀹冧篃浼氬彉鎴恡rue)
-        /// </summary>
-        public bool IsFinishUpdate = true;
+
         /// <summary>
         /// 缃戝叧
         /// </summary>
@@ -65,6 +58,7 @@
         /// <param name="i_deviceFirmware">璁惧鐨勫浐浠朵俊鎭�</param>
         public HdlDeviceUpdateLogic(OTADevice i_otaDevice, FirmwareVersionInfo i_deviceFirmware)
         {
+            this.ClassDiv = 2;
             this.otaDevice = i_otaDevice;
             this.deviceFirmware = i_deviceFirmware;
             this.zbGateway = i_otaDevice.Gateway;
@@ -89,9 +83,9 @@
             if (this.UpdateStatu == UpdateStatuMode.Wait)
             {
                 //濡傛灉鏄瓑寰呮ā寮忥紝鍐嶆鐐瑰嚮鏃讹紝绉婚櫎鍒楄〃
-                if (FirmwareUpdateResourse.dicDeviceUpdateList.ContainsKey(otaDevice.DeviceAddr) == true)
+                if (FirmwareUpdateResourse.dicUpdateList.ContainsKey(otaDevice.DeviceAddr) == true)
                 {
-                    FirmwareUpdateResourse.dicDeviceUpdateList.Remove(otaDevice.DeviceAddr);
+                    FirmwareUpdateResourse.dicUpdateList.Remove(otaDevice.DeviceAddr);
                 }
                 //鍙栨秷
                 this.UpdateStatu = UpdateStatuMode.None;
@@ -107,7 +101,7 @@
 
             //杩涘叆绛夊緟妯″紡
             this.UpdateStatu = UpdateStatuMode.Wait;
-            FirmwareUpdateResourse.dicDeviceUpdateList[otaDevice.DeviceAddr] = this;
+            FirmwareUpdateResourse.dicUpdateList[otaDevice.DeviceAddr] = this;
 
             //绛夊緟涓��
             this.UpdateStatuChangedEvent?.Invoke(0, Language.StringByID(R.MyInternationalizationString.uWaitting));
@@ -117,9 +111,9 @@
         }
 
         /// <summary>
-        /// 寮�濮嬫墽琛屾洿鏂版搷浣�
+        /// 寮�濮嬫墽琛屾洿鏂版搷浣�(FirmwareUpdateLogic璋冪敤)
         /// </summary>
-        public void DoStartUpdate()
+        public override void DoStartUpdate()
         {
             //鐘舵�佸彉鏇�
             this.IsFinishUpdate = false;
@@ -505,7 +499,7 @@
             this.UpdateStatuChangedEvent?.Invoke(0, Language.StringByID(R.MyInternationalizationString.uDeviceUpdating));
             this.SetProgressValue(0);
 
-            FirmwareUpdateResourse.dicDeviceUpdateList[otaDevice.DeviceAddr] = this;
+            FirmwareUpdateResourse.dicUpdateList[otaDevice.DeviceAddr] = this;
             //鍚屾杩涘害
             this.zbGateway.ReportAction += UpdateDeviceProgress;
         }
@@ -734,7 +728,7 @@
         /// <summary>
         /// 閲婃斁缂撳瓨
         /// </summary>
-        public void Dispose()
+        public override void Dispose()
         {
             this.ProgressEvent = null;
             this.UpdateStatuChangedEvent = null;
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs
index a1c6fb9..776aac3 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs
@@ -18,38 +18,33 @@
         public static void DoUpdateNextFirmware()
         {
             //涓嬩竴涓鎵ц鏇存柊鐨勭綉鍏�
-            HdlGatewayUpdateLogic gwControl = null;
-            foreach (var contr in FirmwareUpdateResourse.dicGatewayUpdateList.Values)
+            HdlDeviceUpdateCommonLogic gwControl = null;
+            //涓嬩竴涓鎵ц鏇存柊鐨勮澶�
+            HdlDeviceUpdateCommonLogic deviceControl = null;
+            foreach (var contr in FirmwareUpdateResourse.dicUpdateList.Values)
             {
                 //濡傛灉鍒殑杩樺湪鍗囩骇涓�,鍒欎笉鍐嶅鐞�
                 if (contr.IsFinishUpdate == false)
                 {
                     return;
                 }
-                //濡傛灉杩欎釜缃戝叧鏄湪绛夊緟鍒楄〃鐨勮瘽
+                //濡傛灉杩欎釜鍦ㄧ瓑寰呭垪琛ㄧ殑璇�
                 if (contr.UpdateStatu == UpdateStatuMode.Wait && gwControl == null)
                 {
-                    //涓嬩竴涓崌绾х殑灏辨槸瀹冧簡
-                    gwControl = contr;
+                    if (contr.ClassDiv == 1 && gwControl == null)
+                    {
+                        //涓嬩竴涓崌绾х殑灏辨槸瀹冧簡
+                        gwControl = contr;
+                    }
+                    else if (contr.ClassDiv == 2 && deviceControl == null)
+                    {
+                        //涓嬩竴涓崌绾х殑灏辨槸瀹冧簡
+                        deviceControl = contr;
+                    }
                 }
             }
 
-            HdlDeviceUpdateLogic deviceControl = null;
-            foreach (var contr in FirmwareUpdateResourse.dicDeviceUpdateList.Values)
-            {
-                //濡傛灉鍒殑杩樺湪鍗囩骇涓�,鍒欎笉鍐嶅鐞�
-                if (contr.IsFinishUpdate == false)
-                {
-                    return;
-                }
-                //濡傛灉杩欎釜璁惧鏄湪绛夊緟鍒楄〃鐨勮瘽
-                if (contr.UpdateStatu == UpdateStatuMode.Wait && deviceControl == null)
-                {
-                    //涓嬩竴涓崌绾х殑灏辨槸瀹冧簡
-                    deviceControl = contr;
-                }
-            }
-            HdlThreadLogic.Current.RunMain(() =>
+            HdlThreadLogic.Current.RunThread(() =>
             {
                 if (gwControl != null)
                 {
@@ -218,6 +213,11 @@
             FirmwareVersionInfo newFirInfo = null;
             foreach (var verInfo in listdata)
             {
+                if (verInfo.Name.EndsWith(".bin") == true)
+                {
+                    //瀹冧笉鏄崌绾у浐浠�,  .bin鏄壒娈婄殑
+                    continue;
+                }
                 if (verInfo.FirmwareVersion > nowVersion)
                 {
                     nowVersion = verInfo.FirmwareVersion;
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs
index 023fb10..7f97c6a 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs
@@ -2145,7 +2145,7 @@
             bool canBreak = false;
             HdlThreadLogic.Current.RunThread(async () =>
             {
-                List<string> list = new List<string>() { "NotSetAgain" };
+                List<string> list = new List<string>() { "NotSetAgain", "NotCheck" };
 
                 //璁剧疆璁块棶鎺ュ彛鐨勫弬鏁�
                 var pra = new GetGatewayPra();
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayUpdateLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayUpdateLogic.cs
index 44249b0..d6e9dea 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayUpdateLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayUpdateLogic.cs
@@ -9,7 +9,7 @@
     /// <summary>
     /// 缃戝叧鐨勫崌绾ч�昏緫
     /// </summary>
-    public class HdlGatewayUpdateLogic
+    public class HdlGatewayUpdateLogic : HdlDeviceUpdateCommonLogic
     {
         #region 鈻� 鍙橀噺澹版槑___________________________
 
@@ -38,14 +38,6 @@
         /// 缃戝叧鏂扮増鏈殑鍥轰欢淇℃伅
         /// </summary>
         public FirmwareVersionInfo gatewayFirmware = null;
-        /// <summary>
-        /// 褰撳墠鎵ц鐘舵��(鍑虹幇閿欒鏃�,瀹冧篃浼氬彉鎴恡rue)
-        /// </summary>
-        public UpdateStatuMode UpdateStatu = UpdateStatuMode.None;
-        /// <summary>
-        /// 鍗囩骇鏄惁瀹屾垚
-        /// </summary>
-        public bool IsFinishUpdate = true;
 
         /// <summary>
         /// 鍓嶄竴娆$殑鏈�缁堢姸鎬�
@@ -71,6 +63,7 @@
         public HdlGatewayUpdateLogic(ZbGateway zbGateway, FirmwareVersionInfo i_virtualFirmware,
             FirmwareVersionInfo i_coordinatorFirmware, FirmwareVersionInfo i_gatewayFirmware)
         {
+            this.ClassDiv = 1;
             this.upDatezbGateway = zbGateway;
             this.virtualFirmware = i_virtualFirmware;
             this.coordinatorFirmware = i_coordinatorFirmware;
@@ -90,9 +83,9 @@
             {
                 //濡傛灉鏄瓑寰呮ā寮忥紝鍐嶆鐐瑰嚮鏃讹紝绉婚櫎鍒楄〃
                 string gwId = HdlGatewayLogic.Current.GetGatewayId(this.upDatezbGateway);
-                if (FirmwareUpdateResourse.dicGatewayUpdateList.ContainsKey(gwId) == true)
+                if (FirmwareUpdateResourse.dicUpdateList.ContainsKey(gwId) == true)
                 {
-                    FirmwareUpdateResourse.dicGatewayUpdateList.Remove(gwId);
+                    FirmwareUpdateResourse.dicUpdateList.Remove(gwId);
                 }
                 this.UpdateStatu = UpdateStatuMode.None;
                 //鍙栨秷
@@ -109,7 +102,7 @@
             //杩涘叆绛夊緟妯″紡
             this.UpdateStatu = UpdateStatuMode.Wait;
             string gwId2 = HdlGatewayLogic.Current.GetGatewayId(this.upDatezbGateway);
-            FirmwareUpdateResourse.dicGatewayUpdateList[gwId2] = this;
+            FirmwareUpdateResourse.dicUpdateList[gwId2] = this;
             //绛夊緟涓��
             this.UpdateStatuChangedEvent?.Invoke(0, Language.StringByID(R.MyInternationalizationString.uWaitting));
 
@@ -120,7 +113,7 @@
         /// <summary>
         /// 寮�濮嬫墽琛屾洿鏂版搷浣�(FirmwareUpdateLogic璋冪敤)
         /// </summary>
-        public void DoStartUpdate()
+        public override void DoStartUpdate()
         {
             //鐘舵�佸彉鏇�
             this.IsFinishUpdate = false;
@@ -1025,7 +1018,7 @@
         /// <summary>
         /// 閲婃斁缂撳瓨
         /// </summary>
-        public void Dispose()
+        public override void Dispose()
         {
             this.ProgressEvent = null;
             this.UpdateStatuChangedEvent = null;
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs
index 929b8ce..337b878 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs
@@ -259,6 +259,11 @@
         /// <param name="pra">璇锋眰鐨勫弬鏁�</param>
         public static bool CheckNotEorrorMsg(ResponsePack revertObj, string RequestName, List<string> listNotShowError = null, object pra = null)
         {
+            if (listNotShowError != null && listNotShowError.Contains("NotCheck") == true)
+            {
+                //涓嶆娴�
+                return true;
+            }
             if (revertObj == null)
             {
                 Application.RunOnMainThread(() =>
@@ -612,8 +617,7 @@
             //鍏抽棴鎵�鏈夋帴鏀�
             HdlGatewayReceiveLogic.Current.RemoveAllEvent();
             //娓呴櫎鍗囩骇鍒楄〃
-            FirmwareUpdateResourse.dicDeviceUpdateList.Clear();
-            FirmwareUpdateResourse.dicGatewayUpdateList.Clear();
+            FirmwareUpdateResourse.dicUpdateList.Clear();
 
             HdlThreadLogic.Current.RunThread(async () =>
             {
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Resourse/FirmwareUpdateResourse.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Resourse/FirmwareUpdateResourse.cs
index c743b02..5c8d741 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Resourse/FirmwareUpdateResourse.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Resourse/FirmwareUpdateResourse.cs
@@ -14,12 +14,41 @@
         /// </summary>
         public static Dictionary<FirmwareLevelType, Dictionary<string, FirmwareHardInfo>> dicFirmwareInfo = new Dictionary<FirmwareLevelType, Dictionary<string, FirmwareHardInfo>>();
         /// <summary>
-        /// 缃戝叧鍗囩骇鍒楄〃
+        /// 鍗囩骇鍒楄〃
         /// </summary>
-        public static Dictionary<string, HdlGatewayUpdateLogic> dicGatewayUpdateList = new Dictionary<string, HdlGatewayUpdateLogic>();
+        public static Dictionary<string, HdlDeviceUpdateCommonLogic> dicUpdateList = new Dictionary<string, HdlDeviceUpdateCommonLogic>();
+    }
+
+    /// <summary>
+    /// 鍥轰欢鍗囩骇鐨凜ommon
+    /// </summary>
+    public class HdlDeviceUpdateCommonLogic
+    {
         /// <summary>
-        /// 璁惧鍗囩骇鍒楄〃
+        /// 鍗囩骇绫荤殑鍖哄垎(1:缃戝叧,2:璁惧)
         /// </summary>
-        public static Dictionary<string, HdlDeviceUpdateLogic> dicDeviceUpdateList = new Dictionary<string, HdlDeviceUpdateLogic>();
+        public int ClassDiv = 0;
+        /// <summary>
+        /// 褰撳墠鎵ц鐘舵��(鍑虹幇閿欒鏃�,瀹冧篃浼氬彉鎴恡rue)
+        /// </summary>
+        public UpdateStatuMode UpdateStatu = UpdateStatuMode.None;
+        /// <summary>
+        /// 鍗囩骇鏄惁瀹屾垚
+        /// </summary>
+        public bool IsFinishUpdate = true;
+
+        /// <summary>
+        /// 杩涘叆鎵ц鏇存柊鎿嶄綔鍑嗗闃舵
+        /// </summary>
+        public virtual void DoStartUpdate()
+        {
+        }
+
+        /// <summary>
+        /// 閲婃斁缂撳瓨
+        /// </summary>
+        public virtual void Dispose()
+        {
+        }
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/ACZbGatewayModuleUpdateForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/ACZbGatewayModuleUpdateForm.cs
index 9396272..335f45b 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/ACZbGatewayModuleUpdateForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/ACZbGatewayModuleUpdateForm.cs
@@ -13,9 +13,17 @@
         #region 鈻� 鍙橀噺澹版槑___________________________
 
         /// <summary>
-        /// 璁惧mac鍦板潃
+        /// 璁惧Ota
         /// </summary>
-        private string deviceMac = null;
+        private OTADevice otaDevice = null;
+        /// <summary>
+        /// 璁惧
+        /// </summary>
+        private AC deviceAc = null;
+        /// <summary>
+        /// 鍓嶅洖閫夋嫨鐨勬帶浠�
+        /// </summary>
+        private NormalSelectControl oldSelectContr = null;
 
         #endregion
 
@@ -24,10 +32,11 @@
         /// <summary>
         /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
         /// </summary>
-        /// <param name="i_deviceMac">璁惧mac鍦板潃</param>
-        public void ShowForm(string i_deviceMac)
+        /// <param name="i_deviceAc">璁惧</param>
+        public void ShowForm(AC i_deviceAc)
         {
-            this.deviceMac = i_deviceMac;
+            this.deviceAc = i_deviceAc;
+            this.otaDevice = Common.LocalDevice.Current.GetOTADevice(i_deviceAc.DeviceAddr);
 
             //璁剧疆澶撮儴淇℃伅
             base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAirConditioningModule));
@@ -55,29 +64,209 @@
             listView.BackgroundColor = UserCenterColor.Current.White;
             bodyFrameLayout.AddChidren(listView);
 
-            //鍗囩骇
-            var btnUpdate = new BottomClickButton();
-            btnUpdate.TextID = R.MyInternationalizationString.uLevelUp;
-            bodyFrameLayout.AddChidren(btnUpdate);
-            btnUpdate.ButtonClickEvent += (sender, e) =>
-            {
-            };
+            //鍒濆鍖栫┖璋冩ā鍧楀垪琛�
+            this.InitAirConditioningModuleList(listView);
         }
 
         #endregion
 
-        private async void DoDeviceUpdate()
+        #region 鈻� 鍒濆鍖栫┖璋冩ā鍧楀垪琛╛________________
+
+        /// <summary>
+        /// 鍒濆鍖栫┖璋冩ā鍧楀垪琛�
+        /// </summary>
+        private void InitAirConditioningModuleList(VerticalListControl listView)
         {
-            var listDevice = Common.LocalDevice.Current.GetDevicesByMac(this.deviceMac);
-            if (listDevice.Count == 0)
+            var list = HdlFirmwareUpdateLogic.GetFirmwareVersionListInfo(FirmwareLevelType.ZigbeeDevice, otaDevice.HwVersion.ToString(), otaDevice.ImgTypeId.ToString());
+            if (list.Count == 0)
             {
+                //娌℃湁鍙崌绾х殑绌鸿皟妯″潡
+                this.ShowNotDataImage(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uNotHadAirConditioningUpdateModule));
                 return;
             }
-            
+            HdlThreadLogic.Current.RunMainInThread(() =>
+            {
+                for (int i = 0; i < list.Count; i++)
+                {
+                    //娣诲姞妯″潡琛�
+                    this.AddModuleRow(listView, list[i], i.ToString(), i != list.Count - 1);
+                }
+                //璋冩暣楂樺害
+                listView.AdjustRealHeightByBottomButton(Application.GetRealHeight(23));
+
+                //鍗囩骇
+                var btnUpdate = new BottomClickButton();
+                btnUpdate.TextID = R.MyInternationalizationString.uLevelUp;
+                bodyFrameLayout.AddChidren(btnUpdate);
+                btnUpdate.ButtonClickEvent += (sender, e) =>
+                {
+                    var selectInfo = this.GetSelectFirmware(listView, list);
+                    if (selectInfo == null)
+                    {
+                        //娌℃湁閫夋嫨鍥轰欢
+                        return;
+                    }
+                    //璁惧鍗囩骇
+                    HdlThreadLogic.Current.RunThread(() =>
+                    {
+                        this.DoDeviceUpdate(selectInfo);
+                    });
+                };
+            });
         }
 
+        /// <summary>
+        /// 娣诲姞妯″潡琛�
+        /// </summary>
+        /// <param name="listView"></param>
+        /// <param name="info"></param>
+        /// <param name="mainkeys"></param>
+        private void AddModuleRow(VerticalListControl listView, FirmwareVersionInfo info, string mainkeys,bool addLine)
+        {
+            //鑾峰彇绌鸿皟妯″潡鐨勫悕瀛�
+            string textView = this.GetAirConditioningModuleName(info);
+            var row = new NormalSelectControl(textView, listView.rowSpace / 2);
+            row.MainKeys = mainkeys;
+            listView.AddChidren(row);
+            row.InitControl("Device/AirConditionerEpoint.png");
+            if (addLine == true)
+            {
+                row.AddBottomLine();
+            }
+            row.ButtonClickEvent += (sender, e) =>
+            {
+                //鍙栨秷
+                if (row.IsSelected == true)
+                {
+                    row.IsSelected = false;
+                    oldSelectContr = null;
+                    return;
+                }
+                //閫夋嫨
+                row.IsSelected = true;
+                if (oldSelectContr != null)
+                {
+                    oldSelectContr.IsSelected = false;
+                }
+                oldSelectContr = row;
+            };
+        }
+
+        /// <summary>
+        /// 鑾峰彇绌鸿皟妯″潡鐨勫悕瀛�
+        /// </summary>
+        /// <param name="info"></param>
+        /// <returns></returns>
+        private string GetAirConditioningModuleName(FirmwareVersionInfo info)
+        {
+            string textView = string.Empty;
+            if (info.Name.Contains("IRACC_DAK") == true)
+            {
+                //澶ч噾绌鸿皟妯″潡
+                textView = Language.StringByID(R.MyInternationalizationString.uDakAirConditioningModule);
+            }
+            else if (info.Name.Contains("IRACC_HIC") == true)
+            {
+                //閲嶅伐绌鸿皟妯″潡
+                textView = Language.StringByID(R.MyInternationalizationString.uHicAirConditioningModule);
+            }
+            else
+            {
+                //绌鸿皟鍗囩骇妯″潡
+                textView = Language.StringByID(R.MyInternationalizationString.uAirConditioningUpdateModule);
+            }
+            return textView;
+        }
+
+        #endregion
+
         #region 鈻� 涓�鑸柟娉昣__________________________
 
+        /// <summary>
+        /// 鑾峰彇閫夋嫨鐨勫崌绾у浐浠�
+        /// </summary>
+        /// <param name="listView"></param>
+        /// <param name=""></param>
+        /// <returns></returns>
+        private FirmwareVersionInfo GetSelectFirmware(VerticalListControl listView, List<FirmwareVersionInfo> listInfo)
+        {
+            int contrCount = listView.ChildrenCount;
+            for (int i = 0; i < contrCount; i++)
+            {
+                var myView = listView.GetChildren(i) as NormalSelectControl;
+                if (myView == null || myView.IsSelected == false)
+                {
+                    continue;
+                }
+                return listInfo[i];
+            }
+            return null;
+        }
+
+        #endregion
+
+        #region 鈻� 璁惧鍗囩骇___________________________
+
+        /// <summary>
+        /// 璁惧鍗囩骇
+        /// </summary>
+        private void DoDeviceUpdate(FirmwareVersionInfo updateInfo)
+        {
+            //鎵撳紑杩涘害鏉�
+            ProgressFormBar.Current.Start();
+            //璁惧鍗囩骇
+            var updateLogic = new HdlACZbGatewayUpdateLogic(deviceAc, updateInfo);
+            //鏇存柊鐘舵�佸彉鍖栫殑浜嬩欢
+            updateLogic.UpdateStatuChangedEvent += (div, msg) =>
+            {
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    if (div == -1)
+                    {
+                        //寮傚父
+                        this.ShowMassage(ShowMsgType.Tip, msg);
+                        ProgressFormBar.Current.Close();
+                    }
+                    else if (div == 0)
+                    {
+                        //涓�鑸俊鎭�
+                        ProgressFormBar.Current.SetMsg(msg);
+                    }
+                    else if (div == 1)
+                    {
+                        //鍗囩骇瀹屾垚
+                        ProgressFormBar.Current.Close();
+                        this.ShowMassage(ShowMsgType.Tip, msg);
+
+                        HdlThreadLogic.Current.RunMain(() =>
+                        {
+                            //鍏抽棴鐣岄潰
+                            this.CloseForm();
+                        });
+                    }
+                });
+            };
+            //杩涘害鍊兼敼鍙樹簨浠�
+            updateLogic.ProgressEvent += (value) =>
+            {
+                ProgressFormBar.Current.SetValue(value);
+            };
+            //璁惧鍗囩骇寮�濮�
+            updateLogic.StartUpdateReady();
+            //鍏抽棴浜嬩欢
+            ProgressFormBar.Current.CloseEvent += () =>
+            {
+                //鍗囩骇瀵硅薄
+                if (FirmwareUpdateResourse.dicUpdateList.ContainsKey(deviceAc.DeviceAddr) == true
+                    && FirmwareUpdateResourse.dicUpdateList[deviceAc.DeviceAddr].IsFinishUpdate == true)
+                {
+                    //濡傛灉璁惧宸茬粡鍗囩骇瀹屾垚锛岀晫闈㈠叧闂椂锛屽垯绉婚櫎鍐呭瓨
+                    FirmwareUpdateResourse.dicUpdateList[deviceAc.DeviceAddr].Dispose();
+                    FirmwareUpdateResourse.dicUpdateList.Remove(deviceAc.DeviceAddr);
+                }
+            };
+        }
+
         #endregion
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/ACZbGatewayUpdateMenuForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/ACZbGatewayUpdateMenuForm.cs
index ce14a14..716466e 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/ACZbGatewayUpdateMenuForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/ACZbGatewayUpdateMenuForm.cs
@@ -1,6 +1,7 @@
 锘縰sing System;
 using System.Collections.Generic;
 using System.Text;
+using ZigBee.Device;
 
 namespace Shared.Phone.UserCenter.DeviceAirConditioner
 {
@@ -12,9 +13,9 @@
         #region 鈻� 鍙橀噺澹版槑___________________________
 
         /// <summary>
-        /// 璁惧mac鍦板潃
+        /// 璁惧
         /// </summary>
-        private string deviceMac = null;
+        private AC deviceAc = null;
 
         #endregion
 
@@ -23,11 +24,11 @@
         /// <summary>
         /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
         /// </summary>
-        /// <param name="i_deviceMac">璁惧mac鍦板潃</param>
+        /// <param name="i_deviceAc">璁惧</param>
         /// <param name="hadNewVersion">鎷ユ湁鏂扮増鏈�</param>
-        public void ShowForm(string i_deviceMac, bool hadNewVersion)
+        public void ShowForm(AC i_deviceAc, bool hadNewVersion)
         {
-            this.deviceMac = i_deviceMac;
+            this.deviceAc = i_deviceAc;
 
             //璁剧疆澶撮儴淇℃伅
             base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uFirmwareUpdate));
@@ -67,7 +68,7 @@
                 //杩欓噷鏄澶囩殑Ota鍗囩骇
                 btnNewVersion.Visible = false;
                 var form = new Device.DeviceFirmwareUpdateForm();
-                form.AddForm(this.deviceMac);
+                form.AddForm(this.deviceAc.DeviceAddr);
             };
             //鎻愮ず鏈夋柊鐗堟湰
             btnNewVersion.UnSelectedImagePath = "Item/NewVersion.png";
@@ -84,7 +85,7 @@
             rowModel.ButtonClickEvent += (sender, e) =>
             {
                 var form = new ACZbGatewayModuleUpdateForm();
-                form.AddForm(deviceMac);
+                form.AddForm(deviceAc);
             };
 
             //璋冩暣鍒楄〃楂樺害
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs
index ef62d30..80a3619 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs
@@ -81,7 +81,6 @@
             var btnAddFrameLayout = new FrameLayout
             {
                 X = Application.GetRealWidth(830),
-                Width = Application.GetRealWidth(200),
             };
             this.titleFrameLayout.AddChidren(btnAddFrameLayout);
 
@@ -115,6 +114,14 @@
             {
                 SideslipFramelayout();
             };
+            if (Common.Config.Instance.Home.FloorDics.Count == 0)
+            {
+                btnAddFrameLayout.Width = 0;
+            }
+            else
+            {
+                btnAddFrameLayout.Width = Application.GetRealWidth(200);
+            }
             MidFrameLayoutContent(btnFloorText);
         }
 
@@ -532,6 +539,7 @@
             int curIndex = 0;
             foreach (var device in curTypeDeviceList)
             {
+                curIndex++;
                 if (device.CommonDevice != null && device.CommonDevice.IsOnline == 0)
                 {
                     continue;
@@ -651,8 +659,6 @@
                         btnChoose.Visible = true;
                     }
                 }
-
-                curIndex++;
             }
             if (targetList.Count == 0)
             {
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs
index 584adc1..2d29c23 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs
@@ -67,7 +67,6 @@
             var btnAddFrameLayout = new FrameLayout
             {
                 X = Application.GetRealWidth(830),
-                Width = Application.GetRealWidth(200),
             };
             this.titleFrameLayout.AddChidren(btnAddFrameLayout);
 
@@ -95,6 +94,14 @@
             {
                 SideslipFramelayout();
             };
+            if (Common.Config.Instance.Home.FloorDics.Count == 0)
+            {
+                btnAddFrameLayout.Width = 0;
+            }
+            else
+            {
+                btnAddFrameLayout.Width = Application.GetRealWidth(200);
+            }
             MidFrameLayoutContent(btnFloorText);
         }
 
@@ -194,7 +201,7 @@
             Shared.Common.Room curRoom = roomList[0];
             int index = 0;
             RefreshRoomList(curRoom, ref index);
-            RefreshSceneList(roomList[index]);
+            //RefreshSceneList(roomList[index]);
 
             if (curRoom.SceneUIList.Count == 0)
             {
@@ -567,8 +574,8 @@
                     Y = Application.GetMinRealAverage(46),
                     Width = Application.GetMinRealAverage(81),
                     Height = Application.GetMinRealAverage(81),
-                    UnSelectedImagePath = "Scene/SceneIcon.png"
-            };
+                    UnSelectedImagePath = "Scene/SceneIcon.png",// scene.IconPath,
+                };
                 rowLayout.AddChidren(devicePic);
 
                 var btnBindName = new Button()
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindCommonLayout.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindCommonLayout.cs
index 03b207f..1efed52 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindCommonLayout.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindCommonLayout.cs
@@ -32,8 +32,8 @@
             X = Application.GetRealWidth(161),
             Width = Application.GetRealWidth(1080 - 161),
             Height = Application.GetRealWidth(69),
+            IsBold = true,
             TextSize = 17,
-            IsBold = true
         };
         public FrameLayout btnBackFrameLayout = new FrameLayout
         {
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindInfo.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindInfo.cs
index c77cf96..8d2b2fd 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindInfo.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindInfo.cs
@@ -20,94 +20,6 @@
         /// </summary>
         public static List<CommonDevice> oldTargetList = new List<CommonDevice>();
 
-        //public static async System.Threading.Tasks.Task<int> RemoveTargets(BindObj.BindListResponseObj bindDevice, Panel currentKey)
-        //{
-        //    var delDevice = new BindObj.DelDeviceBindData();
-        //    delDevice.DeviceAddr = currentKey.DeviceAddr;
-        //    delDevice.Epoint = currentKey.DeviceEpoint;
-
-        //    if (bindDevice.BindType == 0 || bindDevice.BindType == 1)
-        //    {
-        //        var removeDevice = new BindObj.RemoveBindListObj();
-        //        removeDevice.BindCluster = bindDevice.BindCluster;
-        //        removeDevice.BindType = 0;
-        //        removeDevice.BindMacAddr = bindDevice.BindMacAddr;
-        //        removeDevice.BindEpoint = bindDevice.BindEpoint;
-        //        delDevice.RemoveBindList.Add(removeDevice);
-        //    }
-        //    else if (bindDevice.BindType == 2)
-        //    {
-        //        var removeDevice = new BindObj.RemoveBindListObj();
-        //        removeDevice.BindCluster = bindDevice.BindCluster;
-        //        removeDevice.BindType = 1;
-        //        removeDevice.BindScenesId = bindDevice.BindScenesId;
-        //        delDevice.RemoveBindList.Add(removeDevice);
-        //    }
-        //    var delResult = await currentKey.DelDeviceBindAsync(delDevice);
-        //    foreach (var re in delResult.delDeviceBindResponseData.RemoveBindList)
-        //    {
-        //        switch (re.Result)
-        //        {
-        //            case 0:
-        //                return 0;
-        //                break;
-        //            case 4:
-
-        //                if (delResult.removeBindResultResponseData != null)
-        //                {
-        //                    if (delResult.removeBindResultResponseData.Result == 0)
-        //                    {
-        //                        return 0;
-        //                    }
-        //                }
-        //                break;
-        //        }
-        //    }
-        //    return -1;
-        //}
-
-        public static async System.Threading.Tasks.Task<int> RemoveTargets(BindObj.BindListResponseObj bindDevice, Panel currentKey)
-        {
-            var delDevice = new BindObj.DelDeviceBindData();
-            delDevice.DeviceAddr = currentKey.DeviceAddr;
-            delDevice.Epoint = currentKey.DeviceEpoint;
-
-            if (bindDevice.BindType == 0 || bindDevice.BindType == 1)
-            {
-                var removeDevice = new BindObj.RemoveBindListObj();
-                removeDevice.BindCluster = bindDevice.BindCluster;
-                removeDevice.BindType = 0;
-                removeDevice.BindMacAddr = bindDevice.BindMacAddr;
-                removeDevice.BindEpoint = bindDevice.BindEpoint;
-                delDevice.RemoveBindList.Add(removeDevice);
-            }
-            else if (bindDevice.BindType == 2)
-            {
-                var removeDevice = new BindObj.RemoveBindListObj();
-                removeDevice.BindCluster = bindDevice.BindCluster;
-                removeDevice.BindType = 1;
-                removeDevice.BindScenesId = bindDevice.BindScenesId;
-                delDevice.RemoveBindList.Add(removeDevice);
-            }
-            var delResult = await currentKey.DelDeviceBindAsync(delDevice);
-            if (delResult != null && delResult.removeBindResultResponseData != null)
-            {
-                if (delResult.removeBindResultResponseData.Result == 0)
-                {
-                    return 0;
-                }
-                else
-                {
-                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(CommonPage.Instance);
-                }
-            }
-            else
-            {
-                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(CommonPage.Instance);
-            }
-            return -1;
-        }
-
         /// <summary>
         /// 妫�娴嬭璁惧鑳藉惁鏄剧ず
         /// </summary>
@@ -464,11 +376,7 @@
                     }
                 }
             }
-
             return dicCheck;
         }
-
-
-
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs
index 0b8eb69..3e41259 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs
@@ -44,6 +44,7 @@
         private System.Collections.Generic.List<CommonDevice> localDeviceList = new System.Collections.Generic.List<CommonDevice>();//鏈湴璁惧鍒楄〃
         private System.Collections.Generic.List<SceneUI> scList = new System.Collections.Generic.List<SceneUI> { };//鏈湴鍦烘櫙鍒楄〃       
         FrameLayout blankFrameLayout;//绌烘暟鎹樉绀哄竷灞�
+        List<int> typeModeList;
         #endregion
 
         //鍒濆鍖栨寜閿暟鎹�
@@ -71,10 +72,25 @@
                     var tempDeata = await currentKey.ReadPanelConfigureInfoAsync();
                     if (tempDeata != null && tempDeata.deviceStatusReportData != null)
                     {
-                        currentClusterID = tempDeata.deviceStatusReportData.CluterID;
                         foreach (var attr in tempDeata.deviceStatusReportData.AttriBute)
                         {
                             currentKey.panelMode = attr.AttriButeData;
+                            if (currentKey.panelMode == 1)
+                            {
+                                currentClusterID = 6;
+                            }
+                            else if (currentKey.panelMode == 100 || currentKey.panelMode == 101 || currentKey.panelMode == 102)
+                            {
+                                currentClusterID = 6;
+                            }
+                            else if (currentKey.panelMode == 200 || currentKey.panelMode == 201 || currentKey.panelMode == 203 || currentKey.panelMode == 204 || currentKey.panelMode == 205)
+                            {
+                                currentClusterID = 8;
+                            }
+                            else if (currentKey.panelMode == 300 || currentKey.panelMode == 301 || currentKey.panelMode == 302 || currentKey.panelMode == 303 || currentKey.panelMode == 304)
+                            {
+                                currentClusterID = 258;
+                            }
                             currentKey.ReSave();
                             //璇诲彇鎸夐敭褰撳墠缁戝畾鐩爣
                             var getBindList = await currentKey.GetDeviceBindAsync();
@@ -82,6 +98,7 @@
                             var bindSceneListTemp = new System.Collections.Generic.List<BindListResponseObj> { };
                             if (getBindList != null && getBindList.getAllBindResponseData != null)
                             {
+                                currentKey.bindList.Clear();
                                 foreach (var b in getBindList.getAllBindResponseData.BindList)
                                 {
                                     if (b.BindCluster == currentClusterID)
@@ -100,7 +117,17 @@
                                         }
                                         else
                                         {
-                                            currentKey.bindList.Add(b);
+                                            if (currentClusterID == 8)
+                                            {
+                                                if (b.BindCluster == 8)
+                                                {
+                                                    currentKey.bindList.Add(b);
+                                                }
+                                            }
+                                            else
+                                            {
+                                                currentKey.bindList.Add(b);
+                                            }
                                         }
                                     }
                                 }
@@ -123,7 +150,7 @@
                                 currentKey.bindList = bindDeviceListTemp;
                                 currentKey.currentKeySelectModeText = Language.StringByID(R.MyInternationalizationString.AddSwitch);
                             }
-                            else if (currentKey.panelMode == 200 || currentKey.panelMode == 201 || currentKey.panelMode == 202 || currentKey.panelMode == 203 || currentKey.panelMode == 204 || currentKey.panelMode == 205)
+                            else if (currentKey.panelMode == 200 || currentKey.panelMode == 201 || currentKey.panelMode == 203 || currentKey.panelMode == 204 || currentKey.panelMode == 205)
                             {
                                 currentKey.currentKeySelectModeText = Language.StringByID(R.MyInternationalizationString.AddDimmer);
                             }
@@ -133,24 +160,27 @@
                             }
                         }
                         #endregion
+
+                        //鍔ㄦ�佽幏鍙栨寜閿敮鎸佺殑澶х被
+                        typeModeList = await GetTypeMode();
+                        Application.RunOnMainThread(() =>
+                        {
+                            RefreshList();
+                            CommonPage.Loading.Hide();
+                        });
                     }
                     else
                     {
                         Application.RunOnMainThread(() =>
                         {
+                            CommonPage.Loading.Hide();
+
                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                         });
+                        return;
                     }
                 }
                 catch { }
-                finally
-                {
-                    Application.RunOnMainThread(() =>
-                    {
-                        RefreshList();
-                        CommonPage.Loading.Hide();
-                    });
-                }
             });
         }
 
@@ -272,7 +302,7 @@
         /// 涓儴甯冨眬
         /// </summary>
         void middleFrameLayout()
-        { 
+        {
             midVerticalRefreshLayout = new VerticalRefreshLayout()
             {
             };
@@ -345,7 +375,7 @@
                 btnPicTip.Height = Application.GetRealHeight(49);
                 btnPicTip.Visible = true;
                 entryStatusPic.Visible = true;
-                blankFrameLayout.Height = midVerticalRefreshLayout.Height; 
+                blankFrameLayout.Height = midVerticalRefreshLayout.Height;
             }
             else
             {
@@ -362,7 +392,7 @@
                 }
                 else
                 {
-                    topFrameLayout.Height = Application.GetRealHeight(150); 
+                    topFrameLayout.Height = Application.GetRealHeight(150);
                     BindModeDisplay();
                 }
                 int curIndex = 0;
@@ -473,18 +503,22 @@
                             {
                                 //鑾峰彇璁惧鎵�灞炴埧闂�
                                 var tempDevRoom = Common.Room.CurrentRoom.GetRoomByDevice(tempDev);
-                                //鑾峰彇璁惧鎵�鍦ㄦゼ灞�
-                                if (Common.Config.Instance.Home.FloorDics.Count == 0)
-                                {
-                                }
+
                                 if (tempDevRoom != null)
                                 {
                                     var tempDevFloorId = tempDevRoom.FloorId;
-                                    //鑾峰彇妤煎眰鐨勫悕瀛�
+                                    //鑾峰彇鎴块棿鐨勫悕瀛�
                                     var tempDevRoomName = tempDevRoom.Name;
                                     //鑾峰彇妤煎眰鐨勫悕瀛�
                                     var tempDevFloorName = Common.Config.Instance.Home.GetFloorNameById(tempDevFloorId);
-                                    btnFloorRoomName.Text = tempDevFloorName + "," + tempDevRoomName;
+                                    if (string.IsNullOrEmpty(tempDevFloorName))
+                                    {
+                                        btnFloorRoomName.Text = tempDevRoomName;
+                                    }
+                                    else
+                                    {
+                                        btnFloorRoomName.Text = tempDevFloorName + "," + tempDevRoomName;
+                                    }
                                 }
                                 var deviceUi = Common.LocalDevice.Current.GetDeviceUI(tempDev);
                                 if (deviceUi != null)
@@ -694,7 +728,7 @@
         /// <summary>
         /// 渚ц竟瀵艰埅鏍�
         /// </summary>
-        void SideslipFramelayout()
+        async void SideslipFramelayout()
         {
             #region UI
             var dialog = new Dialog { };
@@ -727,7 +761,29 @@
 
             Button oldbuttonText = null;
             string oldKeySelectModeText = currentKey.currentKeySelectModeText;
-            for (var i = 0; i < 4; i++)
+
+            if (typeModeList == null)
+            {
+                //鍐嶆鍔ㄦ�佽幏鍙栨寜閿敮鎸佺殑澶х被
+                CommonPage.Loading.Start();
+                typeModeList = await GetTypeMode();
+                if (typeModeList == null)
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
+                    });
+                    CommonPage.Loading.Hide();
+                    dialog.Close();
+                    return;
+                }
+                else
+                {
+                    CommonPage.Loading.Hide();
+                }
+            }
+
+            foreach (var value in typeModeList)
             {
                 #region  rowView
                 var rowView = new FrameLayout()
@@ -758,62 +814,62 @@
                 };
                 rowView.AddChidren(line2);
 
-                if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddScene) && i == 0)
+                if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddScene) && value == 1)
                 {
                     btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
                     oldbuttonText = btnMethodText;
                 }
-                else if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddSwitch) && i == 1)
+                else if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddSwitch) && value == 100)
                 {
                     btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
                     oldbuttonText = btnMethodText;
                 }
-                else if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddDimmer) && i == 2)
+                else if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddDimmer) && value == 200)
                 {
                     btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
                     oldbuttonText = btnMethodText;
                 }
-                else if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddCurtain) && i == 3)
+                else if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddCurtain) && value == 300)
                 {
                     btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
                     oldbuttonText = btnMethodText;
                 }
-                #endregion
+                #endregion 
 
                 #region 鏁版嵁澶勭悊
-                switch (i)
+                switch (value)
                 {
-                    case 0:
+                    case 1:
                         btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.AddScene);
                         break;
-                    case 1:
+                    case 100:
                         btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.AddSwitch);
                         break;
-                    case 2:
+                    case 200:
                         btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.AddDimmer);
                         break;
-                    case 3:
+                    case 300:
                         btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.AddCurtain);
                         line2.Visible = false;
                         break;
                 }
 
-                if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddScene) && i == 0)
+                if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddScene) && value == 1)
                 {
                     btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
                     oldbuttonText = btnMethodText;
                 }
-                if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddSwitch) && i == 1)
+                if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddSwitch) && value == 100)
                 {
                     btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
                     oldbuttonText = btnMethodText;
                 }
-                if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddDimmer) && i == 2)
+                if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddDimmer) && value == 200)
                 {
                     btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
                     oldbuttonText = btnMethodText;
                 }
-                if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddCurtain) && i == 3)
+                if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddCurtain) && value == 300)
                 {
                     btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
                     oldbuttonText = btnMethodText;
@@ -1076,13 +1132,37 @@
             }
         }
 
+        //鑾峰彇鎸夐敭鏀寔鐨勫ぇ绫�
+        private async System.Threading.Tasks.Task<List<int>> GetTypeMode()
+        {
+            if (typeModeList != null)
+            {
+                typeModeList.Clear();
+            }
+            if (currentKey.privateFuncSecondLevelList.Count == 0 || currentKey.privateFuncSecondLevelList.Contains(1) == false || currentKey.privateFuncSecondLevelList.Contains(100) == false || currentKey.privateFuncSecondLevelList.Contains(200) == false || currentKey.privateFuncSecondLevelList.Contains(300) == false)
+            {
+                //鑾峰彇绗簩绾у姛鑳�
+                typeModeList = await currentKey.GetPanelDeviceFunctionLevel2(256);
+                if (typeModeList == null)
+                {
+                    return null;
+                }
+                currentKey.privateFuncSecondLevelList = typeModeList;
+            }
+            else
+            {
+                typeModeList = currentKey.privateFuncSecondLevelList;
+            }
+            return typeModeList;
+        }
+
         /// <summary>
         /// 鍒犻櫎褰撳墠鐩爣鏂规硶
         /// </summary>
         /// <param name="bindDevice"></param>
         /// <param name="btnDel"></param>
         /// <returns></returns>
-        async System.Threading.Tasks.Task<int> RemoveTargets(BindListResponseObj bindDevice, Button btnDel)
+        private async System.Threading.Tasks.Task<int> RemoveTargets(BindListResponseObj bindDevice, Button btnDel)
         {
             var delDevice = new DelDeviceBindData();
             delDevice.DeviceAddr = currentKey.DeviceAddr;
@@ -1110,7 +1190,7 @@
             {
                 CommonPage.Loading.Start("");
                 var delResult = new DelDeviceBindResponseAllData();
-                delResult = await currentKey.DelDeviceBindAsync(delDevice); 
+                delResult = await currentKey.DelDeviceBindAsync(delDevice);
                 if (delResult != null && delResult.delDeviceBindResponseData != null)
                 {
                     if (delResult.delDeviceBindResponseData?.RemoveBindList != null)
@@ -1123,7 +1203,7 @@
                                     currentKey.bindList.Remove(bindDevice);
                                     RefreshList();
                                     //濡傛灉鏄満鏅紝鐢ㄦ埛鍒犻櫎娓呯┖褰撳墠鍒版埧闂村垪琛�
-                                    if(re.BindType == 2)
+                                    if (re.BindType == 2)
                                     {
                                         currentKey.panelMode = 65535;
                                     }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/ChooseKeyModePage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/ChooseKeyModePage.cs
index e1f47a1..d5408d6 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/ChooseKeyModePage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/ChooseKeyModePage.cs
@@ -46,6 +46,7 @@
         public Action<List<BindListResponseObj>> action;//鍥炶皟缁戝畾鐩爣椤甸潰鍒锋柊
         int currentModeID = 0;//褰撳墠妯″紡ID
         string curDeviceBindType = "";//褰撳墠璁惧缁戝畾绫诲瀷
+        List<int> typeDetailModeList = new List<int> { };
         #endregion
 
         /// <summary>
@@ -344,30 +345,256 @@
         /// </summary>
         /// <param name="gateway">Gateway.</param>
         /// <param name="key">Key.</param>
-        private void KeyModeList()
+        async private void KeyModeList()
         {
             midVerticalScrolViewLayout.RemoveAll();
             switch (curDeviceBindType)
             {
                 case "AddSwitch":
                     currentClusterID = 6;
-                    AddSwitchMode();
+                    typeDetailModeList = await GetAddSwitchMode();
+                    if (typeDetailModeList == null)
+                    {
+                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
+                    }
+                    else
+                    {
+                        AddSwitchMode();
+                    }
                     break;
                 case "AddDimmer":
-                    AddDimmerMode();
                     currentClusterID = 8;
+                    typeDetailModeList = await GetAddDimmerMode();
+                    if (typeDetailModeList == null)
+                    {
+                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
+                    }
+                    else
+                    {
+                        AddDimmerMode();
+                    }
                     break;
                 case "AddCurtain":
                     currentClusterID = 258;
-                    AddCurtainMode();
+                    typeDetailModeList = await GetAddCurtainMode();
+                    if (typeDetailModeList == null)
+                    {
+                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
+                    }
+                    else
+                    {
+                        AddCurtainMode();
+                    }
                     break;
             }
         }
 
-        private void AddSwitchMode()
+        /// <summary>
+        /// 鑾峰彇寮�鍏冲叿浣撶被鍨�
+        /// </summary>
+        /// <returns></returns>
+        System.Threading.Tasks.Task<List<int>> GetAddSwitchMode()
         {
+            return System.Threading.Tasks.Task.Run(async () =>
+             {
+                 Application.RunOnMainThread(() =>
+                 {
+                     CommonPage.Loading.Start();
+                 });
+                 typeDetailModeList.Clear();
+                 List<int> result3 = new List<int> { };
+                 try
+                 {
+                     //鑾峰彇绗笁绾у姛鑳�
+                     if (currentKey.privateFuncThirdLevelList.Count == 0 || currentKey.privateFuncThirdLevelList.Contains(100) == false || currentKey.privateFuncThirdLevelList.Contains(101) == false || currentKey.privateFuncThirdLevelList.Contains(102) == false)
+                     {
+                         result3 = await currentKey.GetPanelDeviceFunctionLevel3(256, 100);
+                         foreach (var l3 in result3)
+                         {
+                             currentKey.privateFuncThirdLevelList.Add(l3);
+                         }
+                     }
+                     else
+                     {
+                         if (currentKey.privateFuncThirdLevelList.Contains(100) == true)
+                         {
+                             result3.Add(100);
+                         }
+                         if (currentKey.privateFuncThirdLevelList.Contains(101) == true)
+                         {
+                             result3.Add(101);
+                         }
+                         if (currentKey.privateFuncThirdLevelList.Contains(102) == true)
+                         {
+                             result3.Add(102);
+                         }
+                     }
+                 }
+                 catch (Exception ex)
+                 {
+                     var aa = ex.Message;
+                 }
+                 finally
+                 {
+                     Application.RunOnMainThread(() =>
+                     {
+                         CommonPage.Loading.Hide();
+                     });
+                 }
+                 return result3;
+             });
+        }
+
+        /// <summary>
+        /// 鑾峰彇璋冨厜鍏蜂綋绫诲瀷
+        /// </summary>
+        /// <returns></returns>
+        System.Threading.Tasks.Task<List<int>> GetAddDimmerMode()
+        {
+            return System.Threading.Tasks.Task.Run(async () =>
+            {
+                Application.RunOnMainThread(() =>
+                {
+                    CommonPage.Loading.Start();
+                });
+                typeDetailModeList.Clear();
+                List<int> result3 = new List<int> { };
+                try
+                {
+                    //鑾峰彇绗笁绾у姛鑳�
+                    if (currentKey.privateFuncThirdLevelList.Count == 0
+                        || currentKey.privateFuncThirdLevelList.Contains(200) == false
+                        || currentKey.privateFuncThirdLevelList.Contains(201) == false
+                        || currentKey.privateFuncThirdLevelList.Contains(203) == false
+                        || currentKey.privateFuncThirdLevelList.Contains(204) == false
+                        || currentKey.privateFuncThirdLevelList.Contains(205) == false)
+                    {
+                        result3 = await currentKey.GetPanelDeviceFunctionLevel3(256, 200);
+                        foreach (var l3 in result3)
+                        {
+                            currentKey.privateFuncThirdLevelList.Add(l3);
+                        }
+                    }
+                    else
+                    {
+                        if (currentKey.privateFuncThirdLevelList.Contains(200) == true)
+                        {
+                            result3.Add(200);
+                        }
+                        if (currentKey.privateFuncThirdLevelList.Contains(201) == true)
+                        {
+                            result3.Add(201);
+                        }
+                        if (currentKey.privateFuncThirdLevelList.Contains(203) == true)
+                        {
+                            result3.Add(203);
+                        }
+                        if (currentKey.privateFuncThirdLevelList.Contains(204) == true)
+                        {
+                            result3.Add(204);
+                        }
+                        if (currentKey.privateFuncThirdLevelList.Contains(205) == true)
+                        {
+                            result3.Add(205);
+                        }
+                    }
+                }
+                catch { }
+                finally
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        CommonPage.Loading.Hide();
+                    });
+                }
+                return result3;
+            });
+        }
+
+        /// <summary>
+        /// 鑾峰彇绐楀笜鍏蜂綋绫诲瀷
+        /// </summary>
+        /// <returns></returns>
+        System.Threading.Tasks.Task<List<int>> GetAddCurtainMode()
+        {
+            Application.RunOnMainThread(() =>
+            {
+                CommonPage.Loading.Start();
+            });
+            return System.Threading.Tasks.Task.Run(async () =>
+            {
+                typeDetailModeList.Clear();
+                List<int> result3 = new List<int> { };
+                try
+                {
+                    //鑾峰彇绗笁绾у姛鑳�
+                    if (currentKey.privateFuncThirdLevelList.Count == 0
+                        || currentKey.privateFuncThirdLevelList.Contains(300) == false
+                        || currentKey.privateFuncThirdLevelList.Contains(301) == false
+                        || currentKey.privateFuncThirdLevelList.Contains(302) == false
+                        || currentKey.privateFuncThirdLevelList.Contains(303) == false
+                        || currentKey.privateFuncThirdLevelList.Contains(304) == false)
+                    {
+                        result3 = await currentKey.GetPanelDeviceFunctionLevel3(256, 300);
+                        foreach (var l3 in result3)
+                        {
+                            currentKey.privateFuncThirdLevelList.Add(l3);
+                        }
+                    }
+                    else
+                    {
+                        if (currentKey.privateFuncThirdLevelList.Contains(300) == true)
+                        {
+                            result3.Add(300);
+                        }
+                        if (currentKey.privateFuncThirdLevelList.Contains(301) == true)
+                        {
+                            result3.Add(301);
+                        }
+                        if (currentKey.privateFuncThirdLevelList.Contains(302) == true)
+                        {
+                            result3.Add(302);
+                        }
+                        if (currentKey.privateFuncThirdLevelList.Contains(303) == true)
+                        {
+                            result3.Add(303);
+                        }
+                        if (currentKey.privateFuncThirdLevelList.Contains(304) == true)
+                        {
+                            result3.Add(304);
+                        }
+                    }
+                }
+                catch { }
+                finally
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        CommonPage.Loading.Hide();
+                    });
+                }
+                return result3;
+            });
+        }
+
+        async private void AddSwitchMode()
+        {
+            if (typeDetailModeList == null)
+            {
+                //鍐嶆鍔ㄦ�佽幏鍙栨寜閿敮鎸佺殑绫�
+                typeDetailModeList = await GetAddSwitchMode();
+                if (typeDetailModeList == null)
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
+                    });
+                    return;
+                }
+            }
             Button oldMode = null;
-            for (int i = 0; i < 3; i++)
+            int i = 0;
+            foreach (var modeSwitchValue in typeDetailModeList)
             {
                 #region 缁戝畾琛║I鏄撅紙鏃犳暟鎹鐞嗭級
                 var rowLayout = new FrameLayout()
@@ -410,17 +637,21 @@
                 rowLayout.AddChidren(line2);
                 #endregion
 
-                if (i == 0)
+                switch (modeSwitchValue)
                 {
-                    btnModeText.Text = Language.StringByID(R.MyInternationalizationString.OnOffOn);
+                    case 100:
+                        btnModeText.Text = Language.StringByID(R.MyInternationalizationString.OnOffOn);
+                        break;
+                    case 101:
+                        btnModeText.Text = Language.StringByID(R.MyInternationalizationString.OnOffoFF);
+                        break;
+                    case 102:
+                        btnModeText.Text = Language.StringByID(R.MyInternationalizationString.OnOffOnOff);
+                        break;
                 }
-                if (i == 1)
+
+                if (i == typeDetailModeList.Count - 1)
                 {
-                    btnModeText.Text = Language.StringByID(R.MyInternationalizationString.OnOffoFF);
-                }
-                if (i == 2)
-                {
-                    btnModeText.Text = Language.StringByID(R.MyInternationalizationString.OnOffOnOff);
                     line2.Visible = false;
                 }
 
@@ -486,13 +717,39 @@
                 rowLayout.MouseUpEventHandler += hander;
                 btnModeText.MouseUpEventHandler += hander;
                 btnChoose.MouseUpEventHandler += hander;
+                i++;
             }
         }
 
-        private void AddDimmerMode()
+        async private void AddDimmerMode()
         {
+            if (typeDetailModeList == null)
+            {
+                //鍐嶆鍔ㄦ�佽幏鍙栨寜閿敮鎸佺殑绫�
+                typeDetailModeList = await GetAddDimmerMode();
+                if (typeDetailModeList == null)
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
+                    });
+                    return;
+                }
+            }
             Button oldMode = null;
-            for (int i = 0; i < 5; i++)
+            int i = 0;
+
+            List<int> typeDetailModeListTemp = new List<int> { };
+            foreach (var modeSwitchValue in typeDetailModeList)
+            {
+                if (modeSwitchValue == 202)
+                {
+                    continue;
+                }
+                typeDetailModeListTemp.Add(modeSwitchValue);
+            }
+
+            foreach (var modeSwitchValue in typeDetailModeListTemp)
             {
                 #region 缁戝畾琛║I鏄撅紙鏃犳暟鎹鐞嗭級
                 var rowLayout = new FrameLayout()
@@ -534,26 +791,27 @@
                 };
                 rowLayout.AddChidren(line2);
                 #endregion
+                switch (modeSwitchValue)
+                {
+                    case 200:
+                        btnModeText.Text = Language.StringByID(R.MyInternationalizationString.DimmerMode1);
+                        break;
+                    case 201:
+                        btnModeText.Text = Language.StringByID(R.MyInternationalizationString.DimmerMode2);
+                        break;
+                    case 203:
+                        btnModeText.Text = Language.StringByID(R.MyInternationalizationString.DimmerMode3);
+                        break;
+                    case 204:
+                        btnModeText.Text = Language.StringByID(R.MyInternationalizationString.DimmerMode4);
+                        break;
+                    case 205:
+                        btnModeText.Text = Language.StringByID(R.MyInternationalizationString.DimmerMode5);
+                        break;
+                }
 
-                if (i == 0)
+                if (i == typeDetailModeList.Count - 1)
                 {
-                    btnModeText.Text = Language.StringByID(R.MyInternationalizationString.DimmerMode1);
-                }
-                if (i == 1)
-                {
-                    btnModeText.Text = Language.StringByID(R.MyInternationalizationString.DimmerMode2);
-                }
-                if (i == 2)
-                {
-                    btnModeText.Text = Language.StringByID(R.MyInternationalizationString.DimmerMode3);
-                }
-                if (i == 3)
-                {
-                    btnModeText.Text = Language.StringByID(R.MyInternationalizationString.DimmerMode4);
-                }
-                if (i == 4)
-                {
-                    btnModeText.Text = Language.StringByID(R.MyInternationalizationString.DimmerMode5);
                     line2.Visible = false;
                 }
 
@@ -640,14 +898,28 @@
                 rowLayout.MouseUpEventHandler += hander;
                 btnModeText.MouseUpEventHandler += hander;
                 btnChoose.MouseUpEventHandler += hander;
-
+                i++;
             }
         }
 
-        private void AddCurtainMode()
+        async private void AddCurtainMode()
         {
+            if (typeDetailModeList == null)
+            {
+                //鍐嶆鍔ㄦ�佽幏鍙栨寜閿敮鎸佺殑绫�
+                typeDetailModeList = await GetAddSwitchMode();
+                if (typeDetailModeList == null)
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
+                    });
+                    return;
+                }
+            }
             Button oldMode = null;
-            for (int i = 0; i < 5; i++)
+            int i = 0;
+            foreach (var modeSwitchValue in typeDetailModeList)
             {
                 #region 缁戝畾琛║I鏄撅紙鏃犳暟鎹鐞嗭級
                 var rowLayout = new FrameLayout()
@@ -689,26 +961,27 @@
                 };
                 rowLayout.AddChidren(line2);
                 #endregion
+                switch (modeSwitchValue)
+                {
+                    case 300:
+                        btnModeText.Text = Language.StringByID(R.MyInternationalizationString.WcdUp);
+                        break;
+                    case 301:
+                        btnModeText.Text = Language.StringByID(R.MyInternationalizationString.WcdDown);
+                        break;
+                    case 302:
+                        btnModeText.Text = Language.StringByID(R.MyInternationalizationString.WcdStop);
+                        break;
+                    case 303:
+                        btnModeText.Text = Language.StringByID(R.MyInternationalizationString.WcdUpStop);
+                        break;
+                    case 304:
+                        btnModeText.Text = Language.StringByID(R.MyInternationalizationString.WcdDownStop);
+                        break;
+                }
 
-                if (i == 0)
+                if (i == typeDetailModeList.Count - 1)
                 {
-                    btnModeText.Text = Language.StringByID(R.MyInternationalizationString.WcdUp);
-                }
-                if (i == 1)
-                {
-                    btnModeText.Text = Language.StringByID(R.MyInternationalizationString.WcdDown);
-                }
-                if (i == 2)
-                {
-                    btnModeText.Text = Language.StringByID(R.MyInternationalizationString.WcdStop);
-                }
-                if (i == 3)
-                {
-                    btnModeText.Text = Language.StringByID(R.MyInternationalizationString.WcdUpStop);
-                }
-                if (i == 4)
-                {
-                    btnModeText.Text = Language.StringByID(R.MyInternationalizationString.WcdDownStop);
                     line2.Visible = false;
                 }
 
@@ -795,6 +1068,7 @@
                 rowLayout.MouseUpEventHandler += hander;
                 btnModeText.MouseUpEventHandler += hander;
                 btnChoose.MouseUpEventHandler += hander;
+                i++;
             }
         }
 
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFirmwareUpdateForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFirmwareUpdateForm.cs
index 379690d..788e051 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFirmwareUpdateForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFirmwareUpdateForm.cs
@@ -351,12 +351,12 @@
             ProgressFormBar.Current.CloseEvent += () =>
             {
                 //鍗囩骇瀵硅薄
-                if (FirmwareUpdateResourse.dicDeviceUpdateList.ContainsKey(deviceMac) == true
-                    && FirmwareUpdateResourse.dicDeviceUpdateList[deviceMac].IsFinishUpdate == true)
+                if (FirmwareUpdateResourse.dicUpdateList.ContainsKey(deviceMac) == true
+                    && FirmwareUpdateResourse.dicUpdateList[deviceMac].IsFinishUpdate == true)
                 {
                     //濡傛灉璁惧宸茬粡鍗囩骇瀹屾垚锛岀晫闈㈠叧闂椂锛屽垯绉婚櫎鍐呭瓨
-                    FirmwareUpdateResourse.dicDeviceUpdateList[deviceMac].Dispose();
-                    FirmwareUpdateResourse.dicDeviceUpdateList.Remove(deviceMac);
+                    FirmwareUpdateResourse.dicUpdateList[deviceMac].Dispose();
+                    FirmwareUpdateResourse.dicUpdateList.Remove(deviceMac);
                 }
             };
         }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceGeneralInformationForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceGeneralInformationForm.cs
index dfce7b9..6e90cb5 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceGeneralInformationForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceGeneralInformationForm.cs
@@ -77,17 +77,25 @@
                 rowImage.AddMostRightView(otaDevice.ImgTypeId.ToString(), 400);
                 rowImage.AddBottomLine();
             }
-
-            //鍥轰欢鐗堟湰
+
             var oTADevice = Common.LocalDevice.Current.GetOTADevice(listDevice[0].DeviceAddr);
             if (oTADevice != null)
             {
+                //鍥轰欢鐗堟湰
                 var rowVersion = new FrameRowControl(listView.rowSpace / 2);
                 rowVersion.UseClickStatu = false;
                 listView.AddChidren(rowVersion);
                 rowVersion.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uFirmwareVersion), 400);
                 rowVersion.AddMostRightView(Common.LocalDevice.Current.AppendVersion(oTADevice.ImgVersion), 600);
                 rowVersion.AddBottomLine();
+
+                //纭欢鐗堟湰
+                var rowHard = new FrameRowControl(listView.rowSpace / 2);
+                rowHard.UseClickStatu = false;
+                listView.AddChidren(rowHard);
+                rowHard.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uHardwareVersion), 400);
+                rowHard.AddMostRightView(oTADevice.HwVersion.ToString(), 600);
+                rowHard.AddBottomLine();
             }
 
             //搴忓垪鍙�
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceHistoryFirmwareVersionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceHistoryFirmwareVersionForm.cs
index bb34580..05a533d 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceHistoryFirmwareVersionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceHistoryFirmwareVersionForm.cs
@@ -110,7 +110,7 @@
             rowlayout.ButtonClickEvent += (sender, e) =>
             {
                 string mainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(this.listUpdateDevice[0]);
-                if (FirmwareUpdateResourse.dicDeviceUpdateList.ContainsKey(mainKeys) == true)
+                if (FirmwareUpdateResourse.dicUpdateList.ContainsKey(mainKeys) == true)
                 {
                     this.CloseForm();
                     return;
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
index 98c72f0..abe2b33 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
@@ -2,7 +2,6 @@
 using System.Collections.Generic;
 using System.Threading.Tasks;
 using Shared.Common;
-using Shared.Phone.UserView;
 using ZigBee.Device;
 
 namespace Shared.Phone.UserCenter.Device
@@ -30,6 +29,10 @@
         /// 璁惧鍏蜂綋绫诲瀷鐨勪俊鎭�
         /// </summary>
         private DeviceEnumInfo deviceEnumInfo = null;
+        /// <summary>
+        /// 涓ぎ绌鸿皟鐨勭増鏈帶浠�
+        /// </summary>
+        private NormalViewControl btnAirConditionerVersion = null;
 
         #endregion
 
@@ -749,29 +752,12 @@
             listview.AddChidren(rowVersion);
             rowVersion.AddLeftCaption(caption, 600);
             //鐗堟湰
-            var btnVersion = rowVersion.AddMostRightView(Language.StringByID(R.MyInternationalizationString.uGetting), 800);
+            this.btnAirConditionerVersion = rowVersion.AddMostRightView("", 800);
             //搴曠嚎
             rowVersion.AddBottomLine();
-            HdlThreadLogic.Current.RunThread(async () =>
-            {
-                //璇诲彇绌鸿皟妯″潡鐗堟湰
-                var result = await ((AC)listNewDevice[0]).ReadACFirewareVersionAsync();
-                if (result == null || result.readACFirewareVersionResponData == null || result.readACFirewareVersionResponData.Status != 0)
-                {
-                    HdlThreadLogic.Current.RunMain(() =>
-                    {
-                        //鑾峰彇澶辫触
-                        btnVersion.TextID = R.MyInternationalizationString.uGettingFail;
-                    });
-                }
-                else
-                {
-                    HdlThreadLogic.Current.RunMain(() =>
-                    {
-                        btnVersion.Text = result.readACFirewareVersionResponData.FirewareVersion.Replace("-", string.Empty);
-                    });
-                }
-            });
+
+            //鑾峰彇涓ぎ绌鸿皟妯″潡鐨勭増鏈�
+            this.ReadAirConditionerVersion();
         }
 
         #endregion
@@ -820,7 +806,7 @@
                 {
                     //涓ぎ绌鸿皟鐨勫崌绾х殑璇濓紝鏄壒娈婄殑
                     var form = new DeviceAirConditioner.ACZbGatewayUpdateMenuForm();
-                    form.AddForm(listNewDevice[0].DeviceAddr, btnNewVersion.Visible);
+                    form.AddForm((AC)listNewDevice[0], btnNewVersion.Visible);
                 }
                 btnNewVersion.Visible = false;
             };
@@ -1042,8 +1028,56 @@
 
         #endregion
 
+        #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________
+
+        /// <summary>
+        /// 鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠�
+        /// </summary>
+        public override int FormActionAgainEvent()
+        {
+            //閲嶆柊鑾峰彇涓ぎ绌鸿皟妯″潡鐨勭増鏈�
+            this.ReadAirConditionerVersion();
+
+            return 0;
+        }
+
+        #endregion
+
         #region 鈻� 涓�鑸柟娉昣__________________________
 
+        /// <summary>
+        /// 鑾峰彇涓ぎ绌鸿皟妯″潡鐨勭増鏈�
+        /// </summary>
+        private void ReadAirConditionerVersion()
+        {
+            if (this.btnAirConditionerVersion == null)
+            {
+                return;
+            }
+            //鑾峰彇涓�....
+            this.btnAirConditionerVersion.TextID = R.MyInternationalizationString.uGetting;
+            HdlThreadLogic.Current.RunThread(async () =>
+            {
+                //璇诲彇绌鸿皟妯″潡鐗堟湰
+                var result = await ((AC)listNewDevice[0]).ReadACFirewareVersionAsync();
+                if (result == null || result.readACFirewareVersionResponData == null || result.readACFirewareVersionResponData.Status != 0)
+                {
+                    HdlThreadLogic.Current.RunMain(() =>
+                    {
+                        //鑾峰彇澶辫触
+                        btnAirConditionerVersion.TextID = R.MyInternationalizationString.uGettingFail;
+                    });
+                }
+                else
+                {
+                    HdlThreadLogic.Current.RunMain(() =>
+                    {
+                        btnAirConditionerVersion.Text = result.readACFirewareVersionResponData.FirewareVersion.Replace("-", string.Empty);
+                    });
+                }
+            });
+        }
+
         #endregion
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/AddDeviceTypeListForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/AddDeviceTypeListForm.cs
index 93a48b1..64d781f 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/AddDeviceTypeListForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/AddDeviceTypeListForm.cs
@@ -133,6 +133,11 @@
             unSelectPic = "Device/SensorDoorWindow.png";
             this.AddMenuRow(objectText, unSelectPic, "SensorDoorWindowDirectionForm");
 
+            //娓╂箍搴︿紶鎰熷櫒
+            objectText = Language.StringByID(R.MyInternationalizationString.uDeviceBelongId10);
+            unSelectPic = "Device/SensorTemperatureHumidity.png";
+            this.AddMenuRow(objectText, unSelectPic, "SensorTemperatureHumidityForm");
+
             //涓户鍣�
             objectText = Language.StringByID(R.MyInternationalizationString.uDeviceModelId3900);
             unSelectPic = "Device/RepeaterZigbee.png";
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/SensorPirDirectionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/SensorPirDirectionForm.cs
index 060a400..5d83487 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/SensorPirDirectionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/SensorPirDirectionForm.cs
@@ -28,69 +28,64 @@
         /// </summary>
         private void InitMiddleFrame()
         {
-            ////鍥剧墖
-            //var framePic = new FrameLayout();
-            //framePic.Width = Application.GetMinRealAverage(873);
-            //framePic.Height = Application.GetMinRealAverage(665);
-            //framePic.Gravity = Gravity.CenterHorizontal;
-            //framePic.Y = Application.GetRealHeight(144);
-            //bodyFrameLayout.AddChidren(framePic);
-            //var btnPic = new PicViewControl(framePic.Width, framePic.Height, false);
-            //btnPic.UnSelectedImagePath = "Instruct/DimmableLightOneLoad.png";
-            //framePic.AddChidren(btnPic);
+            //鍥剧墖
+            var framePic = new FrameLayout();
+            framePic.Width = Application.GetMinRealAverage(860);
+            framePic.Height = Application.GetMinRealAverage(714);
+            framePic.Gravity = Gravity.CenterHorizontal;
+            framePic.Y = Application.GetRealHeight(130);
+            bodyFrameLayout.AddChidren(framePic);
+            var btnPic = new PicViewControl(framePic.Width, framePic.Height, false);
+            btnPic.UnSelectedImagePath = "Instruct/SensorPir.png";
+            framePic.AddChidren(btnPic);
 
-            ////缁胯壊鎸囩ず鐏棯鐑�
-            //var btnGreanLinght = new NormalViewControl(Application.GetMinRealAverage(360), Application.GetMinRealAverage(45), false);
-            //btnGreanLinght.X = Application.GetMinRealAverage(442);
-            //btnGreanLinght.Y = Application.GetMinRealAverage(368);
-            //btnGreanLinght.TextAlignment = TextAlignment.Center;
-            //btnGreanLinght.TextColor = UserCenterColor.Current.TextGrayColor3;
-            //btnGreanLinght.TextSize = 10;
-            //btnGreanLinght.TextID = R.MyInternationalizationString.uGreanPilotLampLinght;
-            //framePic.AddChidren(btnGreanLinght);
+            //鎸囩ず鐏彉缁裤�侀棯鐑�
+            var btnGreanLinght = new NormalViewControl(Application.GetMinRealAverage(455), Application.GetMinRealAverage(45), false);
+            btnGreanLinght.X = Application.GetMinRealAverage(398);
+            btnGreanLinght.Y = Application.GetMinRealAverage(300);
+            btnGreanLinght.TextAlignment = TextAlignment.Center;
+            btnGreanLinght.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnGreanLinght.TextSize = 10;
+            btnGreanLinght.TextID = R.MyInternationalizationString.uPilotLinghtInCreanAndLinght;
+            framePic.AddChidren(btnGreanLinght);
 
-            ////鎸囩ず鐏�
-            //var btnLinght = new NormalViewControl(Application.GetMinRealAverage(250), Application.GetMinRealAverage(45), false);
-            //btnLinght.X = Application.GetMinRealAverage(340);
-            //btnLinght.Y = Application.GetMinRealAverage(514);
-            //btnLinght.TextColor = UserCenterColor.Current.TextGrayColor3;
-            //btnLinght.TextSize = 10;
-            //btnLinght.TextID = R.MyInternationalizationString.uPilotLamp;
-            //framePic.AddChidren(btnLinght);
+            //鎸囩ず鐏�
+            var btnLinght = new NormalViewControl(Application.GetMinRealAverage(250), Application.GetMinRealAverage(45), false);
+            btnLinght.X = Application.GetMinRealAverage(398);
+            btnLinght.Y = Application.GetMinRealAverage(642);
+            btnLinght.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnLinght.TextSize = 10;
+            btnLinght.TextID = R.MyInternationalizationString.uPilotLamp;
+            framePic.AddChidren(btnLinght);
 
-            ////闀挎寜5绉�(鎸夐敭)
-            //string textMsg = Language.StringByID(R.MyInternationalizationString.uLongClickPanelSomeSecond);
-            //if (textMsg.Contains("{0}") == true)
-            //{
-            //    textMsg = string.Format(textMsg, "5");
-            //}
-            //var btnSecond = new NormalViewControl(Application.GetMinRealAverage(400), Application.GetMinRealAverage(45), false);
-            //btnSecond.X = Application.GetMinRealAverage(518);
-            //btnSecond.Y = Application.GetMinRealAverage(545);
-            //btnSecond.TextColor = UserCenterColor.Current.TextGrayColor3;
-            //btnSecond.TextSize = 10;
-            //btnSecond.Text = textMsg;
-            //framePic.AddChidren(btnSecond);
+            //閽堝瓟寮忛噸缃寜閿�
+            var btnReset = new NormalViewControl(Application.GetMinRealAverage(250), Application.GetMinRealAverage(45), false);
+            btnReset.X = Application.GetMinRealAverage(512);
+            btnReset.Y = Application.GetMinRealAverage(512);
+            btnReset.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnReset.TextSize = 10;
+            btnReset.TextID = R.MyInternationalizationString.uPinholeTypeResetButton;
+            framePic.AddChidren(btnReset);
 
-            ////闀挎寜鍥剧ず鎸夐敭5绉掍互涓婏紝鎸囩ず鐏彉缁裤�侀棯鐑�
-            ////杩涘叆閰嶇綉鐘舵�併�傜豢鐏唲鐏垯閰嶇綉鎴愬姛
-            //string[] msgArry = Language.StringByID(R.MyInternationalizationString.uAddThreeLoadRelayMsg).Split(new string[] { "{0}" }, StringSplitOptions.RemoveEmptyEntries);
+            //闀挎寜鍥剧ず鎸夐敭5绉掍互涓婏紝鎸囩ず鐏彉缁裤��
+            //闂儊杩涘叆閰嶇綉鐘舵�併�傜豢鐏唲鐏垯閰嶇綉鎴愬姛
+            string[] msgArry = Language.StringByID(R.MyInternationalizationString.uAddSensorPirMsg).Split(new string[] { "{0}" }, StringSplitOptions.RemoveEmptyEntries);
 
-            //var msg1 = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(60), false);
-            //msg1.Y = Application.GetRealHeight(1037);
-            //msg1.Text = msgArry[0];
-            //msg1.TextColor = UserCenterColor.Current.TextGrayColor3;
-            //msg1.TextAlignment = TextAlignment.Center;
-            //bodyFrameLayout.AddChidren(msg1);
-            //var msg2 = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(60), false);
-            //msg2.Y = msg1.Bottom;
-            //if (msgArry.Length > 1)
-            //{
-            //    msg2.Text = msgArry[1];
-            //}
-            //msg2.TextColor = UserCenterColor.Current.TextGrayColor3;
-            //msg2.TextAlignment = TextAlignment.Center;
-            //bodyFrameLayout.AddChidren(msg2);
+            var msg1 = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(60), false);
+            msg1.Y = Application.GetRealHeight(1037);
+            msg1.Text = msgArry[0];
+            msg1.TextColor = UserCenterColor.Current.TextGrayColor3;
+            msg1.TextAlignment = TextAlignment.Center;
+            bodyFrameLayout.AddChidren(msg1);
+            var msg2 = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(60), false);
+            msg2.Y = msg1.Bottom;
+            if (msgArry.Length > 1)
+            {
+                msg2.Text = msgArry[1];
+            }
+            msg2.TextColor = UserCenterColor.Current.TextGrayColor3;
+            msg2.TextAlignment = TextAlignment.Center;
+            bodyFrameLayout.AddChidren(msg2);
         }
 
         #endregion
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/SensorTemperatureHumidityForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/SensorTemperatureHumidityForm.cs
new file mode 100755
index 0000000..50363d8
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/SensorTemperatureHumidityForm.cs
@@ -0,0 +1,98 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shared.Phone.UserCenter.DeviceDirection
+{
+    /// <summary>
+    /// 娓╂箍搴︿紶鎰熷櫒鐨勬坊鍔犳楠ょ晫闈�
+    /// </summary>
+    public class SensorTemperatureHumidityForm : DirectionCommonForm
+    {
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        public void ShowForm()
+        {
+            //璁剧疆澶撮儴淇℃伅
+            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAddDevice));
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame()
+        {
+            //鍥剧墖
+            var framePic = new FrameLayout();
+            framePic.Width = Application.GetMinRealAverage(897);
+            framePic.Height = Application.GetMinRealAverage(732);
+            framePic.Gravity = Gravity.CenterHorizontal;
+            framePic.Y = Application.GetRealHeight(130);
+            bodyFrameLayout.AddChidren(framePic);
+            var btnPic = new PicViewControl(framePic.Width, framePic.Height, false);
+            btnPic.UnSelectedImagePath = "Instruct/SensorTemperatureHumidity.png";
+            framePic.AddChidren(btnPic);
+
+            //淇″彿鍥炬爣蹇棯
+            var btnGreanLinght = new NormalViewControl(Application.GetMinRealAverage(455), Application.GetMinRealAverage(45), false);
+            btnGreanLinght.X = Application.GetMinRealAverage(400);
+            btnGreanLinght.Y = Application.GetMinRealAverage(295);
+            btnGreanLinght.TextAlignment = TextAlignment.Center;
+            btnGreanLinght.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnGreanLinght.TextSize = 10;
+            btnGreanLinght.TextID = R.MyInternationalizationString.uSignalIconFlash;
+            framePic.AddChidren(btnGreanLinght);
+
+            //淇″彿鍥炬爣
+            var btnLinght = new NormalViewControl(Application.GetMinRealAverage(250), Application.GetMinRealAverage(45), false);
+            btnLinght.X = Application.GetMinRealAverage(505);
+            btnLinght.Y = Application.GetMinRealAverage(602);
+            btnLinght.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnLinght.TextSize = 10;
+            btnLinght.TextID = R.MyInternationalizationString.uSignalIcon;
+            framePic.AddChidren(btnLinght);
+
+            //闀挎寜5绉�(鎸夐敭)
+            string textMsg = Language.StringByID(R.MyInternationalizationString.uLongClickPanelSomeSecond);
+            if (textMsg.Contains("{0}") == true)
+            {
+                textMsg = string.Format(textMsg, "5");
+            }
+            var btnSecond = new NormalViewControl(Application.GetMinRealAverage(360), Application.GetMinRealAverage(45), false);
+            btnSecond.X = Application.GetMinRealAverage(100);
+            btnSecond.Y = Application.GetMinRealAverage(200);
+            btnSecond.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnSecond.TextSize = 10;
+            btnSecond.Text = textMsg;
+            framePic.AddChidren(btnSecond);
+
+            //闀挎寜鍥剧ず鎸夐敭5绉掍互涓婏紝淇″彿鍥炬爣
+            //蹇棯锛� 杩涘叆閰嶇綉鐘舵�併�傚浘鏍囧父浜垯閰嶇綉鎴愬姛
+            string[] msgArry = Language.StringByID(R.MyInternationalizationString.uAddSensorTemperatureAndHumidityMsg).Split(new string[] { "{0}" }, StringSplitOptions.RemoveEmptyEntries);
+
+            var msg1 = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(60), false);
+            msg1.Y = Application.GetRealHeight(1037);
+            msg1.Text = msgArry[0];
+            msg1.TextColor = UserCenterColor.Current.TextGrayColor3;
+            msg1.TextAlignment = TextAlignment.Center;
+            bodyFrameLayout.AddChidren(msg1);
+            var msg2 = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(60), false);
+            msg2.Y = msg1.Bottom;
+            if (msgArry.Length > 1)
+            {
+                msg2.Text = msgArry[1];
+            }
+            msg2.TextColor = UserCenterColor.Current.TextGrayColor3;
+            msg2.TextAlignment = TextAlignment.Center;
+            bodyFrameLayout.AddChidren(msg2);
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DoorLock/DoorLockScreeningTypeForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DoorLock/DoorLockScreeningTypeForm.cs
index d60f161..90cfa37 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DoorLock/DoorLockScreeningTypeForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DoorLock/DoorLockScreeningTypeForm.cs
@@ -154,9 +154,6 @@
             this.InitUserSelectControl(dicUser, detailBackFrame, btnLine.Bottom);
             //鍒濆鍖栭�夋嫨寮�閿佹柟寮忔帶浠�
             this.InitUnLockSelectControl(detailBackFrame, btnLine.Bottom);
-
-            //鍔ㄧ敾鏁堟灉
-            frameTransparent.Animate = Animate.DownToUp;
         }
 
         #endregion
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelBackLightSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelBackLightSettionForm.cs
index 9425bde..411e2f3 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelBackLightSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelBackLightSettionForm.cs
@@ -230,7 +230,7 @@
             btnProgress1.Y = Application.GetRealHeight(52);
             btnProgress1.TextSize = 12;
             btnProgress1.TextColor = UserCenterColor.Current.TextGrayColor1;
-            btnProgress1.Text = linghtLevelInfo.panelDirectionsLevel + "%";
+            btnProgress1.Text = linghtLevelInfo.panelBacklightLevel + "%";
             frameBack.AddChidren(btnProgress1);
 
             //杩涘害鏉�
@@ -241,9 +241,9 @@
             {
                 btnProgress1.Text = value + "%";
                 //鏁版嵁鍙樻洿
-                linghtLevelInfo.panelDirectionsLevel = value;
+                linghtLevelInfo.panelBacklightLevel = value;
             };
-            seekBar1.Progress = linghtLevelInfo.panelDirectionsLevel;
+            seekBar1.Progress = linghtLevelInfo.panelBacklightLevel;
 
             var btnTemp1 = new NormalViewControl(200, 49, true);
             btnTemp1.X = ControlCommonResourse.XXLeft;
@@ -265,8 +265,8 @@
             var frameColor = new FrameLayoutControl();
             frameColor.UseClickStatu = false;
             frameColor.Width = Application.GetRealHeight(262);
-            frameColor.Height = Application.GetMinRealAverage(69);
-            frameColor.Y = Application.GetRealHeight(41);
+            frameColor.Height = Application.GetMinRealAverage(79);
+            frameColor.Y = Application.GetRealHeight(26);
             frameColor.X = frameLinght.Width - ControlCommonResourse.XXLeft - Application.GetRealHeight(262);
             frameBack.AddChidren(frameColor);
             //棰滆壊
@@ -274,6 +274,7 @@
             btnColorView.Gravity = Gravity.CenterVertical;
             btnColorView.TextAlignment = TextAlignment.CenterRight;
             btnColorView.TextSize = 12;
+            btnColorView.Y = Application.GetRealHeight(5);
             btnColorView.TextColor = UserCenterColor.Current.TextGrayColor1;
             btnColorView.TextID = R.MyInternationalizationString.uColor;
             frameColor.AddChidren(btnColorView, ChidrenBindMode.BindEventOnly);
@@ -282,7 +283,17 @@
             int G1 = Convert.ToInt32(this.keyColorData.CloseColorG, 16);
             int B1 = Convert.ToInt32(this.keyColorData.CloseColorB, 16);
             uint backColor = this.GetColorByRGB((byte)R1, (byte)G1, (byte)B1);
+
+            //棰滆壊澶栨
+            var btnColorLine = new NormalViewControl(Application.GetMinRealAverage(79), Application.GetMinRealAverage(79), false);
+            btnColorLine.X = btnColorView.Right + Application.GetRealHeight(18);
+            btnColorLine.Radius = (uint)Application.GetMinRealAverage(79) / 2;
+            btnColorLine.BorderWidth = 1;
+            btnColorLine.BorderColor = 0xff666666;
+            frameColor.AddChidren(btnColorLine, ChidrenBindMode.BindEventOnly);
+
             var btnColor = new NormalViewControl(Application.GetMinRealAverage(69), Application.GetMinRealAverage(69), false);
+            btnColor.Y = Application.GetRealHeight(5);
             btnColor.X = btnColorView.Right + Application.GetRealHeight(23);
             btnColor.Radius = (uint)Application.GetMinRealAverage(69) / 2;
             btnColor.BackgroundColor = backColor;
@@ -293,6 +304,7 @@
 
             var btnRight = new NormalViewControl(Application.GetMinRealAverage(58), Application.GetMinRealAverage(58), false);
             btnRight.UnSelectedImagePath = "Item/Next.png";
+            btnRight.Y = Application.GetRealHeight(5);
             btnRight.X = frameColor.Width - Application.GetMinRealAverage(58);
             frameColor.AddChidren(btnRight, ChidrenBindMode.BindEventOnly);
             btnRight.Y += Application.GetMinRealAverage(8);
@@ -355,7 +367,7 @@
             btnProgress1.Y = Application.GetRealHeight(52);
             btnProgress1.TextSize = 12;
             btnProgress1.TextColor = UserCenterColor.Current.TextGrayColor1;
-            btnProgress1.Text = linghtLevelInfo.panelBacklightLevel + "%";
+            btnProgress1.Text = linghtLevelInfo.panelDirectionsLevel + "%";
             frameBack.AddChidren(btnProgress1);
 
             //杩涘害鏉�
@@ -366,9 +378,9 @@
             {
                 btnProgress1.Text = value + "%";
                 //鏁版嵁鍙樻洿
-                linghtLevelInfo.panelBacklightLevel = value;
+                linghtLevelInfo.panelDirectionsLevel = value;
             };
-            seekBar1.Progress = linghtLevelInfo.panelBacklightLevel;
+            seekBar1.Progress = linghtLevelInfo.panelDirectionsLevel;
 
             var btnTemp1 = new NormalViewControl(200, 49, true);
             btnTemp1.X = ControlCommonResourse.XXLeft;
@@ -390,8 +402,8 @@
             var frameColor = new FrameLayoutControl();
             frameColor.UseClickStatu = false;
             frameColor.Width = Application.GetRealHeight(262);
-            frameColor.Height = Application.GetMinRealAverage(69);
-            frameColor.Y = Application.GetRealHeight(41);
+            frameColor.Height = Application.GetMinRealAverage(79);
+            frameColor.Y = Application.GetRealHeight(26);
             frameColor.X = frameLinght.Width - ControlCommonResourse.XXLeft - Application.GetRealHeight(262);
             frameBack.AddChidren(frameColor);
             //棰滆壊
@@ -399,6 +411,7 @@
             btnColorView.Gravity = Gravity.CenterVertical;
             btnColorView.TextAlignment = TextAlignment.CenterRight;
             btnColorView.TextSize = 12;
+            btnColorView.Y = Application.GetRealHeight(5);
             btnColorView.TextColor = UserCenterColor.Current.TextGrayColor1;
             btnColorView.TextID = R.MyInternationalizationString.uColor;
             frameColor.AddChidren(btnColorView, ChidrenBindMode.BindEventOnly);
@@ -407,8 +420,18 @@
             int G1 = Convert.ToInt32(this.keyColorData.OpenColorG, 16);
             int B1 = Convert.ToInt32(this.keyColorData.OpenColorB, 16);
             uint backColor = this.GetColorByRGB((byte)R1, (byte)G1, (byte)B1);
+
+            //棰滆壊澶栨
+            var btnColorLine = new NormalViewControl(Application.GetMinRealAverage(79), Application.GetMinRealAverage(79), false);
+            btnColorLine.X = btnColorView.Right + Application.GetRealHeight(18);
+            btnColorLine.Radius = (uint)Application.GetMinRealAverage(79) / 2;
+            btnColorLine.BorderWidth = 1;
+            btnColorLine.BorderColor = 0xff666666;
+            frameColor.AddChidren(btnColorLine, ChidrenBindMode.BindEventOnly);
+
             var btnColor = new NormalViewControl(Application.GetMinRealAverage(69), Application.GetMinRealAverage(69), false);
             btnColor.X = btnColorView.Right + Application.GetRealHeight(23);
+            btnColor.Y = Application.GetRealHeight(5);
             btnColor.Radius = (uint)Application.GetMinRealAverage(69) / 2;
             btnColor.BackgroundColor = backColor;
             frameColor.AddChidren(btnColor, ChidrenBindMode.BindEventOnly);
@@ -418,6 +441,7 @@
 
             var btnRight = new NormalViewControl(Application.GetMinRealAverage(58), Application.GetMinRealAverage(58), false);
             btnRight.UnSelectedImagePath = "Item/Next.png";
+            btnRight.Y = Application.GetRealHeight(5);
             btnRight.X = frameColor.Width - Application.GetMinRealAverage(58);
             frameColor.AddChidren(btnRight, ChidrenBindMode.BindEventOnly);
             btnRight.Y += Application.GetMinRealAverage(8);
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelColorSelectForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelColorSelectForm.cs
index dadd52b..5475445 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelColorSelectForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelColorSelectForm.cs
@@ -132,7 +132,7 @@
                     nowSelectIcon1.BorderColor = UserCenterColor.Current.White;
                 }
                 wheelSelectIcon2.BackgroundColor = this.GetColorByRGB(eColor[0], eColor[1], eColor[2]);
-                wheelSelectIcon1.BorderColor = wheelSelectIcon2.BackgroundColor;
+                wheelSelectIcon1.BorderColor = 0xff666666;
                 wheelSelectIcon1.Name = listRGB[0] + "-" + listRGB[1] + "-" + listRGB[2];
                 nowSelectIcon1 = wheelSelectIcon1;
             };
@@ -175,7 +175,7 @@
                 btnFrame.X = Xdefult + i * Application.GetMinRealAverage(80 + 24);
                 btnFrame.Y = Application.GetRealHeight(1054);
                 btnFrame.BackgroundColor = UserCenterColor.Current.White;
-                btnFrame.BorderWidth = 2;
+                btnFrame.BorderWidth = 1;
                 btnFrame.BorderColor = UserCenterColor.Current.White;
                 bodyFrameLayout.AddChidren(btnFrame);
 
@@ -193,8 +193,8 @@
                 else
                 {
                     //鍘熸潵鐨勯鑹�
-                    btnFrame.BorderColor = this.GetColorByRGB((byte)i_R, (byte)i_G, (byte)i_B);
-                    btnIcon.BackgroundColor = btnFrame.BorderColor;
+                    btnFrame.BorderColor = 0xff666666;
+                    btnIcon.BackgroundColor = this.GetColorByRGB((byte)i_R, (byte)i_G, (byte)i_B);
                     wheelSelectIcon1 = btnFrame;
                     wheelSelectIcon2 = btnIcon;
                     nowSelectIcon1 = btnFrame;
@@ -207,7 +207,7 @@
                     {
                         nowSelectIcon1.BorderColor = UserCenterColor.Current.White;
                     }
-                    btnFrame.BorderColor = btnIcon.BackgroundColor;
+                    btnFrame.BorderColor = 0xff666666;
                     nowSelectIcon1 = btnFrame;
 
                     if (btnFrame.Name != null)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Relay/RelayThreeLoadBackLightSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Relay/RelayThreeLoadBackLightSettionForm.cs
index 8f382b3..f67c9ad 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Relay/RelayThreeLoadBackLightSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Relay/RelayThreeLoadBackLightSettionForm.cs
@@ -248,7 +248,7 @@
             btnProgress1.Y = Application.GetRealHeight(29);
             btnProgress1.TextSize = 12;
             btnProgress1.TextColor = UserCenterColor.Current.TextGrayColor1;
-            btnProgress1.Text = linghtLevelInfo.panelDirectionsLevel + "%";
+            btnProgress1.Text = linghtLevelInfo.panelBacklightLevel + "%";
             frameLinght.AddChidren(btnProgress1);
 
             //杩涘害鏉�
@@ -260,10 +260,10 @@
             {
                 btnProgress1.Text = value + "%";
                 //鏁版嵁鍙樻洿
-                linghtLevelInfo.panelDirectionsLevel = value;
+                linghtLevelInfo.panelBacklightLevel = value;
                 valueChanged = true;
             };
-            seekBar1.Progress = linghtLevelInfo.panelDirectionsLevel;
+            seekBar1.Progress = linghtLevelInfo.panelBacklightLevel;
 
             var btnTemp1 = new NormalViewControl(200, 49, true);
             btnTemp1.X = ControlCommonResourse.XXLeft;
@@ -312,7 +312,7 @@
             btnProgress1.Y = Application.GetRealHeight(369);
             btnProgress1.TextSize = 12;
             btnProgress1.TextColor = UserCenterColor.Current.TextGrayColor1;
-            btnProgress1.Text = linghtLevelInfo.panelBacklightLevel + "%";
+            btnProgress1.Text = linghtLevelInfo.panelDirectionsLevel + "%";
             frameLinght.AddChidren(btnProgress1);
 
             //杩涘害鏉�
@@ -324,10 +324,10 @@
             {
                 btnProgress1.Text = value + "%";
                 //鏁版嵁鍙樻洿
-                linghtLevelInfo.panelBacklightLevel = value;
+                linghtLevelInfo.panelDirectionsLevel = value;
                 valueChanged = true;
             };
-            seekBar1.Progress = linghtLevelInfo.panelBacklightLevel;
+            seekBar1.Progress = linghtLevelInfo.panelDirectionsLevel;
 
             var btnTemp1 = new NormalViewControl(200, 49, true);
             btnTemp1.X = ControlCommonResourse.XXLeft;
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs
index f7d429f..12f0ba6 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs
@@ -82,7 +82,7 @@
         }
 
         /// <summary>
-        ///  鑾峰彇褰撳墠璐︽埛鍒楄〃
+        ///  鑾峰彇褰撳墠璐︽埛鍒楄〃锛堥棬閿佸彧瀵逛富浜哄拰鎷ユ湁绠$悊鍛樻潈闄愬鎴愬憳鐢級
         /// </summary>
         public static async System.Threading.Tasks.Task<List<Shared.Phone.UserCenter.MemberInfoRes>> LocalAccountList()
         {
@@ -104,10 +104,11 @@
                         || member.Account == UserCenterResourse.UserInfo.Phone
                         || member.Account == UserCenterResourse.UserInfo.Email)
                         {
-                            //濡傛灉鏄畠鑷繁鐨勮瘽锛屼笉鏄剧ず
+                            //濡傛灉鏄畠鑷繁鐨勮瘽锛屼笉鏄剧ず,璐︽埛鍜岀粦瀹氱殑閭鍙樉绀哄叾涓箣涓�
                             continue;
                         }
                         //鍘绘帀瀛愯处鎴蜂腑鏅�氭垚鍛橈紝鐣欎笅鎷ユ湁绠$悊鍛樻潈闄愮殑鎴愬憳
+                        //锛堝洜涓哄垎閰嶈处鎴风粰鏅�氭垚鍛橈紝鏅�氭垚鍛樺湪app涓笉鑳借繘鍏ヨ澶囩鐞嗛偅閲岋紝鎵�浠ユ病鍙戞煡鐪嬩富浜哄垎閰嶅璐︽埛锛�
                         if (member.AccountType != 1)
                         {
                             continue;
@@ -173,11 +174,39 @@
                             doorLock.localDoorLockUserList.Add(localDoorLockObj1.UserID, localDoorLockObj1);
                         }
                     }
+
+
                     //2銆佽鍙栦簯绔棬閿佷俊鎭�  
+                    var getDoorLockInfoAllList = new List<ZigBee.Device.DoorLock.CloudDoorLockObj> { };
                     var getDoorLockInfoList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockAllAccountInfolist(doorLock);
                     if (getDoorLockInfoList != null)
                     {
-                        foreach (var curDoorLockUser in getDoorLockInfoList.PageData)
+                        if (getDoorLockInfoList.PageData.Count != 0)
+                        {
+                            getDoorLockInfoAllList = getDoorLockInfoList.PageData;
+                        }
+                    }
+                    if (getDoorLockInfoList.TotalPages > 1)
+                    {
+                        for (int j = 1; j < getDoorLockInfoList.TotalPages; j++)
+                        {
+                            var getDoorLockInfoListTemp = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockAllAccountInfolist(doorLock, j + 1);
+                            if (getDoorLockInfoListTemp != null)
+                            {
+                                if (getDoorLockInfoListTemp.PageData.Count != 0)
+                                {
+                                    foreach (var curDoorLockUser in getDoorLockInfoListTemp.PageData)
+                                    {
+                                        getDoorLockInfoAllList.Add(curDoorLockUser);
+                                    }
+                                }
+                            }
+                        }
+                    }
+
+                    if (getDoorLockInfoAllList.Count != 0)
+                    {
+                        foreach (var curDoorLockUser in getDoorLockInfoAllList)
                         {
                             if (curDoorLockUser.DoorLockLocalUserId == null || curDoorLockUser.DoorLockLocalUserId == "")
                             {
@@ -213,6 +242,7 @@
                                     deleteDoorLockData.PrimaryId = curDoorLockUser.Id;
                                     deleteDoorLockData.DelDoorLockDelType = 2;
                                     var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/DelDoorLock", deleteDoorLockData);
+                                    int i = 0;
                                 }
                             }
                         }
@@ -229,85 +259,89 @@
         public static async System.Threading.Tasks.Task<Dictionary<int, LocaDoorLockObj>> GetLocaDoorLocklist(ZigBee.Device.DoorLock doorLock, Shared.Phone.UserCenter.MemberInfoRes curAccountObj)
         {
             return await System.Threading.Tasks.Task.Run((Func<System.Threading.Tasks.Task<Dictionary<int, LocaDoorLockObj>>>)(async () =>
-             {
-                 //璇诲彇璁惧涓殑淇℃伅
-                 doorLock.localDoorLockUserList.Clear();
-                 var getDoorLockInfo = await doorLock.GetDoorlockUserInfoAsync();
-                 if (getDoorLockInfo == null)
-                 {
-                     doorLock.IsFailedToGetDoorLockInfo[curAccountObj.SubAccountDistributedMark] = true;
-                 }
-                 else
-                 {
-                     doorLock.IsFailedToGetDoorLockInfo[curAccountObj.SubAccountDistributedMark] = false;
-                     if (getDoorLockInfo != null && getDoorLockInfo.doorLockUserDetailData != null)
-                     {
-                         var dataList = getDoorLockInfo.doorLockUserDetailData.UserObjList;
-                         foreach (var doorData in dataList)
-                         {
-                             var localDoorLockObj1 = new ZigBee.Device.DoorLock.LocaDoorLockObj()
-                             {
-                                 UserID = doorData.UserId,
-                                 UnlockType = doorData.UserType
-                             };
-                             if ((doorLock.localDoorLockUserList.ContainsKey(localDoorLockObj1.UserID)) == false)
-                             {
-                                 doorLock.localDoorLockUserList.Add(localDoorLockObj1.UserID, localDoorLockObj1);
-                             }
-                         }
-                     }
+            {
+                //璇诲彇璁惧涓殑淇℃伅
+                doorLock.localDoorLockUserList.Clear();
+                var getDoorLockInfo = await doorLock.GetDoorlockUserInfoAsync();
+                if (getDoorLockInfo == null)
+                {
+                    doorLock.IsFailedToGetDoorLockInfo[curAccountObj.SubAccountDistributedMark] = true;
+                }
+                else
+                {
+                    doorLock.IsFailedToGetDoorLockInfo[curAccountObj.SubAccountDistributedMark] = false;
+                    if (getDoorLockInfo != null && getDoorLockInfo.doorLockUserDetailData != null)
+                    {
+                        var dataList = getDoorLockInfo.doorLockUserDetailData.UserObjList;
+                        foreach (var doorData in dataList)
+                        {
+                            var localDoorLockObj1 = new ZigBee.Device.DoorLock.LocaDoorLockObj()
+                            {
+                                UserID = doorData.UserId,
+                                UnlockType = doorData.UserType
+                            };
+                            if ((doorLock.localDoorLockUserList.ContainsKey(localDoorLockObj1.UserID)) == false)
+                            {
+                                doorLock.localDoorLockUserList.Add(localDoorLockObj1.UserID, localDoorLockObj1);
+                            }
+                        }
+                    }
 
-                     //  璇诲彇浜戠闂ㄩ攣璁惧涓殑淇℃伅
-                     var localDoorLockObj = new ZigBee.Device.DoorLock.GetDoorLockData() { };
-                     var getDoorLockInfoList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockAllInfolist(doorLock, curAccountObj.SubAccountDistributedMark);
-                     if (getDoorLockInfoList != null)
-                     {
-                         foreach (var curDoorLockUser in getDoorLockInfoList.PageData)
-                         {
-                             if (curDoorLockUser.DoorLockLocalUserId == null || curDoorLockUser.DoorLockLocalUserId == "")
-                             {
-                                 continue;
-                             }
-                             if (doorLock.localDoorLockUserList.ContainsKey(int.Parse(curDoorLockUser.DoorLockLocalUserId)))
-                             {
-                                 var doorLockObj = new ZigBee.Device.DoorLock.LocaDoorLockObj() { };
-                                 doorLockObj.UserID = int.Parse(curDoorLockUser.DoorLockLocalUserId);
-                                 doorLockObj.UnlockType = curDoorLockUser.OpenLockMode;
-                                 doorLockObj.PrimaryId = curDoorLockUser.Id;
-                                 doorLockObj.EntryTime = curDoorLockUser.EntryTime;
-                                 doorLockObj.UserName = curDoorLockUser.UserIdRemarks;
-                                 doorLockObj.ConnectedAccount = curDoorLockUser.CloudAccountId;
-                                 doorLock.localDoorLockUserList[int.Parse(curDoorLockUser.DoorLockLocalUserId)] = doorLockObj;
-                             }
-                             else
-                             {
-                                 if (curDoorLockUser.DoorLockLocalUserId != null)
-                                 {
-                                     //闂ㄩ攣涓病鏈夛紝浜戠鏈夌敤鎴稩D锛屽悗鍙板垹闄や簯绔繖浜汭D
-                                     var deleteDoorLockData = new ZigBee.Device.DoorLock.DeleteDoorLockData();
-                                     if (UserCenterResourse.UserInfo.AuthorityNo != 1)
-                                     {
-                                         deleteDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
-                                         deleteDoorLockData.IsOtherAccountCtrl = true;
-                                     }
-                                     if (doorLock.DeviceAddr != null)
-                                     {
-                                         deleteDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
-                                     }
-                                     deleteDoorLockData.DoorLockLocalUserId = curDoorLockUser.DoorLockLocalUserId;
-                                     deleteDoorLockData.PrimaryId = curDoorLockUser.Id;
-                                     deleteDoorLockData.DelDoorLockDelType = 2;
-                                     var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/DelDoorLock", deleteDoorLockData);
-                                     int i = 0;
-                                 }
-                             }
-                         }
-                         doorLock.ReSave();
-                     }
-
-                 }
-                 return doorLock.localDoorLockUserList;
-             }));
+                    //  璇诲彇浜戠闂ㄩ攣璁惧涓殑淇℃伅
+                    var getDoorLockInfoAllList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockAllInfolist(doorLock, curAccountObj.SubAccountDistributedMark);
+                    if (getDoorLockInfoAllList.Count != 0)
+                    {
+                        foreach (var getDoorLockInfoList in getDoorLockInfoAllList)
+                        {
+                            if (getDoorLockInfoList != null)
+                            {
+                                foreach (var curDoorLockUser in getDoorLockInfoList.PageData)
+                                {
+                                    if (curDoorLockUser.DoorLockLocalUserId == null || curDoorLockUser.DoorLockLocalUserId == "")
+                                    {
+                                        continue;
+                                    }
+                                    if (doorLock.localDoorLockUserList.ContainsKey(int.Parse(curDoorLockUser.DoorLockLocalUserId)))
+                                    {
+                                        var doorLockObj = new ZigBee.Device.DoorLock.LocaDoorLockObj() { };
+                                        doorLockObj.UserID = int.Parse(curDoorLockUser.DoorLockLocalUserId);
+                                        doorLockObj.UnlockType = curDoorLockUser.OpenLockMode;
+                                        doorLockObj.PrimaryId = curDoorLockUser.Id;
+                                        doorLockObj.EntryTime = curDoorLockUser.EntryTime;
+                                        doorLockObj.UserName = curDoorLockUser.UserIdRemarks;
+                                        doorLockObj.ConnectedAccount = curDoorLockUser.CloudAccountId;
+                                        doorLock.localDoorLockUserList[int.Parse(curDoorLockUser.DoorLockLocalUserId)] = doorLockObj;
+                                    }
+                                    else
+                                    {
+                                        if (curDoorLockUser.DoorLockLocalUserId != null)
+                                        {
+                                            //闂ㄩ攣涓病鏈夛紝浜戠鏈夌敤鎴稩D锛屽悗鍙板垹闄や簯绔繖浜汭D
+                                            var deleteDoorLockData = new ZigBee.Device.DoorLock.DeleteDoorLockData();
+                                            if (UserCenterResourse.UserInfo.AuthorityNo != 1)
+                                            {
+                                                deleteDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
+                                                deleteDoorLockData.IsOtherAccountCtrl = true;
+                                            }
+                                            if (doorLock.DeviceAddr != null)
+                                            {
+                                                deleteDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
+                                            }
+                                            deleteDoorLockData.DoorLockLocalUserId = curDoorLockUser.DoorLockLocalUserId;
+                                            deleteDoorLockData.PrimaryId = curDoorLockUser.Id;
+                                            deleteDoorLockData.DelDoorLockDelType = 2;
+                                            var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/DelDoorLock", deleteDoorLockData);
+                                            int i = 0;
+                                        }
+                                    }
+                                }
+                                doorLock.ReSave();
+                            }
+                        }
+                    }
+                }
+                return doorLock.localDoorLockUserList;
+            }));
         }
 
         /// <summary>
@@ -317,6 +351,7 @@
         {
             return await System.Threading.Tasks.Task.Run((Func<System.Threading.Tasks.Task<Dictionary<int, LocaDoorLockObj>>>)(async () =>
             {
+                var getDoorLockInfoAllList = new List<ZigBee.Device.DoorLock.CloudDoorLockObj> { };
                 //  璇诲彇浜戠闂ㄩ攣璁惧涓殑淇℃伅
                 var localDoorLockObj = new ZigBee.Device.DoorLock.GetDoorLockData() { };
 
@@ -333,10 +368,34 @@
                 }
 
                 var getDoorLockInfoList = await ZigBee.Device.DoorLock.GetDoorLockInfoFromServer("DoorLock/GetDoorLockPager", localDoorLockObj);
-
                 if (getDoorLockInfoList != null)
                 {
-                    foreach (var curDoorLockUser in getDoorLockInfoList.PageData)
+                    if (getDoorLockInfoList.PageData.Count != 0)
+                    {
+                        getDoorLockInfoAllList = getDoorLockInfoList.PageData;
+                    }
+                }
+                if (getDoorLockInfoList.TotalPages > 1)
+                {
+                    for (int j = 1; j < getDoorLockInfoList.TotalPages; j++)
+                    {
+                        var getDoorLockInfoListTemp = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockAllAccountInfolist(doorLock, j + 1);
+                        if (getDoorLockInfoListTemp != null)
+                        {
+                            if (getDoorLockInfoListTemp.PageData.Count != 0)
+                            {
+                                foreach (var curDoorLockUser in getDoorLockInfoListTemp.PageData)
+                                {
+                                    getDoorLockInfoAllList.Add(curDoorLockUser);
+                                }
+                            }
+                        }
+                    }
+                }
+
+                if (getDoorLockInfoAllList.Count != 0)
+                {
+                    foreach (var curDoorLockUser in getDoorLockInfoAllList)
                     {
                         if (curDoorLockUser.DoorLockLocalUserId == null || curDoorLockUser.DoorLockLocalUserId == "")
                         {
@@ -370,19 +429,22 @@
             return await System.Threading.Tasks.Task.Run((Func<System.Threading.Tasks.Task<List<ZigBee.Device.DoorLock.CloudDoorLockObj>>>)(async () =>
             {
                 //  璇诲彇浜戠闂ㄩ攣璁惧涓殑淇℃伅
-                var getDoorLockInfoList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockAllInfolist(doorLock, subAccountDistributedMark);
-                if (getDoorLockInfoList != null)
+                var getAllDoorLockInfoList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockAllInfolist(doorLock, subAccountDistributedMark);
+                if (getAllDoorLockInfoList != null)
                 {
-                    //鑾峰彇浜戠瀛樺偍鐨勯棬閿佹垚鍛樹俊鎭�
-                    foreach (var curDoorLockUser in getDoorLockInfoList.PageData)
+                    foreach (var getDoorLockInfoList in getAllDoorLockInfoList)
                     {
-                        if (curDoorLockUser.CloudAccountId == "" || curDoorLockUser.CloudAccountId != subAccountDistributedMark)
+                        //鑾峰彇浜戠瀛樺偍鐨勯棬閿佹垚鍛樹俊鎭�
+                        foreach (var curDoorLockUser in getDoorLockInfoList.PageData)
                         {
-                            continue;
-                        }
-                        else
-                        {
-                            curAccountDoorLockUserList.Add(curDoorLockUser);
+                            if (curDoorLockUser.CloudAccountId == "" || curDoorLockUser.CloudAccountId != subAccountDistributedMark)
+                            {
+                                continue;
+                            }
+                            else
+                            {
+                                curAccountDoorLockUserList.Add(curDoorLockUser);
+                            }
                         }
                     }
                 }
@@ -393,34 +455,54 @@
         /// <summary>
         ///  鑾峰彇褰撳墠璐︽埛闂ㄩ攣鐨勬墍鏈変俊鎭�
         /// </summary>
-        public static async System.Threading.Tasks.Task<ZigBee.Device.DoorLock.GetDoorLockDataRes> GetDoorLockAllInfolist(ZigBee.Device.DoorLock doorLock, string subAccountDistributedMark)
+        public static async System.Threading.Tasks.Task<List<ZigBee.Device.DoorLock.GetDoorLockDataRes>> GetDoorLockAllInfolist(ZigBee.Device.DoorLock doorLock, string subAccountDistributedMark)
         {
-            return await System.Threading.Tasks.Task.Run((Func<System.Threading.Tasks.Task<ZigBee.Device.DoorLock.GetDoorLockDataRes>>)(async () =>
-           {
-               //  璇诲彇浜戠闂ㄩ攣璁惧涓殑淇℃伅
-               var localDoorLockObj = new ZigBee.Device.DoorLock.GetDoorLockData() { };
+            return await System.Threading.Tasks.Task.Run((Func<System.Threading.Tasks.Task<List<ZigBee.Device.DoorLock.GetDoorLockDataRes>>>)(async () =>
+            {
+                var getDoorLockInfoAllList = new List<ZigBee.Device.DoorLock.GetDoorLockDataRes> { };
+                int curPage = 1;
+                //  璇诲彇浜戠闂ㄩ攣璁惧涓殑淇℃伅
+                var localDoorLockObj = new ZigBee.Device.DoorLock.GetDoorLockData() { };
 
-               if (UserCenterResourse.UserInfo.AuthorityNo != 1)
-               {
-                   localDoorLockObj.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
-                   localDoorLockObj.IsOtherAccountCtrl = true;
-               }
+                if (UserCenterResourse.UserInfo.AuthorityNo != 1)
+                {
+                    localDoorLockObj.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
+                    localDoorLockObj.IsOtherAccountCtrl = true;
+                }
 
-               localDoorLockObj.CloudAccountId = subAccountDistributedMark;
-               if (doorLock.DeviceAddr != null)
-               {
-                   localDoorLockObj.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
-               }
+                localDoorLockObj.CloudAccountId = subAccountDistributedMark;
+                if (doorLock.DeviceAddr != null)
+                {
+                    localDoorLockObj.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
+                }
 
-               var getDoorLockInfoList = await ZigBee.Device.DoorLock.GetDoorLockInfoFromServer("DoorLock/GetDoorLockPager", localDoorLockObj);
-               return getDoorLockInfoList;
-           }));
+                var getDoorLockInfoList = await ZigBee.Device.DoorLock.GetDoorLockInfoFromServer("DoorLock/GetDoorLockPager", localDoorLockObj);
+                if (getDoorLockInfoList != null)
+                {
+                    if (getDoorLockInfoList.PageData.Count != 0)
+                    {
+                        getDoorLockInfoAllList.Add(getDoorLockInfoList);
+                    }
+                }
+                if (getDoorLockInfoList.TotalPages > 1)
+                {
+                    for (int j = 1; j < getDoorLockInfoList.TotalPages; j++)
+                    {
+                        var getDoorLockInfoListTemp = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockAllAccountInfolist(doorLock, j + 1);
+                        if (getDoorLockInfoListTemp != null)
+                        {
+                            getDoorLockInfoAllList.Add(getDoorLockInfoListTemp);
+                        }
+                    }
+                }
+                return getDoorLockInfoAllList;
+            }));
         }
 
         /// <summary>
         ///  鑾峰彇褰撳墠璐︽埛闂ㄩ攣鐨勬墍鏈変俊鎭�
         /// </summary>
-        public static async System.Threading.Tasks.Task<ZigBee.Device.DoorLock.GetDoorLockDataRes> GetDoorLockAllAccountInfolist(ZigBee.Device.DoorLock doorLock)
+        public static async System.Threading.Tasks.Task<ZigBee.Device.DoorLock.GetDoorLockDataRes> GetDoorLockAllAccountInfolist(ZigBee.Device.DoorLock doorLock, int curPage = 1)
         {
             return await System.Threading.Tasks.Task.Run((Func<System.Threading.Tasks.Task<ZigBee.Device.DoorLock.GetDoorLockDataRes>>)(async () =>
             {
@@ -436,7 +518,9 @@
                 {
                     localDoorLockObj.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
                 }
-
+                var pageSetting = new ZigBee.Device.DoorLock.PageSetting() { };
+                pageSetting.Page = curPage;
+                localDoorLockObj.pageSetting = pageSetting;
                 var getDoorLockInfoList = await ZigBee.Device.DoorLock.GetDoorLockInfoFromServer("DoorLock/GetDoorLockPager", localDoorLockObj);
                 return getDoorLockInfoList;
             }));
@@ -445,7 +529,7 @@
         /// <summary>
         ///  鑾峰彇浜戠瀛樺偍鐨勯棬閿佹垚鍛樹俊鎭�
         /// </summary>
-        public static async System.Threading.Tasks.Task<Dictionary<int, LocaDoorLockObj>> GetLocaDoorLockAccountlist(ZigBee.Device.DoorLock doorLock, Shared.Phone.UserCenter.MemberInfoRes curAccountObj)
+        public static async System.Threading.Tasks.Task<Dictionary<int, LocaDoorLockObj>> GetLocaDoorLockAccountlist(ZigBee.Device.DoorLock doorLock, Shared.Phone.UserCenter.MemberInfoRes curAccountObj, int curPage)
         {
             return await System.Threading.Tasks.Task.Run((Func<System.Threading.Tasks.Task<Dictionary<int, LocaDoorLockObj>>>)(async () =>
             {
@@ -460,6 +544,13 @@
                 {
                     localDoorLockObj.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
                 }
+                if (doorLock.DeviceAddr != null)
+                {
+                    localDoorLockObj.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
+                }
+                var pageSetting = new ZigBee.Device.DoorLock.PageSetting() { };
+                pageSetting.Page = curPage;
+                localDoorLockObj.pageSetting = pageSetting;
                 var getDoorLockInfoList = await ZigBee.Device.DoorLock.GetDoorLockInfoFromServer("DoorLock/GetDoorLockPager", localDoorLockObj);
                 if (getDoorLockInfoList != null)
                 {
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/HistoryRecordPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/HistoryRecordPage.cs
deleted file mode 100755
index b544093..0000000
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/HistoryRecordPage.cs
+++ /dev/null
@@ -1,703 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-using Shared.Common;
-using ZigBee.Device;
-
-namespace Shared.Phone.UserCenter.DoorLock
-{
-    public class HistoryRecordPage : DoorLockCommonLayout, ZigBee.Common.IStatus
-    {
-        public HistoryRecordPage(ZigBee.Device.DoorLock doorLock)
-        {
-            this.doorLock = doorLock;
-            BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCTopViewBackgroundColor;
-            ZigBee.Device.ZbGateway.StatusList.Add(this);
-        }
-
-        #region 鈼� 鍙橀噺鐢虫槑__________________________
-        ZigBee.Device.DoorLock doorLock;
-        FrameLayout bottomFrameLayout;
-        #endregion
-
-        /// <summary>
-        /// UI鏄剧ず 
-        /// </summary>
-        public void Show()
-        {
-            this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.HistoryRecord));
-
-            EventHandler<MouseEventArgs> eHandlerBack = (sender, e) =>
-            {
-                RemoveFromParent();
-            };
-            this.btnBack.MouseUpEventHandler += eHandlerBack;
-            this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack;
-            this.MidFrameLayout(this);
-
-            var btnClearAll = new Button
-            {
-                X = Application.GetRealWidth(953),
-                Height = Application.GetRealHeight(69),
-                Width = Application.GetRealWidth(69),
-                //UnSelectedImagePath = "Item/Back.png",
-                //SelectedImagePath = "Item/BackOn.png",
-                BackgroundColor = ZigbeeColor.Current.XMOrange,
-            };
-            this.titleFrameLayout.AddChidren(btnClearAll);
-            btnClearAll.MouseDownEventHandler += (sender, e) =>
-            {
-
-            };
-
-            MidFrameLayoutContent();
-        }
-
-        public void MidFrameLayoutContent()
-        {
-            var midTopFrameLayout = new FrameLayout()
-            {
-                Height = Application.GetRealHeight(115),
-                BackgroundColor = Shared.Common.ZigbeeColor.Current.XMTopFrameLayout,
-            };
-            this.midFrameLayout.AddChidren(midTopFrameLayout);
-
-            #region UI
-            var btnAllMember = new Button()
-            {
-                X = Application.GetRealWidth(81),
-                Y = Application.GetRealHeight(35),
-                Height = Application.GetRealHeight(49),
-                Width = Application.GetRealWidth(141),
-                TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
-                TextAlignment = TextAlignment.Center,
-                Text = Language.StringByID(R.MyInternationalizationString.AllMember),
-                TextSize = 12,
-            };
-            midTopFrameLayout.AddChidren(btnAllMember);
-
-            var btnAllMemberPic = new Button()
-            {
-                X = Application.GetRealWidth(222),
-                Y = Application.GetRealHeight(23),
-                Height = Application.GetRealHeight(69),
-                Width = Application.GetRealWidth(69),
-                BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange,
-            };
-            midTopFrameLayout.AddChidren(btnAllMemberPic);
-
-            var btnLockMethod = new Button()
-            {
-                X = Application.GetRealWidth(348),
-                Y = Application.GetRealHeight(35),
-                Height = Application.GetRealHeight(49),
-                Width = Application.GetRealWidth(141),
-                TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
-                TextAlignment = TextAlignment.Center,
-                Text = Language.StringByID(R.MyInternationalizationString.LockMethod),
-                TextSize = 12,
-            };
-            midTopFrameLayout.AddChidren(btnLockMethod);
-
-            var btnLockMethodPic = new Button()
-            {
-                X = Application.GetRealWidth(490),
-                Y = Application.GetRealHeight(23),
-                Height = Application.GetRealHeight(69),
-                Width = Application.GetRealWidth(69),
-                BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange,
-            };
-            midTopFrameLayout.AddChidren(btnLockMethodPic);
-
-            var btnDate = new Button()
-            {
-                X = Application.GetRealWidth(746),
-                Y = Application.GetRealHeight(35),
-                Height = Application.GetRealHeight(49),
-                Width = Application.GetRealWidth(207),
-                TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
-                TextAlignment = TextAlignment.Center,
-                Text = Language.StringByID(R.MyInternationalizationString.AllDate),
-                TextSize = 12,
-            };
-            midTopFrameLayout.AddChidren(btnDate);
-
-            var btnDatePic = new Button()
-            {
-                X = Application.GetRealWidth(953),
-                Y = Application.GetRealHeight(35),
-                Height = Application.GetRealHeight(69),
-                Width = Application.GetRealWidth(69),
-                BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange,
-            };
-            midTopFrameLayout.AddChidren(btnDatePic);
-            #endregion
-
-            #region 浜嬩欢澶勭悊
-            btnAllMemberPic.MouseUpEventHandler += (sender, e) =>
-            {
-                MatchUsersFrameLayout();
-            };
-            btnLockMethodPic.MouseUpEventHandler += (sender, e) =>
-            {
-                LockMethodFrameLayout();
-            };
-            btnDatePic.MouseUpEventHandler += (sender, e) =>
-            {
-                LockDateFrameLayout();
-            };
-            #endregion
-
-            HistoryRecordList();
-        }
-
-        public void HistoryRecordList()
-        {
-            var bodyView = new VerticalScrolViewLayout()
-            {
-                Y = Application.GetRealHeight(118),
-            };
-            this.midFrameLayout.AddChidren(bodyView);
-
-            for (int i = 0; i < 3; i++)
-            {
-                var RowView = new FrameLayout()
-                {
-                    Height = Application.GetRealHeight(161),
-                };
-                bodyView.AddChidren(RowView);
-
-                var btnPic = new Button()
-                {
-                    X = Application.GetRealWidth(58),
-                    Y = Application.GetRealHeight(46),
-                    Height = Application.GetRealHeight(81),
-                    Width = Application.GetRealWidth(81),
-                    //UnSelectedImagePath = "Item/Next.png",
-                    //SelectedImagePath = "Item/Down.png",
-                    BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange,
-                };
-                RowView.AddChidren(btnPic);
-
-                var btnMemberName = new Button()
-                {
-                    X = Application.GetRealWidth(173),
-                    Y = Application.GetRealHeight(35),
-                    Width = Application.GetRealWidth(276),
-                    Height = Application.GetRealHeight(60),
-                    TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
-                    TextAlignment = TextAlignment.CenterLeft,
-                    TextSize = 14,
-                    Text = "Krafty",
-                };
-                RowView.AddChidren(btnMemberName);
-
-                var btnRight = new Button()
-                {
-                    X = Application.GetRealWidth(645),
-                    Y = Application.GetRealHeight(35),
-                    Height = Application.GetRealHeight(58),
-                    Width = Application.GetRealWidth(377),
-                    TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
-                    TextAlignment = TextAlignment.CenterRight,
-                    TextSize = 14,
-                    Text = "11:00:00",
-                };
-                RowView.AddChidren(btnRight);
-
-                var line2 = new Button()
-                {
-                    Y = RowView.Height - 1,
-                    X = Application.GetRealWidth(58),
-                    Width = Application.GetRealWidth(965),
-                    Height = 1,
-                    BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
-                };
-                RowView.AddChidren(line2);
-
-                int currentIndex = i;
-
-                EventHandler<MouseEventArgs> eHandler = (sender, e) =>
-                {
-                    //var doorLock = new ZigBee.Device.DoorLock();
-                    //var memberFrozenPage = new Shared.Phone.UserCenter.DoorLock.MemberFrozenPage(doorLock);
-                    //Shared.Phone.UserView.HomePage.Instance.AddChidren(memberFrozenPage);
-                    //Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-                    //memberFrozenPage.Show();
-                };
-                btnRight.MouseUpEventHandler += eHandler;
-                RowView.MouseUpEventHandler += eHandler;
-            }
-        }
-
-        public void MatchUsersFrameLayout()
-        {
-            var flMain = new FrameLayout { BackgroundColor = 0x0f000000 };
-            this.midFrameLayout.AddChidren(flMain);
-            flMain.MouseUpEventHandler += (sender11, e11) =>
-            {
-                flMain.RemoveFromParent();
-                bottomFrameLayout.RemoveAll();
-                HistoryRecordList();
-            };
-            bottomFrameLayout = new FrameLayout()
-            {
-                Height = Application.GetRealHeight(100),
-                Y = Application.GetRealHeight(930),
-                Radius = 17,
-                BackgroundColor = ZigbeeColor.Current.XMWhite,
-            };
-            flMain.AddChidren(bottomFrameLayout);
-
-            var bottomFrameLayout1 = new FrameLayout()
-            {
-                Height = Application.GetRealHeight(806 - 50),
-                Y = Application.GetRealHeight(930 + 48),
-                BackgroundColor = ZigbeeColor.Current.XMWhite,
-            };
-            flMain.AddChidren(bottomFrameLayout1);
-
-            var bottomFrameLayout2 = new FrameLayout()
-            {
-                Height = Application.GetRealHeight(806),
-                Y = Application.GetRealHeight(930),
-            };
-            flMain.AddChidren(bottomFrameLayout2);
-
-            var matchUsersFrameLayout = new FrameLayout()
-            {
-                Height = Application.GetRealHeight(138),
-            };
-            bottomFrameLayout2.AddChidren(matchUsersFrameLayout);
-
-            var btnCancel = new Button
-            {
-                X = Application.GetRealWidth(81),
-                Y = Application.GetRealHeight(40),
-                Height = Application.GetRealHeight(58),
-                Width = Application.GetRealWidth(101),
-                Text = Language.StringByID(R.MyInternationalizationString.Cancel),
-                TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
-                TextSize = 14,
-            };
-            matchUsersFrameLayout.AddChidren(btnCancel);
-
-            var btnMatchUser = new Button
-            {
-                X = Application.GetRealWidth(446),
-                Y = Application.GetRealHeight(35),
-                Height = Application.GetRealHeight(63),
-                Width = Application.GetRealWidth(284),
-                Text = Language.StringByID(R.MyInternationalizationString.uMember),
-                TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
-                TextSize = 16,
-            };
-            matchUsersFrameLayout.AddChidren(btnMatchUser);
-
-            var btnFinish = new Button
-            {
-                X = Application.GetRealWidth(919),
-                Y = Application.GetRealHeight(40),
-                Height = Application.GetRealHeight(58),
-                Width = Application.GetRealWidth(101),
-                Text = Language.StringByID(R.MyInternationalizationString.Complete),
-                TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
-                TextSize = 14,
-            };
-            matchUsersFrameLayout.AddChidren(btnFinish);
-
-            var btnTopLine = new FrameLayout()
-            {
-                Height = Application.GetRealHeight(5),
-                Y = Application.GetRealHeight(138),
-                BackgroundColor = Shared.Common.ZigbeeColor.Current.XMGray3,
-            };
-            bottomFrameLayout2.AddChidren(btnTopLine);
-
-            var allUsersFrameLayout = new FrameLayout()
-            {
-                Height = Application.GetRealHeight(207),
-                Y = Application.GetRealHeight(138 + 5),
-            };
-            bottomFrameLayout2.AddChidren(allUsersFrameLayout);
-
-            var btnAllMember = new Button
-            {
-                X = Application.GetRealWidth(81),
-                Y = Application.GetRealHeight(69),
-                Height = Application.GetRealHeight(58),
-                Width = Application.GetRealWidth(625),
-                Text = Language.StringByID(R.MyInternationalizationString.AllMember),
-                TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
-                TextSize = 14,
-                TextAlignment = TextAlignment.CenterLeft,
-            };
-            allUsersFrameLayout.AddChidren(btnAllMember);
-
-            var btnAllChoose = new Button
-            {
-                Width = Application.GetRealWidth(58),
-                Height = Application.GetRealHeight(58),
-                X = Application.GetRealWidth(861 + 81),
-                Y = Application.GetRealHeight(69),
-                BackgroundColor = ZigbeeColor.Current.XMOrange,
-            };
-            allUsersFrameLayout.AddChidren(btnAllChoose);
-
-            var btnMidLine = new FrameLayout()
-            {
-                Height = Application.GetRealHeight(5),
-                Y = Application.GetRealHeight(207 + 127),
-                BackgroundColor = Shared.Common.ZigbeeColor.Current.XMGray3,
-            };
-            bottomFrameLayout2.AddChidren(btnMidLine);
-
-            var matchUserHorizontalScrolViewLayout = new VerticalScrolViewLayout()
-            {
-                Y = Application.GetRealHeight(207 + 127 + 5),
-                Height = Application.GetRealHeight(806 - 207 - 127),
-            };
-            bottomFrameLayout2.AddChidren(matchUserHorizontalScrolViewLayout);
-
-            for (var i = 0; i < 3; i++)
-            {
-                var rowFrameLayout = new FrameLayout()
-                {
-                    Height = Application.GetRealHeight(127),
-                };
-                matchUserHorizontalScrolViewLayout.AddChidren(rowFrameLayout);
-
-                var btnUserName = new Button()
-                {
-                    Width = Application.GetRealWidth(743),
-                    Height = Application.GetRealHeight(58),
-                    X = Application.GetRealWidth(81),
-                    Y = Application.GetRealHeight(37),
-                    Text = "Krafty",
-                    TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
-                    TextSize = 14,
-                    TextAlignment = TextAlignment.CenterLeft,
-                };
-                rowFrameLayout.AddChidren(btnUserName);
-
-                var btnChoose = new Button()
-                {
-                    Width = Application.GetRealWidth(58),
-                    Height = Application.GetRealHeight(58),
-                    X = Application.GetRealWidth(861 + 81),
-                    Y = Application.GetRealHeight(35),
-                    BackgroundColor = ZigbeeColor.Current.XMOrange,
-                };
-                rowFrameLayout.AddChidren(btnChoose);
-
-                var btnLine = new FrameLayout()
-                {
-                    Width = Application.GetRealWidth(919),
-                    Height = Application.GetRealHeight(5),
-                    X = Application.GetRealWidth(81),
-                    Y = Application.GetRealHeight(122),
-                    BackgroundColor = Shared.Common.ZigbeeColor.Current.XMGray3,
-                };
-                rowFrameLayout.AddChidren(btnLine);
-            }
-        }
-
-        public void LockMethodFrameLayout()
-        {
-            var flMain = new FrameLayout { BackgroundColor = 0x0f000000 };
-            this.midFrameLayout.AddChidren(flMain);
-            flMain.MouseUpEventHandler += (sender11, e11) =>
-            {
-                flMain.RemoveFromParent();
-                bottomFrameLayout.RemoveAll();
-                HistoryRecordList();
-            };
-            bottomFrameLayout = new FrameLayout()
-            {
-                Height = Application.GetRealHeight(100),
-                Y = Application.GetRealHeight(930),
-                Radius = 17,
-                BackgroundColor = ZigbeeColor.Current.XMWhite,
-            };
-            flMain.AddChidren(bottomFrameLayout);
-
-            var bottomFrameLayout1 = new FrameLayout()
-            {
-                Height = Application.GetRealHeight(806 - 50),
-                Y = Application.GetRealHeight(930 + 48),
-                BackgroundColor = ZigbeeColor.Current.XMWhite,
-            };
-            flMain.AddChidren(bottomFrameLayout1);
-
-            var bottomFrameLayout2 = new FrameLayout()
-            {
-                Height = Application.GetRealHeight(806),
-                Y = Application.GetRealHeight(930),
-            };
-            flMain.AddChidren(bottomFrameLayout2);
-
-            var matchUsersFrameLayout = new FrameLayout()
-            {
-                Height = Application.GetRealHeight(138),
-            };
-            bottomFrameLayout2.AddChidren(matchUsersFrameLayout);
-
-            var btnCancel = new Button
-            {
-                X = Application.GetRealWidth(81),
-                Y = Application.GetRealHeight(40),
-                Height = Application.GetRealHeight(58),
-                Width = Application.GetRealWidth(101),
-                Text = Language.StringByID(R.MyInternationalizationString.Cancel),
-                TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
-                TextSize = 14,
-            };
-            matchUsersFrameLayout.AddChidren(btnCancel);
-
-            var btnMatchUser = new Button
-            {
-                X = Application.GetRealWidth(446),
-                Y = Application.GetRealHeight(35),
-                Height = Application.GetRealHeight(63),
-                Width = Application.GetRealWidth(284),
-                Text = Language.StringByID(R.MyInternationalizationString.LockMethod),
-                TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
-                TextSize = 16,
-            };
-            matchUsersFrameLayout.AddChidren(btnMatchUser);
-
-            var btnFinish = new Button
-            {
-                X = Application.GetRealWidth(919),
-                Y = Application.GetRealHeight(40),
-                Height = Application.GetRealHeight(58),
-                Width = Application.GetRealWidth(101),
-                Text = Language.StringByID(R.MyInternationalizationString.Complete),
-                TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
-                TextSize = 14,
-            };
-            matchUsersFrameLayout.AddChidren(btnFinish);
-
-            var btnTopLine = new FrameLayout()
-            {
-                Height = Application.GetRealHeight(5),
-                Y = Application.GetRealHeight(138),
-                BackgroundColor = Shared.Common.ZigbeeColor.Current.XMGray3,
-            };
-            bottomFrameLayout2.AddChidren(btnTopLine);
-
-            var matchUserHorizontalScrolViewLayout = new VerticalScrolViewLayout()
-            {
-                Y = Application.GetRealHeight(207),
-                Height = Application.GetRealHeight(806 - 207),
-            };
-            bottomFrameLayout2.AddChidren(matchUserHorizontalScrolViewLayout);
-
-            for (var i = 0; i < 4; i++)
-            {
-                var rowFrameLayout = new FrameLayout()
-                {
-                    Height = Application.GetRealHeight(127),
-                };
-                matchUserHorizontalScrolViewLayout.AddChidren(rowFrameLayout);
-
-                var btnUserName = new Button()
-                {
-                    Width = Application.GetRealWidth(743),
-                    Height = Application.GetRealHeight(58),
-                    X = Application.GetRealWidth(81),
-                    Y = Application.GetRealHeight(37),
-                    TextSize = 14,
-                    TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
-                    TextAlignment = TextAlignment.CenterLeft,
-                };
-                rowFrameLayout.AddChidren(btnUserName);
-
-                var btnChoose = new Button()
-                {
-                    Width = Application.GetRealWidth(58),
-                    Height = Application.GetRealHeight(58),
-                    X = Application.GetRealWidth(861 + 81),
-                    Y = Application.GetRealHeight(35),
-                    BackgroundColor = ZigbeeColor.Current.XMOrange,
-                };
-                rowFrameLayout.AddChidren(btnChoose);
-
-                var btnLine = new FrameLayout()
-                {
-                    Width = Application.GetRealWidth(919),
-                    Height = Application.GetRealHeight(5),
-                    X = Application.GetRealWidth(81),
-                    Y = Application.GetRealHeight(122),
-                    BackgroundColor = Shared.Common.ZigbeeColor.Current.XMGray3,
-                };
-                rowFrameLayout.AddChidren(btnLine);
-
-                switch (i)
-                {
-                    case 0:
-                        btnUserName.Text = Language.StringByID(R.MyInternationalizationString.FingerprintUnlock);
-                        break;
-                    case 1:
-                        btnUserName.Text = Language.StringByID(R.MyInternationalizationString.PasswordUnlock);
-                        break;
-                    case 2:
-                        btnUserName.Text = Language.StringByID(R.MyInternationalizationString.TempPasswordUnlock);
-                        break;
-                    case 3:
-                        btnUserName.Text = Language.StringByID(R.MyInternationalizationString.ProximithCardUnlock);
-                        break;
-                }
-            }
-        }
-
-        public void LockDateFrameLayout()
-        {
-            var flMain = new FrameLayout { BackgroundColor = 0x0f000000 };
-            this.midFrameLayout.AddChidren(flMain);
-            flMain.MouseUpEventHandler += (sender11, e11) =>
-            {
-                flMain.RemoveFromParent();
-                bottomFrameLayout.RemoveAll();
-                HistoryRecordList();
-            };
-            bottomFrameLayout = new FrameLayout()
-            {
-                Height = Application.GetRealHeight(100),
-                Y = Application.GetRealHeight(930),
-                Radius = 17,
-                BackgroundColor = ZigbeeColor.Current.XMWhite,
-            };
-            flMain.AddChidren(bottomFrameLayout);
-
-            var bottomFrameLayout1 = new FrameLayout()
-            {
-                Height = Application.GetRealHeight(806 - 50),
-                Y = Application.GetRealHeight(930 + 48),
-                BackgroundColor = ZigbeeColor.Current.XMWhite,
-            };
-            flMain.AddChidren(bottomFrameLayout1);
-
-            var bottomFrameLayout2 = new FrameLayout()
-            {
-                Height = Application.GetRealHeight(806),
-                Y = Application.GetRealHeight(930),
-            };
-            flMain.AddChidren(bottomFrameLayout2);
-
-            var matchUsersFrameLayout = new FrameLayout()
-            {
-                Height = Application.GetRealHeight(138),
-            };
-            bottomFrameLayout2.AddChidren(matchUsersFrameLayout);
-
-            var btnCancel = new Button
-            {
-                X = Application.GetRealWidth(81),
-                Y = Application.GetRealHeight(40),
-                Height = Application.GetRealHeight(58),
-                Width = Application.GetRealWidth(101),
-                Text = Language.StringByID(R.MyInternationalizationString.Cancel),
-                TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
-                TextSize = 14,
-            };
-            matchUsersFrameLayout.AddChidren(btnCancel);
-
-            var btnMatchUser = new Button
-            {
-                X = Application.GetRealWidth(446),
-                Y = Application.GetRealHeight(35),
-                Height = Application.GetRealHeight(63),
-                Width = Application.GetRealWidth(284),
-                Text = Language.StringByID(R.MyInternationalizationString.date),
-                TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
-                TextSize = 16,
-            };
-            matchUsersFrameLayout.AddChidren(btnMatchUser);
-
-            var btnFinish = new Button
-            {
-                X = Application.GetRealWidth(919),
-                Y = Application.GetRealHeight(40),
-                Height = Application.GetRealHeight(58),
-                Width = Application.GetRealWidth(101),
-                Text = Language.StringByID(R.MyInternationalizationString.Complete),
-                TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
-                TextSize = 14,
-            };
-            matchUsersFrameLayout.AddChidren(btnFinish);
-
-            var btnTopLine = new FrameLayout()
-            {
-                Height = Application.GetRealHeight(5),
-                Y = Application.GetRealHeight(138),
-                BackgroundColor = Shared.Common.ZigbeeColor.Current.XMGray3,
-            };
-            bottomFrameLayout2.AddChidren(btnTopLine);
-
-            var dateFrameLayout = new FrameLayout()
-            {
-                Y = Application.GetRealHeight(138 + 5),
-                Height = Application.GetRealHeight(668)
-            };
-            bottomFrameLayout2.AddChidren(dateFrameLayout);
-
-            var timeview = new DateView
-            {
-            };
-            dateFrameLayout.AddChidren(timeview);
-
-            var btnSave = new Button
-            {
-                Y = Application.GetRealHeight(1920 - 800),
-                Width = Application.GetRealWidth(200),
-                Height = Application.GetRealHeight(150),
-                Text = "瀹屾垚",
-                TextColor = ZigbeeColor.Current.LogicTimeViewSaveButton,
-                X = Application.GetRealWidth(1080 - 200),
-            };
-            dateFrameLayout.AddChidren(btnSave);
-        }
-        /// <summary>
-        /// 閲嶅啓绉婚櫎鏂规硶
-        /// </summary>
-        public override void RemoveFromParent()
-        {
-            ZbGateway.StatusList.Remove(this);
-            base.RemoveFromParent();
-        }
-
-        #region 鈼� 鎺ュ彛瀹炵幇__________________________
-        /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢 --灏嗗純鐢� 鏀圭敤DeviceInfoChange()
-        /// </summary>
-        /// <returns>The changed.</returns>
-        /// <param name="common">Common.</param>
-        public void Changed(CommonDevice common)
-        {
-
-        }
-        /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢
-        /// </summary>
-        /// <param name="common"></param>
-        /// <param name="typeTag"></param>
-        public void DeviceInfoChange(CommonDevice common, string typeTag)
-        {
-        }
-        /// <summary>
-        /// Changeds the IL ogic status.
-        /// </summary>
-        /// <param name="logic">Logic.</param>
-        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
-        {
-        }
-        /// <summary>
-        /// Changeds the IS cene status.
-        /// </summary>
-        /// <param name="scene">Scene.</param>
-        public void ChangedISceneStatus(Scene scene)
-        {
-        }
-        #endregion
-    }
-}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs
index 2a71d4b..0386a10 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs
@@ -40,6 +40,7 @@
                     Application.RunOnMainThread(() =>
                     {
                         MidRefresh();
+                        bodyView.EndHeaderRefreshing();
                     });
                 }
             });
@@ -79,7 +80,6 @@
             {
                 bodyView.BeginHeaderRefreshing();
                 ReadDoorLockUserInfo();
-                bodyView.EndHeaderRefreshing();
             };
         }
 
@@ -262,16 +262,18 @@
                      {
                          int successConunt = 0;
                          int operateConunt = -1;
-                         Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); });
+                         Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
                          try
                          {
                              var doorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
                              var curAccountDoorLockUserList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetAccountDoorLockUserList(doorLock, curAccountObj.SubAccountDistributedMark);
-
                              if (curAccountDoorLockUserList.Count != 0)
                              {
                                  //淇敼浜戠瀛樺偍淇℃伅
                                  operateConunt = curAccountDoorLockUserList.Count;
+                                 var tempGroupId = new List<List<int>>();
+                                 var tempUserIdList = new List<int> { };
+                                 var tempUserObjList = new List<ZigBee.Device.DoorLock.CloudDoorLockObj> { };
                                  foreach (var curDoorLockUser in curAccountDoorLockUserList)
                                  {
                                      // 璐︽埛涓病鏈夐棬閿佺敤鎴�
@@ -366,136 +368,175 @@
                                      }
                                      else
                                      {
-                                         ZigBee.Device.DoorLock.AccessType accessType;
-                                         if (isFreeze)
+                                         if (tempUserIdList.Count == 9)
+                                         {
+                                             tempGroupId.Add(tempUserIdList);
+                                             tempUserIdList = new List<int>();
+                                         }
+                                         tempUserIdList.Add(int.Parse(curDoorLockUser.DoorLockLocalUserId));
+                                         tempUserObjList.Add(curDoorLockUser);
+                                     }
+                                 }
+                                 tempGroupId.Add(tempUserIdList);
+                                 //鎵归噺鍐荤粨闂ㄩ攣涓殑璐︽埛
+                                 ZigBee.Device.DoorLock.AccessType accessType;
+                                 if (isFreeze)
+                                 {
+                                     accessType = ZigBee.Device.DoorLock.AccessType.DisEnableMoreUsers;
+                                 }
+                                 else
+                                 {
+                                     accessType = ZigBee.Device.DoorLock.AccessType.EnableMoreUsers;
+                                 }
+                                 //鍐荤粨/瑙e喕鐢ㄦ埛
+                                 int count1 = tempGroupId.Count;
+                                 int count2 = 0;
+
+                                 for (int i = 0; i < tempGroupId.Count; i++)
+                                 {
+                                     var tempUserIdList1 = tempGroupId[i];
+                                     if (tempUserIdList1.Count == 0)
+                                     {
+                                         return;
+                                     }
+                                     var passData = doorLock.FreezeAccountData(tempUserIdList1, accessType);
+                                     var resultData = await doorLock.DefaultControlAsync(passData);
+                                     if (resultData != null && resultData.defaultControlResponseData != null)
+                                     {
+                                         if (resultData.defaultControlResponseData.status == 32)
+                                         {
+                                             count2++;
+                                         }
+                                         else if (resultData.defaultControlResponseData.status == 33)
+                                         {
+                                             count2++;
+                                         }
+
+                                         System.Threading.Thread.Sleep(3000);
+                                     }
+                                     else
+                                     {
+                                         Application.RunOnMainThread(() =>
+                                         {
+                                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
+                                         });
+                                         return;
+                                     }
+                                 }
+
+                                 // 鎵归噺鍐荤粨闂ㄩ攣涓殑璐︽埛鍚庯紝鍑嗗鍐荤粨浜戠璐︽埛
+                                 if (count2 == count1)
+                                 {
+                                     foreach (var curDoorLockUser in tempUserObjList)
+                                     {
+                                         if (isFreeze)
                                          {
-                                             accessType = ZigBee.Device.DoorLock.AccessType.DisEnable;
-                                         }
-                                         else
-                                         {
-                                             accessType = ZigBee.Device.DoorLock.AccessType.Enable;
-                                         }
-                                         //鍐荤粨/瑙e喕鐢ㄦ埛
-                                         var passData = doorLock.SetUserAccessData(int.Parse(curDoorLockUser.DoorLockLocalUserId), accessType);
-                                         var resultData = await doorLock.DefaultControlAsync(passData);
-                                         if (resultData != null && resultData.defaultControlResponseData != null)
-                                         {
-                                             if (resultData.defaultControlResponseData.status == 32)
+                                             var refreshDoorLockData = new ZigBee.Device.DoorLock.RefreshDoorLockData();
+                                             if (UserCenterResourse.UserInfo.AuthorityNo != 1)
                                              {
-                                                 var refreshDoorLockData = new ZigBee.Device.DoorLock.RefreshDoorLockData();
-                                                 if (UserCenterResourse.UserInfo.AuthorityNo != 1)
-                                                 {
-                                                     refreshDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
-                                                     refreshDoorLockData.IsOtherAccountCtrl = true;
-                                                 }
-                                                 if (doorLock.DeviceAddr != null)
-                                                 {
-                                                     refreshDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
-                                                 }
-
-                                                 refreshDoorLockData.OpenLockMode = curDoorLockUser.OpenLockMode;
-                                                 refreshDoorLockData.DoorLockLocalUserId = curDoorLockUser.DoorLockLocalUserId;
-                                                 refreshDoorLockData.PrimaryId = curDoorLockUser.Id;
-                                                 refreshDoorLockData.IsFreezeUser = true;
-                                                 refreshDoorLockData.IsTempUnlockAuthority = doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark];
-                                                 //鍐荤粨浜戠
-                                                 var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/UpdateDoorLock", refreshDoorLockData);
-                                                 if (result != null)
-                                                 {
-                                                     if (result.StateCode == "Success")
-                                                     {
-                                                         successConunt++;
-                                                     }
-                                                     else
-                                                     {
-                                                         Application.RunOnMainThread(() =>
-                                                         {
-                                                             if (isFreeze)
-                                                             {
-                                                                 new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
-                                                             }
-                                                             else
-                                                             {
-                                                                 new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
-                                                             }
-                                                             return;
-                                                         });
-                                                     }
-                                                 }
-                                                 else
-                                                 {
-                                                     Application.RunOnMainThread(() =>
-                                                     {
-                                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
-                                                     });
-                                                 }
+                                                 refreshDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
+                                                 refreshDoorLockData.IsOtherAccountCtrl = true;
                                              }
-                                             else if (resultData.defaultControlResponseData.status == 33)
+                                             if (doorLock.DeviceAddr != null)
                                              {
-                                                 var refreshDoorLockData = new ZigBee.Device.DoorLock.RefreshDoorLockData();
-                                                 if (UserCenterResourse.UserInfo.AuthorityNo != 1)
-                                                 {
-                                                     refreshDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
-                                                     refreshDoorLockData.IsOtherAccountCtrl = true;
-                                                 }
-                                                 if (doorLock.DeviceAddr != null)
-                                                 {
-                                                     refreshDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
-                                                 }
+                                                 refreshDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
+                                             }
 
-                                                 refreshDoorLockData.OpenLockMode = curDoorLockUser.OpenLockMode;
-                                                 refreshDoorLockData.DoorLockLocalUserId = curDoorLockUser.DoorLockLocalUserId;
-                                                 refreshDoorLockData.PrimaryId = curDoorLockUser.Id;
-                                                 refreshDoorLockData.IsFreezeUser = false;
-                                                 refreshDoorLockData.IsTempUnlockAuthority = doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark];
-                                                 //瑙e喕浜戠
-                                                 var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/UpdateDoorLock", refreshDoorLockData);
-                                                 if (result != null)
+                                             refreshDoorLockData.OpenLockMode = curDoorLockUser.OpenLockMode;
+                                             refreshDoorLockData.DoorLockLocalUserId = curDoorLockUser.DoorLockLocalUserId;
+                                             refreshDoorLockData.PrimaryId = curDoorLockUser.Id;
+                                             refreshDoorLockData.IsFreezeUser = true;
+                                             refreshDoorLockData.IsTempUnlockAuthority = doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark];
+                                             //鍐荤粨浜戠
+                                             var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/UpdateDoorLock", refreshDoorLockData);
+                                             if (result != null)
+                                             {
+                                                 if (result.StateCode == "Success")
                                                  {
-                                                     if (result.StateCode == "Success")
+                                                     successConunt++;
+                                                 }
+                                                 else
+                                                 {
+                                                     Application.RunOnMainThread(() =>
                                                      {
-                                                         successConunt++;
-                                                     }
-                                                     else
-                                                     {
-                                                         Application.RunOnMainThread(() =>
+                                                         if (isFreeze)
                                                          {
                                                              new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
-                                                         });
-                                                     }
-                                                 }
-                                                 else
-                                                 {
-                                                     Application.RunOnMainThread(() =>
-                                                     {
-                                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
-                                                     });
+                                                         }
+                                                         else
+                                                         {
+                                                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
+                                                         }
+                                                         return;
+                                                     });
                                                  }
                                              }
-                                             else
-                                             {
-                                                 Application.RunOnMainThread(() =>
-                                                 {
-                                                     if (isFreeze)
-                                                     {
-                                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed) + ".", Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
-                                                     }
-                                                     else
-                                                     {
-                                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed) + ".", Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
-                                                     }
-                                                     return;
-                                                 });
-                                             }
+                                             else
+                                             {
+                                                 Application.RunOnMainThread(() =>
+                                                 {
+                                                     new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
+                                                 });
+                                             }
                                          }
                                          else
                                          {
-                                             Application.RunOnMainThread(() =>
+                                             var refreshDoorLockData = new ZigBee.Device.DoorLock.RefreshDoorLockData();
+                                             if (UserCenterResourse.UserInfo.AuthorityNo != 1)
                                              {
-                                                 new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
-                                             });
+                                                 refreshDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
+                                                 refreshDoorLockData.IsOtherAccountCtrl = true;
+                                             }
+                                             if (doorLock.DeviceAddr != null)
+                                             {
+                                                 refreshDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
+                                             }
+
+                                             refreshDoorLockData.OpenLockMode = curDoorLockUser.OpenLockMode;
+                                             refreshDoorLockData.DoorLockLocalUserId = curDoorLockUser.DoorLockLocalUserId;
+                                             refreshDoorLockData.PrimaryId = curDoorLockUser.Id;
+                                             refreshDoorLockData.IsFreezeUser = false;
+                                             refreshDoorLockData.IsTempUnlockAuthority = doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark];
+                                             //瑙e喕浜戠
+                                             var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/UpdateDoorLock", refreshDoorLockData);
+                                             if (result != null)
+                                             {
+                                                 if (result.StateCode == "Success")
+                                                 {
+                                                     successConunt++;
+                                                 }
+                                                 else
+                                                 {
+                                                     Application.RunOnMainThread(() =>
+                                                     {
+                                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
+                                                     });
+                                                 }
+                                             }
+                                             else
+                                             {
+                                                 Application.RunOnMainThread(() =>
+                                                 {
+                                                     new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
+                                                 });
+                                             }
                                          }
-                                     }
+                                     }
+                                 }
+                                 else
+                                 {
+                                     Application.RunOnMainThread(() =>
+                                     {
+                                         if (isFreeze)
+                                         {
+                                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed) + ".", Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
+                                         }
+                                         else
+                                         {
+                                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed) + ".", Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
+                                         }
+                                         return;
+                                     });
                                  }
                              }
                              else
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UnLockMethod.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UnLockMethod.cs
index 348c207..87a5bc5 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UnLockMethod.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UnLockMethod.cs
@@ -83,6 +83,7 @@
                         // 绫诲瀷鍖哄垎 
                         TypeRefresh();
                         CommonPage.Loading.Hide();
+                        bodyView.EndHeaderRefreshing();
                     });
                 }
             });
@@ -235,7 +236,6 @@
             {
                 bodyView.BeginHeaderRefreshing();
                 ReadDoorLockUserInfo();
-                bodyView.EndHeaderRefreshing();
             };
             BlankPicUI();
         }
@@ -670,7 +670,7 @@
                         Height = 10,
                         Width = Application.GetRealWidth(173),
                         X = Application.GetRealWidth(58),
-                        Y = (j + 1) * Application.GetRealHeight(145),
+                        Y = (j + 1) * Application.GetRealHeight(150)-5,
                         BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite,
                     };
                     frameLayoutRow.AddChidren(frameLayoutRowLineHide);
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UndistributeDoorlockUserPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UndistributeDoorlockUserPage.cs
index 60d84c7..4f3edaa 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UndistributeDoorlockUserPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UndistributeDoorlockUserPage.cs
@@ -51,6 +51,7 @@
                     {
                         TypeRefresh();
                         CommonPage.Loading.Hide();
+                        bodyView.EndHeaderRefreshing();
                     });
                 }
             });
@@ -158,7 +159,6 @@
             {
                 bodyView.BeginHeaderRefreshing();
                 ReadDoorLockUserInfo();
-                bodyView.EndHeaderRefreshing();
             };
         }
 
@@ -250,7 +250,7 @@
                 {
                     Y = rowFrameLayout.Height - 1,
                     X = Application.GetRealWidth(176),
-                    Width = Application.GetRealWidth(965),
+                    Width = Application.GetRealWidth(847),
                     Height = 1,
                     BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
                 };
@@ -468,8 +468,10 @@
                 {
                     if (doorLock.IsFreezeAccount[currentAccount.SubAccountDistributedMark] == true)
                     {
-
-                        new Tip() { MaxWidth = 150, Text = btnUserName.Text + Language.StringByID(R.MyInternationalizationString.AccountIsFreezed), Direction = AMPopTipDirection.Down, CloseTime = 1 }.Show(Common.CommonPage.Instance);
+                        Application.RunOnMainThread(() =>
+                        {
+                            new Tip() { MaxWidth = 150, Text = btnUserName.Text + Language.StringByID(R.MyInternationalizationString.AccountIsFreezed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
+                        });
                         return;
                     }
 
@@ -506,106 +508,133 @@
                 bottomFrameLayout.RemoveAll();
             };
 
-            btnFinish.MouseUpEventHandler += async (sender, e) =>
-            {
-                if (curAccountId == "")
-                {
-                    flMain.RemoveFromParent();
-                    bottomFrameLayout.RemoveAll();
-                }
-                else
-                {
-                    var addLockInfo = new ZigBee.Device.DoorLock.AddDoorLockData();
-                    if (UserCenterResourse.UserInfo.AuthorityNo != 1)
-                    {
-                        addLockInfo.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
-                        addLockInfo.IsOtherAccountCtrl = true;
-                    }
-                    addLockInfo.CloudAccountId = curAccountId;
-                    if (doorLock.DeviceAddr != null)
-                    {
-                        addLockInfo.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
-                    }
-                    addLockInfo.OpenLockMode = curDoorLockUser.UnlockType;
-                    addLockInfo.DoorLockLocalUserId = curDoorLockUser.UserID.ToString();
-
-                    switch (curDoorLockUser.UnlockType)
-                    {
-                        case 0:
-                            if (curDoorLockUser.UserName != "" && curDoorLockUser.UserName != null)
-                            {
-                                addLockInfo.UserIdRemarks = curDoorLockUser.UserName;
-                            }
-                            else
-                            {
-                                addLockInfo.UserIdRemarks = Language.StringByID(R.MyInternationalizationString.Password) + "ID" + curDoorLockUser.UserID;
-                            }
-                            break;
-                        case 3:
-                            if (curDoorLockUser.UserName != "" && curDoorLockUser.UserName != null)
-                            {
-                                addLockInfo.UserIdRemarks = curDoorLockUser.UserName;
-                            }
-                            else
-                            {
-                                addLockInfo.UserIdRemarks = Language.StringByID(R.MyInternationalizationString.IcCard) + "ID" + curDoorLockUser.UserID;
-                            }
-                            break;
-                        case 15:
-                            if (curDoorLockUser.UserName != "" && curDoorLockUser.UserName != null)
-                            {
-                                addLockInfo.UserIdRemarks = curDoorLockUser.UserName;
-                            }
-                            else
-                            {
-                                addLockInfo.UserIdRemarks = Language.StringByID(R.MyInternationalizationString.Fingerprint) + "ID" + +curDoorLockUser.UserID;
-                            }
-                            break;
-                    }
-
-                    addLockInfo.EntryTime = curDoorLockUser.EntryTime;
-                    var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/AddDoorLock", addLockInfo);
-                    if (result != null)
-                    {
-                        if (result.StateCode == "Success")
-                        {
-                            //瀛橀棬閿佷俊鎭�
-                            var resultList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetCloudLocalDoorLocklist(doorLock, curAccountId);
-                            var uList = new List<int> { };
-                            if (resultList != null)
-                            {
-                                foreach (var a in resultList.Keys)
-                                {
-                                    uList.Add(a);
-                                }
-                            }
-                            var d = uList.Find((value) => { return value == curDoorLockUser.UserID; });
-                            if (d != null)
-                            {
-                                TypeRefresh();
-                                flMain.RemoveFromParent();
-                                bottomFrameLayout.RemoveAll();
-                            }
-                            else
-                            {
-                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Down, CloseTime = 1 }.Show(Common.CommonPage.Instance);
-                            }
-                        }
-                        else
-                        {
-                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Down, CloseTime = 1 }.Show(Common.CommonPage.Instance);
-                            flMain.RemoveFromParent();
-                            bottomFrameLayout.RemoveAll();
-                        }
-                    }
-                    else
-                    {
-                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish);
-                        flMain.RemoveFromParent();
-                        bottomFrameLayout.RemoveAll();
-                    }
-                }
-            };
+            btnFinish.MouseUpEventHandler += (sender, e) =>
+           {
+               System.Threading.Tasks.Task.Run(async () =>
+               {
+                   try
+                   {
+                       Application.RunOnMainThread(() =>
+                       {
+                           CommonPage.Loading.Start("");
+                       });
+                       if (curAccountId == "")
+                       {  
+                           Application.RunOnMainThread(() =>
+                           {
+                               flMain.RemoveFromParent();
+                               bottomFrameLayout.RemoveAll();
+                               CommonPage.Loading.Hide ();
+                           });
+                       }
+                       else
+                       {
+                           var addLockInfo = new ZigBee.Device.DoorLock.AddDoorLockData();
+                           if (UserCenterResourse.UserInfo.AuthorityNo != 1)
+                           {
+                               addLockInfo.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
+                               addLockInfo.IsOtherAccountCtrl = true;
+                           }
+                           addLockInfo.CloudAccountId = curAccountId;
+                           if (doorLock.DeviceAddr != null)
+                           {
+                               addLockInfo.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
+                           }
+                           addLockInfo.OpenLockMode = curDoorLockUser.UnlockType;
+                           addLockInfo.DoorLockLocalUserId = curDoorLockUser.UserID.ToString();
+                           switch (curDoorLockUser.UnlockType)
+                           {
+                               case 0:
+                                   if (curDoorLockUser.UserName != "" && curDoorLockUser.UserName != null)
+                                   {
+                                       addLockInfo.UserIdRemarks = curDoorLockUser.UserName;
+                                   }
+                                   else
+                                   {
+                                       addLockInfo.UserIdRemarks = Language.StringByID(R.MyInternationalizationString.Password) + "ID" + curDoorLockUser.UserID;
+                                   }
+                                   break;
+                               case 3:
+                                   if (curDoorLockUser.UserName != "" && curDoorLockUser.UserName != null)
+                                   {
+                                       addLockInfo.UserIdRemarks = curDoorLockUser.UserName;
+                                   }
+                                   else
+                                   {
+                                       addLockInfo.UserIdRemarks = Language.StringByID(R.MyInternationalizationString.IcCard) + "ID" + curDoorLockUser.UserID;
+                                   }
+                                   break;
+                               case 15:
+                                   if (curDoorLockUser.UserName != "" && curDoorLockUser.UserName != null)
+                                   {
+                                       addLockInfo.UserIdRemarks = curDoorLockUser.UserName;
+                                   }
+                                   else
+                                   {
+                                       addLockInfo.UserIdRemarks = Language.StringByID(R.MyInternationalizationString.Fingerprint) + "ID" + +curDoorLockUser.UserID;
+                                   }
+                                   break;
+                           }
+                           addLockInfo.EntryTime = curDoorLockUser.EntryTime;
+                           var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/AddDoorLock", addLockInfo);
+                           if (result != null)
+                           {
+                               if (result.StateCode == "Success")
+                               {
+                                   //瀛橀棬閿佷俊鎭�
+                                   var resultList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetCloudLocalDoorLocklist(doorLock, curAccountId);
+                                   var uList = new List<int> { };
+                                   if (resultList != null)
+                                   {
+                                       foreach (var a in resultList.Keys)
+                                       {
+                                           uList.Add(a);
+                                       }
+                                   }
+                                   var d = uList.Find((value) => { return value == curDoorLockUser.UserID; });
+                                   if (d != null)
+                                   {
+                                       Application.RunOnMainThread(() =>
+                                       {
+                                           TypeRefresh();
+                                           CommonPage.Loading.Hide();
+                                           flMain.RemoveFromParent();
+                                           bottomFrameLayout.RemoveAll();
+                                       }); 
+                                   }
+                                   else
+                                   {
+                                       Application.RunOnMainThread(() =>
+                                       {
+                                           CommonPage.Loading.Hide();
+                                           new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Down, CloseTime = 1 }.Show(Common.CommonPage.Instance);
+                                       });
+                                   }
+                               }
+                               else
+                               {
+                                   Application.RunOnMainThread(() =>
+                                   {
+                                       CommonPage.Loading.Hide();
+                                       new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Down, CloseTime = 1 }.Show(Common.CommonPage.Instance);
+                                   });
+                                   return;
+                               }
+                           }
+                           else
+                           {
+                               Application.RunOnMainThread(() =>
+                               {
+                                   CommonPage.Loading.Hide();
+                                   new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(btnFinish);
+                               });
+                               return;
+                           }
+                       }
+                   }
+                   catch { }
+               });
+           };
         }
 
         // 渚ц竟瀵艰埅鏍�
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs
index e019808..194f8d7 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs
@@ -85,6 +85,7 @@
                     {
                         MidFrameLayoutContent();
                         CommonPage.Loading.Hide();
+                        midVerticalScrolViewLayout.EndHeaderRefreshing();
                     });
                 }
             });
@@ -150,14 +151,15 @@
             {
             };
             this.midFrameLayout.AddChidren(midVerticalScrolViewLayout);
+
+            CommonPage.Loading.Start("Loading...");
+            ReadAccountDoorLockInfoList();
+
             midVerticalScrolViewLayout.BeginHeaderRefreshingAction += () =>
             {
                 midVerticalScrolViewLayout.BeginHeaderRefreshing();
-
-                midVerticalScrolViewLayout.EndHeaderRefreshing();
+                ReadAccountDoorLockInfoList();
             };
-            CommonPage.Loading.Start("Loading...");
-            ReadAccountDoorLockInfoList();
         }
 
         /// <summary>
@@ -220,7 +222,7 @@
                     line2.Visible = false;
                 }
 
-                if (currentAccount.UserName != null)
+                if (!string.IsNullOrEmpty(currentAccount.UserName))
                 {
                     btnText.Text = currentAccount.UserName;
                 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayFirmwareUpdateForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayFirmwareUpdateForm.cs
index ce5d9ed..20457c4 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayFirmwareUpdateForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayFirmwareUpdateForm.cs
@@ -402,12 +402,12 @@
             {
                 //鍗囩骇瀵硅薄
                 string gwId = HdlGatewayLogic.Current.GetGatewayId(realway);
-                if (FirmwareUpdateResourse.dicGatewayUpdateList.ContainsKey(gwId) == true
-                    && FirmwareUpdateResourse.dicGatewayUpdateList[gwId].IsFinishUpdate == true)
+                if (FirmwareUpdateResourse.dicUpdateList.ContainsKey(gwId) == true
+                    && FirmwareUpdateResourse.dicUpdateList[gwId].IsFinishUpdate == true)
                 {
                     //濡傛灉缃戝叧宸茬粡鍗囩骇瀹屾垚锛岀晫闈㈠叧闂椂锛屽垯绉婚櫎鍐呭瓨
-                    FirmwareUpdateResourse.dicGatewayUpdateList[gwId].Dispose();
-                    FirmwareUpdateResourse.dicGatewayUpdateList.Remove(gwId);
+                    FirmwareUpdateResourse.dicUpdateList[gwId].Dispose();
+                    FirmwareUpdateResourse.dicUpdateList.Remove(gwId);
                 }
             };
         }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayHistoryFirmwareVersionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayHistoryFirmwareVersionForm.cs
index d6d901c..f01bbc5 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayHistoryFirmwareVersionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayHistoryFirmwareVersionForm.cs
@@ -167,7 +167,7 @@
             rowlayout.ButtonClickEvent += (sender, e) =>
             {
                 string gwID = HdlGatewayLogic.Current.GetGatewayId(upDatezbGateway);
-                if (FirmwareUpdateResourse.dicGatewayUpdateList.ContainsKey(gwID) == true)
+                if (FirmwareUpdateResourse.dicUpdateList.ContainsKey(gwID) == true)
                 {
                     this.CloseForm();
                     return;
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionMainForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionMainForm.cs
index 429fcee..9c9cc3c 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionMainForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionMainForm.cs
@@ -50,19 +50,19 @@
         {
             listView.RemoveAll();
 
-            this.AddRowControl("褰撳墠韬唤", 400, UserCenterResourse.UserInfo.AuthorityText, 400);
+            this.AddNormalRowControl("褰撳墠韬唤", 400, UserCenterResourse.UserInfo.AuthorityText, 400);
 
-            this.AddRowControl("浣忓畢ID", 400, Common.Config.Instance.Home.Id, 700);
+            this.AddTopButtomRowControl("浣忓畢ID", 400, Common.Config.Instance.Home.Id, 900);
 
-            this.AddRowControl("璐﹀彿GUID", 400, Common.Config.Instance.Home.MainUserDistributedMark, 700);
+            this.AddTopButtomRowControl("璐﹀彿GUID", 400, Common.Config.Instance.Home.MainUserDistributedMark, 900);
 
-            this.AddRowControl("浣忓畢鍒嗕韩", 400, Common.Config.Instance.Home.IsOthreShare == true ? "鏄�" : "鍚�", 400);
+            this.AddNormalRowControl("浣忓畢鍒嗕韩", 400, Common.Config.Instance.Home.IsOthreShare == true ? "鏄�" : "鍚�", 400);
 
-            this.AddRowControl("璐﹀彿绫诲瀷", 400, Common.Config.Instance.Home.AccountType.ToString(), 400);
+            this.AddNormalRowControl("璐﹀彿绫诲瀷", 400, Common.Config.Instance.Home.AccountType.ToString(), 400);
 
-            this.AddRowControl("杩滅▼杩炴帴", 400, ZigBee.Device.ZbGateway.IsRemote == true ? "鏄�" : "鍚�", 400);
+            this.AddNormalRowControl("杩滅▼杩炴帴", 400, ZigBee.Device.ZbGateway.IsRemote == true ? "鏄�" : "鍚�", 400);
 
-            this.AddRowControl("鎷ユ湁杩滅▼鏉冮檺", 400, ZigBee.Device.ZbGateway.AllowRemoteCtrl == true ? "鏄�" : "鍚�", 400);
+            this.AddNormalRowControl("鎷ユ湁杩滅▼鏉冮檺", 400, ZigBee.Device.ZbGateway.AllowRemoteCtrl == true ? "鏄�" : "鍚�", 400);
 
             int count = HdlGatewayLogic.Current.GetAllLocalGateway().Count;
             var row1 = new FrameRowControl(listView.rowSpace / 2);
@@ -125,7 +125,7 @@
         /// <param name="width1"></param>
         /// <param name="viewText"></param>
         /// <param name="width2"></param>
-        private FrameRowControl AddRowControl(string caption, int width1, string viewText, int width2)
+        private FrameRowControl AddNormalRowControl(string caption, int width1, string viewText, int width2)
         {
             var row1 = new FrameRowControl(listView.rowSpace / 2);
             listView.AddChidren(row1);
@@ -137,6 +137,25 @@
             return row1;
         }
 
+        /// <summary>
+        /// 娣诲姞琛�
+        /// </summary>
+        /// <param name="caption"></param>
+        /// <param name="width1"></param>
+        /// <param name="viewText"></param>
+        /// <param name="width2"></param>
+        private FrameRowControl AddTopButtomRowControl(string caption, int width1, string viewText, int width2)
+        {
+            var row1 = new FrameRowControl(listView.rowSpace / 2);
+            listView.AddChidren(row1);
+            row1.AddTopView(caption, width1);
+            row1.AddBottomView(viewText, width2);
+            row1.AddBottomLine();
+            row1.UseClickStatu = false;
+
+            return row1;
+        }
+
         #endregion
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Member/AddMemberByIdForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Member/AddMemberByIdForm.cs
index 8925b3c..f9b943a 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Member/AddMemberByIdForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Member/AddMemberByIdForm.cs
@@ -43,13 +43,15 @@
             rowAccount.Y = Application.GetRealHeight(23);
             frame.AddChidren(rowAccount);
             //搴曠嚎
-            rowAccount.AddBottomLine();
+            var btnLine = rowAccount.AddBottomLine();
 
             //璇疯緭鍏ラ渶瑕佸姞鍏ユ垚鍛樼殑ID(Email/鎵嬫満鍙�)
             var txtCode = new TextInputControl(Application.GetRealWidth(900), rowAccount.Height, false);
             txtCode.X = ControlCommonResourse.XXLeft;
             txtCode.PlaceholderText = Language.StringByID(R.MyInternationalizationString.uPleaseInputAddMenberID);
             rowAccount.AddChidren(txtCode, ChidrenBindMode.NotBind);
+            //鑱斿姩绾跨殑鐘舵��
+            txtCode.btnLine = btnLine;
 
             //涓嬩竴姝�
             var btnBottom = new BottomClickButton(688);
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/OtherParty/OtherPartyAccountMenuForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/OtherParty/OtherPartyAccountMenuForm.cs
index 1e5dfa7..f49441e 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/OtherParty/OtherPartyAccountMenuForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/OtherParty/OtherPartyAccountMenuForm.cs
@@ -203,6 +203,11 @@
 #if Android
             com.hdl.home.Application.WXLogin();
             com.hdl.home.WXEntryActivity.RespAction = (authStr) =>
+#endif
+#if iOS
+            Home.IOS.AppDelegate.WXLogin();
+            Home.IOS.AppDelegate.RespAction = (authStr) =>
+#endif
             {
                 if (string.IsNullOrEmpty(authStr) == true)
                 {
@@ -212,7 +217,6 @@
                 //缁戝畾寰俊
                 this.BindWechat(authRes.access_token, authRes.refresh_token, authRes.openid);
             };
-#endif
         }
 
         /// <summary>
@@ -246,10 +250,10 @@
             result = await UserCenterLogic.GetResultStatuByRequestHttps("ZigbeeUsers/BindAuthUserToAccount", false, pra2);
             if (result == true)
             {
-                //缁戝畾寰俊鎴愬姛!
-                string msg = Language.StringByID(R.MyInternationalizationString.uBindSomethingSuccess);
-                msg = msg.Replace("{0}", Language.StringByID(R.MyInternationalizationString.uWebChat));
-                this.ShowMassage(ShowMsgType.Tip, msg);
+                //缁戝畾鎴愬姛锛佷笅娆′綘鍙互鐢ㄥ井淇0}璐﹀彿蹇�熺櫥褰曞暒
+                string msg = Language.StringByID(R.MyInternationalizationString.uBindWebchatSuccessMsg);
+                msg = msg.Replace("{0}", "\r\n");
+                this.ShowMassage(ShowMsgType.Normal, msg, null, Language.StringByID(R.MyInternationalizationString.uWell));
                 //閲嶆柊鍒锋柊鐣岄潰
                 this.InitMiddleData();
             }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Password/CheckNewEmailForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Password/CheckNewEmailForm.cs
index 6499963..ea88189 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Password/CheckNewEmailForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Password/CheckNewEmailForm.cs
@@ -65,6 +65,8 @@
             btnLine.Y = txtValue.Bottom;
             btnLine.BackgroundColor = UserCenterColor.Current.ButtomLine;
             frame.AddChidren(btnLine);
+            //鑱斿姩绾跨殑鐘舵��
+            txtValue.btnLine = btnLine;
 
             if (string.IsNullOrEmpty(UserCenterResourse.UserInfo.Email) == false)
             {
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Password/CheckNewPhoneForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Password/CheckNewPhoneForm.cs
index b3cbe45..f54a9bf 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Password/CheckNewPhoneForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Password/CheckNewPhoneForm.cs
@@ -83,6 +83,8 @@
             btnLine.Y = txtValue.Bottom;
             btnLine.BackgroundColor = UserCenterColor.Current.ButtomLine;
             frame.AddChidren(btnLine);
+            //鑱斿姩绾跨殑鐘舵��
+            txtValue.btnLine = btnLine;
 
             if (string.IsNullOrEmpty(UserCenterResourse.UserInfo.Phone) == false)
             {
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Password/EditorAccountPasswordForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Password/EditorAccountPasswordForm.cs
index af5834a..f788e5f 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Password/EditorAccountPasswordForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Password/EditorAccountPasswordForm.cs
@@ -55,7 +55,9 @@
             txtoldPsw.PlaceholderText = Language.StringByID(R.MyInternationalizationString.PleaseInputOldPsw);
             rowOldPsw.AddChidren(txtoldPsw);
             //搴曠嚎
-            rowOldPsw.AddBottomLine();
+            var btnOldLine = rowOldPsw.AddBottomLine();
+            //鑱斿姩绾跨殑鐘舵��
+            txtoldPsw.btnLine = btnOldLine;
             //鍥炬爣
             var btnoldPswIcon = rowOldPsw.AddMostRightEmptyIcon(58, 58);
             btnoldPswIcon.UnSelectedImagePath = "Item/HidenPWD.png";
@@ -93,7 +95,9 @@
             txtNewPsw.PlaceholderText = Language.StringByID(R.MyInternationalizationString.uPleaseInputNewPassword);
             rowNewPsw.AddChidren(txtNewPsw);
             //搴曠嚎
-            rowNewPsw.AddBottomLine();
+            var btnNewLine = rowNewPsw.AddBottomLine();
+            //鑱斿姩绾跨殑鐘舵��
+            txtNewPsw.btnLine = btnNewLine;
             //鍥炬爣
             var btnNewPswIcon = rowNewPsw.AddMostRightEmptyIcon(58, 58);
             btnNewPswIcon.UnSelectedImagePath = "Item/HidenPWD.png";
@@ -173,7 +177,7 @@
             }
             //瀵嗙爜宸茬粡淇敼锛岃閲嶆柊鐧诲綍
             string msg = Language.StringByID(R.MyInternationalizationString.uPasswordIsHadChangedAndLoginAgain);
-            this.ShowMassage(ShowMsgType.Normal, msg, () =>
+            this.ShowMassage(ShowMsgType.Remind, msg, () =>
              {
                  //浠庢柊鐧诲綍
                  UserCenterLogic.ReLoginAgain(Common.Config.Instance.Account);
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Password/ForgotAccountPasswordForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Password/ForgotAccountPasswordForm.cs
index 84eab2b..b58e19e 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Password/ForgotAccountPasswordForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Password/ForgotAccountPasswordForm.cs
@@ -154,8 +154,6 @@
                 if (frameTran.Visible == false)
                 {
                     frameTran.Visible = true;
-                    //鍔ㄧ敾鏁堟灉
-                    frameAnimate.Animate = Animate.UpToDown;
                 }
             };
         }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Password/ForgotSecondaryPasswordForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Password/ForgotSecondaryPasswordForm.cs
index 535ad29..983b93d 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Password/ForgotSecondaryPasswordForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Password/ForgotSecondaryPasswordForm.cs
@@ -154,8 +154,6 @@
                 if (frameTran.Visible == false)
                 {
                     frameTran.Visible = true;
-                    //鍔ㄧ敾鏁堟灉
-                    frameAnimate.Animate = Animate.UpToDown;
                 }
             };
         }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Residence/LookRoomSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Residence/LookRoomSettionForm.cs
index 20a5eea..7cf9971 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Residence/LookRoomSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Residence/LookRoomSettionForm.cs
@@ -248,53 +248,15 @@
             foreach (var device in listDevice)
             {
                 var typeInfo = Common.LocalDevice.Current.GetNotHdlMyDeviceEnumInfo(new List<ZigBee.Device.CommonDevice>() { device });
-                if (device.Type == DeviceType.IASZone)
+                //鎸夋墍灞濱D鍒嗙粍
+                if (dic.ContainsKey(typeInfo.BeloneTextId) == false)
                 {
-                    //杩欎釜寮哄埗涓轰紶鎰熷櫒
-                    typeInfo.BeloneTextId = R.MyInternationalizationString.uDeviceBelongId1200;
-                    typeInfo.ConcreteType = Common.DeviceConcreteType.Sensor;
-                }
-                if (device.Type == DeviceType.OnOffOutput)
-                {
-                    string iconPath = string.Empty;
-                    //缁х數鍣ㄧ殑鏃跺��,闇�瑕佺壒娈婂鐞�
-                    if (device.DfunctionType == DeviceFunctionType.A寮�鍏�)
-                    {
-                        typeInfo.BeloneTextId = R.MyInternationalizationString.uSwitch;
-                        iconPath = "Device/Switch.png";
-                    }
-                    else if (device.DfunctionType == DeviceFunctionType.A鎻掑骇)
-                    {
-                        typeInfo.BeloneTextId = R.MyInternationalizationString.uSocket1;
-                        iconPath = "Device/Socket1.png";
-                    }
-                    else if (device.DfunctionType == DeviceFunctionType.A鐏厜)
-                    {
-                        typeInfo.BeloneTextId = R.MyInternationalizationString.uLight;
-                        iconPath = "Device/Light.png";
-                    }
-                    else
-                    {
-                        //缁х數鍣�
-                        typeInfo.BeloneTextId = R.MyInternationalizationString.uDeviceBelongId2300;
-                        iconPath = "Device/Relay.png";
-                    }
-                    if (dic.ContainsKey(typeInfo.BeloneTextId) == false)
-                    {
-                        dic[typeInfo.BeloneTextId] = new DeviceRowInfo();
-                        dic[typeInfo.BeloneTextId].IconPath = iconPath;
-                    }
-                }
-                else
-                {
-                    if (dic.ContainsKey(typeInfo.BeloneTextId) == false)
-                    {
-                        dic[typeInfo.BeloneTextId] = new DeviceRowInfo();
-                        string path1 = string.Empty;
-                        string path2 = string.Empty;
-                        Common.LocalDevice.Current.GetDeviceBeloneIcon(typeInfo.ConcreteType, ref path1, ref path2);
-                        dic[typeInfo.BeloneTextId].IconPath = path1;
-                    }
+                    dic[typeInfo.BeloneTextId] = new DeviceRowInfo();
+                    string path1 = string.Empty;
+                    string path2 = string.Empty;
+                    //鑾峰彇鍥剧墖
+                    Common.LocalDevice.Current.GetDeviceBeloneIcon(typeInfo.ConcreteType, ref path1, ref path2);
+                    dic[typeInfo.BeloneTextId].IconPath = path1;
                 }
                 dic[typeInfo.BeloneTextId].listDeviceKeys.Add(Common.LocalDevice.Current.GetDeviceMainKeys(device));
             }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceListForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceListForm.cs
index 36fcf3d..48bf303 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceListForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceListForm.cs
@@ -529,7 +529,7 @@
             public PageSettingInfo PageSetting = new PageSettingInfo()
             {
                 Page = 1,
-                PageSize = 500
+                PageSize = 5000
             };
         }
 
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetAddMenuForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetAddMenuForm.cs
index 3a1f691..5b2ab68 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetAddMenuForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetAddMenuForm.cs
@@ -289,45 +289,12 @@
                     string selectPath = string.Empty;
 
                     var typeInfo = Common.LocalDevice.Current.GetNotHdlMyDeviceEnumInfo(new List<CommonDevice>() { device });
-                    if (device.Type == DeviceType.OnOffOutput)
+                    //鑾峰彇鍥剧墖
+                    Common.LocalDevice.Current.GetDeviceBeloneIcon(typeInfo.ConcreteType, ref unSelectPath, ref selectPath);
+                    if (dicRoomData.ContainsKey(typeInfo.BeloneTextId) == false)
                     {
-                        //缁х數鍣ㄧ殑鏃跺��,闇�瑕佺壒娈婂鐞�
-                        if (device.DfunctionType == DeviceFunctionType.A寮�鍏�)
-                        {
-                            typeInfo.BeloneTextId = R.MyInternationalizationString.uSwitch;
-                            unSelectPath = "Device/Switch.png";
-                        }
-                        else if (device.DfunctionType == DeviceFunctionType.A鎻掑骇)
-                        {
-                            typeInfo.BeloneTextId = R.MyInternationalizationString.uSocket1;
-                            unSelectPath = "Device/Socket1.png";
-                        }
-                        else if (device.DfunctionType == DeviceFunctionType.A鐏厜)
-                        {
-                            typeInfo.BeloneTextId = R.MyInternationalizationString.uLight;
-                            unSelectPath = "Device/Light.png";
-                        }
-                        else
-                        {
-                            //缁х數鍣�
-                            typeInfo.BeloneTextId = R.MyInternationalizationString.uDeviceBelongId2300;
-                            unSelectPath = "Device/Relay.png";
-                        }
-                        if (dicRoomData.ContainsKey(typeInfo.BeloneTextId) == false)
-                        {
-                            dicRoomData[typeInfo.BeloneTextId] = new uRowInformation();
-                            dicRoomData[typeInfo.BeloneTextId].IconPath = unSelectPath;
-                        }
-                    }
-                    else
-                    {
-                        //鑾峰彇鍥剧墖
-                        Common.LocalDevice.Current.GetDeviceBeloneIcon(typeInfo.ConcreteType, ref unSelectPath, ref selectPath);
-                        if (dicRoomData.ContainsKey(typeInfo.BeloneTextId) == false)
-                        {
-                            dicRoomData[typeInfo.BeloneTextId] = new uRowInformation();
-                            dicRoomData[typeInfo.BeloneTextId].IconPath = unSelectPath;
-                        }
+                        dicRoomData[typeInfo.BeloneTextId] = new uRowInformation();
+                        dicRoomData[typeInfo.BeloneTextId].IconPath = unSelectPath;
                     }
                     dicRoomData[typeInfo.BeloneTextId].listDevice.Add(device);
                 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetStatuSelectCurtainForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetStatuSelectCurtainForm.cs
index ab7fc66..a4164ec 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetStatuSelectCurtainForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetStatuSelectCurtainForm.cs
@@ -291,8 +291,6 @@
 
                 this.CloseForm();
             };
-            //鍔ㄧ敾鏁堟灉
-            frameTransparent.Animate = Animate.DownToUp;
         }
 
         #endregion
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetStatuSelectLightForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetStatuSelectLightForm.cs
index c5f6d17..aeb5165 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetStatuSelectLightForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetStatuSelectLightForm.cs
@@ -286,8 +286,6 @@
 
                 this.CloseForm();
             };
-            //鍔ㄧ敾鏁堟灉
-            frameTransparent.Animate = Animate.DownToUp;
         }
 
         #endregion
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetStatuSelectSwitchForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetStatuSelectSwitchForm.cs
index 4464584..97290d5 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetStatuSelectSwitchForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetStatuSelectSwitchForm.cs
@@ -245,8 +245,6 @@
 
                 this.CloseForm();
             };
-            //鍔ㄧ敾鏁堟灉
-            frameTransparent.Animate = Animate.DownToUp;
         }
 
         #endregion
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/CoercePswAddContactForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/CoercePswAddContactForm.cs
index 3073e2b..9e3a6c2 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/CoercePswAddContactForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/CoercePswAddContactForm.cs
@@ -112,6 +112,8 @@
             btnLine.Y = Application.GetRealHeight(150);
             btnLine.Gravity = Gravity.CenterHorizontal;
             frameBack.AddChidren(btnLine);
+            //鑱斿姩绾跨殑鐘舵��
+            txtPhone.btnLine = btnLine;
 
             //澶囨敞
             var txtNote = new TextInputControl(Application.GetRealWidth(740), txtPhone.Height, false);
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/AddNewSharedContentForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/AddNewSharedContentForm.cs
index 97b2df2..816556e 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/AddNewSharedContentForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/AddNewSharedContentForm.cs
@@ -410,43 +410,9 @@
                     continue;
                 }
                 var typeInfo = Common.LocalDevice.Current.GetNotHdlMyDeviceEnumInfo(new List<ZigBee.Device.CommonDevice>() { device });
-                if (device.Type == DeviceType.IASZone)
+                if (dic.ContainsKey(typeInfo.BeloneTextId) == false)
                 {
-                    //杩欎釜寮哄埗涓轰紶鎰熷櫒
-                    typeInfo.BeloneTextId = R.MyInternationalizationString.uDeviceBelongId1200;
-                    typeInfo.ConcreteType = Common.DeviceConcreteType.Sensor;
-                }
-                if (device.Type == DeviceType.OnOffOutput)
-                {
-                    //缁х數鍣ㄧ殑鏃跺��,闇�瑕佺壒娈婂鐞�
-                    if (device.DfunctionType == DeviceFunctionType.A寮�鍏�)
-                    {
-                        typeInfo.BeloneTextId = R.MyInternationalizationString.uSwitch;
-                    }
-                    else if (device.DfunctionType == DeviceFunctionType.A鎻掑骇)
-                    {
-                        typeInfo.BeloneTextId = R.MyInternationalizationString.uSocket1;
-                    }
-                    else if (device.DfunctionType == DeviceFunctionType.A鐏厜)
-                    {
-                        typeInfo.BeloneTextId = R.MyInternationalizationString.uLight;
-                    }
-                    else
-                    {
-                        //缁х數鍣�
-                        typeInfo.BeloneTextId = R.MyInternationalizationString.uDeviceBelongId2300;
-                    }
-                    if (dic.ContainsKey(typeInfo.BeloneTextId) == false)
-                    {
-                        dic[typeInfo.BeloneTextId] = new List<CommonDevice>();
-                    }
-                }
-                else
-                {
-                    if (dic.ContainsKey(typeInfo.BeloneTextId) == false)
-                    {
-                        dic[typeInfo.BeloneTextId] = new List<CommonDevice>();
-                    }
+                    dic[typeInfo.BeloneTextId] = new List<CommonDevice>();
                 }
                 dic[typeInfo.BeloneTextId].Add(device);
             }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/LookSharedContentForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/LookSharedContentForm.cs
index 73b6939..df51a9c 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/LookSharedContentForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/LookSharedContentForm.cs
@@ -389,43 +389,9 @@
             foreach (var device in listDevice)
             {
                 var typeInfo = Common.LocalDevice.Current.GetNotHdlMyDeviceEnumInfo(new List<ZigBee.Device.CommonDevice>() { device });
-                if (device.Type == DeviceType.IASZone)
+                if (dic.ContainsKey(typeInfo.BeloneTextId) == false)
                 {
-                    //杩欎釜寮哄埗涓轰紶鎰熷櫒
-                    typeInfo.BeloneTextId = R.MyInternationalizationString.uDeviceBelongId1200;
-                    typeInfo.ConcreteType = Common.DeviceConcreteType.Sensor;
-                }
-                if (device.Type == DeviceType.OnOffOutput)
-                {
-                    //缁х數鍣ㄧ殑鏃跺��,闇�瑕佺壒娈婂鐞�
-                    if (device.DfunctionType == DeviceFunctionType.A寮�鍏�)
-                    {
-                        typeInfo.BeloneTextId = R.MyInternationalizationString.uSwitch;
-                    }
-                    else if (device.DfunctionType == DeviceFunctionType.A鎻掑骇)
-                    {
-                        typeInfo.BeloneTextId = R.MyInternationalizationString.uSocket1;
-                    }
-                    else if (device.DfunctionType == DeviceFunctionType.A鐏厜)
-                    {
-                        typeInfo.BeloneTextId = R.MyInternationalizationString.uLight;
-                    }
-                    else
-                    {
-                        //缁х數鍣�
-                        typeInfo.BeloneTextId = R.MyInternationalizationString.uDeviceBelongId2300;
-                    }
-                    if (dic.ContainsKey(typeInfo.BeloneTextId) == false)
-                    {
-                        dic[typeInfo.BeloneTextId] = new List<CommonDevice>();
-                    }
-                }
-                else
-                {
-                    if (dic.ContainsKey(typeInfo.BeloneTextId) == false)
-                    {
-                        dic[typeInfo.BeloneTextId] = new List<CommonDevice>();
-                    }
+                    dic[typeInfo.BeloneTextId] = new List<CommonDevice>();
                 }
                 dic[typeInfo.BeloneTextId].Add(device);
             }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Suggestion/FeedbackForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Suggestion/FeedbackForm.cs
index 60082de..59e7347 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Suggestion/FeedbackForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Suggestion/FeedbackForm.cs
@@ -63,7 +63,6 @@
             frameInput.AddChidren(btnFild);
 
             //鎮ㄧ殑鍙嶉鍜屾剰瑙佷細璁╂垜浠彉寰楁洿濂�
-            //var txtInput = new TextInputControl(bodyFrameLayout.Width - ControlCommonResourse.XXLeft * 2, Application.GetRealHeight(470), false);
             var txtInput = new EditTextView();
             txtInput.Width = bodyFrameLayout.Width - ControlCommonResourse.XXLeft * 2;
             txtInput.Height = Application.GetRealHeight(470);
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/UserMain/UserInformationForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/UserMain/UserInformationForm.cs
index c203417..5395cca 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/UserMain/UserInformationForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/UserMain/UserInformationForm.cs
@@ -98,7 +98,7 @@
             rowName.UseClickStatu = false;
             listMidFrame.AddChidren(rowName);
             //搴曠嚎
-            rowName.AddBottomLine();
+            var btnNameLine = rowName.AddBottomLine();
             //鍚嶇ОView
             rowName.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uName), 350);
             //鍚嶇О杈撳叆
@@ -121,6 +121,8 @@
                 //鏇存柊鐢ㄦ埛鍚�
                 this.SaveUserName(txtName.Text.Trim());
             });
+            //鑱斿姩绾跨殑鐘舵��
+            txtName.btnLine = btnNameLine;
 
             var rowQrCode = new FrameRowControl(listMidFrame.rowSpace / 2);
             listMidFrame.AddChidren(rowQrCode);
@@ -146,7 +148,6 @@
             rowEmail.AddRightArrow();
             //閭
             var btnEmail = rowEmail.AddMostRightView(UserCenterResourse.UserInfo.Email, 500);
-            btnEmail.IsBold = true;
             if (string.IsNullOrEmpty(UserCenterResourse.UserInfo.Email) == true)
             {
                 //鏈缃�,璇风粦瀹�
@@ -176,7 +177,6 @@
             rowPhone.AddRightArrow();
             //鎵嬫満鍙�
             var btnPhone = rowPhone.AddMostRightView(UserCenterResourse.UserInfo.Phone, 500);
-            btnPhone.IsBold = true;
             if (string.IsNullOrEmpty(UserCenterResourse.UserInfo.Phone) == true)
             {
                 //鏈缃�,璇风粦瀹�
@@ -212,7 +212,6 @@
             //寰俊銆丵Q
             //var btnQQ = rowOther.AddMostRightView(Language.StringByID(R.MyInternationalizationString.uWebChatAndQQ), 500);
             var btnQQ = rowOther.AddMostRightView(Language.StringByID(R.MyInternationalizationString.uWebChat), 500);
-            btnQQ.IsBold = true;
             rowOther.ButtonClickEvent += (sender, e) =>
             {
                 var form = new OtherParty.OtherPartyAccountMenuForm();
@@ -229,7 +228,6 @@
             rowSysPsw.AddRightArrow();
             //鍘讳慨鏀�
             var btnPsw = rowSysPsw.AddMostRightView(Language.StringByID(R.MyInternationalizationString.uGotoEditor), 350);
-            btnPsw.IsBold = true;
             rowSysPsw.ButtonClickEvent += (sender, e) =>
             {
                 var form = new Password.EditorAccountPasswordForm();
@@ -244,7 +242,6 @@
             rowSecond.AddRightArrow();
             //瀵嗙爜銆佹墜鍔裤�佹寚绾�
             var btnSecand = rowSecond.AddMostRightView(Language.StringByID(R.MyInternationalizationString.uPasswordGestureFingerPrint), 400);
-            btnSecand.IsBold = true;
             rowSecond.ButtonClickEvent += (sender, e) =>
             {
                 var form = new SecondAuthenticationForm();
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/UserMain/UserMainForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/UserMain/UserMainForm.cs
index b7f6ebb..591c299 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/UserMain/UserMainForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/UserMain/UserMainForm.cs
@@ -87,6 +87,7 @@
             btnTitle.Y = Application.GetRealHeight(112);
             btnTitle.TextColor = UserCenterColor.Current.White;
             btnTitle.TextSize = 24;
+            btnTitle.IsBold = true;
             btnTitle.TextID = R.MyInternationalizationString.UserCenter;
             bodyFrameLayout.AddChidren(btnTitle);
 
diff --git a/ZigbeeApp/Shared/Phone/UserView/LoginLoading.cs b/ZigbeeApp/Shared/Phone/UserView/LoginLoading.cs
index 101cdda..db26b57 100755
--- a/ZigbeeApp/Shared/Phone/UserView/LoginLoading.cs
+++ b/ZigbeeApp/Shared/Phone/UserView/LoginLoading.cs
@@ -16,91 +16,13 @@
         /// </summary>
         public void Show()
         {
-            var topFrameLayout = new FrameLayout()
+            var sceneBtn = new ImageView()
             {
-                Y = Application.GetRealHeight(60),
-                Height = Application.GetRealHeight(127),
-                BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor,
+                Width=Application.GetMinRealAverage(1080),
+                Height=Application.GetMinRealAverage(1920),
+                ImagePath="Logo/2.jpg"
             };
-            AddChidren(topFrameLayout);
-
-            var floor = new Button
-            {
-                X = Application.GetRealWidth(CommonFormResouce.X_Left),
-                Width = Application.GetMinRealAverage(69),
-                Height = Application.GetMinRealAverage(69),
-                Gravity = Gravity.CenterVertical,
-                UnSelectedImagePath = "Item/Floor.png"
-            };
-            topFrameLayout.AddChidren(floor);
-
-            var messageBtn = new Button()
-            {
-                X = Application.GetRealWidth(953),
-                Width = Application.GetMinRealAverage(69),
-                Height = Application.GetMinRealAverage(69),
-                Gravity = Gravity.CenterVertical,
-                UnSelectedImagePath = "Item/Message.png",
-                SelectedImagePath = "Item/MessageSelected.png"
-            };
-            topFrameLayout.AddChidren(messageBtn);
-
-            var roomBG = new Button()
-            {
-                Y = Application.GetRealHeight(302),
-                Width = Application.GetRealWidth(CommonPage.AppRealWidth - CommonPage.XLeft * 2),
-                Height = Application.GetMinRealAverage(550),
-                Gravity = Gravity.CenterHorizontal,
-                UnSelectedImagePath = "RoomIcon/1.JPG",
-            };
-            AddChidren(roomBG);
-
-
-            var functionSceneView = new FrameLayout()
-            {
-                Y = Application.GetRealHeight(861),
-                Width = Application.GetRealWidth(832),
-                Height = Application.GetRealHeight(167),
-                Gravity = Gravity.CenterHorizontal,
-                BackgroundImagePath = "Item/SceneFunctionBG.png"
-            };
-            AddChidren(functionSceneView);
-
-            var sceneBtn = new Button()
-            {
-                X = Application.GetRealWidth(30),
-                Y = Application.GetRealHeight(12),
-                Width = Application.GetRealWidth(350),
-                Height = Application.GetRealHeight(100),
-                TextColor = ZigbeeColor.Current.GXCTextGrayColor3,
-                SelectedTextColor = ZigbeeColor.Current.GXCTextWhiteColor,
-                TextID = R.MyInternationalizationString.Scence,
-                IsSelected = true
-            };
-            functionSceneView.AddChidren(sceneBtn);
-
-            var functionBtn = new Button()
-            {
-                X = Application.GetRealWidth(430),
-                Y = Application.GetRealHeight(12),
-                Width = Application.GetRealWidth(360),
-                Height = Application.GetRealHeight(100),
-                TextColor = ZigbeeColor.Current.GXCTextGrayColor3,
-                SelectedTextColor = ZigbeeColor.Current.GXCTextWhiteColor,
-                TextID = R.MyInternationalizationString.Function,
-                IsSelected = false
-            };
-            functionSceneView.AddChidren(functionBtn);
-
-            var functionSceneBodyView = new FrameLayout()
-            {
-                Y = functionSceneView.Bottom,
-                Height = Application.GetRealHeight(750),
-                Gravity = Gravity.CenterHorizontal,
-                BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor
-            };
-            AddChidren(functionSceneBodyView);
-
+            AddChidren(sceneBtn);
         }
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs b/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs
index d301389..5ff1223 100755
--- a/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs
+++ b/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs
@@ -419,7 +419,8 @@
                 Gravity = Gravity.CenterVertical,
                 TextAlignment = TextAlignment.CenterLeft,
                 TextColor = ZigbeeColor.Current.GXCTextColor,
-                Text = Config.Instance.Home.GetCurrentFloorName
+                Text = Config.Instance.Home.GetCurrentFloorName,
+                IsBold=true
             };
             if (Config.Instance.Home.FloorDics.Count > 0)
             {
@@ -626,10 +627,10 @@
                     Height = Application.GetRealHeight(478),
                 };
                 AddChidren(roomPageView);
-                //涓庡睆骞曡竟妗嗙殑杈硅窛
-                roomPageView.TCBJ = Application.GetRealWidth(181);
+                //绐佸嚭杈硅窛
+                roomPageView.TCBJ = Application.GetRealWidth(112);
                 //涓や釜page涔嬮棿鐨勯棿璺�
-                roomPageView.JMBJ = Application.GetRealWidth(0);
+                roomPageView.JMBJ = Application.GetRealWidth(69);
 
                 //褰撳墠鎴块棿
                 //Room.CurrentRoom = Room.CurrentRoom == null ? Room.Lists[0] : Room.CurrentRoom;
diff --git a/ZigbeeApp/Shared/Phone/UserView/UserPage.cs b/ZigbeeApp/Shared/Phone/UserView/UserPage.cs
index 6185329..be21182 100755
--- a/ZigbeeApp/Shared/Phone/UserView/UserPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserView/UserPage.cs
@@ -304,9 +304,9 @@
         {
             BackgroundColor = Shared.Common.ZigbeeColor.Current.MainColor;
             ZbGateway.StatusList.Add(this);
-            Shared.Application.LocationAction += (lat, lon) =>
+            Shared.Application.LocationAction += (lon, lat) =>
             {
-                AccountLogic.Instance.ReceiveAppLatAndLon(lat.ToString(), lon.ToString());
+                AccountLogic.Instance.ReceiveAppLatAndLon(lon.ToString(), lat.ToString());
             };
         }
 
diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs
index 431fa5b..728bea6 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs
@@ -44,24 +44,25 @@
                     else if (topic == gatewayID + "/" + "Bind/SetBind_Respon")
                     {
                         var gatewayTemp = new ZbGateway() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = ZbGateway.MainGateWay.getGatewayBaseInfo.gwID };
-                        var tempBindList = Newtonsoft.Json.Linq.JArray.Parse(jobject["Data"]["BindList"].ToString());
-                        if (tempBindList == null)
+                        //var tempBindList = Newtonsoft.Json.Linq.JArray.Parse(jobject["Data"]["BindList"].ToString());
+                        var tempResult = Newtonsoft.Json.JsonConvert.DeserializeObject<AddedDeviceBindResponseData>(jobject["Data"].ToString());
+                        if (tempResult == null)
                         {
                             result = new AddedDeviceBindResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
                         }
                         else
                         {
-                            var dataBindRes = new AddedDeviceBindResponseData();
-                            for (int m = 0; tempBindList != null && m < tempBindList.Count; m++)
-                            {
-                                var tempBind = tempBindList[m];
-                                dataBindRes.BindList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<AddBindListResponseObj>(tempBind.ToString()));
-                            }
-                            if (dataBindRes != null)
-                            {
-                                result = new AddedDeviceBindResponseAllData { addedDeviceBindResponseData = dataBindRes };
-                                DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
-                            }
+                            //var dataBindRes = new AddedDeviceBindResponseData();
+                            //for (int m = 0; tempBindList != null && m < tempBindList.Count; m++)
+                            //{
+                            //    var tempBind = tempBindList[m];
+                            //    dataBindRes.BindList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<AddBindListResponseObj>(tempBind.ToString()));
+                            //}
+                            //if (dataBindRes != null)
+                            //{
+                            result = new AddedDeviceBindResponseAllData { addedDeviceBindResponseData = tempResult };
+                            DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
+                            //}
                         }
                     }
                     //else if (topic == gatewayID + "/" + "Bind/BindResult")
@@ -219,7 +220,7 @@
             /// 0锛氱粦瀹氭墍鏈夌洰鏍囨垚鍔�
             ///<para>1锛氱粦瀹氱洰鏍囧け璐ワ紝缁戝畾璁惧鐩爣鏈夋紡鎺�</para> 
             /// </summary>
-            public int Result;
+            public int Result = -1;
         }
 
         /// <summary>
diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/DoorLock.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/DoorLock.cs
index 1d08afe..0dd69e0 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Device/DoorLock.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/DoorLock.cs
@@ -492,6 +492,25 @@
             /// 浜戠甯愬彿Id -->閿悕 : CloudAccountId (鍙��)
             /// </summary>
             public string CloudAccountId = "";
+            /// <summary>
+            /// 绗嚑椤�
+            /// </summary>
+            public PageSetting pageSetting = new PageSetting();
+        }
+
+        /// <summary>
+        ///  鑾峰彇闂ㄩ攣
+        /// </summary>
+        public class PageSetting
+        {
+            /// <summary>
+            /// 绗嚑椤�
+            /// </summary>
+            public int Page = 1;
+            /// <summary>
+            /// 绗嚑椤�
+            /// </summary>
+            public int PageSize = 10;
         }
 
         [Serializable]
@@ -1188,6 +1207,109 @@
 
         /// <summary>
         /// 鐢ㄦ埛绠$悊鍙戦�佹暟鎹�
+        /// userIdList:涓暟涓嶈兘瓒呰繃10涓�
+        /// </summary>
+        public string FreezeAccountData(List<int> userIdList, AccessType accessType)
+        {
+            string data = "";
+            string dataLength = "";
+            string dataComand1 = "50";
+            string dataComand2 = "04";
+            string dataSerialNum = "01";
+            string addDataLength = "";
+            string delUserTypeStr = "";
+            string userIdStr = "";
+            try
+            {
+                if (userIdList.Count == 0)
+                {
+                    return null;
+                }
+                if (userIdList.Count > 9)
+                {
+                    return null;
+                }
+                var tempLength = 5 + userIdList.Count * 2;
+                string tempLength1 = Convert.ToString(tempLength, 16);
+                switch (tempLength1.Length)
+                {
+                    case 1:
+                        dataLength = "0" + tempLength1.ToUpper();
+                        break;
+                    case 2:
+                        dataLength = tempLength1.ToUpper();
+                        break;
+                }
+
+                var tempAddDataLength = 1 + userIdList.Count * 2;
+                string tempAddDataLength1 = Convert.ToString(tempAddDataLength, 16);
+                switch (tempAddDataLength1.Length)
+                {
+                    case 1:
+                        addDataLength = "0" + tempAddDataLength1.ToUpper();
+                        break;
+                    case 2:
+                        addDataLength = tempAddDataLength1.ToUpper();
+                        break;
+                }
+
+                switch ((int)accessType)
+                {
+                    case 0:
+                        delUserTypeStr = "00";
+                        break;
+                    case 1:
+                        delUserTypeStr = "01";
+                        break;
+                    case 2:
+                        delUserTypeStr = "20";
+                        break;
+                    case 3:
+                        delUserTypeStr = "21";
+                        break;
+                    case 4:
+                        delUserTypeStr = "10";
+                        break;
+                    case 5:
+                        delUserTypeStr = "30";
+                        break;
+                    case 6:
+                        delUserTypeStr = "31";
+                        break;
+                }
+
+                var sbString = new System.Text.StringBuilder();
+                foreach (var userId in userIdList)
+                {
+                    string temp = Convert.ToString(userId, 16);
+                    switch (temp.Length)
+                    {
+                        case 1:
+                            userIdStr = "0" + temp + "00";
+                            break;
+                        case 2:
+                            userIdStr = temp + "00";
+                            break;
+                        case 3:
+                            var thirdBit = temp.Substring(temp.Length - 2, 1);
+                            userIdStr = temp + "0" + thirdBit;
+                            break;
+                        case 4:
+                            userIdStr = temp;
+                            break;
+                    }
+                    sbString.Append(userIdStr.ToString().ToUpper());
+                }
+                data = dataLength + dataComand1 + dataComand2 + dataSerialNum + addDataLength +
+                   delUserTypeStr + sbString;
+            }
+            catch { };
+
+            return data;
+        }
+
+        /// <summary>
+        /// 鐢ㄦ埛绠$悊鍙戦�佹暟鎹�
         /// </summary>
         public string SetUserAccessData(int userId, AccessType accessType)
         {
@@ -1293,7 +1415,7 @@
         public enum AccessType
         {
             /// <summary>
-            /// 0x00 鍒犻櫎鍏ㄩ儴鍗曟鐢ㄦ埛
+            /// 0x00 鍒犻櫎鍏ㄩ儴涓存椂鐢ㄦ埛
             /// </summary>
             DelAllUsers = 0,
             /// <summary>
@@ -1308,6 +1430,18 @@
             /// 0x21 瑙e喕鎸囧畾鐢ㄦ埛
             /// </summary>
             Enable = 3,
+            /// <summary>
+            /// 0x10 澶氫釜鎸囧畾鐢ㄦ埛鍒犻櫎
+            /// </summary>
+            DelMoreUsers = 4,
+            /// <summary>
+            /// 0x30 澶氫釜鎸囧畾鐢ㄦ埛鍐荤粨
+            /// </summary>
+            DisEnableMoreUsers = 5,
+            /// <summary>
+            /// 0x31 澶氫釜鎸囧畾鐢ㄦ埛瑙e喕
+            /// </summary>
+            EnableMoreUsers = 6,
         }
         #endregion
 
@@ -2082,6 +2216,8 @@
                                     doorLockUserDetailData.userType = Convert.ToInt32(data[10].ToString() + data[11].ToString(), 16);
                                     doorLockUserDetailData.totalNum = Convert.ToInt32(data[12].ToString() + data[13].ToString(), 16);
                                     doorLockUserDetailData.currentNum = Convert.ToInt32(data[14].ToString() + data[15].ToString(), 16);
+                                    totalNum = doorLockUserDetailData.totalNum;
+                                    currentNum = doorLockUserDetailData.currentNum;
                                     result = new DoorlockUserInfo { doorLockUserDetailData = doorLockUserDetailData };
                                     DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_command:0451_{ topic}");
                                 }
@@ -2100,15 +2236,22 @@
                     var data = new JObject { { "PassData", passData } };
                     jObject.Add("Data", data);
                     Gateway.Send(("ClientDataPassthrough"), jObject.ToString());
-
                 }
                 catch { }
 
-                //鎺ユ敹涓�涓寘鏈�澶氱瓑3绉掞紝娌℃湁鏀跺埌灏遍��鍑�
+                //鎺ユ敹涓�涓寘鏈�澶氱瓑3绉掞紝娌℃湁鏀跺埌灏遍��鍑�,鍗曟鏁版嵁鍖呬笉瓒呰繃30涓敤鎴�
                 while ((DateTime.Now - dateTime).TotalMilliseconds < 3000)
                 {
                     await System.Threading.Tasks.Task.Delay(100);
+                    if (totalNum == currentNum)
+                    {
+                        break;
+                    }
                 }
+                //if ((DateTime.Now - dateTime).TotalMilliseconds > 3000)
+                //{
+                //    result = new DoorlockUserInfo { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
+                //}
                 Gateway.Actions -= action;
                 DebugPrintLog("ClientDataPassthrough_Actions 閫�鍑�" + System.DateTime.Now.ToString());
 
diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/Panel.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/Panel.cs
index 9e5e423..ea8b188 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Device/Panel.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/Panel.cs
@@ -109,10 +109,11 @@
         /// 鎸夐敭涓缁戝畾鐨勭洰鏍囧垪琛�
         /// </summary>
         public System.Collections.Generic.List<BindListResponseObj> bindList = new System.Collections.Generic.List<BindListResponseObj> { };
+
         /// <summary>
         /// 鎸夐敭鏀寔鐨勭鏈夋ā寮忓垪琛�
         /// </summary>
-        public System.Collections.Generic.List<string> priFunList = new System.Collections.Generic.List<string> { };
+        public System.Collections.Generic.Dictionary<int, string> priDeviceModeFunList = new System.Collections.Generic.Dictionary<int, string> { };
 
         /// <summary>
         /// 绉佹湁鍔熻兘绫�
@@ -1240,8 +1241,8 @@
         #region 閰嶇疆鎸夐敭鎸囩ず鐏潰鏉夸寒搴﹀睘鎬�.
         ///<summary >
         ///閰嶇疆鎸夐敭鎸囩ず鐏潰鏉夸寒搴﹀睘鎬�
-        /// <para>directionsLevel:鎸囩ず鐏寒搴� 0-100</para>
-        /// <para>backlightLevel:鑳屽厜鐏寒搴� 0-100</para>
+        /// <para>directionsLevel:鎸囩ず鐏寒搴� 0-100(杩欎釜鏄偣鍑诲悗鐨勫��)</para>
+        /// <para>backlightLevel:鑳屽厜鐏寒搴� 0-100(杩欎釜鏄偣鍑诲墠鐨勫��)</para>
         /// </summary>
         public async System.Threading.Tasks.Task<ResponseAllData> SetKeyLevelAsync(int directionsLevel, int backlightLevel)
         {
@@ -1940,12 +1941,12 @@
             /// </summary>
             public ErrorResponData errorResponData;
             /// <summary>
-            ///鎸夐敭寮�鐘舵�侊紙鎸囩ず锛変寒搴�
+            ///鎸夐敭寮�鐘舵�侊紙鎸囩ず锛変寒搴�(杩欎釜鏄偣鍑诲悗鐨勫��)
             /// </summary>
             public int panelDirectionsLevel = -1;
 
             /// <summary>
-            /// 鎸夐敭鍏崇姸鎬侊紙鑳屽厜锛変寒搴�
+            /// 鎸夐敭鍏崇姸鎬侊紙鑳屽厜锛変寒搴�(杩欎釜鏄偣鍑诲墠鐨勫��)
             /// </summary>
             public int panelBacklightLevel = -1;
         }
diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs
index 0b5fc0d..e783f9d 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs
@@ -4352,18 +4352,15 @@
                 #region 璁惧璇锋眰APP鑾峰彇鍗囩骇鏁版嵁
                 else if (topic == gatewayID + "/" + "ZbDataPassthrough")
                 {
-                    var gatewayTemp = new ZbGateway() { DataID = jobject.Value<int>("Data_ID") };
-                    gatewayTemp.clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString());
-                    if (gatewayTemp.clientDataPassthroughResponseData == null)
-                    {
-                        return;
-                    }
-
                     //涓婃姤绫诲瀷閫氱煡
                     if (gwa.ReportAction != null)
-                    {
-                        DebugPrintLog("DeviceRequestAcUpdateData");
-                        gwa.ReportAction("DeviceRequestAcUpdateData", gatewayTemp.clientDataPassthroughResponseData);
+                    {
+                        var clientDataPassthrough = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString());
+                        if (clientDataPassthrough != null)
+                        {
+                            DebugPrintLog("DeviceRequestAcUpdateData");
+                            gwa.ReportAction("DeviceRequestAcUpdateData", clientDataPassthrough);
+                        }
                     }
                 }
                 #endregion
diff --git a/ZigbeeApp/Shared/R.cs b/ZigbeeApp/Shared/R.cs
index 23ea4c2..b47132c 100755
--- a/ZigbeeApp/Shared/R.cs
+++ b/ZigbeeApp/Shared/R.cs
@@ -579,6 +579,7 @@
         public readonly static int usertip = 5370;
         public readonly static int scenetip = 5371;
         public readonly static int securitytip = 5372;
+        public readonly static int defaulttext = 5373;
 
         #region 鐧诲綍娉ㄥ唽
         /// <summary>
@@ -760,6 +761,10 @@
         /// 浣犲凡琚己鍒朵笅绾匡紒
         /// </summary>
         public const int YouHaveBeenSignOut = 10141;
+        /// <summary>
+        /// 鏂板瘑鐮佸拰鍘熷瘑鐮佷竴鑷�
+        /// </summary>
+        public const int NEWPASSWORDANDOLDPASSWORDEQUAL = 10142;
 
 
         /// <summary>
@@ -1263,7 +1268,14 @@
         /// 娌″満鏅� 璇峰厛娣诲姞
         /// </summary>
         public const int NoScene_Tip = 13601;
-
+        /// <summary>
+        /// 鏃�
+        /// </summary>
+        public const int No = 13602;
+        /// <summary>
+        /// 鑾峰彇涓�...
+        /// </summary>
+        public const int Getting = 13603;
 
 
 
@@ -4975,6 +4987,82 @@
         /// 姝e湪閲嶇疆鐢垫満
         /// </summary>
         public const int uElectricalMachineryResetting = 16006;
+        /// <summary>
+        /// 澶ч噾绌鸿皟妯″潡
+        /// </summary>
+        public const int uDakAirConditioningModule = 16007;
+        /// <summary>
+        /// 娌℃湁鍙崌绾х殑绌鸿皟妯″潡
+        /// </summary>
+        public const int uNotHadAirConditioningUpdateModule = 16008;
+        /// <summary>
+        /// 绌鸿皟鍗囩骇妯″潡
+        /// </summary>
+        public const int uAirConditioningUpdateModule = 16009;
+        /// <summary>
+        /// 鑾峰彇绌鸿皟妯″潡鐗堟湰澶辫触
+        /// </summary>
+        public const int uGetAirConditionerModelVersionFail = 16010;
+        /// <summary>
+        /// 鍙戦�佸崌绾у懡浠ゅけ璐�
+        /// </summary>
+        public const int uSendUpdateComandFail = 16011;
+        /// <summary>
+        /// 鐗堟湰鍙风浉鍚�,鍗囩骇澶辫触
+        /// </summary>
+        public const int uVersionIsEqualAndUpdateFail = 16012;
+        /// <summary>
+        /// 鏍¢獙鐗堟湰鍙峰け璐�
+        /// </summary>
+        public const int uCheckVersionFail = 16013;
+        /// <summary>
+        /// 妫�娴嬭澶囩増鏈�
+        /// </summary>
+        public const int uCheckDeviceVersion = 16014;
+        /// <summary>
+        /// 鍝嶅簲瓒呮椂,妫�娴嬭澶囩増鏈け璐�
+        /// </summary>
+        public const int uResponseTimeoutsAndCheckDeviceVersionFail = 16015;
+        /// <summary>
+        /// 姝e湪鍙戦�佸崌绾у畬鎴愮殑鍛戒护
+        /// </summary>
+        public const int uSendingFinishUpdateComand = 16016;
+        /// <summary>
+        /// 鍝嶅簲瓒呮椂,鍙戦�佸崌绾у畬鎴愮殑鍛戒护澶辫触
+        /// </summary>
+        public const int uResponseTimeoutsAndSendingFinishUpdateComandFail = 16017;
+        /// <summary>
+        /// 閲嶅伐绌鸿皟妯″潡
+        /// </summary>
+        public const int uHicAirConditioningModule = 16018;
+        /// <summary>
+        /// 鎸囩ず鐏彉缁裤�侀棯鐑�
+        /// </summary>
+        public const int uPilotLinghtInCreanAndLinght = 16019;
+        /// <summary>
+        /// 閽堝瓟寮忛噸缃寜閿�
+        /// </summary>
+        public const int uPinholeTypeResetButton = 16020;
+        /// <summary>
+        /// 淇″彿鍥炬爣蹇棯
+        /// </summary>
+        public const int uSignalIconFlash = 16021;
+        /// <summary>
+        /// 淇″彿鍥炬爣
+        /// </summary>
+        public const int uSignalIcon = 16022;
+        /// <summary>
+        /// 鎻愰啋
+        /// </summary>
+        public const int uRemind = 16023;
+        /// <summary>
+        /// 缁戝畾鎴愬姛锛佷笅娆′綘鍙互鐢ㄥ井淇0}璐﹀彿蹇�熺櫥褰曞暒
+        /// </summary>
+        public const int uBindWebchatSuccessMsg = 16024;
+        /// <summary>
+        /// 濂界殑
+        /// </summary>
+        public const int uWell = 16025;
 
         //鈽呪槄鈽呪槄涓嬮潰杩欎簺鏄帴鍙g殑杩斿洖淇℃伅缈昏瘧,浠�18000寮�濮嬧槄鈽呪槄鈽�
         /// <summary>
@@ -5018,7 +5106,7 @@
         /// </summary>
         public const int ValidatorCode_ValidCodeAndPhoneNoEqual = 18016;
         /// <summary>
-        /// 鏈彂閫侀獙璇佺爜鍒版璐﹀彿
+        /// 楠岃瘉鐮佸凡澶辨晥
         /// </summary>
         public const int ValidatorCode_NoRecord = 18017;
         /// <summary>
@@ -5177,6 +5265,15 @@
         /// 绌鸿皟 -> 闀挎寜鍥剧ず鎸夐敭5绉掍互涓婏紝鎸囩ず鐏瘂0}鍙樼豢闂儊,杩涘叆閰嶇綉鐘舵�亄0}缁跨伅姣�5绉掗棯鐑佷竴娆″垯鍏ョ綉鎴愬姛
         /// </summary>
         public const int uAddAirConditionerZbGatewayMsg = 21015;
+        /// <summary>
+        /// Pir浼犳劅鍣� -> 闀挎寜鍥剧ず鎸夐敭5绉掍互涓婏紝鎸囩ず鐏彉缁裤�亄0}闂儊杩涘叆閰嶇綉鐘舵�併�傜豢鐏唲鐏垯閰嶇綉鎴愬姛
+        /// </summary>
+        public const int uAddSensorPirMsg = 21016;
+        /// <summary>
+        /// 娓╂箍搴︿紶鎰熷櫒 -> 闀挎寜鍥剧ず鎸夐敭5绉掍互涓婏紝淇″彿鍥炬爣{0}蹇棯锛� 杩涘叆閰嶇綉鐘舵�併�傚浘鏍囧父浜垯閰嶇綉鎴愬姛
+        /// </summary>
+        public const int uAddSensorTemperatureAndHumidityMsg = 21017;
+
 
         //鈽呪槄鈽呪槄涓嬮潰杩欎簺鏄ā鍧桰D鐨勭炕璇戝悕瀛�,浠�30000寮�濮嬧槄鈽呪槄鈽�
         /// <summary>
@@ -5330,7 +5427,7 @@
         /// </summary>
         public const int uDeviceBelongId3900 = 40007;
         /// <summary>
-        /// 鑷畾涔夎澶囨墍灞濱D涓�4100鐨勭炕璇戝悕瀛楋細绌烘皵寮�鍏�
+        /// 鑷畾涔夎澶囨墍灞濱D涓�4100鐨勭炕璇戝悕瀛楋細鏅鸿兘绌哄紑
         /// </summary>
         public const int uDeviceBelongId4100 = 40008;
         /// <summary>
@@ -5346,12 +5443,28 @@
         /// </summary>
         public const int uDeviceBelongId10 = 40011;
         /// <summary>
-        /// 鑷畾涔夎澶囨墍灞濱D涓�10鐨勭炕璇戝悕瀛楋細娓╁害浼犳劅鍣�
+        /// 鑷畾涔夎澶囨墍灞濱D涓�11鐨勭炕璇戝悕瀛楋細娓╁害浼犳劅鍣�
         /// </summary>
         public const int uDeviceBelongId11 = 40012;
         /// <summary>
-        /// 鑷畾涔夎澶囨墍灞濱D涓�10鐨勭炕璇戝悕瀛楋細婀垮害浼犳劅鍣�
+        /// 鑷畾涔夎澶囨墍灞濱D涓�12鐨勭炕璇戝悕瀛楋細婀垮害浼犳劅鍣�
         /// </summary>
         public const int uDeviceBelongId12 = 40013;
+        /// <summary>
+        /// 鑷畾涔夎澶囨墍灞濱D涓�13鐨勭炕璇戝悕瀛楋細寮�鍏�
+        /// </summary>
+        public const int uDeviceBelongId13 = 15665;
+        /// <summary>
+        /// 鑷畾涔夎澶囨墍灞濱D涓�14鐨勭炕璇戝悕瀛楋細鎻掑骇
+        /// </summary>
+        public const int uDeviceBelongId14 = 15666;
+        /// <summary>
+        /// 鑷畾涔夎澶囨墍灞濱D涓�15鐨勭炕璇戝悕瀛楋細鐏厜
+        /// </summary>
+        public const int uDeviceBelongId15 = 15071;
+        /// <summary>
+        /// 鑷畾涔夎澶囨墍灞濱D涓�16鐨勭炕璇戝悕瀛楋細骞叉帴鐐�
+        /// </summary>
+        public const int uDeviceBelongId16 = 40014;
     }
 }
diff --git a/ZigbeeApp/Shared/Shared.projitems b/ZigbeeApp/Shared/Shared.projitems
index 859a7ee..95bfe85 100755
--- a/ZigbeeApp/Shared/Shared.projitems
+++ b/ZigbeeApp/Shared/Shared.projitems
@@ -53,7 +53,6 @@
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\FunctionMainView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\FunctionRow.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\LeftIconButtonRow.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\Line.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\RoomMainView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\RoomNoNameMainView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\RoomView.cs" />
@@ -140,6 +139,7 @@
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Form\NumberPswInputDialogForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Form\PswGestureSecirityForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Form\PswSecondarySecurityForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Logic\HdlACZbGatewayUpdateLogic.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Logic\HdlCheckLogic.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Logic\HdlDeviceAirConditionerLogic.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Logic\HdlDeviceCurtainLogic.cs" />
@@ -171,6 +171,7 @@
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Direction\SensorFireDirectionForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Direction\SensorInfraredDirectionForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Direction\SensorPirDirectionForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Direction\SensorTemperatureHumidityForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Direction\SensorWaterDirectionForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\PirSensor\PirSensorTargetSelectForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\AddUnLockMethod.cs" />
@@ -181,7 +182,6 @@
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\EntryStatusPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\FunctionSetting.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\FunctionSettingSub.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\HistoryRecordPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\MasterManagementPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\MemberFrozenPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\MemberManagement.cs" />

--
Gitblit v1.8.0