我正在开发一个谷歌IoT网关设备,使用用户输入的信息提供自己。我让它获取OAuth令牌,将自身配置为网关,然后配置新设备并将其绑定到网关。我已经验证了所有的配置都在工作,因为我可以看到它在IoT核心下的谷歌云控制台上配置的网关和其他设备。子设备也列在网关设备UI上的绑定设备下。查看此处的屏幕截图以进行验证:
但是,当网关尝试向MQTT发布消息时,当它从设备获取遥测时,我在MQTT错误订阅上得到一个错误,如下所示:
{"error_type":"GATEWAY_DEVICE_NOT_FOUND","description":"The specified device with ID 'SN0013A200418E9E27' is not attached to the gateway.","mqtt_message_info":{"message_type":"PUBLISH","topic":"/devices/SN0013A200418E9E27/ev
ents"}}
此错误似乎不正确,因为设备确实绑定到了网关。
网关尝试将此消息发布到主题:
/devices/SN0013A200418E9E27/events
发布到该主题的消息是:
{"data":{"transmission_count":203,"battery_level":3.29406,"type":24,"node_id":0,"rssi":29,"acc_x":-46,"acc_y":0,"acc_z":93,"temp_change":0}}
网关的授权方法是仅关联,因此据我所知,它可以仅根据网关凭据的身份验证来报告子设备的遥测。
我应该注意的另一件事是网关是一个嵌入式设备,因此它使用的是长期的MQTT域mqtt.2030.ltsapis.goog
。我可以通过监控IoT日志上的连接来验证网关与Google Stackdriver Core MQTT broker的连接是否稳定。长期支持域是否可能不支持网关设备?如果是这样的话,我找不到这些信息。
发布于 2019-10-04 01:05:05
我很抱歉。我不知道我是如何错过这个文档的:https://cloud.google.com/iot/docs/how-tos/gateways/mqtt-bridge?hl=th#gateway_messages
为了将设备附加到网关,必须将消息从网关发布到IoT核心代理。在我这样做之后,一切都运行得很完美。
https://stackoverflow.com/questions/58223626
复制相似问题