wxr
2022-04-14 c7f0f1a0c2148ca9a8944e523404b06351bb7977
金茂温控器更新
6个文件已添加
20个文件已修改
1659 ■■■■ 已修改文件
HDL-ON_Android/Assets/Language.ini 1140 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/hvaccac_blue.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/hvaccac_white.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/Public/dialogBg2.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/HDL-ON_Android.csproj 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Properties/AndroidManifest.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/SplashActivity.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/AppDelegate.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/HDL-ON_iOS.csproj 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Info.plist 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Language.ini 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/hvaccac_blue.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/hvaccac_white.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/Public/dialogBg2.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Common/R.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Server/HttpServerRequest.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/ThirdPartySdk/ESOnVideo.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/MainPage.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/CacControlPage.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/CacDayHistoryPage.cs 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/CacHistoryChoosePage.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/CacWeekHistoryPage.cs 304 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Light/ColorTureLampPageBLL.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Light/DimmerPageBLL.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Language.ini
@@ -523,6 +523,7 @@
535=Dew point temperature
536=Temperature statistics
537=Humidity statistics
538=Uint
1000=Room Humidity
@@ -1669,6 +1670,7 @@
535=露点温度
536=温度统计图
537=湿度统计图
538=单位
 
1000=室内湿度
1001=童锁
@@ -2796,6 +2798,7 @@
535=Dew point temperature
536=Temperature statistics
537=Humidity statistics
538=Uint
@@ -3421,3 +3424,1140 @@
[Spanish]
1=Ingresar
2=Número de teléfono
3=Luz
4=Correo
5=Por favor ingrese numero de cuenta
6=Contraseña
7=Olvidar
8=Registrarse
9=Iniciar sesión
10=Espere…
11=Cerrar
12=Código de verificación
13=Contraseña de acceso
14=Registrarse
15=Número de teléfono
16=Ingrese la contraseña
17=Ingrese la contraseña nuevamente
18=Código de verificación
19=Número de teléfono incorrecto, ingrese nuevamente
20=L a contraseña y la confirmación no coinciden. Ingrese la contraseña nuevamente
21=El formato de la contraseña no cumple con los requisitos. Ingrese la contraseña nuevamente
22=El usuario ya existe. Puede ingresar directamete
23=Código de verificación incorrecto, vuelva a ingresarlo.
24=Número de cuenta incorrrecta, por favor ingrese el correo correcto
25=Correo
26=Residencia
27=Miembro
28=Desarmar
29=Armar
30=Copia de seguridad
31=Función auxiliar
32=Añadir funciones
33=Modo noche
34=Configuración general
35=Soporte
36=Casa
37=Categoría
38=Inteligente
39=Individual
40=Inicio de sesión fallido, número de cuenta o contraseña incorrectos
41=Error al enviar el codigo de verificación
42=Error de red
43=Error en el registo, inténtelo de nuevo
44=Confirmar reinicio
45=El numero de cuenta no existe, por favor asegúrese de estar registrado
46=Inicio de sesion inválido, iniciar sesion nuevamente
47=Centro Personal
48=Nombre
49=Código QR
50=Teléfono
51=Correo
52=No enlazado
53=Autorización de terceros
54=Cambiar contraseña
55=Configuración de desbloqueo
56=Establecer contraseña, gesto, huella digital o identificación facil para proteger su provacidad
57=Salir
58=Habitación
59=Equipo
60=Función
61=Brillo
62=Configuración
63=Locación
64=Compartir
65=Añadir acceso directo al escritorio
66=Cambiar nombre
67=Cancelar
68=Confirmar
69=Todo
70=Cortina
71=Nombre
72=Address
73=Gestión de plantas
74=Gestión de habitaciones
75=Migración de administrador
76=Migración de privilegios
77=Priviligio de depuración
78=El administrador migra a otro usuario
79=Toda los datos de la residencia migran al nuevo usuario
80=Permitir que el personal visite su casa de forma remota
81=Piso
82=Añadir piso
83=Cambiar nombre de piso
84=Error al añadir, el piso ya existe
85=Escena
86=Borrar
87=Inmediata
88=Eliminar el piso o no?
89=Añadir habitación
90=Cmabiar la informacion de la habitación
91=Información de la habitanción
92=Nombre
93=Piso
94=Gestión funcionamiento
95=Guardar
96=Eliminar la habitación
97=Galeria por defecto
98=Camara
99=Seleccionar de la galeria
100=No asignado
101=Asignado
102=No asignado
103=Eliminar la habitación o no?
104=Tiempo de transición
105=Temperatura interna
106=AC
107=Videoportero
108=Sensor
109=Monitor de seguridad
110=Panel Inteligente
111=Musica
112=Aire fresco
113=Ambiental
114=Monitoreo de energía
115=Electrodomésticos
116=Bloqueo inteligente
117=Calefacción
118=Abrir
119=Refrigeración
120=Calefacción
121=Deshumidificar
122=Auto
123=Suministro de aire
124=Alto
125=Medio
126=Bajo
127=Modo
128=Velocidad del ventilador
129=Estas seguro de apagar todas las funciones de la habitación?
130=Abierta
131=Añadido a favoritos
132=Felicitaciones! Registro exitoso
133=Inicio de sesion automático pronto….
134=El numero de no esta registrado, por favor registrese e ingrese nuevamente
135=Por favor, obtener codigo de verificación
136=La contraseña ha sido cambiada
137=La direccion rsidencial no puede estar en blanco
138=El nombre de la residencia no puede estar en blanco
139=El nombre de la habitación no puede estar en blanco
140=El nombre del piso no puede estar en blanco
141=No se pudo revisar, el piso ya existe
142=El nombre del equipo no puede estar en blanco
143=El nombre del usuario no puede estar en blanco
144=Nombre de usuario
145=Seleccione la página para bloquear
146=Puede seleccionar varias paginas que le gustaria mantener
147=Error en codigo de verificación
148=No protegido
149=Cuando empieza
150=Armar/Desarmar
151=Desbloquear remotamente
152=No se necesita contraseña/gesto al iniciar el software
153=Iniciar sesión 5 minutos despues de salir de la página, se requiere el método de desbloqueo correspondiente.
154=Centro de miembros - utiliza para debloquear la función de seguridad como armar/desarmar
155=Usado para desbloquear la cerradura inteligente
156=Configuración de desbloqueo
157=Solo valido para host
158=Desbloquear con contraseña
159=Desbloquear con gesto
160=Desbloquear con huella
161=Desbloquear con identificación facial
162=Configuración de contraseña numérica
163=Configuración exitosa
164=Configuración de gestos
165=Por favor dibuja tu patron de desbloqueo
166=Requiere al menos una conexión de 4 puntos, dibuje nuevamente
167=El patron y la corfirmacion que dibujaste no coincide, dibuje nuevamente
168=Por favor dibuje su patrón nuevamente
169=Desbloquear con huella o no?
170=Desbloquar con identificacion facial o no?
171=Verificar la contraseña numérica
172=Verificar el gesto
173=Por favor ingrese el gesto original
174=Por favor ingrese la contraseña numérica original
175=Verificación fallida, error en la contraseña
176=Cambiar la contraseña numérica
177=Cambiar el gesto
178=Cerrar la configuración de desbloqueo o no?
179=Por favor verifique la huella
180=Verificación fallida, error en el gesto
181=General
182=Dia
183=Noche
184=Abandonar
185=Por favor enlace el piso
186=Ajuste de la velocidad del ventilador
187=Ventilador
188=Enchufe
189=Nivel
190=Chl
191=Vol
192=TV
193=La habitanción existe, error al cambiar
194=Medio Ambiente
195=Contaminación fuerte
196=Contaminación leve
197=Bueno
198=Excelente
199=Frio helado
200=Frio
201=Frio
202=Confort
203=Tibio
204=Caliente
205=Extremadamente caliente
206=Hasta el estandar
207=Contaminación leve
208=Contaminación media
209=Contaminación fuerte
210=Fresco
211=Turbidez
212=Hipoxia
213=Hipoxia severa
214=Húmedo
215=Húmedo
216=Seco
217=Temperatura
218=Humedad
219=Rango
220=Nivel
221=Valor de color
222=PM1.0
223=PM2.5
224=Ruido
225=Fuerza del viento
226=CO2
227=TV02
228=Dia
229=Semana
230=Mes
231=Otra región
232=Administración de miembros
233=Apodo
234=Autoridad Administrativa
235=Crear una escena
236=Apodo no puede quedar en blanco
237=Editar apodo
238=La región utilizada
239=Añadir miembro
240=Por favor ingrese el número de cuenta del miembro
241=Escanear codigo QR
242=Confirmar la invitación
243=Error en número de cuenta, por favor chequear
244=Agregue correctamente al miembro
245=Error de datos, por favor intente de nuevo
246=Error al añadir, el numero de cuenta del miembro no esta registrada
247=No puedes agregarte a ti mismo.
248=El usuario no existe en esta residencia
249=Se ha agregado el número de cuenta del miembro, por lo que no se puede volver a agregar.
250=Error de operación
251=Error al agregar, autoridad no valida
252=Guardado correctamente
253=Guardando…espere un momento.
254=Adopo editado
255=Eliminar este miembro
256=Sin favoritos
257=Introduzca el contenido
258=Bienvenido al nuevo miembro
259=Esta seguro de elimianr este miembro?
260=Introduzca la contraseña de inicio de sesión
261=Cambio de residencia exitoso
262=Seleccionar todo
263=Compartir la selección funcional
264=Confirmar uso compartido
265=Compartir en
266=Error de uso compartido funcional
267=Uso compartido funcional exitoso
268=Correo
269=Cambiar el enlace
270=Eliminar el enlace
271=Correo
272=Cambiar la dirección de correo
273=Cambiar el método de verificación
274=El código de verificación ha sido enviado, por favor ingrese
275=Reenviar
276=Verificación correcta
277=Correo
278=Por favor ingrese el nuevo correo
279=Enlazar correctamente su correo electrónico a su cuenta
280=No vincular su correo electrónica a su cuenta
281=Eliminar el enlace de correo electrónico
282=Eliminación correcta de enlace
283=Número de telefono
284=Número de telefono
285=Número de telefono
286=Vincular correctamente su numero de teléfono a su cuenta
287=No puede vincular su numero de teléfono a su cuenta
288=Cambiar el enlace
289=Quitar el enlace
290=No se puede obtener el historial
291=Sin favoritos
292=Acerca de ON+
293=Miembro
294=Administrador
295=Cambiar la contraseña
296=Antes de cambiar la contraseña iniciar sesion
297=Por favor verifique ID
298=Verificación telefonica
299=Verificación de correo electronico
300=No se ha enlazado a la dirección de correo electronico, no puede verificar
301=No se ha enlazado a un numero telefonico, no se puede verificar
302=Proceder al enlace
303=Eliminado correctamente el enlace a su numero de telefono
304=El codigo de verificación se ha enviado a:
305=Telefono
306=Correo
307=Recibió nuevos datos, esta seguro de anularlos?
308=Automatización
309=Crear una escena
310=Añadir escena
311=Configuración basica
312=Nombre
313=Region
314=Completo
315=Vista completa de la residencia
316=Sleccionar
317=Ya añadido
318=Conmutador
319=Velocidad del ventilador
320=Modo
321=Encendido
322=Apagado
323=Escena
324=Retardo de escena
325=Configuración de retardo
326=Retardo
327=Capturar la escena
328=Escena de pelicula
329=General
330=Modo automático
331=Potencia calentamiento suelo
332=Refrigeración suelo
333=Potencia de refrigeración del suelo
334=Ajustar el porcentaje
335=Sin retardo
336=No hay escena disponible. Añade uno!
337=Editar la escena
338=El nombre de la escena no puede estar en blanco
339=El nombre de la escena ya existe, por favor revise
340=El nombre de la habitación ya existe, por favor revise
341=Eliminar esta escena o no?
342=La puerta de enlace esta fuera de linea, falla de conexión remota
343=Error MAC, error de conexión remota.
344=Error de conexión remota.
345=Telefono
346=Correo
347=Ingrese el nuevo numero de telefono ceular
348=Ya se ha utilizado el numero de telefono celular
349=Ya se ha utilizado la direccion de correo electronico
350=La dirección de correo electrónico es la misma que la actual, sin necesidad de cambiar.
351=El número de teléfono es la mismo que la actual, sin necesidad de cambiar.
352=Asignación de piso
353=Separar
354=Cerrar
355=Acerca de
356=Numero de version
357=Esta funcion no esta disponible!
358=Telefono
359=Correo
360=Escena de panel
361=No añadido
362=Seleccionar todo
363=No se puede comunicar con el servidor, no se puede editar la información del dispositivo
364=No se puede comunicar con el servidor, no se puede editar la información de la habitación
365=No se puede comunicar con el servidor, no se puede editar la información de la escena
366=No se puede comunicar con el servidor, no se puede eliminar la escena
367=No se puede comunicar con el servidor, no se puede eliminar el piso
368=Bienvenido a disfrutar de ON+
369=Añadir residencia
370=Conviértete en miembro de la familia
371=No se puede utilizar la funcion, por favor verifique su conexión
372=No se puede crear una escena, por favro verifique su conexión
373=Error al agregar un piso
374=Los datos residenciales se han eliminado, APP cambiará automáticamente a otra residencia.
375=El gateway no esta conectado al servidor, no se puede crear la escena
376=No se puede introducir un carácter especial
377=Toda la residencia
378=Tiempo de transición
379=Velocidad de transicion
380=Esta funcion no esta disponible!
381=Recargar
400=Bienvenido a casa
401=Codigo de barras no válido, intentelo de nuevo
402=Inténtelo de nuevo
403=Temperatura de color
404=Ajuste rápido
405=Acogedor
406=Reunión
407=Lectura
408=Añadir
409=Marca de función
410=No ha agregado ningun dispositov de pataforma en la actualidad
411=Otros dispositivos de plataforma son compatibles con proveedores de serviciso externos
412=Añadir
413=Controlador no activado
414=Controlador activado
415=Alguien
416=Registro
417=Fuga de agua
418=En alarma
419=Normal
420=Seco caliente
421=Secado al aire
422=Desinfectar
423=Iluminación
424=Tiempo
425=Tiempo seco caliente
426=Tiempo de secado al aire
427=Tiempo de desinfección
428=Tiempo Anión
429=H
430=Min
431=Actualmente esta agregando cualquier dispositivos de plataforma a
432=Otros dispositivos de plataforma son compatibles con proveedores de serviciso externos
433=Valvula de agua
434=Interruptor de tiempo
435=Control remoto
436=Dispositivos añadido
437=Lista de dispositivos
438=humedad:{0}% aire:viento {1}:{2}
439=Tiempo real: {0} kw
440=Siguiente paso
441=Seleccione todas las áreas de estado de captura
442=Generar escena
443=Implementación personalizada
444=Centro de seguridad
445=Defensa de la casa
446=Defensa en casa
447=Defensa de vacaciones
448=Implementación fija
449=*Deshacer defensa no afecta
450=Defensa contra desastres
451=Defensa de 24 horas
452=Alarma antirrobo
453=Silenciar alarma
454=Información de implementación
455=El nombre no puede estar en blanco
456=Lienzo
457=Consumo de energía
458=Fecha
459=Consumo de energía en tiempo real
460=Consumo energético de este mes
461=Exterior/Interior
462=Aun no has añadido ningun dispositivo
463=Introduzca el código SN del dispositivo
464=Puede empezar a usar la onda milimétrica Zhaoguan
465=Eliminar dispositivo
466=STB
467=Proyector
468=Alguien cayó
469=Alguien está en
470=Bajo protección
471=Sensor de onda milimétrica
472=Exterior
473=Columpio
474=Oscilación hacia arriba y hacia abajo
475=Gira a izquierda y derecha
476=Añadir residencia
477=Columpio
478=Patrón
479=Velocidad
480=Sensor ambiental
481=Puede empezar a usar el sensor ambiental
482=Sensor de gas
483=Introduzca el código MAC del dispositivo
484=Abierto
485=Comprobar/Modificar
486=Función de defensa/Estado de alarma
487=Objetivo de alarma despues de la activación
488=Paso de rostro
489=Aplicar identificación facil a:
490=Control de acceso a la comunidad
491=Acerda de identificacion facil y privacidad
492=Borrar datos
493=Resetear identificación facial
494=Establecer identificación facial
495=Configuración paso de rostro
496=No hay ningun estado de implementacion de tareas asociado
497=Personalizado
498=Implementación retrasada
499=Agregar función de defensa
500=Agregar destino de alarma
501=Alarma de seguridad: se activa en {0}
502=Borrar la alarma de seguridad?
503=Exceso de estandar
504=Bueno
505=Excelente
506=Indentificacion facil ingresada correctamente
507=Ingreso identificación facil fallida
508=Formaldehído
509=Introduzca el nombre de seguridad
510=Seleccione el destino de implementación
511=Atenuación combinada
512=Mensajes no estan habilitados, vaya a configuración
513=Introduzca el codigo de emparejamiento
514=La información de la ubicación del gateway no está configurada
515=Agregar seguridad
516=Withdrawal
------
517=Instantaneous value
518=Cumulative power consumption
519=Voltage (V)
520=Electric Current (A)
521=Power (W)
522=Refresh
523=Delay alarm
524=Bypass
525=Enable
526=Cancel account
527=Homekit support notes
528=Firmware update
529=
530=In order to prevent the wrong touch and click of opening and closing the door and ensure family safety, please enter your door lock password.
531=Password free unlocking within five minutes
532=The device is offline and cannot be operated temporarily
533=Statistical Chart
534=Data
535=Dew point temperature
536=Temperature statistics
537=Humidity statistics
538=Uint
1000=Humedad de ambiente
1001=V-chip
1002=Anión
1003=Estirilización
1004=Humidificar
1005=Restablecimiento del elemento de filtro
1006=Iluminación
1007=Automático
1008=Manual
1009=Fuerte
1010=Dormir
1011=Tiempo
1012=Velocidad del viento
1013=Engranaje
1014=Confirme si el elemento filtrante se ha restablecido y opere el equipo de acuerdo con el manual de instrucciones para que la vida útil del elemento filtrante se vuelva a cronometrar
1015=Marcha baja
1016=Engranaje medio
1017=Marcha alta
1018=Configuración de temportización
1019=Hora
1020=Tiempo del elemento de filtro:
1021=Filtro de aire
1022=Velocidad actual del viento
1023=Cancelar tiempo
1024=Robot de barrido de pisos
1025=Succión
1026=1° Marcha
1027=2° Marcha
1028=3° Marcha
1029=Carga
1030=Voz
1031=Silenciar
1032=Modo de limpieza
1033=Gestion de consumibles
1034=Historia
1035=Automático
1036=Aleatorio
1037=Muro
1038=Espiral
1039=Área total limpia
1040=Tiempo total de limpieza
1041=Vida útil restante del cepillo lateral
1042=Vida útil residual del cepillo de rodillos
1043=Vida útil restante de la pantalla de filtro
1044=Restablecer pincel de bordes
1045=Restablecer cepillo de rollo
1046=Restablecer pantalla
1047=Confirmar para restablecer el pincel de bordes?
1048=Confirmar para restablecer el cepillo de rollo?
1049=Confirmar para restablecer la pantalla?
1050=Agregar dispositivo
1051=Mini control remoto inteligente
1052=Agregar control remoto por infrarrojos
1053=Presione el botón del control remoto infrarrojo{0} durante 3 segundos y la luz indicadora{0} se enciende en azul rápidamente
1054=Asegúrese de que su Bluetooth{0} esté activado y se pueda buscar
1055=Siguiente paso
1056=Buscando dispositivo…
1057=No se ha encontrado ningún mando a distancia por infrarrojos
1058=1.Compruebe si el dispositivo está{0} encendido normalmente{0}2.Compruebe si la función Bluetooth{0} está activada normalmente{0}3.Compruebe si el indicador{0} luz parpadea en azul
1059=Buscar de nuevo
1060=Conectar WiFi
1061=En la actualidad, solo es compatible con la red WiFi 2.4G{0} y no admite nombres WiFi{0} con caracteres chinos
1062=Contraseña
1063=Conectando…
1064=Haga que el control remoto por infrarrojos{0} lo más cerca posible del enrutador WiFi
1065=Enlace de red
1066=Subir a nube
1067=Conectado con éxito
1068=1.Compruebe si el dispositivo está{0} encendido normalmente{0}2.Active la función Bluetooth{0}3.Presione el botón durante 10 s y el indicador{0} luz estará encendida
1069=Error al agregar
1070=Agregado con éxito
1071=¡Puedes empezar a usar el control infrarrojo{0}remote!
1072=Empezar a usar
1073=Por favor encender Bluethooth
1074=Información de ubicación (GBS) no disponible
1075=Red no disponible
1076=Seleccione el mando a distancia por infrarrojos
1077=Aire fresco
1078=Pantalla de filtro residual
1079=Energia
1080=Ventilado
;别
1081=1° Marcha
1082=2° Marcha
1083=3° Marcha
1084=1° Marcha
1085=2° Marcha
1086=3° Marcha
1087=Desbloquear
1088=Temp. Contraseña
1089=Conectado
1090=Desconectado
1091=Generar
1092=Tiempo efectivo
1093=Tiempo de caducidad
1094=Seleccionar hora
1095=Seleccionar fecha
1096=Generar
1097=Se ha copiado la contraseña actual
1098=Borrar contraseña?
1099=El tiempo de caducidad debe ser posterior al tiempo efectivo
1100=Método de desbloqueo
1101=Se sincronizará con el bloqueo real, ¿confirmar para eliminar?
1102=Borrar
1103=Comentar
1104=El comentario no puede estar en blanco
1105=Asignar a:
1106=Escena de destino no existe
1107=Seleccionar escena
1108=Desbloquear
1109=Siempre encendido
1110=Configuración
1111=Automatización
1112=Activar el modo "Siempre encendido"
1113=Desactivar el modo "Siempre encendido"
1114=Editar
1115=Siempre Encendido estará apagado {0}
1116=Condición
1117=Movimiento
1118=Siempre encendido
1119=Bloquear
1120=Usuario
1121=Método de desbloqueo
1122=Huella digital
1123=Tarjeta
1124=Clave
1125=Información
1126=Desbloquear
1127=Alarma
1128=Sin conexión
1129=Para el primer usuario, introduzca la contraseña.
1130=Introduzca la contraseña de administrador
1131=Enlace correcto
1132=Saltar a la contraseña personal para desbloquear
1133=Saltar
1134=Por favor, dibuja tu patrón
1135=El bloqueo estará siempre encendido después de la configuración, confirme para continuar
1136=Confirmar
1137=Caducar
1138=Siempre Encendido caducará despues de {0} horas
1139=Introduzca el tiempo de caducidad
1140=El tiempo de caducidad no debe ser superior a 72 horas
1141=El tiempo de caducidad no debe ser inferior a 1 hora
1142=Error al establecer conexión, intentelo de nuevo
1143=No se puede verificar el ID de administrador, vuelva a iniciar sesión en la cuenta
1144=Su residencia está siendo migrada a otro HDL
1145=Nota:
1. Todos sus datos de residencia se migrarán a un nuevo usuario. {0} 2. Después de la migración, el miembro original será{0}automáticamente desvinculado de esta residencia. {0} 3. La nueva cuenta es una HDL válida. {0} 4. La cuenta del receptor no puede ser la misma{0} que la del lado de la migración.
1147=Confirmar
1148=Cuenta del receptor de entrada
1149=Perfil
1150=Confirmar migración de administrador de {0} a {1}
1151=La cuenta no existe
1152=No transferir la propiedad a usted mismo
1153=Terminar
1154=Transferir al usuario, por favor espere...
1155={0} se ha convertido en administrador residencial
1156=Los datos de residencia se eliminarán de su cuenta
1157=No se puede migrar
1158=Inténtelo de nuevo
1159=Migración de la autoridad de administración
1160=Su autoridad de administración se está migrando a otros miembros
1161=1.Sus datos (datos en la nube) de la residencia serán{0}migrabados al nuevo administrador{0}2.Sus datos se intercambiarán con el miembro objetivo{0}y su permiso se cambiará al miembro objetivo{0}
1162=Confirmar
1163=No hay miembros para elegir
1164=Confirmar la migración de la autoridad de administración de {0} a {1}
1165=Migrar correctamente
1166=No se puede migrar
1167=Migrar correctamente, y sus permisos se convertirán en miembros normales
4000=Videoportero
4001=Registro de llamadas
4002=*Los registros en la nube solo se conservan durante 30 días
4003=Llamada telefónica a domicilio
4004=Contestado
4005=Desbloqueado
4006=Año
4007=De
4008=Llamada
4009=Desbloqueado
4010=Perdido
4011=Rechazado
4012=¡Los parámetros de configuración son anormales!
4013=Código QR de control de acceso
4014=Contraseña temporal
5000=Musica
5001=Grupo
5002=Configuracion
5003=Información general
5004=Reproductor multimedia
5005=Bluetooth
5006=Region
5007=Lista de canciones
5008=Mis favoritos
5009=Mi lista
5010=Seleccionar fuente
5011=Local
5012=USB
5013=Radio en linea
5014=QQ musica
5015=Bluetooth
5016=Entrada de linea
5017=Revisar el nombre
5018=Individual
5019=Juego aleatorio
5020=Lista
5021=Ha cambiado a:
5022=Cancelar
5023=Borrar
5024=Editar
5025=El nombre de la lista es el mismo
5026=El nombre de la lista esta en blanco
5027=Introduzca el nombre de la lista
5028=Agregar nueva lista
5029=Preguntar
5030=Eliminar la carpeta o no?
5031=Confirmar
5032=El nombre está en blanco
5033=Añadido a la lista de canciones
5034=Radio
5035=Seleccionar grupo
5036=Play
5037=Seleccione al menos mas de 2 reproductores multimedia
5038=No se pueden seleccionar 2 o más de 2 reproductores multimedia principales para convertirse en un grupo
5039=No ha seleccionado el reproductor multimedia
5040=Seleccione esta opción para quitar el reproductor multimedia
5041=No se ha seleccionado quitar el reproductor multimedia
5042=Configurando
5043=Borrando…
5044=Volumen
5045=Volumen general
5046=Ajustar volumen
5047="QQ music" no se ha instalado en su teléfono celular, proceda en el Centro de aplicaciones.
6000=Normal
6001=Estado del dispositivo
6002=piezas
6003=Dispositivo de control IR actual
6004=Se ha añadido el mando a distancia
6005=AC
6006=TV
6007=Ventilador
6008=Decodificador
6009=DVD
6010=Proyector
6011=Personalizado
6012=IR Control
6013=Administración de dispositivos
6014=Agregar mando de distancia
6015=En linea
6016=Sin conexión
6017=Número de version
6018=Introduzca el nombre de mando a distancia
6019=Recordatorio: Después de crear el mando a distancia, se puede encontrar y utilizar en Function-Electrical Category{\r\n}
6020=Boton recomendado
6021=Introduzca el nombre del botón
6022=Siguiente
6023=Potencia
6024=Volumen+
6025=Volumen-
6026=Channel+
6027=Channel-
6028=Subir
6029=Bajar
6030=Izquierda
6031=Derecha
6032=Silenciar
6034=Confirmar
6035=Reproducir
6037=Salir
6038=Menu
6039=Pausar
6040=Volver
6041=Detener
6042=Pagina de inicio
6043=Avance rápido
6044=Rebobinar
6045=Tiempo
6046=Copiar funcion de control remoto
6047=Apunta al centro del mando a distancia y pulsa el mismo botón
6048=Mando a distancia inteligente
6049=Agregar botón
6050=*Pulsación larga para la clasificación personalizada
6051=Hecho
6052=Agregado correctmente
6053=Se puede clasificar -funcion-operación electrica y uso
6054=Clasificación
6055=Nombre del mando a distancia
6056=Región
6057=Continuar agregando
6058=Eléctrico
6059=Error al agregar
6060=Reintentar
6061=Hacer coincidir el mando a distancia
6062=Haga clic en el botón de abajo
6063=Confirmar si el dispositivo esta respondiendo
6064=Error de control
6065=Control exitoso
6066=Encendido
6067=Modo de enfriamiento
6068=
6069=Temperatura 26°
6070=Eliminar dispositivo
6071=Modificar nombre
6072=Confirmar eliminación
6073=Cancelar
6074=El mando a distancia no puede superar los 10 puntos
6075=El área donde pertenece el control remoto:
6076=Editar información
6077=Actualización de la versión
6078=El sistema está en mantenimiento ~ Inténtelo de nuevo más tarde ~
6079=Error al obtener datos
6080=Esta funcion no se admite temporalmente
6081=Seleccionar banda IR
6082=
6083=Baja velocidad
6084=Interruptor de velocidad del viento
6085=Alta velocidad
6086=Auto
6087=Temperatura+
6088=Temperatura-
6089=Purificador de aire
6090=Calentador de agua
6091=Producto no existe
6092=El dispositivo no existe
6093=El dispositivo no esta en linea
6094=El dispositivo de puerta de enlace no existe
6095=Mas de 30 botondes de adición
6000=Renombrar
6001=Introduzca el nombre
6002=Xiaodu
6003=aispeech
6004=El sistema está en mantenimiento ~ Inténtelo de nuevo más tarde ~
6005=Desvinculado
6006=Altavoz inteligente
6007=Controlar contenido
6008=Error al cagar datos
6009=Error al configurar datos
6010="Todavía no hay altavoz", "Vaya a la aplicación de terceros para vincular el altavoz inteligente".
6011=La modificación de los comentarios no tiene éxito
6012=Quieres desvincularte?
6013=Desvinculación
6014=transferir a app de terceros
6015=Añadir altavoces
7000=Crear automatización
7001=Etidar automatización
7002=Si
7003=Cuando cumple las siguientes condiciones al mismo tiempo
7004=Cundo cumple una de las condiciones siguintes
7005=Continuar con la ejecución
7006=L asiguiente acción
7007=Método de reciclaje
7008=Ejecutar una vez
7009=Todos los días
7010=Cada semana
7011=Cada mes
7012=Guardar
7013=Mensaje push
7014=Enviar notificación
7015=Seleccionar la condición
7016=Momento
7017=Seleccione la condición de tiempo
7018=Hora
7019=Intervalo de tiempo
7020=Hora
7021=Minuto
7022=Segundo
7023=Cancelar
7024=Seguro
7025=*Debe ejecutar la automatización que establezca una vez durante el intervalo de tiempo establecido.
7026=Hora de inicio
7027=Hora de finalización
7028=Función
7029=Seleccionar condición funcional
7030=Toda la región
7031=Toda la función
7032=Encendido
7033=Apagado
7034=Conmutador
7035=Completo
7036=Agregar ejecución
7037=Lunes
7038=Martes
7039=Miércoles
7040=Jueves
7041=Viernes
7042=Sábado
7043=Domingo
7044=Cumplir con la condición
7045=Configuración
7046=Nombre
7047=Cambiar el nombre
7048=El nombre de la automatización ya existe
7049=Eliminar automatización o no?
7050=Agregar escena
7051=Retraso
7052=No se puede guardar, inténtelo de nuevo
7053=No se puede eliminar, inténtelo de nuevo
7054=Pausar
7055=Brillo
7056=Porcentaje
7057=Modo
7058=Enfriamiento
7059=Calefacción
7060=Automático
7061=Deshumidificar
7062=Temperatura
7063=Velocidad de ventilador
7064=Día
7065=Noche
7066=Abandonar
7067=General
7068=Tiempo
7069=No ha configurado la automatización, procesa a configurar
7070=Nada está aquí
7071=No se ha establecido la hora de inicio, por favor configurar
7072=La hora de finalización no se ha establecido, por favor estableza
7073=La hora de inicio y la hora de finalizacion no deben ser las mismas
7074=La hora de inicio no debe ser mayor a la hora de finalización
7075=La condicion no debe estar en blanco
7076=Target no debe estar en blanco
7077=La hora no se ha establecido, por favor establezca
7078=L a condición o el objetivo no deben estar en blanco
7079=L a puerta de enlace esta fuera de línea
7080=Salida/Puesta de sol/Mediodía
7081=Amanecer
7082=Puesta de sol
7083=Mediodía
7084=A tiempo
7085=Avance
7086=Minutos
7087=Cambio exterior
7088=Seleccionar condicion de cambio al aire libre
7089=Temperatura exterior, humedad, cambio de PM2.5
7090=Cambio de clima (clima urbano)
7091=Cambio en el entorno exterior
7092=Temperatura superior a
7093=Temperatura inferior
7094=Humedad superior a
7095=Humedad por debajo
7096=PM2.5 supeior a
7097=PM2.5 por debajo
7098=Día soleado
7099=Nublado
7100=
7101=*Establezca el valor en este rango (1 ~ 100).
7102=Sin valor establecido
7103=Excelente: 0 ~ 35ug/m3
7104=Bueno: 36 ~ 75ug/m3
7105=Contaminación lumínica: 76 ~ 115ug/m3
7106=Contaminación moderada: 116 ~ 150ug/m3
7107=Contaminación intensa: > 150ug/m3
7108=Fuga/Sin fuga
7109=Fuga
7110=Sin fuga
7111=Fuga de agua/sin fugas de agua
7112=Fuga de agua
7113=Sin fuga de agua
7114=Alguien/Nadie
7115=Alguien
7116=Nadie
7117=Abierto/Cerrado
7118=Activado
7119=Cerrar
7120=Función anti-desmantelamiento
7121=En linea
7122=Fuera de linea
7123=Calidad del aire
7124=Excelente
7125=Bueno
7126=Pobre
7127=Enviar notificación
7128=Contenido de la notificación
7129=(dentro de los 100 caracteres)
7130=Selección de cuenta
7131=Aplicación push
7132=Automatización
7133=Ejecutado
7134=Estado de destino
7135=Caída
7136=Temperatura
7137=Humedad
7138=PM2.5
7139=CO2
7140=TVOC
7141=Exceder
7142=Grave
7143=Alto
7144=Excelencia
7145=Seguridad
7146=Añadir seguridad
7147=Armado
7148=Desarmado
7149=Manualmente
7150=Inteligente
7151=Bueno
7152=Dejar o Arrivar a un lugar
7153=Salir
7154=Llegar
9000=Inicio sesión con un nuevo número de teléfono celular
9001=Inicie sesión con una nueva dirección de correo eléctrónico
9002=Nuevo numero de celular revisado
9003=Nuevo numero de celular enlazado
9004=Nueva dirección de correo electrónico revisado
9005=Nueva dirección de correo electrónico enlazado
9006=El código de verificación puede enviarse más tarde, espere.
9007=Por favor, espere
9008=Volver
9009=El usuario no desea ser nombrado
9010=Nueva contraseña
9011=Introduzca la nueva contraseña nuevamente
9012=De acuerdo
9013=Acuerdo de servicio
9014=Normativa de protección de la información del usuario
9015=y
9016=Lea y acepte el Acuerdo de servicio del usuario y las regulaciones de protección de la información del usuario.
9017=Esta seguro de cerrar sesión?
9018=Seleccione pais/región
9019=Actualizar ahora
9020=Ahora no
9021=País/región
9022=Información del servidor
9023=Servidor actual
9024=*El servidor hace referencia a la base de datos para la nube, sin necesidad alguna, no se recomienda realizar migración de datos.
9025=Si es necesaria la migración de datos, marque
9026=Introducción a la función
9027=Quejas
9028=Actualización de la versión
9029=(por favor indique "quejas" en el título, luego procesaremos en prioridad.)
9030=Copia realizada
9031=No hay nada aquí
9032=Obtener nueva versión
9033=Última versión
9034=Que puedo hacer por ti?
9035=Problema de función
9036=Problema de escena
9037=Soporte de aplicaciones
9038=(Preguntas frecuentes)
9039=Compartir y función
9040=Alertas
9041=Información del sistema
9042=Centro de información
9043=Tenga en cuenta que su número de cuenta ha iniciado sesión en otro lugar. Si no lo hace usted mismo, cambie la contraseña de inmediato.
9044=Cargado correctamente
9045=No se puede cargar
9046=Revisado correctamente
9047=La contraseña que ha revisado ha entrado en vigor, vuelva a iniciar sesión.
9048=Iniciar sesion con la contraseña del numero de cuenta
9049=Contraseña incorrecta para muchas veces, ¡el número de cuenta está bloqueado!
9050=Verificar la identificación facial
9051=Error al guardar la identificación facial del usuario
9052=La notificación push de registro esta disponible
9053=La notificación push de registro es anormal
9054=Verificación numerica de contraseña
9055=Verificación de gestos
9056=Año
9057=Sin función regional
9058=Guardar o no?
9059=No compartir ahora
9060=Usos-permiso
9061=Encuentra tu contraseña haciendo clic en "Olvidé mi contraseña", o inténtalo de nuevo en {0} minuto.
9062=Comprobar
9063=Todavía tienes {0} veces.
9064=Altavoz inteligente
9065=Gestión de datos
9066=Comentarios
9067=Los comentarios no pueden estar en blanco
9068=Desea desvincularse?
9069=Aviso de propiedad
10000=Contrasela no válida, vuelva a iniciar sesión
10001=Error al solicitar el servidor, inténtelo de nuevo más tarde.
10002=Mantenimiento del sistema, inténtalo de nuevo mas tarde
10003=No puede iniciar sesión, agregue la residencia al principio.
10004=El número de cuenta ya existe
10005=Envías el código de verificación con demasiada frecuencia, inténtalo de nuevo más tarde.
10006=Error de firma
10007=Sistema ocupado, intentelo de nuevo mas tarde!
10008=Contrasea no válida para iniciar sesión
10009=El usuario ha sido deshabilitado
10010=Error de contraseña original
10011=El número de subcuenta ya existe
10012=El npumero de subcuenta no existe
10013=No esta permitido agregarse como miembro
10014=La residencia actual no pertenece al este número de cuenta
10015=El nombre de la residencia ya existe
10016=La residencia no existe
10017=Error de solicitud, parámetro anormal!
10018=El número que enlazaste es duplicado
10019=Enlazar el gateway primero
10020=El gateway no existe
10021=El gateway esta fuera de línea
10022=El dispositivo está fuera de línea
10023=Error de control
10024=La escena ya existe
10025=La automatización ya existe
10026=Spk no admite esta función
10027=Spk no admite este valor funcional
10028=No tienes permiso
10029=El destino del dispositivo está duplicado
10030=No tiene permiso para el control remoto
10031=El dispositivo no debe estar en blanco
10032=El usuario no  tiene permiso
10033=El dispositivo no existe
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/hvaccac_blue.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/hvaccac_white.png
HDL-ON_Android/Assets/Phone/Public/dialogBg2.png
HDL-ON_Android/HDL-ON_Android.csproj
@@ -233,6 +233,9 @@
    <AndroidAsset Include="Assets\Phone\FunctionIcon\CAC\DataIcon.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\CAC\JinMaoIcon.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\hvaccac.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\hvaccac_blue.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\hvaccac_white.png" />
    <AndroidAsset Include="Assets\Phone\Public\dialogBg2.png" />
  </ItemGroup>
  <ItemGroup>
    <AndroidResource Include="Resources\values\colors.xml" />
