繁体   English   中英

AWS IoT Shadow - 如何处理或拒绝无效的“期望”状态?

[英]AWS IoT Shadow - How to handle or reject invalid "desired" states?

AWS IoT Shadow 支持处理无效状态。 根据我对 AWS 文档的理解,当一条消息发布到/update并且它被认为无效(例如,因为它是无效的 json)时,一条错误消息将发布到/update/rejected per specification here https://docs.aws .amazon.com/iot/latest/developerguide/device-shadow-error-messages.html
这很清楚,但它只涉及一般的 state 更新失败。

问题:

如果 AWS IoT 影子 state 更新从 AWS IoT Shadow 服务的角度来看是有效的,但从设备的角度来看它不是有效的所需 state 怎么办?

例如,假设设备支持"state": {"desired": {"color": "red"}}"state": {"desired": {"color": "green"}}
如果设备不支持黑色,那么处理"state": {"desired": {"color": "black"}} 这可以通过任何默认的影子主题进行交流吗?

注意:我在这里发现了一个类似的(未回答的)问题: https://forums.aws.amazon.com/thread.jspa?threadID=300362

我最近遇到了类似的问题,并在 AWS 论坛上找到了这篇帖子:

https://repost.aws/questions/QUx_YtxvdmTFODhuuNd4D_Yw/how-to-deal-with-shadow-updates-initated-by-device-not-and-server

基本上,客户端可以清除设备影子文档的“所需”部分,以表明它已拒绝更改。 这将阻止针对该特定更改的任何更多“增量”消息。 您可以通过使用null/update发送消息来清除设备影子“所需”部分,如下所示:

清除整个所需部分:

{
    "state" : {
        "desired" : null
    }
}

清除单个字段:

{
    "state" : {
        "desired" : {
            "MyField" : null
        }
    }
}

但是,这不会通知另一端(云、移动应用程序等)他们请求的“所需”state 无效。

为此,您可以将自己的消息发布到/update/rejected ,尽管我还没有尝试过。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM