У нас есть несколько устройств (rpi2), подключенных к ядру IoT с помощью нашей собственной "прошивки", которая использует Python и клиент Paho-mqtt. Наши действия по воспроизведению ошибки:
- Вход в Google Cloud
- Установка устройства на уровень ведения журнала отладки.
- Попытка отправить команду с помощью веб-сайта Google IoT (например, удаленно обновление прошивки или просто что-либо другое)
- Наблюдайте немедленные сообщения об ошибках (два случая ниже) с панели управления Google.
- Наблюдайте журналы на устройстве; нет записи о контакте от GCP.
И два случая:
Сообщение не может быть отправлено, потому что устройство не подключено Это верно и это неправда, потому что мы видим, что наше устройство время от времени отключается без особой причины. У нас есть механизм обновления токенов JWT, и он работает нормально, но иногда GCP просто ... отключает устройство!
Не удалось отправить команду, поскольку устройство не подписано на MQTT подстановочный знак топи c. Это не так, все устройства подписаны (но если они не подключены, то, возможно, они не подписаны ...)
Вот вещи, которые мы уже проверили: 1. JWT обновляются на 10 минут быстрее, чем один час (срок действия установлен на 3600, но мы обновляем sh каждые 3000 секунд) 2. Явно устанавливаем MQTTv311 в качестве протокола для разговора в Python Paho-mqtt клиент 3. Реализован журнал on_log () обработчик. 4. Реализовал PINGREQ в качестве базовой документации IoT. 5. Проверено соединение inte rnet устройств, и все нормально.
Вот несколько журналов:
- С устройства:
[2020-04-05 21:20:58,624] root - INFO - Trying to set date and time to: 2020-04-05 21:20:58.624278
[2020-04-05 21:20:59,239] root - INFO - Starting collecting device state
[2020-04-05 21:20:59,256] root - INFO - Connecting to the cloud
[2020-04-05 21:20:59,262] root - INFO - Device client_id is 'projects/XXX/locations/us-central1/registries/iot-registry/devices/XXX-000003'
[2020-04-05 21:20:59,549] root - INFO - Starting pusher service
[2020-04-05 21:21:00,050] root - INFO - on_connect: Connection Accepted.
[2020-04-05 21:21:00,051] root - INFO - Subscribing to /devices/XXX-000003/commands/#
[2020-04-05 21:22:04,827] root - INFO - Since 2020-04-05T21:20:59.549934, pusher sent: 469 messages, received confirmation for 469 messages, recorded 0 errors
[2020-04-05 21:23:07,426] root - INFO - Since 2020-04-05T21:22:04.828064, pusher sent: 6 messages, received confirmation for 6 messages, recorded 0 errors
[2020-04-05 21:24:09,815] root - INFO - Since 2020-04-05T21:23:07.427720, pusher sent: 6 messages, received confirmation for 6 messages, recorded 0 errors
[2020-04-05 21:25:12,036] root - INFO - Since 2020-04-05T21:24:09.816221, pusher sent: 6 messages, received confirmation for 6 messages, recorded 0 errors
[2020-04-05 21:26:14,099] root - INFO - Since 2020-04-05T21:25:12.037507, pusher sent: 6 messages, received confirmation for 6 messages, recorded 0 errors
[2020-04-05 21:27:16,052] root - INFO - Since 2020-04-05T21:26:14.100430, pusher sent: 6 messages, received confirmation for 6 messages, recorded 0 errors
[2020-04-05 21:28:17,807] root - INFO - Since 2020-04-05T21:27:16.053253, pusher sent: 6 messages, received confirmation for 6 messages, recorded 0 errors
[2020-04-05 21:29:19,416] root - INFO - Since 2020-04-05T21:28:17.808075, pusher sent: 6 messages, received confirmation for 6 messages, recorded 0 errors
Из GCP:
Журналы GCP