def initialize(self): self.isInitialized = "trigger" in self.args if not self.isInitialized: self.log("Skipping setup, no trigger.") return self.timer_handle = None self.listen_state_handle_list = [] self.timer_handle_list = [] self.app_switch = globals.get_arg(self.args, "app_switch", allow_empty=True) self.sensors = globals.get_arg_list(self.args, "sensors") self.entities_on = globals.get_arg_list(self.args, "entities_on", allow_empty=True) self.entities_off = globals.get_arg_list(self.args, "entities_off", allow_empty=True) self.services = globals.get_arg_list(self.args, "services", allow_empty=True) self.trigger = globals.get_arg(self.args, "trigger") for sensor in self.sensors: self.listen_state_handle_list.append( self.listen_state(self.state_changed, sensor))
def initialize(self): self.timer_handle = None self.listen_state_handle_list = [] self.timer_handle_list = [] self.sensors = globals.get_arg_list(self.args, "sensors") self.entities_on = globals.get_arg_list(self.args, "entities_on") self.entites_to_turned_on_by_script = {} try: self.delay = globals.get_arg(self.args, "delay") try: if self.delay.startswith("input_number"): self.delay_entity = self.delay self.delay = int( self.get_state(self.delay_entity).split(".")[0]) self.listen_state_handle_list.append( self.listen_state(self.delay_changed, self.delay_entity)) except AttributeError: # does not have attribute 'startswith' -> is not of type string pass self.log("Delay changed to : {}".format(self.delay)) except KeyError: self.delay = None for sensor in self.sensors: self.listen_state_handle_list.append( self.listen_state(self.state_changed, sensor))
def initialize(self): self.listen_state_handle_list = [] self.app_switch = globals.get_arg(self.args,"app_switch") try: self.entities_on = globals.get_arg_list(self.args,"entities_on") except KeyError: self.entities_on = [] try: self.entities_off = globals.get_arg_list(self.args,"entities_off") except KeyError: self.entities_off = [] try: self.after_sundown = globals.get_arg(self.args,"after_sundown") except KeyError: self.after_sundown = None self.trigger_entity = globals.get_arg(self.args,"trigger_entity") self.trigger_state = globals.get_arg(self.args,"trigger_state") self.message_on = globals.get_arg(self.args,"message_on") self.message_off = globals.get_arg(self.args,"message_off") self.notify_name = globals.get_arg(self.args,"notify_name") self.use_alexa = globals.get_arg(self.args,"use_alexa") self.notifier = self.get_app('Notifier') self.listen_state_handle_list.append(self.listen_state(self.state_change, self.trigger_entity))
def initialize(self): self.listen_state_handle_list = [] self.app_switch = globals.get_arg(self.args, "app_switch") self.ishome = globals.get_arg(self.args, "ishome") self.input_booleans = globals.get_arg_list(self.args, "input_booleans") self.message = globals.get_arg_list(self.args, "message") if self.get_state(self.app_switch) == "on": for input_boolean in self.input_booleans: self.log("{} is {}".format(input_boolean, self.get_state(input_boolean))) self.listen_state_handle_list.append( self.listen_state(self.state_change, input_boolean)) if (self.get_state(input_boolean) == "on" and self.get_state(self.ishome) == "off"): self.turn_on(self.ishome) self.log("Setting {} to on".format(self.ishome)) if (self.get_state(input_boolean) == "off" and self.get_state(self.ishome) == "on"): if self.are_others_away(input_boolean): self.turn_off(self.ishome) self.log("Setting {} to off".format(self.ishome)) notify_message = globals.random_arg(self.message) self.log("notify_messsage: {}".format(notify_message)) self.call_service("notify/group_notifications", message=notify_message)
def initialize(self): self.listen_state_handle_list = [] self.app_switch = globals.get_arg(self.args, "app_switch") self.watch_list = globals.get_arg_list(self.args, "watch_list") self.message = globals.get_arg(self.args, "message") self.message_back_online = globals.get_arg(self.args, "message_back_online") self.notify_name = globals.get_arg(self.args, "notify_name") try: self.use_alexa = globals.get_arg(self.args, "use_alexa") except KeyError: self.use_alexa = False self.notifier = self.get_app("Notifier") if self.get_state(self.app_switch) == "on": for sensor in self.watch_list: if (self.get_state(sensor) is None or self.get_state(sensor).lower() == "unknown"): self.notifier.notify( self.notify_name, self.message.format(self.friendly_name(sensor)), useAlexa=self.use_alexa, ) for sensor in self.watch_list: self.listen_state_handle_list.append( self.listen_state(self.state_change, sensor))
def initialize(self): self.timer_handle = None self.listen_event_handle_list = [] self.listen_state_handle_list = [] self.timer_handle_list = [] self.turned_on_by_me = False #Giggedi self.app_switch = globals.get_arg(self.args, "app_switch") self.sensor = globals.get_arg(self.args, "sensor") self.entity_on = globals.get_arg(self.args, "entity_on") try: self.entity_off = globals.get_arg(self.args, "entity_off") except KeyError: self.entity_off = None try: self.after = globals.get_arg(self.args, "after") except KeyError: self.after = None try: self.after_sundown = globals.get_arg(self.args, "after_sundown") except KeyError: self.after_sundown = None try: self.delay = globals.get_arg(self.args, "delay") except KeyError: self.delay = None try: self.constraint_entities_off = globals.get_arg_list( self.args, "constraint_entities_off") except KeyError: self.constraint_entities_off = [] try: self.constraint_entities_on = globals.get_arg_list( self.args, "constraint_entities_on") except KeyError: self.constraint_entities_on = [] self.location_user_one_sensor = globals.get_arg( self.args, "location_user_one_sensor") self.location_user_two_sensor = globals.get_arg( self.args, "location_user_two_sensor") self.bedroom_state = globals.get_arg(self.args, "bedroom_state") # Subscribe to sensors self.listen_event_handle_list.append( self.listen_event(self.motion_detected, "motion"))
def initialize(self): self.timer_handle_list = [] self.alexa_tts = globals.get_arg(self.args, "alexa_tts") self.alexa_media_player = globals.get_arg_list(self.args, "alexa_media_player") self.app_switch_alexa = globals.get_arg(self.args, "app_switch_alexa") self.last_alexa_notification_time = None
def initialize(self): self.listen_state_handle_list = [] self.app_switch = globals.get_arg(self.args, "app_switch") self.location_sensors = globals.get_arg_list(self.args, "location_sensors") self.room = globals.get_arg(self.args, "room") self.not_home = globals.get_arg(self.args, "not_home") self.after = globals.get_arg(self.args, "after") self.delay = globals.get_arg(self.args, "delay")
def initialize(self): self.timer_handle_list = [] self.listen_event_handle_list = [] self.app_switch = globals.get_arg(self.args, "app_switch") self.domain = globals.get_arg(self.args, "domain") self.service = globals.get_arg(self.args, "service") self.entity_ids = globals.get_arg_list(self.args, "entity_id") self.counter = globals.get_arg(self.args, "counter") self.listen_event_handle_list.append( self.listen_event(self.call_service_callback, "call_service"))
def initialize(self): self.notify_name = globals.get_arg(self.args, "notify_name") self.notify_message = globals.get_arg(self.args, "notify_message") self.include_log_message_in_notification = globals.get_arg( self.args, "include_log_message_in_notification") try: self.exclude_apps = globals.get_arg_list(self.args, "exclude_apps") except KeyError: self.exclude_apps = None # App dependencies self.notifier = self.get_app('Notifier') self.listen_log(self.log_message_callback)
def initialize(self): self.switch_ieee = globals.get_arg(self.args, "switch_ieee") self.turn_on_top_left_presses_lists = {} self.turn_on_bottom_left_presses_lists = {} for i in [1,2,3]: self.turn_on_top_left_presses_lists[i] = globals.get_arg_list(self.args, "turn_on_top_left_presses_{}".format(i), allow_empty=True) self.turn_on_bottom_left_presses_lists[i] = globals.get_arg_list(self.args, "turn_on_bottom_left_presses_{}".format(i), allow_empty=True) self.turn_on_top_left_hold_list = globals.get_arg_list(self.args, "turn_on_top_left_hold") self.turn_on_bottom_left_hold_list = globals.get_arg_list(self.args, "turn_on_bottom_left_hold") self.multi_click_delay = 2 # 1 second seems to get stuck in multithreads self.multi_press_timer_handle = None self.multi_press_timer_handle_list = [] self.top_presses = 0 self.bottom_presses = 0 self.listen_event_handle_list = [] self.listen_event_handle_list.append(self.listen_event_switch(self.on_top_left_press, "on")) self.listen_event_handle_list.append(self.listen_event_switch(self.on_bottom_left_press, "off")) self.listen_event_handle_list.append(self.listen_event_switch(self.on_top_left_hold, "move_with_on_off")) self.listen_event_handle_list.append(self.listen_event_switch(self.on_bottom_left_hold, "move"))
def initialize(self): self.listen_state_handle_list = [] self.timer_handle_list = [] self.app_switch = globals.get_arg(self.args, "app_switch") self.notify_name = globals.get_arg(self.args, "notify_name") self.isHome_delay = globals.get_arg(self.args, "isHome_delay") self.isHome = globals.get_arg(self.args, "isHome") self.message = globals.get_arg(self.args, "message_DE") self.notifier = self.get_app('Notifier') for sensor in globals.get_arg_list(self.args, "sensor"): self.listen_state_handle_list.append( self.listen_state(self.state_change, sensor))
def initialize(self): self.listen_state_handle_list = [] self.timer_handle_list = [] self.app_switch = globals.get_arg(self.args, "app_switch") self.temp_sensor = globals.get_arg(self.args, "temp_sensor") self.threshold_entity = globals.get_arg(self.args, "threshold_entity") self.location_sensors = globals.get_arg_list(self.args, "location_sensors") self.room = globals.get_arg(self.args, "room") self.actor = globals.get_arg(self.args, "actor") self.delay = globals.get_arg(self.args, "delay") self.turned_on_by_me = False #Giggedi self.turn_off_timer_handle = None self.listen_state_handle_list.append( self.listen_state(self.state_change, self.temp_sensor)) for sensor in self.location_sensors: self.listen_state_handle_list.append( self.listen_state(self.state_change, sensor))
def initialize(self): self.timer_handle = None self.listen_event_handle_list = [] self.listen_state_handle_list = [] self.timer_handle_list = [] self.turned_on_by_me = False # Giggedi self.app_switch = globals.get_arg(self.args, "app_switch") self.sensor = globals.get_arg(self.args, "sensor") self.entity_on = globals.get_arg(self.args, "entity_on") try: self.entity_off = globals.get_arg(self.args, "entity_off") except KeyError: self.entity_off = None try: self.sensor_type = globals.get_arg(self.args, "sensor_type") except KeyError: self.sensor_type = SENSOR_TYPE_ZIGBEE2MQTT try: self.after = globals.get_arg(self.args, "after") except KeyError: self.after = None try: self.after_sundown = globals.get_arg(self.args, "after_sundown") except KeyError: self.after_sundown = None try: self.delay = globals.get_arg(self.args, "delay") try: if self.delay.startswith("input_number"): self.delay_entity = self.delay self.delay = int( self.get_state(self.delay_entity).split(".")[0]) self.listen_state_handle_list.append( self.listen_state(self.delay_changed, self.delay_entity)) except AttributeError: # does not have attribute 'startswith' -> is not of type string pass self.log("Delay changed to : {}".format(self.delay)) except KeyError: self.delay = 90 try: self.turn_on_constraint_entities_off = globals.get_arg_list( self.args, "turn_on_constraint_entities_off") except KeyError: self.turn_on_constraint_entities_off = [] try: self.turn_on_constraint_entities_on = globals.get_arg_list( self.args, "turn_on_constraint_entities_on") except KeyError: self.turn_on_constraint_entities_on = [] try: self.turn_off_constraint_entities_off = globals.get_arg_list( self.args, "turn_off_constraint_entities_off") except KeyError: self.turn_off_constraint_entities_off = [] try: self.turn_off_constraint_entities_on = globals.get_arg_list( self.args, "turn_off_constraint_entities_on") except KeyError: self.turn_off_constraint_entities_on = [] # Subscribe to sensors if self.sensor_type == SENSOR_TYPE_XIAOMI: self.listen_event_handle_list.append( self.listen_event(self.motion_event_detected, "xiaomi_aqara.motion")) elif self.sensor_type in [SENSOR_TYPE_ZIGBEE2MQTT, SENSOR_TYPE_DECONZ]: self.listen_state_handle_list.append( self.listen_state(self.state_changed, self.sensor)) else: self.log(f"Unknown sensor_type: {self.sensor_type}", level="ERROR")
def initialize(self): self.entities = globals.get_arg_list(self.args, "entities") self.app_switch = globals.get_arg(self.args, "app_switch") self.steps = { # offset from sunrise 'latelate': { 'temp': 1600, 'sunrise_offset': -60, 'brightness': 75 }, 'sunrise': { 'temp': 2500, 'sunrise_offset': -45, 'brightness': 175 }, 'morning': { 'temp': 2850, 'sunrise_offset': 120, 'brightness': 240 }, 'day': { 'temp': 3100, 'sunrise_offset': 180, 'brightness': 255 }, # offset from sunset 'evening': { 'temp': 2850, 'sunset_offset': -165, 'brightness': 235 }, 'sunset': { 'temp': 2500, 'sunset_offset': -45, 'brightness': 220 }, # night_early is to get an aggressive temp/brightness change 'night_early': { 'temp': 2450, 'time': '20:03', 'brightness': 200 }, 'night': { 'temp': 2200, 'time': '21:15', 'brightness': 150 }, 'late': { 'temp': 1900, 'time': '23:00', 'brightness': 75 }, } self.steps_list = [] for key, value in self.steps.items(): value['key'] = key self.steps_list.append(value) self.run_every_handle = self.run_every(self.update_color, datetime.now(), 5 * 60) self.app_switch_state_handle = self.listen_state( self.on_app_switch_change, self.app_switch) self.on_entity_state_change_handle_list = [] for entity in self.entities: self.on_entity_state_change_handle_list.append( self.listen_state(self.on_entity_state_change, entity)) self.update_color()