HDL-ON_Android/Properties/AndroidManifest.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="202203171" android:versionName="1.5.5" package="com.hdl.onpro" xmlns:tools="http://schemas.android.com/tools">
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="202204081" android:versionName="1.5.6" package="com.hdl.onpro" xmlns:tools="http://schemas.android.com/tools">
    <uses-sdk android:minSdkVersion="28" android:targetSdkVersion="30" />
    <!--友盟-->
    <!--<uses-sdk android:minSdkVersion="8"></uses-sdk>-->
HDL-ON_Android/SplashActivity.cs
@@ -142,6 +142,10 @@
                {
                    Language.CurrentLanguage = "Chinese";
                }
                else if(localeList.Language == "es")
                {
                    Language.CurrentLanguage = "Spanish";
                }
                else
                {
                    Language.CurrentLanguage = "English";
HDL-ON_iOS/AppDelegate.cs
@@ -237,6 +237,10 @@
                //{
                //    Language.CurrentLanguage = "russian";
                //}
                else if (NSLocale.PreferredLanguages[0].Contains("es-"))
                {
                    Language.CurrentLanguage = "Spanish";
                }
                else
                {
                    Language.CurrentLanguage = "English";
HDL-ON_iOS/HDL-ON_iOS.csproj
@@ -1392,6 +1392,9 @@
      <BundleResource Include="Resources\Phone\FunctionIcon\CAC\DataIcon.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\CAC\JinMaoIcon.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\hvaccac.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\hvaccac_blue.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\hvaccac_white.png" />
      <BundleResource Include="Resources\Phone\Public\dialogBg2.png" />
    </ItemGroup>
    <ItemGroup>
      <ITunesArtwork Include="iTunesArtwork" />
HDL-ON_iOS/Info.plist
@@ -100,9 +100,9 @@
    <key>UIStatusBarStyle</key>
    <string>UIStatusBarStyleLightContent</string>
    <key>CFBundleShortVersionString</key>
    <string>1.5.502203171</string>
    <string>1.5.502204081</string>
    <key>CFBundleVersion</key>
    <string>1.5.503171</string>
    <string>1.5.504081</string>
    <key>NSLocationWhenInUseUsageDescription</key>
    <string>Use geographic location to provide services such as weather</string>
    <key>NSAppleMusicUsageDescription</key>
HDL-ON_iOS/Resources/Language.ini
@@ -518,6 +518,12 @@
530=In order to prevent the wrong touch and click of opening and closing the door and ensure family safety, please enter your door lock password.
531=Password free unlocking within five minutes
532=The device is offline and cannot be operated temporarily
533=Statistical Chart
534=Data
535=Dew point temperature
536=Temperature statistics
537=Humidity statistics
538=Uint
1000=Room Humidity
@@ -1659,6 +1665,12 @@
530=为防止开关门的误触点击,保证家庭安全,请输入您的门锁开门密码。
531=五分钟内免密码开锁
532=设备离线中,暂时无法操作
533=24小时统计图
534=数据
535=露点温度
536=温度统计图
537=湿度统计图
538=单位
 
1000=室内湿度
1001=童锁
@@ -2781,6 +2793,12 @@
530=In order to prevent the wrong touch and click of opening and closing the door and ensure family safety, please enter your door lock password.
531=Password free unlocking within five minutes
532=The device is offline and cannot be operated temporarily
533=Statistical Chart
534=Data
535=Dew point temperature
536=Temperature statistics
537=Humidity statistics
538=Uint
@@ -3403,3 +3421,6 @@
10031=Устройство не должно быть пустым.
10032=У пользователя нет разрешения.
10033=Устройство не существует.
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/hvaccac_blue.png
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/hvaccac_white.png
HDL-ON_iOS/Resources/Phone/Public/dialogBg2.png
HDL_ON/Common/R.cs
@@ -6,6 +6,10 @@
    {
        /// <summary>
        /// 单位
        /// </summary>
        public const int Uint = 538;
        /// <summary>
        /// 湿度统计图
        /// </summary>
        public const int HumidityStatistics = 537;
HDL_ON/DAL/Server/HttpServerRequest.cs
@@ -45,13 +45,17 @@
        /// <param name="deviceId">设备ID</param>
        /// <param name="deviceKey">功能查询类型:pm25</param>
        /// <returns></returns>
        public ResponsePackNew GetSensorHistory(string qType, string deviceId, string deviceKey)
        public ResponsePackNew GetSensorHistory(string qType, string deviceId, string deviceKey,string time = "")
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("type", qType);
            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
            d.Add("deviceId", deviceId);
            d.Add("key", deviceKey);
            if(time!= "")
            {
                d.Add("time", time);
            }
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_EnvironmentalSensorHistoricalData, requestJson);
HDL_ON/DAL/ThirdPartySdk/ESOnVideo.cs
@@ -109,7 +109,7 @@
            }else if (interphoneType == InterphoneType.HDL.ToString())
            {
                //HDLLinphone 狄耐克
                HDLLinphone.Current.ShowESVideoMonitor(mESVideoInfo);
                HDLLinphone.Current.ShowESVideoMonitor(mESVideoInfo,false);
            }
            else
            {
@@ -164,7 +164,7 @@
          
#endif
        }
            }
        /// <summary>
        /// 被呼叫页面
HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs
@@ -397,7 +397,10 @@
            if (isCallIn)
            {
#if __IOS__
#else
                HDLLinphoneKit.Instance.HangUp();
#endif
            }
            else
            {
@@ -431,10 +434,10 @@
        }
        #endregion
#endregion
        #region ■  --  跳转呼叫页面_______________________________
#region ■  --  跳转呼叫页面_______________________________
        /// <summary>
        /// 收到推送,后判断呼叫住宅是否为当前住宅,不是的话重新获取SIP账号并登录
        /// </summary>
@@ -629,10 +632,10 @@
            return checkIncomingCallThread == null || checkIncomingCallThread.ThreadState != ThreadState.Running;
        }
        #endregion
#endregion
        #region ■  --  Android相关操作_______________________________
#region ■  --  Android相关操作_______________________________
#if __Android__
@@ -727,13 +730,13 @@
        }
#endif
        #endregion
#endregion
        #region ■  --  iOS相关操作_______________________________
#region ■  --  iOS相关操作_______________________________
#if __IOS__
        #region OnHDLLinphoneCallDelegate
#region OnHDLLinphoneCallDelegate
        /// <summary>
        /// 
        /// </summary>
@@ -810,10 +813,10 @@
        }
        #endregion
#endregion
#endif
        #endregion
#endregion
    }
HDL_ON/UI/MainPage.cs
@@ -26,7 +26,7 @@
    /// <summary>
    /// 版本号
    /// </summary>
    public static string VersionString = "1.5.5";
    public static string VersionString = "1.5.6";
    ///// <summary>
    ///// 客户端类型
    ///// </summary>
@@ -111,6 +111,7 @@
            SPK.AirFreshStandard,SPK.HvacAirFresh,
            SPK.AirSwitch,
            SPK.PanelSocket,SPK.ElectricSocket,
            SPK.HvacCac
        };
HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/CacControlPage.cs
@@ -251,7 +251,7 @@
            Button btnDataText = new Button()
            {
                X = Application.GetRealWidth(215),
                X = Application.GetRealWidth(212),
                Y = btnWindSpeed.Bottom,
                Width = Application.GetRealWidth(90),
                Height = Application.GetRealHeight(20),
@@ -296,10 +296,10 @@
            modeChangeView = new FrameLayout()
            {
                X = Application.GetRealWidth(30),
                Y = Application.GetRealHeight(128),
                Y = Application.GetRealHeight(128 + 135),
                Width = Application.GetRealWidth(160),
                Height = Application.GetRealHeight(287),
                BackgroundImagePath = "FunctionIcon/AC/DivBg1.png",
                Height = Application.GetRealHeight(152),
                BackgroundImagePath = "Public/dialogBg2.png",
            };
            dialogView.AddChidren(modeChangeView);
HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/CacDayHistoryPage.cs
@@ -13,9 +13,16 @@
        EchartsOption_BrokenLine brokenLine;
        MyEchartsViewOn myEchartsView_Line;
        string curQueryType = "hour";
        public CacDayHistoryPage()
        string queryTime;
        string functionId;
        string time;
        public CacDayHistoryPage(string functionId,string queryType, string time)
        {
            this.time = time;
            this.functionId = functionId;
            curQueryType = queryType;
            bodyView = this;
            queryTime = time;
        }
@@ -33,6 +40,23 @@
                Height = Application.GetRealHeight(603),
            };
            bodyView.AddChidren(contentView);
            var btnTitle = new Button()
            {
                Height = Application.GetRealHeight(60),
                TextAlignment = TextAlignment.Center,
                TextSize = CSS_FontSize.SubheadingFontSize,
                TextColor = CSS_Color.FirstLevelTitleColor,
            };
            if(curQueryType == "room_temp")
            {
                btnTitle.Text = queryTime + "室内温度历史数据";
            }
            else
            {
                btnTitle.Text = queryTime + "室内湿度历史数据";
            }
            contentView.AddChidren(btnTitle);
            var historyDataView = new FrameLayout()
