models.py 文件源码

python
阅读 26 收藏 0 点赞 0 评论 0

项目:IotCenter 作者: panjanek 项目源码 文件源码
def computeTrends(self, trends):
        time = datetime.datetime.now()
        t1 = time - datetime.timedelta(minutes=3)
        t2 = time - datetime.timedelta(minutes=10)
        for value in self.values:
            key = "{0}.{1}".format(self.deviceId, value.id)
            if key in trends and len(trends[key])>2:
                previous = filter(lambda x: x.time > t2 and x.time <= t1, trends[key])
                current = filter(lambda x: x.time > t1 and x.time <= time, trends[key])
                if len(previous) >= 5 and len(current) >= 2:
                    previous_values = [x.value for x in previous]
                    previous_avg = sum(previous_values)/len(previous_values)
                    current_values = [x.value for x in current]
                    current_avg = sum(current_values)/len(current_values)
                    if current_avg > previous_avg + 0.02:
                        value.trend = 1
                    if current_avg < previous_avg - 0.02:
                        value.trend = -1
        return self
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号