Ядро Google Cloud iot отправляет команды на устройство с qos 0

ModifyCloudToDeviceConfig отправляет команду с qos 1. Есть ли другой способ отправки команды, кроме ModifyCloudToDeviceConfig.


person Honney Goyal    schedule 29.03.2018    source источник


Ответы (2)


Мы только что добавили новую функцию Commands в IoT Core, которая делает именно это. Он только что прошел открытую бета-версию, поэтому у вас должен быть доступ к нему сейчас. В консоли, если вы углубитесь в одно устройство, вы увидите «Отправить команду» рядом с «Обновить конфигурацию» на верхней панели. В командной строке с помощью gcloud SDK вы можете выполнить gcloud components update, а затем gcloud beta iot devices --help, чтобы увидеть команду новых команд, а в API обнаружения теперь у вас должен быть вызов SendCommandToDevice для этого. Ознакомьтесь с документацией по нему здесь.

person Gabe Weiss    schedule 12.10.2018
comment
С тех пор эта функция стала общедоступной. - person ritmatter; 25.04.2019

Согласно документации MQTT Bridge, для В конфигурациях устройства можно указать два уровня QoS:

  • QoS равно 0: публикация версии конфигурации происходит только один раз.
  • QoS равно 1: последнее обновление конфигурации повторяется до тех пор, пока устройство не подтвердит его с помощью PUBACK.

Кроме того, согласно документации на Конфигурация устройства MQTT, устройства, использующие MQTT, могут подписаться на специальную тему, в которой поступают обновления конфигурации:

/devices/{device-id}/config

После подписки мост MQTT ответит SUBACK, используя QoS, указанный для темы конфигурации (которое может быть либо 0, либо 1, как обсуждалось ранее).

Кроме того, если вы хотите вместо этого использовать HTTP Bridge , вы можете определить конфигурацию в Cloud IoT Core, как описано в документации, а затем получить ее вручную с помощью явный запрос конфигурации устройства.

Таким образом, при обновлении конфигурации устройства (что вы делаете с помощью метода modifyCloudToDeviceConfig(), хотя это можно сделать и через gcloud или Консоль), вы не можете указать уровень QoS. На этом этапе обновление будет доступно в Cloud IoT Core, но не будет применено на соответствующем устройстве. Затем, на втором этапе обновления, где вы фактически получаете и применяете обновление на устройстве, вы можете использовать MQTT (и затем указать уровень QoS для использования в разделе config) или HTTP (и вручную получать новые конфигурации всякий раз, когда ты хочешь).

person dsesto    schedule 09.04.2018