35 lines
1.3 KiB
Python

from entities import Entities
class Vacuum(Entities):
def initialize(self):
super().initialize()
self.entity_id = self.args['entity_id']
self.run_in(self._setup, 1)
def _setup(self, kwargs):
for zone in self.args['zones']:
e = dict(self.args['zones'][zone])
name = f'switch.vacuum_{zone}'
self.register_entity(zone, name, True, "off", e)
self.listen_event(self.clean_zone, 'VACUUM_ZONE')
self.listen_event(self.clean_all, 'VACUUM_ALL')
self.listen_event(self.service, 'VACUUM_SERVICE')
self.listen_event(self.home, 'VACUUM_HOME')
def clean_zone(self, ev, data, kwargs):
areas = []
for zone in self.args['zones']:
if self.e[zone].state == "on":
areas.append(self.e[zone].attr['area'])
self.call_service("vacuum/xiaomi_clean_zone", repeats = 1, zone = areas)
def clean_all(self, ev, data, kwargs):
self.call_service("vacuum/start")
def service(self, ev, data, kwargs):
self.call_service("vacuum/send_command", entity_id = self.entity_id, command = 'app_goto_target', params = self.args['empty_spot'])
def home(self, ev, data, kwargs):
self.call_service("vacuum/return_to_base", entity_id = self.entity_id)