34 lines
1.0 KiB
Python
34 lines
1.0 KiB
Python
import appdaemon.plugins.hass.hassapi as hass
|
|
import globals
|
|
#
|
|
# Управление замком Xiaomi
|
|
#
|
|
# Args:
|
|
#
|
|
# None
|
|
#
|
|
# Release Notes
|
|
#
|
|
# Version 1.0:
|
|
# Initial Version
|
|
|
|
class CurtainSecurity(hass.Hass):
|
|
listen_event_handle_list = []
|
|
def initialize(self):
|
|
if not globals.check_args(self, ['curtain', 'door']):
|
|
return
|
|
self.listen_event_handle_list.append(self.listen_event(self.curtain_changed, event='call_service', entity_id = self.args['curtain']))
|
|
|
|
def terminate(self):
|
|
if self.listen_event_handle_list != None:
|
|
for listen_event_handle in self.listen_event_handle_list:
|
|
self.cancel_listen_event(listen_event_handle)
|
|
|
|
def curtain_changed(self, event_name, data, kwargs):
|
|
if 'constraint' in self.args and not self.constrain_input_boolean(self.args['constraint']):
|
|
return
|
|
service = data['service']
|
|
if service in ['close_cover', 'open_cover']:
|
|
door_state = self.get_state(self.args['door'])
|
|
if door_state == "on":
|
|
self.call_service("cover/stop_cover", entity_id = self.args['curtain']) |