¿Cómo mantengo una lista activa de dispositivos ZigBee en un HAN?

1

ZigBee como estándar no cree en la conectividad directa de los dispositivos, es más una red flotante. Pero si voy a tener una red de dispositivos en una HAN (red de automatización del hogar), necesito saber si estos dispositivos aún son detectables.

Cada dispositivo tiene una tabla adyacente de dispositivos que se encuentran físicamente cerca de sí mismos. Puedo consultar esta tabla para cada dispositivo utilizando una solicitud LQI; sin embargo, dado que muchos de los dispositivos contienen dispositivos similares en sus tablas vecinas, verificaría cada dispositivo en una lista cada vez más grande. También es muy posible que algunos dispositivos no estén en esta red.

Si tuviera (digamos) 200 dispositivos en mi red, esta es una gran cantidad de solicitudes y comparaciones para hacer en un uController.

Puedo crear una lista de dispositivos cuando se unen a la red y los almacenen en eeprom, pero ¿es esta realmente la mejor idea?

Estoy trabajando con la pila Atmel Bitcloud en un AVR de 8 bits, sin embargo, estas son solicitudes estándar especificadas en las especificaciones de ZigBee.

Necesito saber esto para ver si hay algún dispositivo defectuoso en mi red.

    
pregunta Larry

1 respuesta

0

En HA, todos los dispositivos deben admitir el clúster básico. Así que 'podría' transmitir un atributo de lectura a un atributo obligatorio de clúster básico. Sin embargo, no se garantiza que esto funcione, ya que las emisiones no se reconocen a ningún nivel.

Por esta misma razón, no puede confiar en el Anuncio de dispositivos para crear su lista de dispositivos. En el pasado, he usado el administrador de seguridad, la mayoría de las pilas (lo he usado en TI zstack con zdoCBFunc [ZDO_TC_DEVICE_CBID]) ofrece una API / devolución de llamada para permitir que la aplicación sepa cuándo el Centro de confianza ha entregado una clave, si esta No sucede entonces el dispositivo no puede estar en la red. Esto significa que su lista de dispositivos creada cuando los dispositivos se unen a la red definitivamente está capturando todos los dispositivos. Después de eso, puede usar el atributo de lectura de uno de los atributos básicos obligatorios del clúster para 'hacer ping' al dispositivo para ver si todavía está en la red.

Si no puede acceder a una API del centro de confianza para saber cuándo se entrega la clave de red, debe usar ZdoMgmtLqiRequest. No debe confiar en los anuncios de dispositivos, ya que existe la posibilidad de que nunca sean escuchados (debido a varias reglas y parámetros de red en retransmisiones y también al tamaño de la red). No debe confiar en ningún mecanismo de difusión para esto, incluida la difusión de un atributo de lectura. La única forma que conozco de hacer esto es mediante la difusión de la solicitud ZdoMgmtLqiRequest, primero a ti mismo, luego a tus vecinos y luego a tus vecinos vecinos. Doloroso, pero garantizado para funcionar y si los dispositivos no responden, ya no están allí.

    
respondido por el t.c.

Lea otras preguntas en las etiquetas