Пример #1
0
def create_config(hue_ip, username):
    config = ConfigParser.RawConfigParser()
    lights = hue_interface.get_lights_list(hue_ip, username)
    active = ','.join([str(0) for light in lights])

    default_bulb_settings = {}
    for light in lights:
        settings = {
            'max_bri': 254,
            'min_bri': 1
        }
        default_bulb_settings[light] = settings

    config.add_section('Configuration')
    config.set('Configuration', 'hue_ip', hue_ip)
    config.set('Configuration', 'username', username)
    config.set('Configuration', 'auto_start', 0)
    config.set('Configuration', 'current_preset', '')
    config.set('Configuration', 'color_mode_enabled', 0)

    config.add_section('Light Settings')
    config.set('Light Settings', 'all_lights', ','.join(lights))
    config.set('Light Settings', 'active', active)
    config.set('Light Settings', 'bulb_settings', json.dumps(default_bulb_settings))
    config.set('Light Settings', 'update', '0.7')
    config.set('Light Settings', 'update_buffer', '0')
    config.set('Light Settings', 'default', '255,226,168')
    config.set('Light Settings', 'max_bri', '254')
    config.set('Light Settings', 'min_bri', '1')
    config.set('Light Settings', 'zones', '[]')
    config.set('Light Settings', 'zone_state', 0)
    config.set('Light Settings', 'black_rgb', '1,1,1')
    config.set('Light Settings', 'display_index', 0)
    config.set('Light Settings', 'color_mode', 'average')

    config.add_section('System Monitoring')
    config.set('System Monitoring', 'enabled', 0)
    config.set('System Monitoring', 'mode', 'extreme')
    config.set('System Monitoring', 'interval', 5)
    config.set('System Monitoring', 'cpu_warning_temp', 50)
    config.set('System Monitoring', 'cpu_extreme_temp', 70)
    config.set('System Monitoring', 'cpu_warning_color', '255,165,0')
    config.set('System Monitoring', 'cpu_extreme_color', '255,0,0')
    config.set('System Monitoring', 'gpu_warning_temp', 80)
    config.set('System Monitoring', 'gpu_extreme_temp', 95)
    config.set('System Monitoring', 'gpu_warning_color', '255,165,0')
    config.set('System Monitoring', 'gpu_extreme_color', '255,0,0')

    config.add_section('Party Mode')
    config.set('Party Mode', 'running', '0')

    with open(utility.get_config_path(), 'wb') as config_file:
        config.write(config_file)
Пример #2
0
def create_config(hue_ip, username):
    config = ConfigParser.RawConfigParser()
    lights = hue_interface.get_lights_list(hue_ip, username)
    active = ','.join([str(0) for light in lights])

    default_bulb_settings = {}
    for light in lights:
        settings = {'max_bri': 254, 'min_bri': 1}
        default_bulb_settings[light] = settings

    config.add_section('Configuration')
    config.set('Configuration', 'hue_ip', hue_ip)
    config.set('Configuration', 'username', username)
    config.set('Configuration', 'auto_start', 0)
    config.set('Configuration', 'current_preset', '')

    config.add_section('Light Settings')
    config.set('Light Settings', 'all_lights', ','.join(lights))
    config.set('Light Settings', 'active', active)
    config.set('Light Settings', 'bulb_settings',
               json.dumps(default_bulb_settings))
    config.set('Light Settings', 'update', '0.7')
    config.set('Light Settings', 'update_buffer', '0')
    config.set('Light Settings', 'default', '')
    config.set('Light Settings', 'max_bri', '254')
    config.set('Light Settings', 'min_bri', '1')
    config.set('Light Settings', 'zones', '[]')
    config.set('Light Settings', 'zone_state', 0)
    config.set('Light Settings', 'display_index', 0)
    config.set('Light Settings', 'sat', 1.0)

    config.add_section('Party Mode')
    config.set('Party Mode', 'running', 0)

    config.add_section('App State')
    config.set('App State', 'running', False)

    directory = os.getenv('APPDATA') or os.getenv('HOME')
    directory = os.path.join(directory, 'screenBloom')
    if not os.path.exists(directory):
        os.makedirs(directory)

    with open(utility.get_config_path(), 'wb') as config_file:
        config.write(config_file)

    # Now that the config is created, set initial light setting
    utility.write_config(
        'Light Settings', 'default',
        json.dumps(utility.get_hue_initial_state(hue_ip, username)))
