Ejemplo n.º 1
0
    def run(self):
        url = 'http://%s:5000/' % self.host
        print 'Welcome to ScreenBloom!'
        print 'Server running at: %s' % url
        if not self.stoprequest.isSet():
            # Check For DLL error
            if not utility.dll_check():
                url += 'dll-error'
            # Check if config file has been created yet
            elif os.path.isfile(utility.get_config_path()):
                print 'Config already exists'
                config = ConfigParser.RawConfigParser()
                config.read(utility.get_config_path())
                utility.write_config('App State', 'running', '0')

                # Wait for 200 status code from server then load up interface
                while not utility.check_server(self.host):
                    sleep(0.2)

                sb_controller.start()
            else:
                # Config file doesn't exist, open New User interface
                print 'Config does not exist yet!'
                url += 'new-user'

        webbrowser.open(url)
Ejemplo n.º 2
0
    def startup_checks(self):
        # Check For DLL error
        if params.BUILD == 'win':
            if not utility.dll_check():
                self.url = self.base_url + 'dll-error'
                self.error = True
                return

        # Check if config file has been created yet
        if os.path.isfile(utility.get_config_path()):
            # Check to see if config needs to be updated
            if not utility.config_check():
                self.url = self.base_url + 'update-config'
                self.needs_update = True
                return
            else:
                presets.update_presets_if_necessary()
                config = utility.get_config_dict()
                lights_initial_state = json.dumps(utility.get_hue_initial_state(config['ip'], config['username']))

                # Init Screen object with some first-run defaults
                utility.write_config('App State', 'running', False)
                utility.write_config('Light Settings', 'default', lights_initial_state)
                sb_controller.init()

                self.url = self.base_url
                return
        else:
            # Config file doesn't exist, open New User interface
            self.url = self.base_url + 'new-user'
            self.new_user = True
            return
Ejemplo n.º 3
0
def stop_screenbloom():
    utility.write_config('Configuration', 'color_mode_enabled', False)
    sb_controller.stop()
    sb_controller.re_initialize()
    sb_controller.update_bulb_default()

    data = {'message': 'Color Mode stopped'}
    return data
Ejemplo n.º 4
0
def start():
    global t
    screen = get_screen_object()
    t = ScreenBloom(screen.update)
    t.start()

    hue_interface.lights_on_off('on')
    utility.write_config('App State', 'running', True)
Ejemplo n.º 5
0
def stop():
    global t

    try:
        t.join()
    except NameError:
        pass

    utility.write_config('App State', 'running', False)
Ejemplo n.º 6
0
def stop():
    global t

    try:
        t.join()
    except NameError:
        pass

    utility.write_config('App State', 'running', False)
Ejemplo n.º 7
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)))
Ejemplo n.º 8
0
def stop_screenbloom():
    print '\nEnding screenBloom thread...'
    config = ConfigParser.RawConfigParser()
    config.read(utility.get_config_path())
    utility.write_config('App State', 'running', '0')

    # End currently running threads
    try:
        t.join()
    except NameError:
        print 'ScreenBloom thread not running'

    sb_controller.update_bulb_default()
    data = {'message': 'Successfully ended screenBloom thread'}
    return data
Ejemplo n.º 9
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)))
Ejemplo n.º 10
0
def delete_preset(preset_number):
    config = ConfigParser.RawConfigParser()
    config.read(utility.get_config_path())
    current_preset = config.get('Configuration', 'current_preset')

    with open(utility.get_json_filepath()) as data_file:
        presets = json.load(data_file)
        key = 'preset_' + str(preset_number)

        if presets[key]['preset_name'] == current_preset:
            utility.write_config('Configuration', 'current_preset', '')

        del presets[key]

    with open(utility.get_json_filepath(), 'w') as f:
        json.dump(presets, f)
Ejemplo n.º 11
0
def delete_preset(preset_number):
    config = ConfigParser.RawConfigParser()
    config.read(utility.get_config_path())
    current_preset = config.get('Configuration', 'current_preset')

    with open(utility.get_json_filepath()) as data_file:
        presets = json.load(data_file)
        key = 'preset_' + str(preset_number)

        if presets[key]['preset_name'] == current_preset:
            utility.write_config('Configuration', 'current_preset', '')

        del presets[key]

    with open(utility.get_json_filepath(), 'w') as f:
        json.dump(presets, f)
Ejemplo n.º 12
0
def start_screenbloom():
    config = utility.get_config_dict()
    state = config['color_mode_enabled']
    sb_controller.get_screen_object().bulb_state = 'on'
    hue_interface.lights_on_off('On')

    if state:
        message = 'ScreenBloom already running'
    else:
        utility.write_config('Configuration', 'color_mode_enabled', True)
        sb_controller.re_initialize()
        sb_controller.start()

        message = 'Color Mode Started!'

    data = {'message': message}
    return data
Ejemplo n.º 13
0
def restart_check():
    global t
    config = ConfigParser.RawConfigParser()
    config.read(utility.get_config_path())
    update = config.get('Light Settings', 'update')

    try:
        if t.isAlive():
            print 'Restarting thread...'
            t.join()
            sb_controller.re_initialize()
            utility.write_config('App State', 'running', '1')

            t = sb_controller.ScreenBloom(update)
            t.start()

            print '\nHello!'
        else:
            sb_controller.re_initialize()
    except NameError:
        print 'Thread does not exist yet'
        sb_controller.re_initialize()
Ejemplo n.º 14
0
def start_screenbloom():
    config = ConfigParser.RawConfigParser()
    config.read(utility.get_config_path())
    state = int(config.get('App State', 'running'))
    update = config.get('Light Settings', 'update')
    sb_controller.get_screen_object().bulb_state = 'on'

    if update:
        state = False

    if state:
        message = 'ScreenBloom already running'
    else:
        utility.write_config('App State', 'running', '1')

        global t
        t = sb_controller.ScreenBloom(update)
        t.start()

        print '\nHello!'
        message = 'ScreenBloom thread initialized'

    data = {'message': message}
    return data
Ejemplo n.º 15
0
def start():
    global t
    screen = get_screen_object()
    t = ScreenBloom(screen.update)
    t.start()
    utility.write_config('App State', 'running', True)
Ejemplo n.º 16
0
def start():
    global t
    screen = get_screen_object()
    t = ScreenBloom(screen.update)
    t.start()
    utility.write_config('App State', 'running', True)
Ejemplo n.º 17
0
def apply_preset(preset_number):
    with open(utility.get_json_filepath()) as data_file:
        presets = json.load(data_file)

    preset_index = 'preset_' + str(preset_number)
    preset = presets[preset_index]
    utility.write_config('Light Settings', 'min_bri', preset['min_bri'])
    utility.write_config('Light Settings', 'max_bri', preset['max_bri'])
    utility.write_config('Light Settings', 'black_rgb', preset['black_rgb'])
    utility.write_config('Light Settings', 'update', preset['update'])
    utility.write_config('Light Settings', 'update_buffer',
                         preset['update_buffer'])
    utility.write_config('Light Settings', 'default', preset['default'])
    utility.write_config('Party Mode', 'running', preset['party_mode'])
    utility.write_config('Configuration', 'auto_start', preset['autostart'])
    utility.write_config('Light Settings', 'zone_state', preset['zone_state'])
    utility.write_config('Light Settings', 'zones', preset['zones'])
    utility.write_config('Light Settings', 'active', preset['active'])
    utility.write_config('Light Settings', 'bulb_settings',
                         preset['bulb_settings'])
    utility.write_config('Light Settings', 'display_index',
                         preset['display_index'])
    utility.write_config('Light Settings', 'color_mode', preset['color_mode'])
    return preset
Ejemplo n.º 18
0
def apply_preset(preset_number):
    with open(utility.get_json_filepath()) as data_file:
        presets = json.load(data_file)

    preset_index = 'preset_' + str(preset_number)
    preset = presets[preset_index]
    utility.write_config('Configuration', 'auto_start', preset['autostart'])
    utility.write_config('Configuration', 'current_preset', preset['preset_name'])

    utility.write_config('Light Settings', 'min_bri', preset['min_bri'])
    utility.write_config('Light Settings', 'max_bri', preset['max_bri'])
    utility.write_config('Light Settings', 'update', preset['update'])
    utility.write_config('Light Settings', 'update_buffer', preset['update_buffer'])
    utility.write_config('Light Settings', 'zone_state', preset['zone_state'])
    utility.write_config('Light Settings', 'zones', preset['zones'])
    utility.write_config('Light Settings', 'active', preset['active'])
    utility.write_config('Light Settings', 'bulb_settings', preset['bulb_settings'])
    utility.write_config('Light Settings', 'display_index', preset['display_index'])

    utility.write_config('Party Mode', 'running', preset['party_mode'])

    view_logic.stop_screenbloom()
    if preset['autostart']:
        view_logic.start_screenbloom()

    return preset
Ejemplo n.º 19
0
def apply_preset(preset_number):
    with open(utility.get_json_filepath()) as data_file:
        presets = json.load(data_file)

    preset_index = 'preset_' + str(preset_number)
    preset = presets[preset_index]
    utility.write_config('Configuration', 'auto_start', preset['autostart'])
    utility.write_config('Configuration', 'current_preset',
                         preset['preset_name'])

    utility.write_config('Light Settings', 'min_bri', preset['min_bri'])
    utility.write_config('Light Settings', 'max_bri', preset['max_bri'])
    utility.write_config('Light Settings', 'update', preset['update'])
    utility.write_config('Light Settings', 'update_buffer',
                         preset['update_buffer'])
    utility.write_config('Light Settings', 'zone_state', preset['zone_state'])
    utility.write_config('Light Settings', 'zones', preset['zones'])
    utility.write_config('Light Settings', 'active', preset['active'])
    utility.write_config('Light Settings', 'bulb_settings',
                         preset['bulb_settings'])
    utility.write_config('Light Settings', 'display_index',
                         preset['display_index'])

    utility.write_config('Party Mode', 'running', preset['party_mode'])

    view_logic.stop_screenbloom()
    if preset['autostart']:
        view_logic.start_screenbloom()

    return preset