DebenOldert 7 月之前
父节点
当前提交
f02211fce3

+ 4 - 18
custom_components/odido_zyxel_5g/__init__.py

@@ -40,7 +40,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
     """Set up this integration using UI."""
     hass.data.setdefault(DOMAIN, {})
 
-    endpoint = entry.data.get(CONF_IP_ADDRESS)
+    ip = entry.data.get(CONF_IP_ADDRESS)
     user = entry.data.get(CONF_USERNAME)
     password = entry.data.get(CONF_PASSWORD)
     scan_interval_seconds = entry.options.get(CONF_SCAN_INTERVAL, DEFAULT_SCAN_INTERVAL)
@@ -48,7 +48,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
     scan_interval = timedelta(seconds=scan_interval_seconds)
 
     session = async_get_clientsession(hass)
-    client = RouterApiClient(endpoint=endpoint,
+    client = RouterApiClient(ip=ip,
                              user=user,
                              password=password,
                              session=session)
@@ -65,7 +65,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
     info = data['DeviceInfo']
 
     device_info = DeviceInfo(
-        configuration_url=f'{API_SCHEMA}://{endpoint}',
+        configuration_url=f'{API_SCHEMA}://{ip}',
         identifiers={(DOMAIN, entry.entry_id)},
         model=info['ModelName'],
         manufacturer=info['Manufacturer'],
@@ -106,20 +106,6 @@ async def async_reload_entry(hass: HomeAssistant, entry: ConfigEntry) -> None:
 
 async def async_migrate_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool:
     """Migrate old entry."""
-    _LOGGER.debug("Migrating from version %s", config_entry.version)
-
-    if config_entry.version == 1:
-        hass.config_entries.async_update_entry(config_entry, version=2)
-
-        entity_registry = er.async_get(hass)
-        existing_entries = er.async_entries_for_config_entry(
-            entity_registry, config_entry.entry_id
-        )
-
-        for entry in list(existing_entries):
-            _LOGGER.debug("Deleting version 1 entity: %s", entry.entity_id)
-            entity_registry.async_remove(entry.entity_id)
-
-    _LOGGER.debug("Migration to version %s successful", config_entry.version)
+    _LOGGER.warning("Migrating from version %s", config_entry.version)
 
     return True

+ 3 - 3
custom_components/odido_zyxel_5g/api.py

@@ -36,13 +36,13 @@ class RouterApiClient:
 
     def __init__(
         self,
-        endpoint: str,
+        ip: str,
         user: str,
         password: str,
         session: aiohttp.ClientSession,
     ) -> None:
         """ZYXEL API Client."""
-        self.endpoint = endpoint
+        self.ip = ip
         self.user = user
         self.password = password
         self._session = session
@@ -56,7 +56,7 @@ class RouterApiClient:
             self.password.encode('utf-8')).decode('utf-8')
 
         response = await self._session.post(
-            f'{API_SCHEMA}://{self.endpoint}{API_LOGIN_PATH}',
+            f'{API_SCHEMA}://{self.ip}{API_LOGIN_PATH}',
             json=payload)
         
         if response.ok:

+ 9 - 7
custom_components/odido_zyxel_5g/config_flow.py

@@ -17,12 +17,14 @@ from homeassistant.const import (
 )
 from homeassistant.core import callback
 from homeassistant.helpers.aiohttp_client import async_create_clientsession
+from homeassistant.helpers.selector import (TextSelector,
+                                            TextSelectorConfig,
+                                            TextSelectorType)
 import homeassistant.helpers.config_validation as cv
 import voluptuous as vol
 
 from .api import (
     RouterApiClient,
-    RouterApiClientError,
     RouterApiClientLoginError,
     RouterApiClientCommunicationError,
     RouterApiClientResponseError,
@@ -38,7 +40,7 @@ _LOGGER: logging.Logger = logging.getLogger(__package__)
 class RouterFlowHandler(ConfigFlow, domain=DOMAIN):
     """Config flow for Odido Router."""
 
-    VERSION = 2
+    VERSION = 1
 
     async def async_step_user(
         self, user_input: dict[str, Any] | None = None
@@ -75,17 +77,17 @@ class RouterFlowHandler(ConfigFlow, domain=DOMAIN):
                     ): str,
                     vol.Required(
                         CONF_USERNAME, default=DEFAULT_USER
-                    ): str,
-                    vol.Required(CONF_PASSWORD): str
+                    ): TextSelector(TextSelectorConfig(type=TextSelectorType.TEXT, autocomplete='username')),
+                    vol.Required(CONF_PASSWORD): TextSelector(TextSelectorConfig(type=TextSelectorType.PASSWORD, autocomplete='current-password'))
                 }
             ),
-            errors=_errors,
+            errors={},
         )
 
-    async def _validate_user_input(self, endpoint: str, user: str, password: str):
+    async def _validate_user_input(self, ip: str, user: str, password: str):
         """Validate user input."""
         session = async_create_clientsession(self.hass)
-        client = RouterApiClient(endpoint=endpoint,
+        client = RouterApiClient(ip=ip,
                                  user=user,
                                  password=password,
                                  session=session)