『瀚思彼岸』» 智能家居技术论坛
标题:
如何获取数据平均值(Moving average)(解决)
[打印本页]
作者:
xybu
时间:
2023-3-21 10:04
标题:
如何获取数据平均值(Moving average)(解决)
本帖最后由 xybu 于 2023-3-21 14:35 编辑
原因:数据为风向角度,约5分钟更新一次,变化较大,想获取一个平均值。刚好apexcharts-card有这个功能,我设置为40分钟的平均值,如下图及代码。
请教:如何获取到这个平均数(152.4°),我要用于控制家中设备
解决方法在三楼
[attach]46532[/attach]
type: custom:apexcharts-card
locale: zh-cn
apex_config:
chart:
height: 300px
graph_span: 12h
header:
show: false
title: 风向
show_states: true
colorize_states: true
series:
- entity: sensor.guan_zhou
name: 官洲
stroke_width: 2
group_by:
duration: 40min
func: avg
show:
in_chart: true
extremas: true
- entity: sensor.guan_zhou
name: 官洲1
stroke_width: 2
show:
in_chart: true
extremas: true
复制代码
作者:
dscao
时间:
2023-3-21 12:45
风向角度用平均值应该不太好吧?
比如北风,在350度至10度之间摆动,平均一下变成180度了,还以为是南风了。哈哈,不知我这理解的对不对呀。
作者:
xybu
时间:
2023-3-21 13:53
本帖最后由 xybu 于 2023-3-21 14:33 编辑
当然不会只取在最新的两个数据的平均数,如上面设置是40分钟内数据会一起影响,应该是最新数据影响更大吧,我查到一种函数“Moving average”,但是不会用啊!
如果能用Node-red解决也可以!
找到一个官方的:
统计 - 家庭助理 (home-assistant.io)
搞定,代码如下:
- platform: statistics
name: "guan_zhou_wind"
entity_id: sensor.guan_zhou
unique_id: guan_zhou_wind
state_characteristic: average_linear
max_age:
minutes: 40
复制代码
欢迎光临 『瀚思彼岸』» 智能家居技术论坛 (https://bbs.hassbian.com/)
Powered by Discuz! X3.5