Example #1
0
class Statistic:
    current_status = {}

    def __init__(self):
        self.redis_database = RedisDatabase()
        self.mongo_client = MongoClient()
        self.mongo_database = self.mongo_client["smart_aqua"]
        self.stat = self.mongo_database.statistic

    def update_data(self):
        # Water Level
        self.current_status[
            RedisDatabase.WATER_LEVEL] = self.redis_database.get_water_level()

        # Screen Mode
        if self.redis_database.get_screen_mode() is not None:
            self.current_status[
                RedisDatabase.
                SCREEN_MODE] = self.redis_database.get_screen_mode()
        else:
            self.current_status[
                RedisDatabase.
                SCREEN_MODE] = self.redis_database.get_screen_mode()

        # Date
        self.current_status["date"] = datetime.datetime.utcnow()

        # TEMPERATURE and HUMIDITY
        self.current_status[RedisDatabase.HUMIDITY] = float(
            self.redis_database.get(RedisDatabase.HUMIDITY))
        self.current_status[RedisDatabase.TEMPERATURE] = float(
            self.redis_database.get(RedisDatabase.TEMPERATURE))

        # CPU

        self.current_status[RedisDatabase.CPU_USAGE] = psutil.cpu_percent()

    def save(self):
        self.stat.insert_one(self.current_status)
        self.current_status = {}

    def update_and_save(self):
        self.update_data()
        self.save()