Esempio n. 1
0
    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))
Esempio n. 2
0
    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))
Esempio n. 3
0
  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))
Esempio n. 4
0
    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)
Esempio n. 5
0
    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"))
Esempio n. 7
0
    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
Esempio n. 8
0
    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"))
Esempio n. 10
0
    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)
Esempio n. 11
0
    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))
Esempio n. 13
0
    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))
Esempio n. 14
0
    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")
Esempio n. 15
0
    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()