Пример #3
0
def create_config(hue_ip, username):
    config = ConfigParser.RawConfigParser()
    lights = hue_interface.get_lights_list(hue_ip, username)
    active = ','.join([str(0) for light in lights])

    default_bulb_settings = {}
    for light in lights:
        settings = {
            'max_bri': 254,
            'min_bri': 1
        }
        default_bulb_settings[light] = settings

    config.add_section('Configuration')
    config.set('Configuration', 'hue_ip', hue_ip)
    config.set('Configuration', 'username', username)
    config.set('Configuration', 'auto_start', 0)
    config.set('Configuration', 'current_preset', '')

    config.add_section('Light Settings')
    config.set('Light Settings', 'all_lights', ','.join(lights))
    config.set('Light Settings', 'active', active)
    config.set('Light Settings', 'bulb_settings', json.dumps(default_bulb_settings))
    config.set('Light Settings', 'update', '0.7')
    config.set('Light Settings', 'update_buffer', '0')
    config.set('Light Settings', 'default', '')
    config.set('Light Settings', 'max_bri', '254')
    config.set('Light Settings', 'min_bri', '1')
    config.set('Light Settings', 'zones', '[]')
    config.set('Light Settings', 'zone_state', 0)
    config.set('Light Settings', 'display_index', 0)
    config.set('Light Settings', 'sat', 1.0)

    config.add_section('Party Mode')
    config.set('Party Mode', 'running', 0)

    config.add_section('App State')
    config.set('App State', 'running', False)

    directory = os.getenv('APPDATA') + '\\screenBloom'
    if not os.path.exists(directory):
        os.makedirs(directory)

    with open(utility.get_config_path(), 'wb') as config_file:
        config.write(config_file)

    # Now that the config is created, set initial light setting
    utility.write_config('Light Settings', 'default', json.dumps(utility.get_hue_initial_state(hue_ip, username)))
Пример #4
0
def update_presets_if_necessary():
    needs_update = False
    config = utility.get_config_dict()
    all_lights = hue_interface.get_lights_list(config['ip'], config['username'])
    all_lights_list = [int(i) for i in all_lights]
    all_lights_str = ','.join([str(i) for i in all_lights_list])

    # Return if presets file does not exist yet
    try:
        with open(utility.get_json_filepath()) as data_file:
            presets = json.load(data_file)
    except IOError:
        return

    current_light_settings = utility.get_current_light_settings()
    presets_to_write = {}
    for preset_name in presets:
        # Check each preset for key errors (new values needing defaults)
        preset = presets[preset_name]
        bulbs = json.loads(preset['bulb_settings'])

        # Check if active bulbs needs to be updated
        active_bulbs = preset['active']
        active_bulbs_list = active_bulbs.split(',')
        new_active_bulbs = []
        for index, bulb_id in enumerate(all_lights_list):
            try:
                bulb = int(active_bulbs_list[index])
                new_active_bulbs.append(bulb)
            except IndexError:
                needs_update = True
                new_active_bulbs.append(0)

        active_bulbs = ','.join([str(i) for i in new_active_bulbs])
        # Add new bulb to current_light_settings if necessary

        for bulb_id in current_light_settings:
            try:
                bulb = bulbs[bulb_id]
            except KeyError:  # Add new bulb with default values
                needs_update = True
                bulb = current_light_settings[bulb_id]
                bulb['max_bri'] = 254
                bulb['min_bri'] = 1
                bulbs[bulb_id] = bulb

        for bulb_id in bulbs:
            bulb = bulbs[bulb_id]
            bulb_current_settings = current_light_settings[str(bulb_id)]

            # Check bulbs for missing key->value pairs here
            try:
                model_id = bulb['model_id']
            except KeyError:
                needs_update = True
                bulb['model_id'] = bulb_current_settings['model_id']
            try:
                gamut = bulb['gamut']
            except KeyError:
                needs_update = True
                bulb['gamut'] = bulb_current_settings['gamut']
            try:
                name = bulb['name']
            except KeyError:
                needs_update = True
                bulb['name'] = bulb_current_settings['name']

        # Version 2.2 Updates #################################################
        try:
            sat = preset['sat']
        except KeyError:
            needs_update = True
            sat = 1.0

        if needs_update:
            preset['bulb_settings'] = json.dumps(bulbs)
            preset['active'] = active_bulbs
            preset['all_lights'] = all_lights_str
            preset['sat'] = sat
            presets_to_write[preset_name] = preset

    if needs_update:
        # print 'Updating presets...'
        with open(utility.get_json_filepath(), 'w') as f:
            json.dump(presets_to_write, f)

        current_preset = config['current_preset']
        if current_preset:
            for key in presets:
                preset = presets[key]
                name = preset['preset_name']
                if name == current_preset:
                    preset_number = key[key.find('_') + 1:]
                    # print 'Applying %s...' % str(key)
                    apply_preset(preset_number)
