Как удалить все устройства, зарегистрированные под шлюзом

У меня есть сервер, который выступает в качестве шлюза для устройств, которые хотели бы публиковать данные на платформе IoT, но не могут сделать это напрямую с помощью DeviceClient. Я хотел бы начать с фиксированного известного состояния при запуске сервера и быть максимально устойчивым к сбоям сервера.

Устройства могут публиковаться только тогда, когда сервер работает, поэтому я всегда должен иметь возможность начинать с одного шлюза, зарегистрированного для сервера в IoT, без устройств, связанных со шлюзом, и создавать новые устройства, когда они связываются с сервером.

Я могу удалить шлюз с помощью API deleteDevice(),

api().deleteDevice(deviceType, deviceId);

но как мне найти все устройства (идентификаторы устройств), созданные под шлюзом, чтобы удалить их с помощью кода, подобного приведенному выше? У меня общая платформа, поэтому я не могу просто удалить все устройства определенного типа.


person David Wood    schedule 26.02.2018    source источник


Ответы (1)


Существует вызов API, который получает устройства, подключенные через шлюз, указанный идентификатором {deviceId}, это тот:

https://docs.internetofthings.ibmcloud.com/apis/swagger/v0002/org-admin.html#!/Device_Configuration/get_device_types_typeId_devices_deviceId_devices

Вы можете начать оттуда. Тот же вызов API должен быть доступен в используемой вами библиотеке.

person idan    schedule 28.02.2018
comment
Я думаю, вы предлагаете использовать идентификатор типа устройства для получения устройств для шлюза, но я не могу этого сделать, поскольку несколько серверов, каждому из которых назначен другой шлюз, используют один и тот же идентификатор типа. Я бы предпочел не использовать идентификаторы разных типов для каждого экземпляра шлюза. - person David Wood; 02.03.2018
comment
идентификатор типа устройства требуется для идентификации, но удаление выполняется поверх идентификатора устройства - person idan; 05.03.2018