@@ -56,42 +80,43 @@
#if DEBUG
            List<string> vs = new List<string>() {
                        "1","2","3","4","5","6","7","8","9","10","11","12","13","14"
                    };
            brokenLine.InitXdataText(vs);
            brokenLine.InitYdataText("yData", new List<EnvironmentalSensorHistor>() {
                new EnvironmentalSensorHistor{ fieldName = "1", fieldValue= "23"  },
                new EnvironmentalSensorHistor{ fieldName = "2", fieldValue= "22"  },
                new EnvironmentalSensorHistor{ fieldName = "3", fieldValue= "-11"  },
                new EnvironmentalSensorHistor{ fieldName = "4", fieldValue= "21"  },
                new EnvironmentalSensorHistor{ fieldName = "5", fieldValue= "-41"  },
                new EnvironmentalSensorHistor{ fieldName = "6", fieldValue= "23"  },
                new EnvironmentalSensorHistor{ fieldName = "7", fieldValue= "-31"  },
                new EnvironmentalSensorHistor{ fieldName = "8", fieldValue= "-23"  },
                new EnvironmentalSensorHistor{ fieldName = "9", fieldValue= "-11"  },
                new EnvironmentalSensorHistor{ fieldName = "10", fieldValue= "-21"  },
                new EnvironmentalSensorHistor{ fieldName = "11", fieldValue= "24"  },
                new EnvironmentalSensorHistor{ fieldName = "12", fieldValue= "41"  },
                new EnvironmentalSensorHistor{ fieldName = "13", fieldValue= "32"  },
                new EnvironmentalSensorHistor{ fieldName = "14", fieldValue= "23"  }
            }, "#FF9D54");
            brokenLine.yTitle = "(℃)";
            brokenLine.xTitle = "";
            if (curQueryType != "hour")
            {
                brokenLine.xTitle = Language.StringByID(StringId.Date);
            }
            var opString = brokenLine.InitOption();
            //List<string> vs = new List<string>() {
            //            "1","2","3","4","5","6","7","8","9","10","11","12","13","14"
            //        };
            //brokenLine.InitXdataText(vs);
            //brokenLine.InitYdataText("yData", new List<EnvironmentalSensorHistor>() {
            //    new EnvironmentalSensorHistor{ fieldName = "1", fieldValue= "23"  },
            //    new EnvironmentalSensorHistor{ fieldName = "2", fieldValue= "22"  },
            //    new EnvironmentalSensorHistor{ fieldName = "3", fieldValue= "-11"  },
            //    new EnvironmentalSensorHistor{ fieldName = "4", fieldValue= "21"  },
            //    new EnvironmentalSensorHistor{ fieldName = "5", fieldValue= "-41"  },
            //    new EnvironmentalSensorHistor{ fieldName = "6", fieldValue= "23"  },
            //    new EnvironmentalSensorHistor{ fieldName = "7", fieldValue= "-31"  },
            //    new EnvironmentalSensorHistor{ fieldName = "8", fieldValue= "-23"  },
            //    new EnvironmentalSensorHistor{ fieldName = "9", fieldValue= "-11"  },
            //    new EnvironmentalSensorHistor{ fieldName = "10", fieldValue= "-21"  },
            //    new EnvironmentalSensorHistor{ fieldName = "11", fieldValue= "24"  },
            //    new EnvironmentalSensorHistor{ fieldName = "12", fieldValue= "41"  },
            //    new EnvironmentalSensorHistor{ fieldName = "13", fieldValue= "32"  },
            //    new EnvironmentalSensorHistor{ fieldName = "14", fieldValue= "23"  }
            //}, "#FF9D54");
            //brokenLine.yTitle = "(℃)";
            //brokenLine.xTitle = "";
            ////if (curQueryType != "hour")
            ////{
            ////    brokenLine.xTitle = Language.StringByID(StringId.Date);
            ////}
            //var opString = brokenLine.InitOption();
                myEchartsView_Line.ShowWithOption(opString);
            //    myEchartsView_Line.ShowWithOption(opString);
