Compare commits

..

10 Commits

Author SHA1 Message Date
bittles d7a7b2d185 Merge pull request #11 from bittles/dev
fixes for newer python versions
2023-01-15 15:11:04 -05:00
bittles 01165a4f85 version bump 2023-01-15 15:10:29 -05:00
bittles fa2c724333 fixes for newer python versions
isAlive and getchildren removed in python 3.9
2023-01-15 15:10:00 -05:00
bittles b21e2f95aa Merge pull request #10 from bittles/master
fix string to cert in mqtt
2023-01-15 14:11:04 -05:00
bittles 0e8c3ef0b6 fix string to cert in mqtt 2023-01-15 14:10:08 -05:00
bittles 4d8dc3fbe4 Merge pull request #9 from bittles/master
update dev to current master
2023-01-15 14:02:04 -05:00
bittles f1002d107f Merge pull request #7 from bittles/dev
shouldnt edit on phone, fixed now
2023-01-06 02:01:34 -05:00
bittles 67fef3862b shouldnt edit on phone, fixed now 2023-01-06 02:00:11 -05:00
bittles 24fc2ea74e Merge pull request #6 from bittles/dev
forgot to update module name
2023-01-06 01:51:24 -05:00
bittles 0e7923103c forgot to update module name 2023-01-06 01:47:19 -05:00
3 changed files with 27 additions and 13 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
{
"domain": "ecovacs",
"name": "Ecovacs Bumper",
"version": "1.4.0",
"version": "1.4.4",
"documentation": "https://github.com/bittles/ha_ecovacs_bumper",
"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"],
+16 -2
View File
@@ -12,6 +12,20 @@ from sleekxmppfs.xmlstream import ET
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
def RepresentsInt(stringvar):
try:
@@ -75,7 +89,7 @@ class EcoVacsIOTMQ(ClientMQTT):
def schedule(self, timer_seconds, timer_function):
self.scheduler.enter(timer_seconds, 1, self._run_scheduled_func,(timer_seconds, timer_function))
if not self.scheduler_thread.isAlive():
if not self.scheduler_thread.is_alive():
self.scheduler_thread.start()
def wait_until_ready(self):
@@ -169,7 +183,7 @@ class EcoVacsIOTMQ(ClientMQTT):
def _ctl_to_dict_api(self, action, xmlstring):
xml = ET.fromstring(xmlstring)
xmlchild = xml.getchildren()
xmlchild = list(xml)
if len(xmlchild) > 0:
result = xmlchild[0].attrib.copy()
#Fix for difference in XMPP vs API response
+10 -10
View File
@@ -5,7 +5,7 @@ import logging
from typing import Any
#sucks
from . import sucksbumper
from . import sucks
from homeassistant.components.vacuum import VacuumEntity, VacuumEntityFeature
from homeassistant.core import HomeAssistant
@@ -38,7 +38,7 @@ def setup_platform(
class EcovacsVacuum(VacuumEntity):
"""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_supported_features = (
VacuumEntityFeature.BATTERY
@@ -53,7 +53,7 @@ class EcovacsVacuum(VacuumEntity):
| VacuumEntityFeature.FAN_SPEED
)
def __init__(self, device: sucksbumper.VacBot) -> None:
def __init__(self, device: sucks.VacBot) -> None:
"""Initialize the Ecovacs Vacuum."""
self.device = device
self.device.connect_and_wait_until_ready()
@@ -112,7 +112,7 @@ class EcovacsVacuum(VacuumEntity):
def return_to_base(self, **kwargs: Any) -> None:
"""Set the vacuum cleaner to return to the dock."""
self.device.run(sucksbumper.Charge())
self.device.run(sucks.Charge())
@property
def battery_icon(self) -> str:
@@ -137,7 +137,7 @@ class EcovacsVacuum(VacuumEntity):
def turn_on(self, **kwargs: Any) -> None:
"""Turn the vacuum on and start cleaning."""
self.device.run(sucksbumper.Clean())
self.device.run(sucks.Clean())
def turn_off(self, **kwargs: Any) -> None:
"""Turn the vacuum off stopping the cleaning and returning home."""
@@ -146,23 +146,23 @@ class EcovacsVacuum(VacuumEntity):
def stop(self, **kwargs: Any) -> None:
"""Stop the vacuum cleaner."""
self.device.run(sucksbumper.Stop())
self.device.run(sucks.Stop())
def clean_spot(self, **kwargs: Any) -> None:
"""Perform a spot clean-up."""
self.device.run(sucksbumper.Spot())
self.device.run(sucks.Spot())
def locate(self, **kwargs: Any) -> None:
"""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:
"""Set fan speed."""
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(
self,
@@ -171,7 +171,7 @@ class EcovacsVacuum(VacuumEntity):
**kwargs: Any,
) -> None:
"""Send a command to a vacuum cleaner."""
self.device.run(sucksbumper.VacBotCommand(command, params))
self.device.run(sucks.VacBotCommand(command, params))
@property
def extra_state_attributes(self) -> dict[str, Any]: