Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0e8c3ef0b6 | |||
| f1002d107f | |||
| 67fef3862b |
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"domain": "ecovacs",
|
"domain": "ecovacs",
|
||||||
"name": "Ecovacs Bumper",
|
"name": "Ecovacs Bumper",
|
||||||
"version": "1.4.1",
|
"version": "1.4.3",
|
||||||
"documentation": "https://github.com/bittles/ha_ecovacs_bumper",
|
"documentation": "https://github.com/bittles/ha_ecovacs_bumper",
|
||||||
"issue_tracker": "https://github.com/bittles/ha_ecovacs_bumper/issues",
|
"issue_tracker": "https://github.com/bittles/ha_ecovacs_bumper/issues",
|
||||||
"requirements": ["sleekxmppfs==1.4.1", "requests>=2.18", "pycryptodome>=3.4", "pycountry-convert>=0.5", "paho-mqtt>=1.4", "stringcase>=1.2"],
|
"requirements": ["sleekxmppfs==1.4.1", "requests>=2.18", "pycryptodome>=3.4", "pycountry-convert>=0.5", "paho-mqtt>=1.4", "stringcase>=1.2"],
|
||||||
|
|||||||
@@ -12,6 +12,20 @@ from sleekxmppfs.xmlstream import ET
|
|||||||
|
|
||||||
from .const import LOGGER
|
from .const import LOGGER
|
||||||
|
|
||||||
|
def str_to_bool_or_cert(s):
|
||||||
|
if s == 'True' or s == True:
|
||||||
|
return True
|
||||||
|
elif s == 'False' or s == False:
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
if not s == None:
|
||||||
|
if os.path.exists(s): # User could provide a path to a CA Cert as well, which is useful for Bumper
|
||||||
|
if os.path.isfile(s):
|
||||||
|
return s
|
||||||
|
else:
|
||||||
|
raise ValueError("Certificate path provided is not a file - {}".format(s))
|
||||||
|
raise ValueError("Cannot covert {} to a bool or certificate path".format(s))
|
||||||
|
|
||||||
#This is used by EcoVacsIOTMQ and EcoVacsXMPP for _ctl_to_dict
|
#This is used by EcoVacsIOTMQ and EcoVacsXMPP for _ctl_to_dict
|
||||||
def RepresentsInt(stringvar):
|
def RepresentsInt(stringvar):
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ def setup_platform(
|
|||||||
class EcovacsVacuum(VacuumEntity):
|
class EcovacsVacuum(VacuumEntity):
|
||||||
"""Ecovacs Vacuums such as Deebot."""
|
"""Ecovacs Vacuums such as Deebot."""
|
||||||
|
|
||||||
_attr_fan_speed_list = [sucksbumper.FAN_SPEED_NORMAL, sucksbumper.FAN_SPEED_HIGH]
|
_attr_fan_speed_list = [sucks.FAN_SPEED_NORMAL, sucks.FAN_SPEED_HIGH]
|
||||||
_attr_should_poll = False
|
_attr_should_poll = False
|
||||||
_attr_supported_features = (
|
_attr_supported_features = (
|
||||||
VacuumEntityFeature.BATTERY
|
VacuumEntityFeature.BATTERY
|
||||||
@@ -53,7 +53,7 @@ class EcovacsVacuum(VacuumEntity):
|
|||||||
| VacuumEntityFeature.FAN_SPEED
|
| VacuumEntityFeature.FAN_SPEED
|
||||||
)
|
)
|
||||||
|
|
||||||
def __init__(self, device: sucksbumper.VacBot) -> None:
|
def __init__(self, device: sucks.VacBot) -> None:
|
||||||
"""Initialize the Ecovacs Vacuum."""
|
"""Initialize the Ecovacs Vacuum."""
|
||||||
self.device = device
|
self.device = device
|
||||||
self.device.connect_and_wait_until_ready()
|
self.device.connect_and_wait_until_ready()
|
||||||
@@ -112,7 +112,7 @@ class EcovacsVacuum(VacuumEntity):
|
|||||||
def return_to_base(self, **kwargs: Any) -> None:
|
def return_to_base(self, **kwargs: Any) -> None:
|
||||||
"""Set the vacuum cleaner to return to the dock."""
|
"""Set the vacuum cleaner to return to the dock."""
|
||||||
|
|
||||||
self.device.run(sucksbumper.Charge())
|
self.device.run(sucks.Charge())
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def battery_icon(self) -> str:
|
def battery_icon(self) -> str:
|
||||||
@@ -137,7 +137,7 @@ class EcovacsVacuum(VacuumEntity):
|
|||||||
def turn_on(self, **kwargs: Any) -> None:
|
def turn_on(self, **kwargs: Any) -> None:
|
||||||
"""Turn the vacuum on and start cleaning."""
|
"""Turn the vacuum on and start cleaning."""
|
||||||
|
|
||||||
self.device.run(sucksbumper.Clean())
|
self.device.run(sucks.Clean())
|
||||||
|
|
||||||
def turn_off(self, **kwargs: Any) -> None:
|
def turn_off(self, **kwargs: Any) -> None:
|
||||||
"""Turn the vacuum off stopping the cleaning and returning home."""
|
"""Turn the vacuum off stopping the cleaning and returning home."""
|
||||||
@@ -146,23 +146,23 @@ class EcovacsVacuum(VacuumEntity):
|
|||||||
def stop(self, **kwargs: Any) -> None:
|
def stop(self, **kwargs: Any) -> None:
|
||||||
"""Stop the vacuum cleaner."""
|
"""Stop the vacuum cleaner."""
|
||||||
|
|
||||||
self.device.run(sucksbumper.Stop())
|
self.device.run(sucks.Stop())
|
||||||
|
|
||||||
def clean_spot(self, **kwargs: Any) -> None:
|
def clean_spot(self, **kwargs: Any) -> None:
|
||||||
"""Perform a spot clean-up."""
|
"""Perform a spot clean-up."""
|
||||||
|
|
||||||
self.device.run(sucksbumper.Spot())
|
self.device.run(sucks.Spot())
|
||||||
|
|
||||||
def locate(self, **kwargs: Any) -> None:
|
def locate(self, **kwargs: Any) -> None:
|
||||||
"""Locate the vacuum cleaner."""
|
"""Locate the vacuum cleaner."""
|
||||||
|
|
||||||
self.device.run(sucksbumper.PlaySound())
|
self.device.run(sucks.PlaySound())
|
||||||
|
|
||||||
def set_fan_speed(self, fan_speed: str, **kwargs: Any) -> None:
|
def set_fan_speed(self, fan_speed: str, **kwargs: Any) -> None:
|
||||||
"""Set fan speed."""
|
"""Set fan speed."""
|
||||||
if self.is_on:
|
if self.is_on:
|
||||||
|
|
||||||
self.device.run(sucksbumper.Clean(mode=self.device.clean_status, speed=fan_speed))
|
self.device.run(sucks.Clean(mode=self.device.clean_status, speed=fan_speed))
|
||||||
|
|
||||||
def send_command(
|
def send_command(
|
||||||
self,
|
self,
|
||||||
@@ -171,7 +171,7 @@ class EcovacsVacuum(VacuumEntity):
|
|||||||
**kwargs: Any,
|
**kwargs: Any,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Send a command to a vacuum cleaner."""
|
"""Send a command to a vacuum cleaner."""
|
||||||
self.device.run(sucksbumper.VacBotCommand(command, params))
|
self.device.run(sucks.VacBotCommand(command, params))
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def extra_state_attributes(self) -> dict[str, Any]:
|
def extra_state_attributes(self) -> dict[str, Any]:
|
||||||
|
|||||||
Reference in New Issue
Block a user