mirror of
				https://github.com/XiaoMi/ha_xiaomi_home.git
				synced 2025-10-31 09:22:08 +08:00 
			
		
		
		
	feat: set the cover closed position (#1242)
* feat: add the cover closed position configure option * feat: estimate the cover entity's is_closed property by the cover closed position (#944) * fix: translations * feat: set max cover closed position as 5 * docs: modify README * fix: remove useless spaces
This commit is contained in:
		| @@ -75,6 +75,9 @@ from .miot.const import ( | ||||
|     DEFAULT_CLOUD_SERVER, | ||||
|     DEFAULT_CTRL_MODE, | ||||
|     DEFAULT_INTEGRATION_LANGUAGE, | ||||
|     DEFAULT_COVER_CLOSED_POSITION, | ||||
|     MIN_COVER_CLOSED_POSITION, | ||||
|     MAX_COVER_CLOSED_POSITION, | ||||
|     DEFAULT_NICK_NAME, | ||||
|     DEFAULT_OAUTH2_API_HOST, | ||||
|     DOMAIN, | ||||
| @@ -129,6 +132,7 @@ class XiaomiMihomeConfigFlow(config_entries.ConfigFlow, domain=DOMAIN): | ||||
|  | ||||
|     _cloud_server: str | ||||
|     _integration_language: str | ||||
|     _cover_closed_position: int | ||||
|     _auth_info: dict | ||||
|     _nick_name: str | ||||
|     _home_selected: dict | ||||
| @@ -151,6 +155,7 @@ class XiaomiMihomeConfigFlow(config_entries.ConfigFlow, domain=DOMAIN): | ||||
|         self._main_loop = asyncio.get_running_loop() | ||||
|         self._cloud_server = DEFAULT_CLOUD_SERVER | ||||
|         self._integration_language = DEFAULT_INTEGRATION_LANGUAGE | ||||
|         self._cover_closed_position = DEFAULT_COVER_CLOSED_POSITION | ||||
|         self._storage_path = '' | ||||
|         self._virtual_did = '' | ||||
|         self._uid = '' | ||||
| @@ -951,6 +956,7 @@ class XiaomiMihomeConfigFlow(config_entries.ConfigFlow, domain=DOMAIN): | ||||
|                 'action_debug': self._action_debug, | ||||
|                 'hide_non_standard_entities': | ||||
|                     self._hide_non_standard_entities, | ||||
|                 'cover_closed_position': self._cover_closed_position, | ||||
|                 'display_binary_mode': self._display_binary_mode, | ||||
|                 'display_devices_changed_notify': | ||||
|                     self._display_devices_changed_notify | ||||
| @@ -995,6 +1001,7 @@ class OptionsFlowHandler(config_entries.OptionsFlow): | ||||
|     _hide_non_standard_entities: bool | ||||
|     _display_binary_mode: list[str] | ||||
|     _display_devs_notify: list[str] | ||||
|     _cover_closed_position: int | ||||
|  | ||||
|     _oauth_redirect_url_full: str | ||||
|     _auth_info: dict | ||||
| @@ -1015,6 +1022,7 @@ class OptionsFlowHandler(config_entries.OptionsFlow): | ||||
|     _opt_lan_ctrl_cfg: bool | ||||
|     _opt_network_detect_cfg: bool | ||||
|     _opt_check_network_deps: bool | ||||
|     _cover_pos_new: int | ||||
|  | ||||
|     _trans_rules_count: int | ||||
|     _trans_rules_count_success: int | ||||
| @@ -1043,6 +1051,8 @@ class OptionsFlowHandler(config_entries.OptionsFlow): | ||||
|         self._ctrl_mode = self._entry_data.get('ctrl_mode', DEFAULT_CTRL_MODE) | ||||
|         self._integration_language = self._entry_data.get( | ||||
|             'integration_language', DEFAULT_INTEGRATION_LANGUAGE) | ||||
|         self._cover_closed_position = self._entry_data.get( | ||||
|             'cover_closed_position', DEFAULT_COVER_CLOSED_POSITION) | ||||
|         self._nick_name = self._entry_data.get('nick_name', DEFAULT_NICK_NAME) | ||||
|         self._action_debug = self._entry_data.get('action_debug', False) | ||||
|         self._hide_non_standard_entities = self._entry_data.get( | ||||
| @@ -1068,6 +1078,7 @@ class OptionsFlowHandler(config_entries.OptionsFlow): | ||||
|         self._action_debug_new = False | ||||
|         self._hide_non_standard_entities_new = False | ||||
|         self._display_binary_mode_new = [] | ||||
|         self._cover_pos_new = self._cover_closed_position | ||||
|         self._update_user_info = False | ||||
|         self._update_devices = False | ||||
|         self._update_trans_rules = False | ||||
| @@ -1340,6 +1351,12 @@ class OptionsFlowHandler(config_entries.OptionsFlow): | ||||
|                     ): cv.multi_select( | ||||
|                         self._miot_i18n.translate( | ||||
|                             'config.binary_mode')),  # type: ignore | ||||
|                     vol.Optional( | ||||
|                         'cover_closed_position', | ||||
|                         default=self._cover_closed_position  # type: ignore | ||||
|                     ): vol.All(vol.Coerce(int), vol.Range( | ||||
|                         min=MIN_COVER_CLOSED_POSITION, | ||||
|                         max=MAX_COVER_CLOSED_POSITION)), | ||||
|                     vol.Required( | ||||
|                         'update_trans_rules', | ||||
|                         default=self._update_trans_rules  # type: ignore | ||||
| @@ -1378,6 +1395,8 @@ class OptionsFlowHandler(config_entries.OptionsFlow): | ||||
|             'update_lan_ctrl_config', self._opt_lan_ctrl_cfg) | ||||
|         self._opt_network_detect_cfg = user_input.get( | ||||
|             'network_detect_config', self._opt_network_detect_cfg) | ||||
|         self._cover_pos_new = user_input.get( | ||||
|             'cover_closed_position', self._cover_closed_position) | ||||
|  | ||||
|         return await self.async_step_update_user_info() | ||||
|  | ||||
| @@ -1926,6 +1945,7 @@ class OptionsFlowHandler(config_entries.OptionsFlow): | ||||
|                     'nick_name': self._nick_name, | ||||
|                     'lang_new': INTEGRATION_LANGUAGES[self._lang_new], | ||||
|                     'nick_name_new': self._nick_name_new, | ||||
|                     'cover_pos_new': self._cover_pos_new, | ||||
|                     'devices_add': len(self._devices_add), | ||||
|                     'devices_remove': len(self._devices_remove), | ||||
|                     'trans_rules_count': self._trans_rules_count, | ||||
| @@ -1952,6 +1972,9 @@ class OptionsFlowHandler(config_entries.OptionsFlow): | ||||
|         if self._lang_new != self._integration_language: | ||||
|             self._entry_data['integration_language'] = self._lang_new | ||||
|             self._need_reload = True | ||||
|         if self._cover_pos_new != self._cover_closed_position: | ||||
|             self._entry_data['cover_closed_position'] = self._cover_pos_new | ||||
|             self._need_reload = True | ||||
|         if self._update_user_info: | ||||
|             self._entry_data['nick_name'] = self._nick_name_new | ||||
|         if self._update_devices: | ||||
|   | ||||
| @@ -91,6 +91,7 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, | ||||
| class Cover(MIoTServiceEntity, CoverEntity): | ||||
|     """Cover entities for Xiaomi Home.""" | ||||
|     # pylint: disable=unused-argument | ||||
|     _cover_closed_position: int | ||||
|     _prop_motor_control: Optional[MIoTSpecProperty] | ||||
|     _prop_motor_value_open: Optional[int] | ||||
|     _prop_motor_value_close: Optional[int] | ||||
| @@ -115,6 +116,9 @@ class Cover(MIoTServiceEntity, CoverEntity): | ||||
|         self._attr_supported_color_modes = set() | ||||
|         self._attr_supported_features = CoverEntityFeature(0) | ||||
|  | ||||
|         self._cover_closed_position = ( | ||||
|             miot_device.miot_client.cover_closed_position) | ||||
|  | ||||
|         self._prop_motor_control = None | ||||
|         self._prop_motor_value_open = None | ||||
|         self._prop_motor_value_close = None | ||||
| @@ -297,7 +301,7 @@ class Cover(MIoTServiceEntity, CoverEntity): | ||||
|     def is_closed(self) -> Optional[bool]: | ||||
|         """Return if the cover is closed.""" | ||||
|         if self.current_cover_position is not None: | ||||
|             return self.current_cover_position == 0 | ||||
|             return self.current_cover_position <= self._cover_closed_position | ||||
|         # The current position is prior to the status when determining | ||||
|         # whether the cover is closed. | ||||
|         if self._prop_status and self._prop_status_closed: | ||||
|   | ||||
| @@ -120,6 +120,10 @@ INTEGRATION_LANGUAGES = { | ||||
|     'zh-Hant': '繁體中文' | ||||
| } | ||||
|  | ||||
| DEFAULT_COVER_CLOSED_POSITION: int = 0 | ||||
| MIN_COVER_CLOSED_POSITION: int = 0 | ||||
| MAX_COVER_CLOSED_POSITION: int = 5 | ||||
|  | ||||
| DEFAULT_CTRL_MODE: str = 'auto' | ||||
|  | ||||
| # Registered in Xiaomi OAuth 2.0 Service | ||||
|   | ||||
| @@ -63,7 +63,8 @@ from .common import MIoTMatcher, slugify_did | ||||
| from .const import ( | ||||
|     DEFAULT_CTRL_MODE, DEFAULT_INTEGRATION_LANGUAGE, DEFAULT_NICK_NAME, DOMAIN, | ||||
|     MIHOME_CERT_EXPIRE_MARGIN, NETWORK_REFRESH_INTERVAL, | ||||
|     OAUTH2_CLIENT_ID, SUPPORT_CENTRAL_GATEWAY_CTRL) | ||||
|     OAUTH2_CLIENT_ID, SUPPORT_CENTRAL_GATEWAY_CTRL, | ||||
|     DEFAULT_COVER_CLOSED_POSITION) | ||||
| from .miot_cloud import MIoTHttpClient, MIoTOauthClient | ||||
| from .miot_error import MIoTClientError, MIoTErrorCode | ||||
| from .miot_mips import ( | ||||
| @@ -486,6 +487,11 @@ class MIoTClient: | ||||
|     def display_binary_bool(self) -> bool: | ||||
|         return self._display_binary_bool | ||||
|  | ||||
|     @property | ||||
|     def cover_closed_position(self) -> int: | ||||
|         return self._entry_data.get('cover_closed_position', | ||||
|                                     DEFAULT_COVER_CLOSED_POSITION) | ||||
|  | ||||
|     @display_devices_changed_notify.setter | ||||
|     def display_devices_changed_notify(self, value: list[str]) -> None: | ||||
|         if set(value) == set(self._display_devs_notify): | ||||
|   | ||||
| @@ -4,7 +4,7 @@ | ||||
|         "step": { | ||||
|             "eula": { | ||||
|                 "title": "Risikohinweis", | ||||
|                 "description": "1. Ihre **Xiaomi-Benutzerinformationen und Geräteinformationen** werden in Ihrem Home Assistant-System gespeichert. **Xiaomi kann die Sicherheit des Home Assistant-Speichermechanismus nicht garantieren**. Sie sind dafür verantwortlich, Ihre Informationen vor Diebstahl zu schützen.\r\n2. Diese Integration wird von der Open-Source-Community unterstützt und gewartet. Es können jedoch Stabilitätsprobleme oder andere Probleme auftreten. Wenn Sie auf ein Problem stoßen, das mit dieser Integration zusammenhängt, sollten Sie **die Open-Source-Community um Hilfe bitten, anstatt sich an den Xiaomi Home Kundendienst zu wenden**.\r\n3. Sie benötigen bestimmte technische Fähigkeiten, um Ihre lokale Laufzeitumgebung zu warten. Diese Integration ist für Anfänger nicht geeignet. \r\n4. Bevor Sie diese Integration verwenden, lesen Sie bitte die **README-Datei sorgfältig durch**.\r\n5. Um eine stabile Nutzung der Integration zu gewährleisten und Missbrauch der Schnittstelle zu verhindern, **darf diese Integration nur in Home Assistant verwendet werden. Weitere Informationen finden Sie in der LICENSE**.", | ||||
|                 "description": "1. Ihre **Xiaomi-Benutzerinformationen und Geräteinformationen** werden in Ihrem Home Assistant-System gespeichert. **Xiaomi kann die Sicherheit des Home Assistant-Speichermechanismus nicht garantieren**. Sie sind dafür verantwortlich, Ihre Informationen vor Diebstahl zu schützen.\r\n2. Diese Integration wird von der Open-Source-Community unterstützt und gewartet. Es können jedoch Stabilitätsprobleme oder andere Probleme auftreten. Wenn Sie auf ein Problem stoßen, das mit dieser Integration zusammenhängt, sollten Sie **die Open-Source-Community um Hilfe bitten, anstatt sich an den Xiaomi Home Kundendienst zu wenden**.\r\n3. Sie benötigen bestimmte technische Fähigkeiten, um Ihre lokale Laufzeitumgebung zu warten. Diese Integration ist für Anfänger nicht geeignet.\r\n4. Bevor Sie diese Integration verwenden, lesen Sie bitte die **README-Datei sorgfältig durch**.\r\n5. Um eine stabile Nutzung der Integration zu gewährleisten und Missbrauch der Schnittstelle zu verhindern, **darf diese Integration nur in Home Assistant verwendet werden. Weitere Informationen finden Sie in der LICENSE**.", | ||||
|                 "data": { | ||||
|                     "eula": "Ich habe das oben genannte Risiko zur Kenntnis genommen und übernehme freiwillig die damit verbundenen Risiken durch die Verwendung der Integration." | ||||
|                 } | ||||
| @@ -124,7 +124,8 @@ | ||||
|                     "display_devices_changed_notify": "Gerätestatusänderungen anzeigen", | ||||
|                     "update_trans_rules": "Entitätskonvertierungsregeln aktualisieren", | ||||
|                     "update_lan_ctrl_config": "LAN-Steuerungskonfiguration aktualisieren", | ||||
|                     "network_detect_config": "Integrierte Netzwerkkonfiguration" | ||||
|                     "network_detect_config": "Integrierte Netzwerkkonfiguration", | ||||
|                     "cover_closed_position": "Die Position der geschlossenen Vorhänge" | ||||
|                 } | ||||
|             }, | ||||
|             "update_user_info": { | ||||
| @@ -183,7 +184,7 @@ | ||||
|             }, | ||||
|             "config_confirm": { | ||||
|                 "title": "Bestätigen Sie die Konfiguration", | ||||
|                 "description": "**{nick_name}**, bitte bestätigen Sie die neuesten Konfigurationsinformationen und klicken Sie dann auf \"Senden\". Die Integration wird mit den aktualisierten Konfigurationen erneut geladen.\r\n\r\nIntegrationsprache:\t{lang_new}\r\nBenutzername:\t{nick_name_new}\r\nAction-Debug-Modus:\t{action_debug}\r\nVerstecke Nicht-Standard-Entitäten:\t{hide_non_standard_entities}\r\nGerätestatusänderungen anzeigen:\t{display_devices_changed_notify}\r\nGeräteänderungen:\t{devices_add} neue Geräte hinzufügen, {devices_remove} Geräte entfernen\r\nKonvertierungsregeländerungen:\tInsgesamt {trans_rules_count} Regeln, aktualisiert {trans_rules_count_success} Regeln", | ||||
|                 "description": "**{nick_name}**, bitte bestätigen Sie die neuesten Konfigurationsinformationen und klicken Sie dann auf \"Senden\". Die Integration wird mit den aktualisierten Konfigurationen erneut geladen.\r\n\r\nIntegrationsprache:\t{lang_new}\r\nBenutzername:\t{nick_name_new}\r\nAction-Debug-Modus:\t{action_debug}\r\nVerstecke Nicht-Standard-Entitäten:\t{hide_non_standard_entities}\r\nDie Position der geschlossenen Vorhänge:\t{cover_pos_new}\r\nGerätestatusänderungen anzeigen:\t{display_devices_changed_notify}\r\nGeräteänderungen:\t{devices_add} neue Geräte hinzufügen, {devices_remove} Geräte entfernen\r\nKonvertierungsregeländerungen:\tInsgesamt {trans_rules_count} Regeln, aktualisiert {trans_rules_count_success} Regeln", | ||||
|                 "data": { | ||||
|                     "confirm": "Änderungen bestätigen" | ||||
|                 } | ||||
|   | ||||
| @@ -124,7 +124,8 @@ | ||||
|                     "display_devices_changed_notify": "Display device status change notifications", | ||||
|                     "update_trans_rules": "Update entity conversion rules", | ||||
|                     "update_lan_ctrl_config": "Update LAN control configuration", | ||||
|                     "network_detect_config": "Integrated Network Configuration" | ||||
|                     "network_detect_config": "Integrated network configuration", | ||||
|                     "cover_closed_position": "Cover closed position" | ||||
|                 } | ||||
|             }, | ||||
|             "update_user_info": { | ||||
| @@ -183,7 +184,7 @@ | ||||
|             }, | ||||
|             "config_confirm": { | ||||
|                 "title": "Confirm Configuration", | ||||
|                 "description": "Hello **{nick_name}**, please confirm the latest configuration information and then Click SUBMIT.\r\nThe integration will reload using the updated configuration.\r\n\r\nIntegration Language: \t{lang_new}\r\nNickname: \t{nick_name_new}\r\nDebug mode for action: \t{action_debug}\r\nHide non-standard created entities: \t{hide_non_standard_entities}\r\nDisplay device status change notifications:\t{display_devices_changed_notify}\r\nDevice Changes: \tAdd **{devices_add}** devices, Remove **{devices_remove}** devices\r\nTransformation rules change: \tThere are a total of **{trans_rules_count}** rules, and updated **{trans_rules_count_success}** rules", | ||||
|                 "description": "Hello **{nick_name}**, please confirm the latest configuration information and then Click SUBMIT.\r\nThe integration will reload using the updated configuration.\r\n\r\nIntegration Language:\t{lang_new}\r\nNickname:\t{nick_name_new}\r\nDebug mode for action:\t{action_debug}\r\nHide non-standard created entities:\t{hide_non_standard_entities}\r\nCover closed position:\t{cover_pos_new}\r\nDisplay device status change notifications:\t{display_devices_changed_notify}\r\nDevice Changes:\tAdd **{devices_add}** devices, Remove **{devices_remove}** devices\r\nTransformation rules change:\tThere are a total of **{trans_rules_count}** rules, and updated **{trans_rules_count_success}** rules", | ||||
|                 "data": { | ||||
|                     "confirm": "Confirm the change" | ||||
|                 } | ||||
|   | ||||
| @@ -4,7 +4,7 @@ | ||||
|         "step": { | ||||
|             "eula": { | ||||
|                 "title": "Aviso de riesgo", | ||||
|                 "description": "1. Su **información de usuario de Xiaomi e información del dispositivo** se almacenará en su sistema Home Assistant. **Xiaomi no puede garantizar la seguridad del mecanismo de almacenamiento de Home Assistant**. Usted es responsable de evitar que su información sea robada.\r\n2. Esta integración es mantenida por la comunidad de código abierto y puede haber problemas de estabilidad u otros problemas. Cuando tenga problemas relacionados con el uso de esta integración, **busque ayuda en la comunidad de código abierto en lugar de contactar al servicio al cliente de Xiaomi**.\r\n3. Es necesario tener ciertas habilidades técnicas para mantener su entorno de ejecución local, esta integración no es amigable para los usuarios novatos.\r\n4. Antes de utilizar esta integración, por favor **lea detenidamente el archivo README**. \r\n5. Para garantizar el uso estable de la integración y prevenir el abuso de la interfaz, **esta integración solo está permitida en Home Assistant. Para más detalles, consulte la LICENSE**.", | ||||
|                 "description": "1. Su **información de usuario de Xiaomi e información del dispositivo** se almacenará en su sistema Home Assistant. **Xiaomi no puede garantizar la seguridad del mecanismo de almacenamiento de Home Assistant**. Usted es responsable de evitar que su información sea robada.\r\n2. Esta integración es mantenida por la comunidad de código abierto y puede haber problemas de estabilidad u otros problemas. Cuando tenga problemas relacionados con el uso de esta integración, **busque ayuda en la comunidad de código abierto en lugar de contactar al servicio al cliente de Xiaomi**.\r\n3. Es necesario tener ciertas habilidades técnicas para mantener su entorno de ejecución local, esta integración no es amigable para los usuarios novatos.\r\n4. Antes de utilizar esta integración, por favor **lea detenidamente el archivo README**.\r\n5. Para garantizar el uso estable de la integración y prevenir el abuso de la interfaz, **esta integración solo está permitida en Home Assistant. Para más detalles, consulte la LICENSE**.", | ||||
|                 "data": { | ||||
|                     "eula": "He leído y entiendo los riesgos anteriores, y estoy dispuesto a asumir cualquier riesgo relacionado con el uso de esta integración." | ||||
|                 } | ||||
| @@ -124,7 +124,8 @@ | ||||
|                     "display_devices_changed_notify": "Mostrar notificaciones de cambio de estado del dispositivo", | ||||
|                     "update_trans_rules": "Actualizar reglas de conversión de entidad", | ||||
|                     "update_lan_ctrl_config": "Actualizar configuración de control LAN", | ||||
|                     "network_detect_config": "Configuración de Red Integrada" | ||||
|                     "network_detect_config": "Configuración de Red Integrada", | ||||
|                     "cover_closed_position": "La posición de las cortinas cerradas" | ||||
|                 } | ||||
|             }, | ||||
|             "update_user_info": { | ||||
| @@ -183,7 +184,7 @@ | ||||
|             }, | ||||
|             "config_confirm": { | ||||
|                 "title": "Confirmar configuración", | ||||
|                 "description": "¡Hola, **{nick_name}**! Por favor, confirme la última información de configuración y haga clic en \"Enviar\" para finalizar la configuración.\r\nLa integración se volverá a cargar con la nueva configuración.\r\n\r\nIdioma de la integración:\t{lang_new}\r\nApodo de usuario:\t{nick_name_new}\r\nModo de depuración de Action:\t{action_debug}\r\nOcultar entidades generadas no estándar:\t{hide_non_standard_entities}\r\nMostrar notificaciones de cambio de estado del dispositivo:\t{display_devices_changed_notify}\r\nCambios de dispositivos:\t{devices_add} dispositivos agregados, {devices_remove} dispositivos eliminados\r\nCambios en las reglas de conversión:\t{trans_rules_count} reglas en total, {trans_rules_count_success} reglas actualizadas", | ||||
|                 "description": "¡Hola, **{nick_name}**! Por favor, confirme la última información de configuración y haga clic en \"Enviar\" para finalizar la configuración.\r\nLa integración se volverá a cargar con la nueva configuración.\r\n\r\nIdioma de la integración:\t{lang_new}\r\nApodo de usuario:\t{nick_name_new}\r\nModo de depuración de Action:\t{action_debug}\r\nOcultar entidades generadas no estándar:\t{hide_non_standard_entities}\r\nLa posición de las cortinas cerradas:\t{cover_pos_new}\r\nMostrar notificaciones de cambio de estado del dispositivo:\t{display_devices_changed_notify}\r\nCambios de dispositivos:\t{devices_add} dispositivos agregados, {devices_remove} dispositivos eliminados\r\nCambios en las reglas de conversión:\t{trans_rules_count} reglas en total, {trans_rules_count_success} reglas actualizadas", | ||||
|                 "data": { | ||||
|                     "confirm": "Confirmar modificación" | ||||
|                 } | ||||
|   | ||||
| @@ -124,7 +124,8 @@ | ||||
|                     "display_devices_changed_notify": "Afficher les notifications de changement d'état de l'appareil", | ||||
|                     "update_trans_rules": "Mettre à jour les règles de conversion d'entités", | ||||
|                     "update_lan_ctrl_config": "Mettre à jour la configuration de contrôle LAN", | ||||
|                     "network_detect_config": "Configuration Réseau Intégrée" | ||||
|                     "network_detect_config": "Configuration Réseau Intégrée", | ||||
|                     "cover_closed_position": "La position des rideaux fermés" | ||||
|                 } | ||||
|             }, | ||||
|             "update_user_info": { | ||||
| @@ -183,7 +184,7 @@ | ||||
|             }, | ||||
|             "config_confirm": { | ||||
|                 "title": "Confirmer la configuration", | ||||
|                 "description": "**{nick_name}** Bonjour ! Veuillez confirmer les dernières informations de configuration et cliquer sur \"Soumettre\".\r\nL'intégration rechargera avec la nouvelle configuration.\r\n\r\nLangue d'intégration : {lang_new}\r\nPseudo utilisateur : {nick_name_new}\r\nMode de débogage d'action : {action_debug}\r\nMasquer les entités générées non standard : {hide_non_standard_entities}\r\nAfficher les notifications de changement d'état de l'appareil:\t{display_devices_changed_notify}\r\nModifications des appareils : Ajouter **{devices_add}** appareils, supprimer **{devices_remove}** appareils\r\nModifications des règles de conversion : **{trans_rules_count}** règles au total, mise à jour de **{trans_rules_count_success}** règles", | ||||
|                 "description": "**{nick_name}** Bonjour ! Veuillez confirmer les dernières informations de configuration et cliquer sur \"Soumettre\".\r\nL'intégration rechargera avec la nouvelle configuration.\r\n\r\nLangue d'intégration : {lang_new}\r\nPseudo utilisateur : {nick_name_new}\r\nMode de débogage d'action : {action_debug}\r\nMasquer les entités générées non standard : {hide_non_standard_entities}\r\nLa position des rideaux fermés:\t{cover_pos_new}\r\nAfficher les notifications de changement d'état de l'appareil:\t{display_devices_changed_notify}\r\nModifications des appareils : Ajouter **{devices_add}** appareils, supprimer **{devices_remove}** appareils\r\nModifications des règles de conversion : **{trans_rules_count}** règles au total, mise à jour de **{trans_rules_count_success}** règles", | ||||
|                 "data": { | ||||
|                     "confirm": "Confirmer la modification" | ||||
|                 } | ||||
|   | ||||
| @@ -124,7 +124,8 @@ | ||||
|                     "display_devices_changed_notify": "Mostra notifiche di cambio stato del dispositivo", | ||||
|                     "update_trans_rules": "Aggiorna le regole di conversione delle entità", | ||||
|                     "update_lan_ctrl_config": "Aggiorna configurazione del controllo LAN", | ||||
|                     "network_detect_config": "Configurazione di Rete Integrata" | ||||
|                     "network_detect_config": "Configurazione di Rete Integrata", | ||||
|                     "cover_closed_position": "La posizione delle tende chiuse" | ||||
|                 } | ||||
|             }, | ||||
|             "update_user_info": { | ||||
| @@ -183,7 +184,7 @@ | ||||
|             }, | ||||
|             "config_confirm": { | ||||
|                 "title": "Conferma Configurazione", | ||||
|                 "description": "Ciao **{nick_name}**, si prega di confermare le informazioni di configurazione più recenti e poi fare clic su INVIA.\r\nL'integrazione verrà ricaricata utilizzando la configurazione aggiornata.\r\n\r\nLingua dell'Integrazione: \t{lang_new}\r\nSoprannome: \t{nick_name_new}\r\nModalità di debug per azione: \t{action_debug}\r\nNascondi entità create non standard: \t{hide_non_standard_entities}\r\nMostra notifiche di cambio stato del dispositivo:\t{display_devices_changed_notify}\r\nCambiamenti del Dispositivo: \tAggiungi **{devices_add}** dispositivi, Rimuovi **{devices_remove}** dispositivi\r\nCambiamenti delle regole di trasformazione: \tCi sono un totale di **{trans_rules_count}** regole, e aggiornate **{trans_rules_count_success}** regole", | ||||
|                 "description": "Ciao **{nick_name}**, si prega di confermare le informazioni di configurazione più recenti e poi fare clic su INVIA.\r\nL'integrazione verrà ricaricata utilizzando la configurazione aggiornata.\r\n\r\nLingua dell'Integrazione:\t{lang_new}\r\nSoprannome:\t{nick_name_new}\r\nModalità di debug per azione:\t{action_debug}\r\nNascondi entità create non standard:\t{hide_non_standard_entities}\r\nLa posizione delle tende chiuse:\t{cover_pos_new}\r\nMostra notifiche di cambio stato del dispositivo:\t{display_devices_changed_notify}\r\nCambiamenti del Dispositivo:\tAggiungi **{devices_add}** dispositivi, Rimuovi **{devices_remove}** dispositivi\r\nCambiamenti delle regole di trasformazione:\tCi sono un totale di **{trans_rules_count}** regole, e aggiornate **{trans_rules_count_success}** regole", | ||||
|                 "data": { | ||||
|                     "confirm": "Conferma la modifica" | ||||
|                 } | ||||
|   | ||||
| @@ -124,7 +124,8 @@ | ||||
|                     "display_devices_changed_notify": "デバイスの状態変化通知を表示", | ||||
|                     "update_trans_rules": "エンティティ変換ルールを更新する", | ||||
|                     "update_lan_ctrl_config": "LAN制御構成を更新する", | ||||
|                     "network_detect_config": "統合ネットワーク構成" | ||||
|                     "network_detect_config": "統合ネットワーク構成", | ||||
|                     "cover_closed_position": "カーテンを閉じた位置" | ||||
|                 } | ||||
|             }, | ||||
|             "update_user_info": { | ||||
| @@ -183,7 +184,7 @@ | ||||
|             }, | ||||
|             "config_confirm": { | ||||
|                 "title": "構成を確認する", | ||||
|                 "description": "**{nick_name}** さん、こんにちは! 最新の構成情報を確認してください。[送信] をクリックして、更新された構成を使用して再度読み込みます。\r\n\r\n統合言語:\t{lang_new}\r\nユーザー名:\t{nick_name_new}\r\nAction デバッグモード:\t{action_debug}\r\n非標準生成エンティティを非表示にする:\t{hide_non_standard_entities}\r\nデバイスの状態変化通知を表示:\t{display_devices_changed_notify}\r\nデバイス変更:\t追加 **{devices_add}** 個のデバイス、削除 **{devices_remove}** 個のデバイス\r\n変換ルール変更:\t合計 **{trans_rules_count}** 個の規則、更新 **{trans_rules_count_success}** 個の規則", | ||||
|                 "description": "**{nick_name}** さん、こんにちは! 最新の構成情報を確認してください。[送信] をクリックして、更新された構成を使用して再度読み込みます。\r\n\r\n統合言語:\t{lang_new}\r\nユーザー名:\t{nick_name_new}\r\nAction デバッグモード:\t{action_debug}\r\n非標準生成エンティティを非表示にする:\t{hide_non_standard_entities}\r\nカーテンを閉じた位置:\t{cover_pos_new}\r\nデバイスの状態変化通知を表示:\t{display_devices_changed_notify}\r\nデバイス変更:\t追加 **{devices_add}** 個のデバイス、削除 **{devices_remove}** 個のデバイス\r\n変換ルール変更:\t合計 **{trans_rules_count}** 個の規則、更新 **{trans_rules_count_success}** 個の規則", | ||||
|                 "data": { | ||||
|                     "confirm": "変更を確認する" | ||||
|                 } | ||||
|   | ||||
| @@ -124,7 +124,8 @@ | ||||
|                     "display_devices_changed_notify": "Apparaatstatuswijzigingen weergeven", | ||||
|                     "update_trans_rules": "Werk entiteitsconversieregels bij", | ||||
|                     "update_lan_ctrl_config": "Werk LAN controleconfiguratie bij", | ||||
|                     "network_detect_config": "Geïntegreerde Netwerkconfiguratie" | ||||
|                     "network_detect_config": "Geïntegreerde Netwerkconfiguratie", | ||||
|                     "cover_closed_position": "De positie van de gesloten gordijnen" | ||||
|                 } | ||||
|             }, | ||||
|             "update_user_info": { | ||||
| @@ -183,7 +184,7 @@ | ||||
|             }, | ||||
|             "config_confirm": { | ||||
|                 "title": "Bevestig Configuratie", | ||||
|                 "description": "Hallo **{nick_name}**, bevestig alstublieft de nieuwste configuratie-informatie en klik vervolgens op INDENKEN.\r\nDe integratie zal opnieuw laden met de bijgewerkte configuratie.\r\n\r\nIntegratietaal: \t{lang_new}\r\nBijnaam: \t{nick_name_new}\r\nDebugmodus voor actie: \t{action_debug}\r\nVerberg niet-standaard gemaakte entiteiten: \t{hide_non_standard_entities}\r\nApparaatstatuswijzigingen weergeven:\t{display_devices_changed_notify}\r\nWijzigingen in apparaten: \tVoeg **{devices_add}** apparaten toe, Verwijder **{devices_remove}** apparaten\r\nWijzigingen in transformateregels: \tEr zijn in totaal **{trans_rules_count}** regels, en **{trans_rules_count_success}** regels zijn bijgewerkt", | ||||
|                 "description": "Hallo **{nick_name}**, bevestig alstublieft de nieuwste configuratie-informatie en klik vervolgens op INDENKEN.\r\nDe integratie zal opnieuw laden met de bijgewerkte configuratie.\r\n\r\nIntegratietaal:\t{lang_new}\r\nBijnaam:\t{nick_name_new}\r\nDebugmodus voor actie:\t{action_debug}\r\nVerberg niet-standaard gemaakte entiteiten:\t{hide_non_standard_entities}\r\nDe positie van de gesloten gordijnen:\t{cover_pos_new}\r\nApparaatstatuswijzigingen weergeven:\t{display_devices_changed_notify}\r\nWijzigingen in apparaten:\tVoeg **{devices_add}** apparaten toe, Verwijder **{devices_remove}** apparaten\r\nWijzigingen in transformateregels:\tEr zijn in totaal **{trans_rules_count}** regels, en **{trans_rules_count_success}** regels zijn bijgewerkt", | ||||
|                 "data": { | ||||
|                     "confirm": "Bevestig de wijziging" | ||||
|                 } | ||||
|   | ||||
| @@ -124,7 +124,8 @@ | ||||
|                     "display_devices_changed_notify": "Exibir notificações de mudança de status do dispositivo", | ||||
|                     "update_trans_rules": "Atualizar regras de conversão de entidades", | ||||
|                     "update_lan_ctrl_config": "Atualizar configuração de controle LAN", | ||||
|                     "network_detect_config": "Configuração de Rede Integrada" | ||||
|                     "network_detect_config": "Configuração de Rede Integrada", | ||||
|                     "cover_closed_position": "A posição das cortinas fechadas" | ||||
|                 } | ||||
|             }, | ||||
|             "update_user_info": { | ||||
| @@ -183,7 +184,7 @@ | ||||
|             }, | ||||
|             "config_confirm": { | ||||
|                 "title": "Confirmar Configuração", | ||||
|                 "description": "Olá **{nick_name}**, confirme as informações da configuração mais recente e depois clique em ENVIAR.\r\nA integração será recarregada com a configuração atualizada.\r\n\r\nIdioma da Integração:\t{lang_new}\r\nApelido:\t{nick_name_new}\r\nModo de depuração para ação:\t{action_debug}\r\nOcultar entidades não padrão criadas:\t{hide_non_standard_entities}\r\nExibir notificações de mudança de status do dispositivo:\t{display_devices_changed_notify}\r\nAlterações de Dispositivos:\tAdicionar **{devices_add}** dispositivos, Remover **{devices_remove}** dispositivos\r\nAlteração nas Regras de Transformação:\tUm total de **{trans_rules_count}** regras, e **{trans_rules_count_success}** regras atualizadas", | ||||
|                 "description": "Olá **{nick_name}**, confirme as informações da configuração mais recente e depois clique em ENVIAR.\r\nA integração será recarregada com a configuração atualizada.\r\n\r\nIdioma da Integração:\t{lang_new}\r\nApelido:\t{nick_name_new}\r\nModo de depuração para ação:\t{action_debug}\r\nOcultar entidades não padrão criadas:\t{hide_non_standard_entities}\r\nA posição das cortinas fechadas:\t{cover_pos_new}\r\nExibir notificações de mudança de status do dispositivo:\t{display_devices_changed_notify}\r\nAlterações de Dispositivos:\tAdicionar **{devices_add}** dispositivos, Remover **{devices_remove}** dispositivos\r\nAlteração nas Regras de Transformação:\tUm total de **{trans_rules_count}** regras, e **{trans_rules_count_success}** regras atualizadas", | ||||
|                 "data": { | ||||
|                     "confirm": "Confirmar a mudança" | ||||
|                 } | ||||
|   | ||||
| @@ -124,7 +124,8 @@ | ||||
|                     "display_devices_changed_notify": "Exibir notificações de mudança de status do dispositivo", | ||||
|                     "update_trans_rules": "Atualizar regras de conversão de entidades", | ||||
|                     "update_lan_ctrl_config": "Atualizar configuração de controlo LAN", | ||||
|                     "network_detect_config": "Configuração de Rede Integrada" | ||||
|                     "network_detect_config": "Configuração de Rede Integrada", | ||||
|                     "cover_closed_position": "A posição das cortinas fechadas" | ||||
|                 } | ||||
|             }, | ||||
|             "update_user_info": { | ||||
| @@ -183,7 +184,7 @@ | ||||
|             }, | ||||
|             "config_confirm": { | ||||
|                 "title": "Confirmar Configuração", | ||||
|                 "description": "Olá **{nick_name}**, confirme a informação da configuração mais recente e depois clique em SUBMETER.\r\nA integração será recarregada com a configuração atualizada.\r\n\r\nIdioma da Integração:\t{lang_new}\r\nAlcunha:\t{nick_name_new}\r\nModo de depuração de ação:\t{action_debug}\r\nOcultar entidades não padrão:\t{hide_non_standard_entities}\r\nExibir notificações de mudança de status do dispositivo:\t{display_devices_changed_notify}\r\nAlterações aos Dispositivos:\tAdicionar **{devices_add}** dispositivos, Remover **{devices_remove}** dispositivos\r\nAlteração das Regras de Transformação:\tExistem **{trans_rules_count}** regras no total, com **{trans_rules_count_success}** regras atualizadas", | ||||
|                 "description": "Olá **{nick_name}**, confirme a informação da configuração mais recente e depois clique em SUBMETER.\r\nA integração será recarregada com a configuração atualizada.\r\n\r\nIdioma da Integração:\t{lang_new}\r\nAlcunha:\t{nick_name_new}\r\nModo de depuração de ação:\t{action_debug}\r\nOcultar entidades não padrão:\t{hide_non_standard_entities}\r\nA posição das cortinas fechadas:\t{cover_pos_new}\r\nExibir notificações de mudança de status do dispositivo:\t{display_devices_changed_notify}\r\nAlterações aos Dispositivos:\tAdicionar **{devices_add}** dispositivos, Remover **{devices_remove}** dispositivos\r\nAlteração das Regras de Transformação:\tExistem **{trans_rules_count}** regras no total, com **{trans_rules_count_success}** regras atualizadas", | ||||
|                 "data": { | ||||
|                     "confirm": "Confirmar a alteração" | ||||
|                 } | ||||
|   | ||||
| @@ -124,7 +124,8 @@ | ||||
|                     "display_devices_changed_notify": "Отображать уведомления о изменении состояния устройства", | ||||
|                     "update_trans_rules": "Обновить правила преобразования сущностей", | ||||
|                     "update_lan_ctrl_config": "Обновить конфигурацию управления LAN", | ||||
|                     "network_detect_config": "Интегрированная Сетевая Конфигурация" | ||||
|                     "network_detect_config": "Интегрированная Сетевая Конфигурация", | ||||
|                     "cover_closed_position": "Положение закрытых штор" | ||||
|                 } | ||||
|             }, | ||||
|             "update_user_info": { | ||||
| @@ -183,7 +184,7 @@ | ||||
|             }, | ||||
|             "config_confirm": { | ||||
|                 "title": "Подтверждение настройки", | ||||
|                 "description": "**{nick_name}** Здравствуйте! Подтвердите последнюю информацию о настройке и нажмите «Отправить». Интеграция будет перезагружена с использованием обновленных настроек.\r\n\r\nЯзык интеграции:\t{lang_new}\r\nИмя пользователя:\t{nick_name_new}\r\nРежим отладки Action:\t{action_debug}\r\nСкрыть непроизводственные сущности:\t{hide_non_standard_entities}\r\nОтображать уведомления о изменении состояния устройства:\t{display_devices_changed_notify}\r\nИзменение устройства:\tДобавлено **{devices_add}** устройство, удалено **{devices_remove}** устройства\r\nИзменение правил преобразования:\tВсего **{trans_rules_count}** правил, обновлено **{trans_rules_count_success}** правил", | ||||
|                 "description": "**{nick_name}** Здравствуйте! Подтвердите последнюю информацию о настройке и нажмите «Отправить». Интеграция будет перезагружена с использованием обновленных настроек.\r\n\r\nЯзык интеграции:\t{lang_new}\r\nИмя пользователя:\t{nick_name_new}\r\nРежим отладки Action:\t{action_debug}\r\nСкрыть непроизводственные сущности:\t{hide_non_standard_entities}\r\nПоложение закрытых штор:\t{cover_pos_new}\r\nОтображать уведомления о изменении состояния устройства:\t{display_devices_changed_notify}\r\nИзменение устройства:\tДобавлено **{devices_add}** устройство, удалено **{devices_remove}** устройства\r\nИзменение правил преобразования:\tВсего **{trans_rules_count}** правил, обновлено **{trans_rules_count_success}** правил", | ||||
|                 "data": { | ||||
|                     "confirm": "Подтвердить изменения" | ||||
|                 } | ||||
|   | ||||
| @@ -124,7 +124,8 @@ | ||||
|                     "display_devices_changed_notify": "显示设备状态变化通知", | ||||
|                     "update_trans_rules": "更新实体转换规则", | ||||
|                     "update_lan_ctrl_config": "更新局域网控制配置", | ||||
|                     "network_detect_config": "集成网络配置" | ||||
|                     "network_detect_config": "集成网络配置", | ||||
|                     "cover_closed_position": "窗帘关闭位置" | ||||
|                 } | ||||
|             }, | ||||
|             "update_user_info": { | ||||
| @@ -183,7 +184,7 @@ | ||||
|             }, | ||||
|             "config_confirm": { | ||||
|                 "title": "确认配置", | ||||
|                 "description": "**{nick_name}** 您好!请确认最新的配置信息,然后点击“提交”。\r\n集成将会使用更新后的配置重新载入。\r\n\r\n集成语言:\t{lang_new}\r\n用户昵称:\t{nick_name_new}\r\nAction 调试模式:\t{action_debug}\r\n隐藏非标准生成实体:\t{hide_non_standard_entities}\r\n显示设备状态变化通知:\t{display_devices_changed_notify}\r\n设备变化:\t新增 **{devices_add}** 个设备,移除 **{devices_remove}** 个设备\r\n转换规则变化:\t共条 **{trans_rules_count}** 规则,更新 **{trans_rules_count_success}** 条规则", | ||||
|                 "description": "**{nick_name}** 您好!请确认最新的配置信息,然后点击“提交”。\r\n集成将会使用更新后的配置重新载入。\r\n\r\n集成语言:\t{lang_new}\r\n用户昵称:\t{nick_name_new}\r\nAction 调试模式:\t{action_debug}\r\n隐藏非标准生成实体:\t{hide_non_standard_entities}\r\n窗帘关闭位置:\t{cover_pos_new}\r\n显示设备状态变化通知:\t{display_devices_changed_notify}\r\n设备变化:\t新增 **{devices_add}** 个设备,移除 **{devices_remove}** 个设备\r\n转换规则变化:\t共条 **{trans_rules_count}** 规则,更新 **{trans_rules_count_success}** 条规则", | ||||
|                 "data": { | ||||
|                     "confirm": "确认修改" | ||||
|                 } | ||||
|   | ||||
| @@ -124,7 +124,8 @@ | ||||
|                     "display_devices_changed_notify": "顯示設備狀態變化通知", | ||||
|                     "update_trans_rules": "更新實體轉換規則", | ||||
|                     "update_lan_ctrl_config": "更新局域網控制配置", | ||||
|                     "network_detect_config": "集成網絡配置" | ||||
|                     "network_detect_config": "集成網絡配置", | ||||
|                     "cover_closed_position": "窗簾關閉位置" | ||||
|                 } | ||||
|             }, | ||||
|             "update_user_info": { | ||||
| @@ -183,7 +184,7 @@ | ||||
|             }, | ||||
|             "config_confirm": { | ||||
|                 "title": "確認配置", | ||||
|                 "description": "**{nick_name}** 您好!請確認最新的配置信息,然後點擊“提交”。\r\n集成將會使用更新後的配置重新載入。\r\n\r\n集成語言:\t{lang_new}\r\n用戶暱稱:\t{nick_name_new}\r\nAction 調試模式:\t{action_debug}\r\n隱藏非標準生成實體:\t{hide_non_standard_entities}\r\n顯示設備狀態變化通知:\t{display_devices_changed_notify}\r\n設備變化:\t新增 **{devices_add}** 個設備,移除 **{devices_remove}** 個設備\r\n轉換規則變化:\t共條 **{trans_rules_count}** 規則,更新 **{trans_rules_count_success}** 條規則", | ||||
|                 "description": "**{nick_name}** 您好!請確認最新的配置信息,然後點擊“提交”。\r\n集成將會使用更新後的配置重新載入。\r\n\r\n集成語言:\t{lang_new}\r\n用戶暱稱:\t{nick_name_new}\r\nAction 調試模式:\t{action_debug}\r\n隱藏非標準生成實體:\t{hide_non_standard_entities}\r\n窗簾關閉位置:\t{cover_pos_new}\r\n顯示設備狀態變化通知:\t{display_devices_changed_notify}\r\n設備變化:\t新增 **{devices_add}** 個設備,移除 **{devices_remove}** 個設備\r\n轉換規則變化:\t共條 **{trans_rules_count}** 規則,更新 **{trans_rules_count_success}** 條規則", | ||||
|                 "data": { | ||||
|                     "confirm": "確認修改" | ||||
|                 } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user