请教传感器数值滑动平均算法如何写?

有一个温度传感器是通过mqtt发布的数值每5秒发布一个数据,hass中看到的历史曲线都是上下的毛刺不平滑,想在nodered中处理比如:依顺序存放N个采样数据比如1分钟计算12个数值的平均,每采进一个新数据,就将最早采集的那个数据丢掉,而后求包括新数据在内的N个数据的算术平均值,这样新的平均值就平滑多了。搜索了一圈好像还没有看到案例可以学习的,感谢大佬的回复!新年快乐~

没用过NR,但是这个数据处理放到HA中也可以吧?HA自带的filter,就是用来平滑传感器数据的,其自带包括滑动平均的多种处理算法。

感谢,查了ha的文档请帮忙看看这样理解对不对。

  • platform: statistics
    name: ‘湿度平均值’ #名称
    entity_id: sensor.humidity #传感器id
    sampling_size: 15 #取最近15个值的平均
    precision: 1 #保留1位小数

这样默认输出就是平均值吗?
在开发者工具中看到这个新建的实体,其中有一个参数是mean?不用特意的加yaml配置文件中?

nr 建个流变量数组,收到数据,先数组.shifr()删第一个元素,然后push新增收到的数据,

数组有累加方法,执行后除数组下标就是了,也可以用数组排序方法,取中位值

我都说了是filter了,你弄个statistics是要闹哪样…………