Fiware perseo规则,如何获得特定时间窗口的平均值?

Fiware perseo规则,如何获得特定时间窗口的平均值?,fiware,complex-event-processing,fiware-perseo,Fiware,Complex Event Processing,Fiware Perseo,如何在perseo规则中使用时间窗口模式?我尝试了许多不同的组合,但是每次我把它们贴到perseo上,都没有一个成功。对于时间窗口的任何示例以及如何获得该时间段内任何值(例如温度)的平均值,我们将不胜感激。相信我,在问之前,我已经做了很多努力;) 我的一个工作查询如下: select *,\"temperature_range_XX-YY\" as ruleName, *, ev.temperature? as Temperature, ev.id? as Id, ev.datetime? as

如何在perseo规则中使用时间窗口模式?我尝试了许多不同的组合,但是每次我把它们贴到perseo上,都没有一个成功。对于时间窗口的任何示例以及如何获得该时间段内任何值(例如温度)的平均值,我们将不胜感激。相信我,在问之前,我已经做了很多努力;) 我的一个工作查询如下:

select *,\"temperature_range_XX-YY\" as ruleName, *, ev.temperature? as Temperature, ev.id? as Id, ev.datetime? as DateTime, ev.cid? as CID, current_timestamp as TS from pattern [every ev=iotEvent(cast(cast(temperature?,String),float)>XX or cast(cast(temperature?,String),float)<YY and type=\"sensors\")]

选择*,\“温度范围\ XX-YY\”作为规则名称,*,ev.TEMPERATION?作为温度,ev.id?作为Id,ev.datetime?作为DateTime,ev.cid?作为CID,当前_时间戳作为模式[every ev=IoEvent(cast(温度?,字符串),浮点)>XX或cast(温度?,字符串),浮点)中的TS。要获得平均值,可以在select子句中使用de
avg()
函数

以下规则适用于我:

{
“名称”:“计算平均值”,
“文本”:“选择*,平均值(cast(cast(ev.NO2?,String),float))作为mediaNO2,ev.id?作为id,\“计算平均值\”作为模式中的规则名[every ev=iotEvent(type=\“AirQualityObserved\”)。赢:时间(1分钟)按ev.id分组?”,
“行动”:{
“类型”:“更新”,
“参数”:{
“id”:“${id}”,
“类型”:“空气质量平均值”,
“属性”:[
{
“名称”:“平均值”,
值“${mediaNO2}”
}
]
}
}
}
我认为你的规则应该类似于:

“text:“select*,\“temperature\u range\u XX-YY\”作为规则名,*,avg(cast(cast(ev.temperature?,String),float))作为温度,ev.id?作为id,ev.datetime?作为datetime,ev.cid?作为cid,当前时间戳作为模式中的TS[每个ev=iotEvent(cast(cast(cast(cast(cast(temperature?,String?,String),float)>XX或cast(cast(temperature?,String),float)