Процесс интервью Zigbee - xbee - PullRequest
       102

Процесс интервью Zigbee - xbee

1 голос
/ 29 февраля 2020

У меня нормально работает zigbee2mqtt / home assistant, и я хотел бы попробовать сделать свои собственные простые устройства для подключения к этой сети. Я получил плату xbee 3, и с помощью micro python для начала я смог подключиться к своей сети.

Однако «собеседование» не удалось. Xbee получает сообщение с кластером 0, профилем 260 (домашняя автоматизация) и конечной точкой 230 (команда). Не уверен, что содержит содержимое, это не строка:

{'profile': 260, 'dest_ep': 230, 'broadcast': False, 'sender_nwk': 0, 'source_ep': 1, 'payload': b'\x10\x02\x00\x05\x00\x04\x00\x07\x00', 'sender_eui64': b"\x00\x12K\x00\x18\xe2I'", 'cluster': 0}

Мой вопрос: что мне ответить, чтобы интервью прошло успешно? Я делаю только базовый датчик c, я бы хотел периодически сообщать о 1 показании веса. Я предполагаю, что мне нужно отослать что-то, говорящее, что у меня есть одна конечная точка, в каком-то кластере (не уверен, какой, я думаю, что-то в 400-х), но я не знаю, какой должен быть формат.

I Не могу найти много информации об этом (кроме как использовать такие вещи, как библиотека кластеров Zigbee, которые не python), какие-либо указатели или примеры конечных устройств, на которые я мог бы взглянуть, чтобы понять, как работает этот процесс интервью?

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

Спасибо!

РЕДАКТИРОВАТЬ: Только что нашел эту отличную страницу, которая объясняет, как все это работает. Еще нужно выяснить, какие именно биты мне понадобятся, и попробовать, но теперь я знаю, с чего начать!

1 Ответ

1 голос
/ 01 марта 2020

Это очень похоже на ZCL, и я не знаю о реализации этого протокола с открытым исходным кодом Python. Digi имеет ANSI C библиотеку с открытым исходным кодом , которая включает реализацию ZCL. Если вы можете прочитать код C, вы можете декодировать эту полезную нагрузку, чтобы увидеть, что она запрашивает. Вам также может понадобиться обработать некоторые из протоколов ZDO / ZDP (Zigbee Data Object / Device Profile) в конечной точке 0, установив ATAO = 3 (IIR C). В этой библиотеке C также есть код ZDO / ZDP. (Полное раскрытие: я написал большую часть кода в этой библиотеке, включая слой Zigbee. Но я долгое время не работал с Zigbee, поэтому мне не нравятся детали протокола.)

Моя рекомендация было бы просто жестко закодировать сгенерированные вручную ответы в максимально возможной степени. Выясните ожидаемый формат запросов и определите, что работает в качестве ответа. Если вы можете прослушать трафик 802.15.4 c или вести журнал активности шлюза zigbee2mqtt с существующим устройством, вы можете использовать его ответы в качестве отправной точки для своей реализации.

...