如何使用 MQTT 和 Google Cloud IoT Core 向注册表中的所有设备发送命令?
到目前为止,我看到的所有示例都只是将命令发送到单个设备。我是否必须在我的设备上循环并向每个设备发送消息?
提前致谢。
如何使用 MQTT 和 Google Cloud IoT Core 向注册表中的所有设备发送命令?
到目前为止,我看到的所有示例都只是将命令发送到单个设备。我是否必须在我的设备上循环并向每个设备发送消息?
提前致谢。
您需要在注册表中列出设备,然后按照您的建议在循环中调用sendCommandToDevice方法。
作为参考,它看起来像这样(在 Python 中):
command = '{ "state": "off" }'
registry_path = 'projects/{}/locations/{}/registries/{}'.format(
project_id, cloud_region, registry_id)
client = get_client(service_account_json)
devices = client.projects().locations().registries().devices(
).list(parent=registry_path).execute().get('devices', [])
for device in devices:
device_path = 'projects/{}/locations/{}/registries/{}/devices/{}'.format(
project_id, cloud_region, registry_id, device.get('id'))
config_body = {
'binaryData': base64.urlsafe_b64encode(
command.encode('utf-8')).decode('ascii')
}
client.projects().locations().registries().devices().sendCommandToDevice(
name=device_path, body=config_body).execute()