Пример #5
0
def update_presets_if_necessary():
    needs_update = False
    config = utility.get_config_dict()
    all_lights = hue_interface.get_lights_list(config['ip'],
                                               config['username'])
    all_lights_list = [int(i) for i in all_lights]
    all_lights_str = ','.join([str(i) for i in all_lights_list])

    # Return if presets file does not exist yet
    try:
        with open(utility.get_json_filepath()) as data_file:
            presets = json.load(data_file)
    except IOError:
        return

    current_light_settings = utility.get_current_light_settings()
    presets_to_write = {}
    for preset_name in presets:
        # Check each preset for key errors (new values needing defaults)
        preset = presets[preset_name]
        bulbs = json.loads(preset['bulb_settings'])

        # Check if active bulbs needs to be updated
        active_bulbs = preset['active']
        active_bulbs_list = active_bulbs.split(',')
        new_active_bulbs = []
        for index, bulb_id in enumerate(all_lights_list):
            try:
                bulb = int(active_bulbs_list[index])
                new_active_bulbs.append(bulb)
            except IndexError:
                needs_update = True
                new_active_bulbs.append(0)

        active_bulbs = ','.join([str(i) for i in new_active_bulbs])
        # Add new bulb to current_light_settings if necessary

        for bulb_id in current_light_settings:
            try:
                bulb = bulbs[bulb_id]
            except KeyError:  # Add new bulb with default values
                needs_update = True
                bulb = current_light_settings[bulb_id]
                bulb['max_bri'] = 254
                bulb['min_bri'] = 1
                bulbs[bulb_id] = bulb

        for bulb_id in bulbs:
            bulb = bulbs[bulb_id]
            bulb_current_settings = current_light_settings[str(bulb_id)]

            # Check bulbs for missing key->value pairs here
            try:
                model_id = bulb['model_id']
            except KeyError:
                needs_update = True
                bulb['model_id'] = bulb_current_settings['model_id']
            try:
                gamut = bulb['gamut']
            except KeyError:
                needs_update = True
                bulb['gamut'] = bulb_current_settings['gamut']
            try:
                name = bulb['name']
            except KeyError:
                needs_update = True
                bulb['name'] = bulb_current_settings['name']

        # Version 2.2 Updates #################################################
        try:
            sat = preset['sat']
        except KeyError:
            needs_update = True
            sat = 1.0

        if needs_update:
            preset['bulb_settings'] = json.dumps(bulbs)
            preset['active'] = active_bulbs
            preset['all_lights'] = all_lights_str
            preset['sat'] = sat
            presets_to_write[preset_name] = preset

    if needs_update:
        # print 'Updating presets...'
        with open(utility.get_json_filepath(), 'w') as f:
            json.dump(presets_to_write, f)

        current_preset = config['current_preset']
        if current_preset:
            for key in presets:
                preset = presets[key]
                name = preset['preset_name']
                if name == current_preset:
                    preset_number = key[key.find('_') + 1:]
                    # print 'Applying %s...' % str(key)
                    apply_preset(preset_number)