#endif
            LoadMothed_GetHistoryData();
        }
        /// <summary>
        /// 读取历史数据
        /// </summary>
        void LoadMothed_GetHistoryData(Function sr, bool isDel)
        void LoadMothed_GetHistoryData()
        {
            var loadPage = new Loading()
@@ -109,8 +134,7 @@
                        loadPage.Start(Language.StringByID(StringId.PleaseWait));
                    });
                    var sensorType = sr.spk.Split(".")[1];
                    var revertObj = new HttpServerRequest().GetSensorHistory(curQueryType, sr.deviceId, "total_electricity");
                    var revertObj = new HttpServerRequest().GetSensorHistory("day_hour", functionId, curQueryType,time);
                    if (revertObj != null)
                    {
                        if (revertObj.Code == StateCode.SUCCESS)
@@ -126,19 +150,28 @@
                                }
                                brokenLine.InitXdataText(vs);
                            }
                            if (sr.GetAttribute("ydata") == null)
                            {
                                sr.attributes.Add(new FunctionAttributes() { key = "ydata" });
                            }
                            sr.SetAttrState("ydata", brokenLine.InitYdataText(sr.name, revertData, sr.GetAttrState("color")) + ",");
                            //if (sr.GetAttribute("ydata") == null)
                            //{
                            //    sr.attributes.Add(new FunctionAttributes() { key = "ydata" });
                            //}
                            //sr.SetAttrState("ydata",
                            brokenLine.InitYdataText("", revertData, "#FF9D54");// + ",");
                        }
                    }
                    brokenLine.yTitle = Language.StringByID(StringId.EnergyConsumption) + "(kW)";
                    brokenLine.xTitle = Language.StringByID(StringId.timeMode);
                    if (curQueryType != "hour")
                    brokenLine.yTitle = Language.StringByID(StringId.Uint);
                    if(curQueryType == "room_temp")
                    {
                        brokenLine.xTitle = Language.StringByID(StringId.Date);
                        brokenLine.yTitle += ":°C";
                    }
                    else
                    {
                        brokenLine.yTitle += ":%";
                    }
                    brokenLine.xTitle = Language.StringByID(StringId.timeMode);
                    //if (curQueryType != "hour")
                    //{
                    //    brokenLine.xTitle = Language.StringByID(StringId.Date);
                    //}
                    var opString = brokenLine.InitOption();
                    Application.RunOnMainThread(() =>
HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/CacHistoryChoosePage.cs
@@ -60,7 +60,7 @@
            };
            tempView.AddChidren(btnTempName);
            btnTempName.MouseUpEventHandler = (sender, e) => {
                var page = new CacWeekHistoryPage(device,"temp");
                var page = new CacWeekHistoryPage(device, "room_temp");
                MainPage.BasePageView.AddChidren(page);
                page.InitView();
                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
@@ -96,7 +96,7 @@
            };
            humidityView.AddChidren(btnHumidityName);
            btnHumidityName.MouseUpEventHandler = (sender, e) => {
                var page = new CacWeekHistoryPage(device, "humidity");
                var page = new CacWeekHistoryPage(device, "room_humidity");
                MainPage.BasePageView.AddChidren(page);
                page.InitView();
                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/CacWeekHistoryPage.cs
@@ -12,13 +12,15 @@
    {
        CacWeekHistoryPage bodyView;
            HorizontalScrolViewLayout dateHorView;
        Function device;
        /// <summary>
        /// 数据显示类型
        /// temp 温度
        /// humidity 湿度
        /// room_temp 温度
        /// room_humidity 湿度
        /// </summary>
        string showType;
            Dictionary<string, double> dataDic = new Dictionary<string, double>();
        public CacWeekHistoryPage(Function device,string type)
        {
            bodyView = this;
@@ -29,7 +31,15 @@
        public void InitView()
        {
            new TopViewDiv(bodyView, "数据").LoadTopView();
            if (showType == "room_temp")
            {
                new TopViewDiv(bodyView, Language.StringByID(StringId.Temp)).LoadTopView();
            }
            else
            {
                new TopViewDiv(bodyView, Language.StringByID(StringId.Humidity)).LoadTopView();
            }
            InitContentView();
@@ -55,116 +65,101 @@
                TextColor = CSS_Color.FirstLevelTitleColor,
                TextSize = CSS_FontSize.TextFontSize,
                TextAlignment = TextAlignment.Center,
                Text = "最近7天每天平均室内温度统计图"
            };
            if (showType == "room_temp")
            {
                btnTitle.Text = "最近7天每天平均室内温度统计图";
            }
            else
            {
                btnTitle.Text = "最近7天每天平均室内湿度统计图";
            }
            contentView.AddChidren(btnTitle);
            FrameLayout dataView = new FrameLayout()
            {
                Y = Application.GetRealHeight(69),
                Y = Application.GetRealHeight(39),
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(293),
                Height = Application.GetRealHeight(336),
                Height = Application.GetRealHeight(345 + 30),
            };
            contentView.AddChidren(dataView);
            Button btnUnit = new Button()
            {
                Height = Application.GetRealHeight(15),
                Height = Application.GetRealHeight(15 + 30),
                TextAlignment = TextAlignment.CenterLeft,
                TextColor = 0xFF43425D,
                TextSize = 8,
                Text = "单位:℃"
            };
            if (showType == "room_temp")
            {
                btnUnit.Text = Language.StringByID(StringId.Uint) + ":℃";
            }
            else
            {
                btnUnit.Text = Language.StringByID(StringId.Uint) + "%";
            }
            dataView.AddChidren(btnUnit);
            Dictionary<string, int> dataDic = new Dictionary<string, int>();
#if DEBUG
            dataDic.Add("0201", 20);
            dataDic.Add("0202", -20);
            dataDic.Add("0203", 10);
            dataDic.Add("0204", 40);
            dataDic.Add("0205", 20);
            dataDic.Add("0206", 20);
            dataDic.Add("0207", 20);
            //dataDic.Add("0201", 49);
            //dataDic.Add("0202", 20);
            //dataDic.Add("0203", 10);
            //dataDic.Add("0204", 49);
            //dataDic.Add("0205", 20);
            //dataDic.Add("0206", 20);
            //dataDic.Add("0207", 48);
            //dataDic.Add("0201", -20);
            //dataDic.Add("0202", -20);
            //dataDic.Add("0203", -20);
            //dataDic.Add("0204", -40);
            //dataDic.Add("0204", -48);
            //dataDic.Add("0205", -20);
            //dataDic.Add("0206", -20);
            //dataDic.Add("0207", -20);
#endif
            DataItemView dataShowView = new DataItemView("0");
            dataShowView.Height = Application.GetRealHeight(157 * 2 + 1);
            dataShowView.Y = Application.GetRealHeight(21);
            DataItemView dataShowView = new DataItemView("0",360);
            //dataShowView.Height = Application.GetRealHeight(360);
            dataShowView.Y = Application.GetRealHeight(30);
            List<string> items = new List<string>()
            {
                "50","40","30","20","10","0","-10","-20","-30","-40","-50"
                "100","90","80","70","60","50","40","30","20","10","0"
            };
            if (showType == "room_temp")
            {
                items = new List<string>()
                {
                    "50","40","30","20","10","0","-10","-20","-30","-40","-50"
                };
            }
            int index = 0;
            foreach(var item in items)
            foreach (var item in items)
            {
                DataItemView dataItemView;
                if(item == "0")
                if (item == "0" )
                {
                    dataItemView = dataShowView;
                    index++;
                }
                else
                {
                    dataItemView = new DataItemView(item);
                    dataItemView.Y = index * Application.GetRealHeight(30) + Application.GetRealHeight(15);
                    dataItemView = new DataItemView(item,30);
                    dataItemView.Y = ++index * Application.GetRealHeight(30) + Application.GetRealHeight(15);
                }
                dataItemView.InitView();
                dataItemView.InitView(showType == "room_temp");
                dataView.AddChidren(dataItemView);
                index++;
            }
            RefrshDataView(dataDic, dataShowView);
            dateHorView = new HorizontalScrolViewLayout()
            {
                var dateHorView = new HorizontalScrolViewLayout()
                {
                    X = Application.GetRealWidth(51),
                    Y = dataView.Bottom + Application.GetRealHeight(11),
                    Width = Application.GetRealWidth(267),
                    Height = Application.GetRealHeight(26),
                };
                contentView.AddChidren(dateHorView);
                foreach(var dic in dataDic)
                {
                    FrameLayout dateView = new FrameLayout()
                    {
                        Width = Application.GetRealWidth(39),
                        Height = Application.GetRealHeight(26),
                    };
                    dateHorView.AddChidren(dateView);
                    Button btnLineh = new Button()
                    {
                        Width = 1,
                        Height = Application.GetRealHeight(4),
                        Gravity = Gravity.CenterHorizontal,
                        BackgroundColor = 0xFFDBDBDB
                    };
                    dateView.AddChidren(btnLineh);
                    Button btnDate = new Button()
                    {
                        Y = Application.GetRealHeight(12),
                        Height = Application.GetRealHeight(14),
                        TextColor = 0xFF43425D,
                        TextSize = 10,
                        Text = dic.Key,
                    };
                    dateView.AddChidren(btnDate);
                }
            }
                X = Application.GetRealWidth(48),
                Y = dataView.Bottom,// - Application.GetRealHeight(19),
                Width = Application.GetRealWidth(267),
                Height = Application.GetRealHeight(26),
            };
            contentView.AddChidren(dateHorView);
            Button btnTip = new Button()
            {
@@ -178,18 +173,82 @@
            bodyView.AddChidren(btnTip);
            new System.Threading.Thread(() => {
                var revertObj = new HttpServerRequest().GetSensorHistory("week", device.deviceId, "room_temp");
            new System.Threading.Thread(() =>
            {
            }) { IsBackground = true }.Start();
                var revertObj = new HttpServerRequest().GetSensorHistory("week", device.deviceId, showType);
                if (revertObj.Code == StateCode.SUCCESS)
                {
                    var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<EnvironmentalSensorHistor>>(revertObj.Data.ToString());
                    foreach (var reObj in revertData)
                    {
                        double value = 0;
                        try
                        {
                            value = Convert.ToDouble(reObj.fieldValue);
                        }
                        catch { }
                        dataDic.Add(reObj.time, value);
                    }
                    Application.RunOnMainThread(() =>
                    {
                        RefrshDataView(dataDic, dataShowView);
                        RefreshXtext();
                    });
                }
            })
            { IsBackground = true }.Start();
        }
        void RefrshDataView(Dictionary<string,int> dataDic, DataItemView dataShowView)
        void RefreshXtext()
        {
            dateHorView.RemoveAll();
            foreach (var dic in dataDic)
            {
                FrameLayout dateView = new FrameLayout()
                {
                    Width = Application.GetRealWidth(39),
                    Height = Application.GetRealHeight(26),
                };
                dateHorView.AddChidren(dateView);
                Button btnLineh = new Button()
                {
                    Width = 1,
                    Height = Application.GetRealHeight(4),
                    Gravity = Gravity.CenterHorizontal,
                    BackgroundColor = 0xFFDBDBDB
                };
                dateView.AddChidren(btnLineh);
                Button btnDate = new Button()
                {
                    Y = Application.GetRealHeight(12),
                    Height = Application.GetRealHeight(14),
                    TextColor = 0xFF43425D,
                    TextSize = 10,
                    Text = dic.Key,
                };
                try
                {
                    string[] strs = dic.Key.Split(@"/");
                    btnDate.Text = strs[1] + "/" + strs[2];
                }
                catch { }
                dateView.AddChidren(btnDate);
            }
        }
        void RefrshDataView(Dictionary<string,double> dataDic, FrameLayout dataShowView)
        {
            int valueIndex = 0;
            foreach (var data in dataDic)
            {
                ColumnarView cv = new ColumnarView(data.Value);
                ColumnarView cv = new ColumnarView(device.deviceId,showType, data.Key, data.Value);
                cv.X = Application.GetRealWidth(valueIndex * 38 + 25);
                cv.InitView();
                dataShowView.AddChidren(cv);
@@ -207,19 +266,20 @@
    class DataItemView : FrameLayout
    {
        string value;
        public DataItemView(string value)
        Button btnLine;
        int height;
        public DataItemView(string value,int height)
        {
            this.value = value;
            Width = Application.GetRealWidth(293);
            Height = Application.GetRealHeight(30);
            this.height = height;
            Height = Application.GetRealHeight(height);
        }
        public void InitView() {
        public void InitView(bool isTemp) {
            Button btnValue = new Button()
            {
                Gravity = Gravity.CenterVertical,
                Width = Application.GetRealWidth(18),
                Height = Application.GetRealHeight(30),
                TextAlignment = TextAlignment.CenterRight,
@@ -229,14 +289,30 @@
            };
            AddChidren(btnValue);
            Button btnLine = new Button()
            btnLine = new Button()
            {
                Gravity = Gravity.CenterVertical,
                X = Application.GetRealWidth(26),
                Width = Application.GetRealWidth(267),
                Height = 1,
                BackgroundColor = CSS_Color.DividingLineColor,
            };
            if (isTemp)
            {
                btnLine.Gravity = Gravity.CenterVertical;
                btnValue.Gravity = Gravity.CenterVertical;
            }
            else
            {
                if (height == 360)
                {
                    btnValue.Y = Application.GetRealHeight(height - 45);
                }
                else
                {
                    btnLine.Gravity = Gravity.CenterVertical;
                }
                btnLine.Y = Application.GetRealHeight(height - 30);
            }
            AddChidren(btnLine);
@@ -244,11 +320,16 @@
        }
    }
    class ColumnarView : VerticalScrolViewLayout
    {
        int value;
        string functionId;
        string time;
        string type;
        double value;
        string valueText;
        /// <summary>
        /// 方向:向上、向下
        /// </summary>
@@ -257,9 +338,13 @@
        Button btnValueText;
        public ColumnarView(int value)
        public ColumnarView(string functionId,string type, string key, double value)
        {
            this.functionId = functionId;
            this.type = type;
            time = key;
            this.isUpward = value >= 0;
            valueText = value.ToString();
            if (isUpward)
            {
                this.value = value;
@@ -269,7 +354,7 @@
                this.value = value * -1;
            }
            Width = Application.GetRealWidth(39);
            Height = Application.GetRealHeight(value * 3 + 30);
            Height = Application.GetRealHeight((int)(value * 3 + 30));
        }
        public void InitView()
@@ -278,7 +363,7 @@
            btnValue = new Button()
            {
                Gravity = Gravity.CenterHorizontal,
                Height = Application.GetRealHeight(value * 3),
                Height = Application.GetRealHeight((int)(value * 3)),
                Width = Application.GetRealWidth(16),
                BackgroundColor = 0xFFFF9D54,
            };
@@ -288,51 +373,48 @@
                Height = Application.GetRealHeight(30),
                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                TextColor = 0xFF43425D,
                Text = value + "℃",
                Text = valueText,
            };
            AddChidren(btnValueText);
            if (isUpward)
            if(type == "room_temp")
            {
                //btnValue.Height += Application.GetRealHeight(1);
                yValue = 158 - 30 - value * 3;
                yValue = yValue > 0 ? yValue : 158;
                Y = Application.GetRealHeight(yValue);
                AddChidren(btnValueText);
                AddChidren(btnValue);
                btnValueText.Text += "℃";
                if (isUpward)
                {
                    yValue = (int)(150 - value * 3);
                    yValue = yValue > 0 ? yValue : 0;
                    Y = Application.GetRealHeight(yValue+1);
                    AddChidren(btnValueText);
                    AddChidren(btnValue);
                }
                else
                {
                    Y = Application.GetRealHeight(180);
                    AddChidren(btnValue);
                    AddChidren(btnValueText);
                }
            }
            else
            {
                btnValue.Height += Application.GetRealHeight(2);
                Y = Application.GetRealHeight(157);
                AddChidren(btnValue);
                yValue = (int)(360 -30- 30 - value * 3);
                Y = Application.GetRealHeight(yValue+1);
                AddChidren(btnValueText);
                AddChidren(btnValue);
                btnValueText.Text += "%";
            }
        }
        public void Clicker()
        {
            btnValue.MouseUpEventHandler = (sender, e) =>
            {
                var page = new CacDayHistoryPage();
                var page = new CacDayHistoryPage(functionId,type, time);
                MainPage.BasePageView.AddChidren(page);
                page.InitView();
                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
            };
            btnValueText.MouseUpEventHandler = (sender, e) =>
            {
                var page = new CacDayHistoryPage();
                var page = new CacDayHistoryPage(functionId,type, time);
                MainPage.BasePageView.AddChidren(page);
                page.InitView();
                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs
@@ -955,5 +955,9 @@
        /// <summary>
        /// </summary>
        public string fieldValue { get; set; }
        /// <summary>
        /// 时间
        /// </summary>
        public string time { get; set; }
    }
}
HDL_ON/UI/UI2/FuntionControlView/Light/ColorTureLampPageBLL.cs
@@ -154,7 +154,8 @@
                onDimmerBar = false;
                function.SetAttrState(FunctionAttributeKey.Brightness, dimmerBar.Progress);
                System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
                d.Add(FunctionAttributeKey.Brightness, dimmerBar.Progress.ToString());
                d.Add(FunctionAttributeKey.Brightness, dimmerBar.Progress.ToString());
                d.Add(FunctionAttributeKey.FadeTime, function.GetAttrState(FunctionAttributeKey.FadeTime));
                Control.Ins.SendWriteCommand(function, d);
                //function.fadeTime = barFadeTime.Progress;
                btnBrightnessText.Text = dimmerBar.Progress + "%";
@@ -242,6 +243,7 @@
                    function.trait_on_off.curValue = btnSwitch.IsSelected ? "on" : "off";
                    System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
                    d.Add(FunctionAttributeKey.OnOff, function.trait_on_off.curValue.ToString());
                    d.Add(FunctionAttributeKey.FadeTime, function.GetAttrState(FunctionAttributeKey.FadeTime));
                    if (btnSwitch.IsSelected)
                    {
                        d.Add(FunctionAttributeKey.Brightness, function.lastBrightness.ToString());
HDL_ON/UI/UI2/FuntionControlView/Light/DimmerPageBLL.cs
@@ -172,6 +172,7 @@
                    function.trait_on_off.curValue = btnSwitch.IsSelected ? "on" : "off";
                    System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
                    d.Add(FunctionAttributeKey.OnOff, function.trait_on_off.curValue.ToString());
                    d.Add(FunctionAttributeKey.FadeTime, function.GetAttrState(FunctionAttributeKey.FadeTime));
                    if (btnSwitch.IsSelected)
                    {
                        if(function.lastBrightness == 0)