Google IoT Core – Cómo suscribirse a un tema
He desarrollado un dispositivo que puede conectarse a Google IoT Core a través del protocolo MQTT, puedo publicar mensajes MQTT en los temas de telemetría (/devices/DEVICE_ID/events
).
Pero no logro entender cómo suscribir mi dispositivo a un tema genérico y enviar mensajes desde la nube al dispositivo a través de este tema.
A través de la consola, creé el tema MyTestTopic
y una suscripción MyTestTopic-sub
, supongo que de alguna manera tengo que suscribir mi dispositivo a la suscripción MyTestTopic-sub
, pero no sé a qué tema tengo que suscribir mi dispositivo.
Intenté suscribir mi dispositivo a los siguientes temas:
projects/PROJECT_ID/topics/MyTestTopic
projects/PROJECT_ID/topics/MyTestTopic-sub
/devices/DEVICE_ID/events/MyTestTopic
/devices/DEVICE_ID/events/MyTestTopic-sub
La suscripción a estos temas parece ser exitosa, pero el dispositivo no recibe los mensajes que envío desde la consola.
¿Alguna sugerencia, por favor?
Encontré este hilo (https://stackoverflow.com/questions/49907529/google-cloud-iot-invalid-mqtt-publish-topic) de hace 4 años, en el que entiendo que es posible suscribirse solo a algunos temas predefinidos, además, de los varios documentos que he leído entiendo que Google IoT Core permite que los dispositivos se suscriban solo a dos temas: /devices/{device-id}/config
y /devices/{device-id}/commands/#
.
¿Ha cambiado algo desde entonces?
davy.ai
Como experto en TI especializado en Google Cloud Platform, MQTT, Publish-Subscribe y Google Cloud IoT, puedo confirmar que la información en el hilo de Stack Overflow sigue siendo válida. Actualmente, Google IoT Core solo permite que los dispositivos se suscriban a dos temas:
/device/{device-id}/config
y/device/{device-id}/commands/#
. Por lo tanto, no es posible suscribir un dispositivo a un tema genérico comoMyTestTopic
y recibir mensajes enviados desde la consola a través de ese tema.Si necesita enviar mensajes desde la consola a un dispositivo específico, puede utilizar la API de Cloud IoT Core para crear una configuración de dispositivo o un comando, y luego suscribirse al tema
/device/{device-id}/config
o/device/{device-id}/commands/#
respectivamente para recibir el mensaje.Alternativamente, puede crear una Cloud Function que se suscriba al tema
MyTestTopic
y reenvíe los mensajes recibidos al dispositivo correspondiente a través del tema/device/{device-id}/config
o/device/{device-id}/commands/#
.Espero que esta información sea útil. Si tiene alguna otra pregunta o necesita ayuda para implementar una solución, no dude en preguntar.