Я разрабатываю устройство Google IoT Gateway, которое обеспечивает себя, используя введенную пользователем информацию. У меня есть получение токена OAuth, предоставление себя в качестве шлюза, а затем подготовка новых устройств и привязка их к шлюзу. Я проверил, что вся инициализация работает, поскольку я вижу шлюз и другие устройства, которые он предоставил, на консоли Google Cloud Console в IoT Core. Дочерние устройства также перечислены в списке связанных устройств в интерфейсе шлюзового устройства. См. Снимок экрана здесь для проверки:
![enter image description here](https://i.stack.imgur.com/iA9BB.png)
Однако, когда шлюз пытается опубликовать сообщение в MQTT, когда он получает телеметрию от устройства, я получаю ошибкуon 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
. Я могу убедиться, что шлюз имеет стабильное соединение с Google IoT Core. MQTT-брокер, отслеживая его соединение в журналах Stackdriver. Возможно ли, что домен долгосрочной поддержки не поддерживает шлюзы? Если так, то я не смог найти эту информацию.