Bump deebot-client to 5.0.0 (#109066)

This commit is contained in:
Robert Resch 2024-01-29 21:45:10 +01:00 committed by GitHub
parent 7ef3ed6107
commit 872a59f405
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 28 additions and 32 deletions

View file

@ -5,9 +5,8 @@ import logging
from typing import Any, cast from typing import Any, cast
from aiohttp import ClientError from aiohttp import ClientError
from deebot_client.authentication import Authenticator from deebot_client.authentication import Authenticator, create_rest_config
from deebot_client.exceptions import InvalidAuthenticationError from deebot_client.exceptions import InvalidAuthenticationError
from deebot_client.models import Configuration
from deebot_client.util import md5 from deebot_client.util import md5
from deebot_client.util.continents import COUNTRIES_TO_CONTINENTS, get_continent from deebot_client.util.continents import COUNTRIES_TO_CONTINENTS, get_continent
import voluptuous as vol import voluptuous as vol
@ -32,15 +31,14 @@ async def _validate_input(
"""Validate user input.""" """Validate user input."""
errors: dict[str, str] = {} errors: dict[str, str] = {}
deebot_config = Configuration( rest_config = create_rest_config(
aiohttp_client.async_get_clientsession(hass), aiohttp_client.async_get_clientsession(hass),
device_id=get_client_device_id(), device_id=get_client_device_id(),
country=user_input[CONF_COUNTRY], country=user_input[CONF_COUNTRY],
continent=user_input.get(CONF_CONTINENT),
) )
authenticator = Authenticator( authenticator = Authenticator(
deebot_config, rest_config,
user_input[CONF_USERNAME], user_input[CONF_USERNAME],
md5(user_input[CONF_PASSWORD]), md5(user_input[CONF_PASSWORD]),
) )

View file

@ -6,20 +6,16 @@ import logging
from typing import Any from typing import Any
from deebot_client.api_client import ApiClient from deebot_client.api_client import ApiClient
from deebot_client.authentication import Authenticator from deebot_client.authentication import Authenticator, create_rest_config
from deebot_client.device import Device from deebot_client.device import Device
from deebot_client.exceptions import DeebotError, InvalidAuthenticationError from deebot_client.exceptions import DeebotError, InvalidAuthenticationError
from deebot_client.models import Configuration, DeviceInfo from deebot_client.models import DeviceInfo
from deebot_client.mqtt_client import MqttClient, MqttConfiguration from deebot_client.mqtt_client import MqttClient, create_mqtt_config
from deebot_client.util import md5 from deebot_client.util import md5
from deebot_client.util.continents import get_continent
from sucks import EcoVacsAPI, VacBot from sucks import EcoVacsAPI, VacBot
from homeassistant.const import ( from homeassistant.const import CONF_COUNTRY, CONF_PASSWORD, CONF_USERNAME
CONF_COUNTRY,
CONF_PASSWORD,
CONF_USERNAME,
CONF_VERIFY_SSL,
)
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ConfigEntryError, ConfigEntryNotReady from homeassistant.exceptions import ConfigEntryError, ConfigEntryNotReady
from homeassistant.helpers import aiohttp_client from homeassistant.helpers import aiohttp_client
@ -37,25 +33,27 @@ class EcovacsController:
self._hass = hass self._hass = hass
self.devices: list[Device] = [] self.devices: list[Device] = []
self.legacy_devices: list[VacBot] = [] self.legacy_devices: list[VacBot] = []
verify_ssl = config.get(CONF_VERIFY_SSL, True) self._device_id = get_client_device_id()
device_id = get_client_device_id() country = config[CONF_COUNTRY]
self._continent = get_continent(country)
self._config = Configuration(
aiohttp_client.async_get_clientsession(self._hass, verify_ssl=verify_ssl),
device_id=device_id,
country=config[CONF_COUNTRY],
verify_ssl=verify_ssl,
)
self._authenticator = Authenticator( self._authenticator = Authenticator(
self._config, create_rest_config(
aiohttp_client.async_get_clientsession(self._hass),
device_id=self._device_id,
country=country,
),
config[CONF_USERNAME], config[CONF_USERNAME],
md5(config[CONF_PASSWORD]), md5(config[CONF_PASSWORD]),
) )
self._api_client = ApiClient(self._authenticator) self._api_client = ApiClient(self._authenticator)
self._mqtt = MqttClient(
mqtt_config = MqttConfiguration(config=self._config) create_mqtt_config(
self._mqtt = MqttClient(mqtt_config, self._authenticator) device_id=self._device_id,
country=country,
),
self._authenticator,
)
async def initialize(self) -> None: async def initialize(self) -> None:
"""Init controller.""" """Init controller."""
@ -72,10 +70,10 @@ class EcovacsController:
bot = VacBot( bot = VacBot(
credentials.user_id, credentials.user_id,
EcoVacsAPI.REALM, EcoVacsAPI.REALM,
self._config.device_id[0:8], self._device_id[0:8],
credentials.token, credentials.token,
device_config, device_config,
self._config.continent, self._continent,
monitor=True, monitor=True,
) )
self.legacy_devices.append(bot) self.legacy_devices.append(bot)

View file

@ -6,5 +6,5 @@
"documentation": "https://www.home-assistant.io/integrations/ecovacs", "documentation": "https://www.home-assistant.io/integrations/ecovacs",
"iot_class": "cloud_push", "iot_class": "cloud_push",
"loggers": ["sleekxmppfs", "sucks", "deebot_client"], "loggers": ["sleekxmppfs", "sucks", "deebot_client"],
"requirements": ["py-sucks==0.9.8", "deebot-client==4.3.0"] "requirements": ["py-sucks==0.9.8", "deebot-client==5.0.0"]
} }

View file

@ -681,7 +681,7 @@ debugpy==1.8.0
# decora==0.6 # decora==0.6
# homeassistant.components.ecovacs # homeassistant.components.ecovacs
deebot-client==4.3.0 deebot-client==5.0.0
# homeassistant.components.ihc # homeassistant.components.ihc
# homeassistant.components.namecheapdns # homeassistant.components.namecheapdns

View file

@ -556,7 +556,7 @@ dbus-fast==2.21.1
debugpy==1.8.0 debugpy==1.8.0
# homeassistant.components.ecovacs # homeassistant.components.ecovacs
deebot-client==4.3.0 deebot-client==5.0.0
# homeassistant.components.ihc # homeassistant.components.ihc
# homeassistant.components.namecheapdns # homeassistant.components.namecheapdns