def read_settings():
    settings_storage['disable_connection_message'] = ADDON.getSettingBool(
        "disableConnectionMessage")
    settings_storage['reloadFlash'] = ADDON.getSettingBool("reloadFlash")
    settings_storage['initialFlash'] = ADDON.getSettingBool("initialFlash")
    settings_storage['forceOnSunset'] = ADDON.getSettingBool("forceOnSunset")
    settings_storage['daylightDisable'] = ADDON.getSettingBool(
        "daylightDisable")
    cache.set("script.service.hue.daylightDisable",
              ADDON.getSettingBool("daylightDisable"))

    settings_storage['enableSchedule'] = ADDON.getSettingBool("enableSchedule")
    settings_storage['startTime'] = ADDON.getSetting(
        "startTime")  # string HH:MM
    settings_storage['endTime'] = ADDON.getSetting("endTime")  # string HH:MM
    settings_storage['disableConnectionMessage'] = ADDON.getSettingBool(
        "disableConnectionMessage")

    settings_storage['videoMinimumDuration'] = ADDON.getSettingInt(
        "video_MinimumDuration"
    )  # Setting in Minutes. Kodi library uses seconds, needs to be converted.
    settings_storage['video_enableMovie'] = ADDON.getSettingBool("video_Movie")
    settings_storage['video_enableMusicVideo'] = ADDON.getSettingBool(
        "video_MusicVideo")
    settings_storage['video_enableEpisode'] = ADDON.getSettingBool(
        "video_Episode")
    settings_storage['video_enableOther'] = ADDON.getSettingBool("video_Other")

    settings_storage['ambiEnabled'] = ADDON.getSettingBool("group3_enabled")
    settings_storage['show500Error'] = ADDON.getSettingBool("show500Error")
    _validate_schedule()
    _validate_ambilight()
def _validate_ambilight():
    logger.debug("Validate ambilight config. Enabled: {}".format(
        settings_storage['ambiEnabled']))
    if settings_storage['ambiEnabled']:
        if settings_storage['zones'] == "0":
            light_ids = ADDON.getSetting("group3_Lights")
            if light_ids == "-1":
                logger.error("No ambilights selected")
                xbmcgui.Dialog().notification(
                    _("Hue Service"),
                    _("No lights selected for Ambilight."),
                    icon=xbmcgui.NOTIFICATION_ERROR)
                ADDON.setSettingBool("group3_enabled", False)
                settings_storage['ambiEnabled'] = False
        if settings_storage['zones'] == "1":
            light_idsLeft = ADDON.getSetting("group3_LightsLeft")
            if light_idsLeft == "-1":
                logger.error("No ambilights selected for left zone")
                xbmcgui.Dialog().notification(
                    _("Hue Service"),
                    _("No lights selected for Ambilight in left zone."),
                    icon=xbmcgui.NOTIFICATION_ERROR)
                ADDON.setSettingBool("group3_enabled", False)
                settings_storage['ambiEnabled'] = False
            light_idsRight = ADDON.getSetting("group3_LightsRight")
            if light_idsRight == "-1":
                logger.error("No ambilights selected for right zone")
                xbmcgui.Dialog().notification(
                    _("Hue Service"),
                    _("No lights selected for Ambilight in right zone."),
                    icon=xbmcgui.NOTIFICATION_ERROR)
                ADDON.setSettingBool("group3_enabled", False)
                settings_storage['ambiEnabled'] = False
Esempio n. 3
0
def _validate_ambilight():
    xbmc.log(
        f"[script.service.hue] Validate ambilight config. Enabled: {ADDON.getSettingBool('group3_enabled')}"
    )
    if ADDON.getSettingBool("group3_enabled"):
        light_ids = ADDON.getSetting("group3_Lights")
        if light_ids == "-1":
            ADDON.setSettingBool("group3_enabled", False)
            xbmc.log("[script.service.hue] No ambilights selected")
            notification(_("Hue Service"),
                         _("No lights selected for Ambilight."),
                         icon=xbmcgui.NOTIFICATION_ERROR)
Esempio n. 4
0
    def __init__(self,
                 light_group_id,
                 hue_connection,
                 initial_state=STATE_STOPPED,
                 video_info_tag=xbmc.InfoTagVideo):
        self.hue_connection = hue_connection
        self.light_group_id = light_group_id
        self.bridge = hue_connection.bridge
        self.monitor = hue_connection.monitor
        self.group0 = self.bridge.groups[0]
        self.bridge_error500 = 0
        self.state = initial_state
        self.enabled = ADDON.getSettingBool(
            f"group{self.light_group_id}_enabled")

        self.saved_light_states = {}
        self.video_info_tag = video_info_tag

        self.image_process = imageprocess.ImageProcess()

        self.converterA = Converter(GamutA)
        self.converterB = Converter(GamutB)
        self.converterC = Converter(GamutC)
        self.helper = ColorHelper(
            GamutC)  # Gamut doesn't matter for this usage

        self.enabled = ADDON.getSettingBool(
            f"group{self.light_group_id}_enabled")

        self.transition_time = int(
            ADDON.getSettingInt(f"group{self.light_group_id}_TransitionTime") /
            100
        )  # This is given as a multiple of 100ms and defaults to 4 (400ms). transition_time:10 will make the transition last 1 second.
        self.force_on = ADDON.getSettingBool(
            f"group{self.light_group_id}_forceOn")
        self.disable_labs = ADDON.getSettingBool(
            f"group{self.light_group_id}_disableLabs")
        self.min_bri = ADDON.getSettingInt(
            f"group{self.light_group_id}_MinBrightness"
        ) * 255 / 100  # convert percentage to value 1-254
        self.max_bri = ADDON.getSettingInt(
            f"group{self.light_group_id}_MaxBrightness"
        ) * 255 / 100  # convert percentage to value 1-254
        self.saturation = ADDON.getSettingNumber(
            f"group{self.light_group_id}_Saturation")
        self.capture_size_x = ADDON.getSettingInt(
            f"group{self.light_group_id}_CaptureSize")
        self.resume_state = ADDON.getSettingBool(
            f"group{self.light_group_id}_ResumeState")
        self.resume_transition = ADDON.getSettingInt(
            f"group{self.light_group_id}_ResumeTransition"
        ) * 10  # convert seconds to multiple of 100ms

        self.update_interval = ADDON.getSettingInt(
            f"group{self.light_group_id}_Interval"
        ) / 1000  # convert MS to seconds
        if self.update_interval == 0:
            self.update_interval = 0.1

        if self.enabled:
            self.ambi_lights = {}
            light_ids = ADDON.getSetting(
                f"group{self.light_group_id}_Lights").split(",")
            index = 0

            if len(light_ids) > 0:
                for L in light_ids:
                    gamut = self._get_light_gamut(self.bridge, L)
                    light = {
                        L: {
                            'gamut': gamut,
                            'prev_xy': (0, 0),
                            "index": index
                        }
                    }
                    self.ambi_lights.update(light)
                    index = index + 1

                super(xbmc.Player).__init__()