Bump deebot-client to 13.0.0 (#143823)

This commit is contained in:
Robert Resch 2025-04-30 15:24:54 +02:00 committed by GitHub
parent f7c1a0c5e6
commit 9b1c6b07f5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 23 additions and 22 deletions

View File

@ -5,7 +5,7 @@ from dataclasses import dataclass
from typing import Generic
from deebot_client.capabilities import CapabilityEvent
from deebot_client.events.water_info import WaterInfoEvent
from deebot_client.events.water_info import MopAttachedEvent
from homeassistant.components.binary_sensor import (
BinarySensorEntity,
@ -32,9 +32,9 @@ class EcovacsBinarySensorEntityDescription(
ENTITY_DESCRIPTIONS: tuple[EcovacsBinarySensorEntityDescription, ...] = (
EcovacsBinarySensorEntityDescription[WaterInfoEvent](
capability_fn=lambda caps: caps.water,
value_fn=lambda e: e.mop_attached,
EcovacsBinarySensorEntityDescription[MopAttachedEvent](
capability_fn=lambda caps: caps.water.mop_attached if caps.water else None,
value_fn=lambda e: e.value,
key="water_mop_attached",
translation_key="water_mop_attached",
entity_category=EntityCategory.DIAGNOSTIC,

View File

@ -1,8 +1,11 @@
"""Ecovacs image entities."""
from typing import cast
from deebot_client.capabilities import CapabilityMap
from deebot_client.device import Device
from deebot_client.events.map import CachedMapInfoEvent, MapChangedEvent
from deebot_client.map import Map
from homeassistant.components.image import ImageEntity
from homeassistant.core import HomeAssistant
@ -47,6 +50,7 @@ class EcovacsMap(
"""Initialize entity."""
super().__init__(device, capability, hass=hass)
self._attr_extra_state_attributes = {}
self._map = cast(Map, self._device.map)
entity_description = EntityDescription(
key="map",
@ -55,7 +59,7 @@ class EcovacsMap(
def image(self) -> bytes | None:
"""Return bytes of image or None."""
if svg := self._device.map.get_svg_map():
if svg := self._map.get_svg_map():
return svg.encode()
return None
@ -80,4 +84,4 @@ class EcovacsMap(
Only used by the generic entity update service.
"""
await super().async_update()
self._device.map.refresh()
self._map.refresh()

View File

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

View File

@ -6,7 +6,8 @@ from typing import Any, Generic
from deebot_client.capabilities import CapabilitySetTypes
from deebot_client.device import Device
from deebot_client.events import WaterInfoEvent, WorkModeEvent
from deebot_client.events import WorkModeEvent
from deebot_client.events.water_info import WaterAmountEvent
from homeassistant.components.select import SelectEntity, SelectEntityDescription
from homeassistant.const import EntityCategory
@ -31,9 +32,9 @@ class EcovacsSelectEntityDescription(
ENTITY_DESCRIPTIONS: tuple[EcovacsSelectEntityDescription, ...] = (
EcovacsSelectEntityDescription[WaterInfoEvent](
capability_fn=lambda caps: caps.water,
current_option_fn=lambda e: get_name_key(e.amount),
EcovacsSelectEntityDescription[WaterAmountEvent](
capability_fn=lambda caps: caps.water.amount if caps.water else None,
current_option_fn=lambda e: get_name_key(e.value),
options_fn=lambda water: [get_name_key(amount) for amount in water.types],
key="water_amount",
translation_key="water_amount",

2
requirements_all.txt generated
View File

@ -762,7 +762,7 @@ debugpy==1.8.13
# decora==0.6
# homeassistant.components.ecovacs
deebot-client==12.5.0
deebot-client==13.0.1
# homeassistant.components.ihc
# homeassistant.components.namecheapdns

View File

@ -653,7 +653,7 @@ dbus-fast==2.43.0
debugpy==1.8.13
# homeassistant.components.ecovacs
deebot-client==12.5.0
deebot-client==13.0.1
# homeassistant.components.ihc
# homeassistant.components.namecheapdns

View File

@ -1,6 +1,6 @@
"""Tests for Ecovacs binary sensors."""
from deebot_client.events import WaterAmount, WaterInfoEvent
from deebot_client.events.water_info import MopAttachedEvent
import pytest
from syrupy import SnapshotAssertion
@ -43,16 +43,12 @@ async def test_mop_attached(
assert device_entry.identifiers == {(DOMAIN, device.device_info["did"])}
event_bus = device.events
await notify_and_wait(
hass, event_bus, WaterInfoEvent(WaterAmount.HIGH, mop_attached=True)
)
await notify_and_wait(hass, event_bus, MopAttachedEvent(True))
assert (state := hass.states.get(state.entity_id))
assert state == snapshot(name=f"{entity_id}-state")
await notify_and_wait(
hass, event_bus, WaterInfoEvent(WaterAmount.HIGH, mop_attached=False)
)
await notify_and_wait(hass, event_bus, MopAttachedEvent(False))
assert (state := hass.states.get(state.entity_id))
assert state.state == STATE_OFF

View File

@ -3,7 +3,7 @@
from deebot_client.command import Command
from deebot_client.commands.json import SetWaterInfo
from deebot_client.event_bus import EventBus
from deebot_client.events import WaterAmount, WaterInfoEvent
from deebot_client.events.water_info import WaterAmount, WaterAmountEvent
import pytest
from syrupy import SnapshotAssertion
@ -33,7 +33,7 @@ def platforms() -> Platform | list[Platform]:
async def notify_events(hass: HomeAssistant, event_bus: EventBus):
"""Notify events."""
event_bus.notify(WaterInfoEvent(WaterAmount.ULTRAHIGH))
event_bus.notify(WaterAmountEvent(WaterAmount.ULTRAHIGH))
await block_till_done(hass, event_bus)