我正在尝试让AWS IoT规则触发我的操作。但文档很差。出于某种原因,文档认为我将拥有嵌套级别= 1的json有效负载。 我的JSON有效负载示例:
"state": {
"reported": {
"movement": "yes"
}
}
}
我在规则中使用查询
SELECT * FROM '$aws/things/thing-name/shadow/update/accepted' WHERE state.reported.movement="yes"
文档,我正在使用:http://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-where.html
有关于扁平JSON对象的信息,我确实尝试使用state.reported.movement,reported.movement,只是运动,看起来没有一个工作
答案 0 :(得分:0)
好的,回答我的问题是:AWS IoT支持WHERE语句中的嵌套属性。出于某种原因,当我创建规则时,它没有工作。也许SNS主题在传递消息方面有一些延迟。
我的状态,来到AWS IoT接受的主题看起来像那样:
{
"state": {
"reported": {
"system": "armed",
"movement": "yes"
}
},
"metadata": {
"reported": {
"system": {
"timestamp": 1509207282
},
"movement": {
"timestamp": 1509207282
}
}
},
"version": 618,
"timestamp": 1509207282,
"clientToken": "xxxxxxxx"
}
使用以下查询查询JSON我是
SELECT * FROM '$aws/things/myThing/shadow/update/accepted' WHERE state.reported.movement="yes" and state.reported.system="armed"