1 回答
- 最新
- 投票最多
- 评论最多
0
【以下的回答经过翻译处理】 嗨。虽然有可能实现,但这可能不是最好的解决方案。IoT Events没有一个很好的机制来存储N个样本的缓冲区,以计算N周期移动平均值。您可以使用setVariable
动作和非常复杂的检测模型来实现它。相反,我建议您涉及其他AWS服务来预处理原始输入,或者建议您使用其他低通滤波技术,例如[指数平滑](https://en.wikipedia.org/wiki/Exponential_smoothing)。
指数平滑法仅需要当前输入和上一平滑值,因此在IoT Events中实现起来非常容易。您还可以考虑去抖动、某种异常值拒绝或各种变体或组合。
{
“eventName”:“calculateAverage”,
“condition”:“$ input.temperatureInput.sensorData.temperature < $ variable.anomalousHigh && $ input.temperatureInput.sensorData.temperature > $ variable.anomalousLow”,
“actions”:[
{
“setVariable”:{
“variableName”:“averageTemperature”,
“value”:“((($ variable.averageTemperature *($ variable.sensorCount-1))+ $ input.temperatureInput.sensorData.temperature)/ $ variable.sensorCount)”
}
}
]
}
在这种情况下,平滑常数为1 / $ variable.sensorCount
。当然,您可以使用不同的平滑常数来调整您的过滤需求。
相关内容
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前