【发布时间】:2017-05-29 11:26:47
【问题描述】:
我正在尝试创建订阅以通知我某些传感器值的变化。
curl broker.waziup.io/v2/subscriptions -s -S --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Fiware-Service:watersense' --header 'Fiware-ServicePath:/#' -d @- <<EOF
{
"description": "Send XXX when YYY",
"subject": {
"entities": [
{
"id": "WS_UPPA_Sensor2",
"type": "SensingDevice"
}
],
"condition": {
"attrs": [
"SM1"
],
"expression": {
"q": "SM1>400"
}
}
},
"notification": {
"httpCustom": {
"url": "https://api.plivo.com/v1/Account/MAMDA5ZDJIMDM1NZVMZD/Message/",
"headers": {
"Content-type": "application/json",
"Authorization": "Basic XXX"
},
"method": "POST",
"payload": "{ %22src%22: %2200393806412092%22, %22dst%22: %2200393806412093%22, %22text%22: %22WaterSense: Field is too dry. \${id} humidity value is \${SM1} %22}"
},
"attrs": [
"SM1"
]
},
"expires": "2040-05-24T20:00:00.000Z",
"throttling": 1
}
EOF
第一个问题,ServicePath 在订阅中的作用是什么?
似乎在检索与该订阅相关的实体时使用它。所以/# 是有效的。是否正确(我在文档中找不到)?
其次,假设您要基于多个实体属性的值创建订阅。如果这些实体属性具有相同的名称(通常是这种情况),您如何引用它们?你能做这样的事情吗:
"q": "Sensor1.SM1>100, Sensor2.SM1>100"
payload 也有类似的东西?
【问题讨论】:
-
我已经回答了第一个问题。对于第二个问题,我需要澄清一下。您的意思是 不同 实体中具有 same 名称的属性?那是对的吗?谢谢!
-
我认为他可以使用
idPattern之类的东西,就像此链接中所述:https://stackoverflow.com/questions/43230064/fiware-orion-subscribe-to-all-entities。或者,也许只是将所有感兴趣的实体放在订阅结构中的id字段中。 @fgalan,这样做的正确方法是什么,在订阅结构中指定许多实体 ID? -
@fgalan 是在不同实体中具有相同名称的属性。
-
@Dalton 我知道如何在
entities字段中放置多个实体。但是如何在q表达式字段和payload字段中区分它们是否具有相同的属性名称? -
我认为在您的
entities字段中,您会为您提供所有感兴趣的实体;在expression字段中,您将输入您的正常表达式。
标签: notifications fiware-orion broker