首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当表达式上的条件为真时,Orion订阅

当表达式上的条件为真时,Orion订阅
EN

Stack Overflow用户
提问于 2017-05-15 14:08:21
回答 1查看 108关注 0票数 1

我的目的是进行订阅,以便当属性值超过treshold时,来自Orion测试包的累加器服务器接收通知。如果我是正确的,这不是在NGSI v1上实现的。因此,在NGSI v2上,当我使用具有合适的服务和子服务报头的订阅有效负载时,

代码语言:javascript
复制
 {  
   "description":"mydescription",
   "subject":{  
      "entities":[  
         {  
            "id":"room1",
            "type":"room",
            "isPattern":"false"
         }
      ],
      "condition":{  
         "attrs":[  
            "temperature"
         ],
         "expression":{  
            "q":"temperature>5"
         }
      }
   },
   "notification":{  
      "http":{  
         "url":"http://myURL:1028/accumulate"
      },
      "attrs":[  

      ]
   },
   "expires":"2040-01 
        -01T14:00:00.00Z"
}

我在累加器服务器上没有收到任何通知。没有表达式,我在进行订阅时首先收到通知,而且每次更改属性值时都会收到通知。

猎户座版本: 1.7.0

我还在Context Broker上使用noCache尝试了订阅解决方案。

编辑:当我查询room1的上下文时

代码语言:javascript
复制
curl -X GET localhost:1026/v2/entities/room1 -H "Fiware-Service: myService" -H "Fiware-ServicePath: /mySubService"

这是猎户座的回复。

代码语言:javascript
复制
{  
   "id":"room1",
   "type":"room",
   "TimeInstant":{  
      "type":"ISO8601",
      "value":"2017-05-15T13:33:35.632Z",
      "metadata":{  

      }
   },
   "temperature":{  
      "type":"float",
      "value":"6",
      "metadata":{  
         "TimeInstant":{  
            "type":"ISO8601",
            "value":"2017-05-15T13:33:35.632Z"
         }
      }
   }
}
EN

回答 1

Stack Overflow用户

发布于 2017-05-16 16:12:32

请注意,您的温度是字符串("6"),而不是数字。为了使过滤器工作,它应该是一个数字,也就是说,您必须得到:

代码语言:javascript
复制
{  
..
   "temperature":{  
      "type": "float",
      "value": 6,
..
}

请注意,NGSIv1 API不允许使用字符串以外的JSON原生类型创建/更新属性(在这份报告中可以找到更详细的解释,即“本机JSON”幻灯片),如果您决定使用NGSIv1操作创建/更新温度为一个数字,那么它将被转换为string。

因此,您必须使用NGSIv2 API (它没有这种限制)来创建/更新具有数值的属性。例如,以下请求将温度值更新为(数值)值6:

代码语言:javascript
复制
PUT /v2/entities/room1/attrs/temperature

{  
  "type": "float",
  "value": 6
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43981642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档