Как я могу найти свои конечные устройства в моей сети zigbee с помощью скрипта Python?

Я пытаюсь обнаружить все устройства в моей сети zigbee через программируемую плату XBee с помощью скрипта Python. Для этого я использую:

xnet = xbee.get_network()
xnet.start_discovery_process()
while xnet.is_discovery_running():
    time.sleep(0.5)
devices = xnet.get_devices()

проблема в том, что он находит только маршрутизаторы и координатор, но не находит ни одного конечного устройства. Есть ли способ получить ВСЕ устройства в сети?

Спасибо


person Pablovi96    schedule 30.07.2020    source источник
comment
Каков цикл сна для конечных устройств? Можно ли запустить процесс обнаружения дольше, чем время по умолчанию, чтобы позволить этим конечным устройствам проснуться и ответить? За кулисами он выполняет ATND для обнаружения узлов, поэтому вы можете прочитать документацию XBee по этой функции.   -  person tomlogic    schedule 31.07.2020
comment
Я пытался запустить процесс обнаружения дольше, но это не сработало. Я подумал, что, возможно, устройства не отображаются, потому что устройство, на котором я выполняю процесс обнаружения, является маршрутизатором, а не координатором. Как я мог попросить координатора с маршрутизатора сделать обнаружение сети?   -  person Pablovi96    schedule 28.08.2020
comment
Обнаружение маршрутизатора или координатора должно быть идентичным. Вам нужно увеличить ATNT на устройстве, выполняющем обнаружение, возможно, до его максимального значения 0xFF (25,5 секунд), и убедиться, что цикл сна конечного устройства достаточно короткий, чтобы ответить.   -  person tomlogic    schedule 31.08.2020
comment
Отвечает ли это на ваш вопрос? Координатор XBee3 не может найти End_Device во время обнаружения сети   -  person tomlogic    schedule 31.08.2020
comment
Я сделал это (увеличил ATND на устройстве до максимального значения), и цикл сна устройства составляет 12 секунд, но это не сработало. Я уверен, что конечное устройство находится в сети, потому что, когда я использую XCTU, оно появляется там, но когда я использую библиотеку python, функция get_network() не появляется.   -  person Pablovi96    schedule 04.09.2020
comment
(Я предполагаю, что вы имели в виду увеличение ATNT.) Есть ли у XCTU журнал, в котором будут показаны команды, которые он отправляет? Это может помочь. Вы также можете попробовать значительно снизить цикл сна конечного устройства, просто чтобы заставить работать обнаружение узлов, а затем попробовать настроить параметры сна, чтобы определить, что работает, а что нет.   -  person tomlogic    schedule 05.09.2020