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)
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)))
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)))
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)