コード例 #1
0
ファイル: TradfriController.py プロジェクト: JKorf/MediaPi
    def get_devices():
        result = TradfriManager().get_devices()

        if len(result) == 0:
            result = TradfriController.create_test_data()

        return to_JSON(result)
コード例 #2
0
    def init():
        from Controllers.TradfriManager import TradfriManager
        from MediaPlayer.MediaManager import MediaManager
        from MediaPlayer.Player.VLCPlayer import VLCPlayer
        from Updater import Updater
        from Shared.State import StateManager
        from Shared.Stats import Stats

        APIController.slaves.register_callback(
            lambda old, new: UIWebsocketController.broadcast(
                "slaves", new.data))
        TradfriManager().tradfri_state.register_callback(
            lambda old, new: UIWebsocketController.broadcast("tradfri", new))
        StateManager().state_data.register_callback(
            lambda old, new: UIWebsocketController.broadcast("1.state", new))
        VLCPlayer().player_state.register_callback(
            lambda old, new: UIWebsocketController.broadcast("1.player", new))
        MediaManager().media_data.register_callback(
            lambda old, new: UIWebsocketController.broadcast("1.media", new))
        MediaManager().torrent_data.register_callback(
            lambda old, new: UIWebsocketController.broadcast("1.torrent", new))
        Stats().cache.register_callback(
            lambda old, new: UIWebsocketController.broadcast("1.stats", new))
        Updater().update_state.register_callback(
            lambda old, new: UIWebsocketController.broadcast("1.update", new))
コード例 #3
0
ファイル: TradfriController.py プロジェクト: JKorf/MediaPi
    def set_group_name():
        group_id = int(request.args.get('group_id'))
        name = urllib.parse.unquote(request.args.get('name'))

        Logger().write(LogVerbosity.Info,
                       "Set group " + str(group_id) + " to name " + str(name))
        TradfriManager().set_group_name(group_id, name)
        return "OK"
コード例 #4
0
ファイル: TradfriController.py プロジェクト: JKorf/MediaPi
    def set_group_state():
        group_id = int(request.args.get('group_id'))
        state = request.args.get('state') == "true"

        Logger().write(
            LogVerbosity.Info,
            "Set group " + str(group_id) + " to state " + str(state))
        TradfriManager().set_group_state(group_id, state)
        return "OK"
コード例 #5
0
ファイル: TradfriController.py プロジェクト: JKorf/MediaPi
    def get_group_devices():
        group_id = int(request.args.get('group_id'))

        result = TradfriManager().get_devices_in_group(group_id)

        if len(result) == 0:
            result = TradfriController.create_test_data()

        return to_JSON(result)
コード例 #6
0
ファイル: TradfriController.py プロジェクト: JKorf/MediaPi
    def set_light_dimmer():
        device_id = int(request.args.get('device_id'))
        dimmer = int(request.args.get('dimmer'))

        Logger().write(
            LogVerbosity.Info,
            "Set light " + str(device_id) + " to dimmer " + str(dimmer))
        TradfriManager().set_light_dimmer(device_id, dimmer)
        return "OK"
コード例 #7
0
ファイル: TradfriController.py プロジェクト: JKorf/MediaPi
    def set_light_warmth():
        device_id = int(request.args.get('device_id'))
        warmth = int(request.args.get('warmth'))

        Logger().write(
            LogVerbosity.Info,
            "Set light " + str(device_id) + " to warmth " + str(warmth))
        TradfriManager().set_light_warmth(device_id, warmth)
        return "OK"
コード例 #8
0
ファイル: TradfriController.py プロジェクト: JKorf/MediaPi
    def set_device_state():
        device_id = int(request.args.get('device_id'))
        state = request.args.get('state') == "true"

        Logger().write(
            LogVerbosity.Info,
            "Set device " + str(device_id) + " to state " + str(state))
        TradfriManager().set_state(device_id, state)
        return "OK"
コード例 #9
0
ファイル: TradfriController.py プロジェクト: JKorf/MediaPi
    def set_device_name():
        device_id = int(request.args.get('device_id'))
        name = urllib.parse.unquote(request.args.get('name'))

        Logger().write(
            LogVerbosity.Info,
            "Set device " + str(device_id) + " to name " + str(name))
        TradfriManager().set_device_name(device_id, name)
        return "OK"
コード例 #10
0
ファイル: TradfriController.py プロジェクト: JKorf/MediaPi
    def set_group_dimmer():
        group_id = int(request.args.get('group_id'))
        dimmer = int(request.args.get('dimmer'))

        Logger().write(
            LogVerbosity.Info,
            "Set group " + str(group_id) + " to dimmer " + str(dimmer))
        TradfriManager().set_group_dimmer(group_id, dimmer)
        return "OK"
コード例 #11
0
ファイル: RuleManager.py プロジェクト: JKorf/MediaPi
 def execute(self):
     for group_id in self.group_ids:
         TradfriManager().set_group_state(group_id, self.on)
コード例 #12
0
ファイル: start.py プロジェクト: JKorf/MediaPi
    def __init__(self):
        Logger().start(Settings.get_int("log_level"))
        sys.excepthook = self.handle_exception

        Logger().write(LogVerbosity.Info, "Starting")
        self.running = True

        self.version = datetime.fromtimestamp(
            self.get_latest_change()).strftime("%Y-%m-%d %H:%M:%S")
        self.is_slave = Settings.get_bool("slave")
        self.pi = sys.platform == "linux" or sys.platform == "linux2"

        Logger().write(
            LogVerbosity.Info, "Python version " + str(sys.version_info[0]) +
            "." + str(sys.version_info[1]) + "." + str(sys.version_info[2]))
        Logger().write(LogVerbosity.Info,
                       "MediaPlayer build [" + self.version + "]")
        Logger().write(LogVerbosity.Info, "Slave: " + str(self.is_slave))
        if self.is_slave:
            Logger().write(
                LogVerbosity.Info,
                "Master ip: " + str(Settings.get_string("master_ip")))
        Logger().write(LogVerbosity.Info, "Pi: " + str(self.pi))
        Logger().write(LogVerbosity.Info,
                       "UI: " + str(Settings.get_bool("UI")))

        Logger().write(LogVerbosity.Debug, "Initializing database")
        Database().init_database()

        Logger().write(LogVerbosity.Debug, "Initializing singletons")
        self.init_singletons()

        Logger().write(LogVerbosity.Debug, "Initializing sounds and folders")
        self.init_sound()
        self.init_folders()

        Logger().write(LogVerbosity.Debug, "Initializing API")
        APIController().start()

        Logger().write(LogVerbosity.Debug, "Initializing WiFi controller")
        WiFiController().check_wifi()

        Logger().write(LogVerbosity.Debug, "Initializing stats")
        Stats().start()
        Stats().set('start_time', current_time())

        Logger().write(LogVerbosity.Debug, "Initializing presence manager")
        PresenceManager().start()

        Logger().write(LogVerbosity.Debug, "Initializing rule manager")
        RuleManager().start()

        Logger().write(LogVerbosity.Debug, "Initializing TV manager")
        TVManager().start()

        if not self.is_slave:
            Logger().write(LogVerbosity.Debug, "Initializing TradeFriManager")
            TradfriManager().init()

            Logger().write(LogVerbosity.Debug,
                           "Initializing master file server")
            self.file_listener = StreamListener("MasterFileServer", 50015)
            self.file_listener.start_listening()

        Logger().write(LogVerbosity.Important, "Started")
        if Settings.get_bool("UI"):
            from UI.TV.GUI import App
            self.gui = App.initialize()
        else:
            while self.running:
                time.sleep(5)