Hi nordic
I am using the nRF54L10 and Nordic Zigbee Add-on version 1.3.0
I have probably been raising questions about polling for quite some time,
but I have not received an appropriate answer. Also, for the purpose of organizing the information,
I would like to ask again about the current situation.
The main code is as follows.
void ws_zigbee_init(void)
{
init_mac_and_install_code();
ws_zigbee_print_information();
set_tx_power();
zigbee_erase_persistent_storage(false);
//zb_set_ed_timeout(ED_AGING_TIMEOUT_64MIN);
/* KRKNWK-20726 */
//zb_set_keepalive_timeout(ZB_MILLISECONDS_TO_BEACON_INTERVAL(5*60*1000));
zb_set_keepalive_mode(ED_KEEPALIVE_DISABLED);
zigbee_configure_sleepy_behavior(true);
app_clusters_attr_init();
ias_zigbee_fota_init(ota_evt_handler);
ZB_AF_REGISTER_DEVICE_CTX(&ias_zone_ctx);
ZB_ZCL_REGISTER_DEVICE_CB(zcl_device_cb);
ZB_AF_SET_IDENTIFY_NOTIFICATION_HANDLER(ZB_HA_IAS_ZONE_ENDPOINT, identify_cb);
zb_zcl_shading_system_register_cb(ZB_HA_IAS_ZONE_ENDPOINT, shading_system_general_cb);
zb_zcl_ias_zone_register_cb(ZB_HA_IAS_ZONE_ENDPOINT, send_notify_cb ,NULL);
LOG_INF("IAS Zone windows sensor Start");
/* Power off unused sections of RAM to lower device power consumption. */
if (IS_ENABLED(CONFIG_RAM_POWER_DOWN_LIBRARY)) {
power_down_unused_ram();
}
k_work_init_delayable(&delayed_work, ws_zigbee_auto_start_rejoin);
zigbee_enable();
}
This is a part of
zboss_signal_handler. case ZB_BDB_SIGNAL_DEVICE_REBOOT:
ZB_ERROR_CHECK(zigbee_default_signal_handler(bufid));
LOG_ERR("long poll %d ",dev_ctx.poll_ctrl_attr.long_poll_interval);
zb_zdo_pim_set_long_poll_interval(ZB_QUARTERECONDS_TO_MSEC(dev_ctx.poll_ctrl_attr.long_poll_interval));
ZB_TRANSCEIVER_SET_RX_ON_OFF(zb_get_rx_on_when_idle());
break;
case ZB_BDB_SIGNAL_TC_REJOIN_DONE:
ZB_ERROR_CHECK(zigbee_default_signal_handler(bufid));
LOG_ERR("long poll %d ",dev_ctx.poll_ctrl_attr.long_poll_interval);
zb_zdo_pim_set_long_poll_interval(ZB_QUARTERECONDS_TO_MSEC(dev_ctx.poll_ctrl_attr.long_poll_interval));
ZB_TRANSCEIVER_SET_RX_ON_OFF(zb_get_rx_on_when_idle());
break;
case ZB_BDB_SIGNAL_STEERING:
ZB_ERROR_CHECK(zigbee_default_signal_handler(bufid));
LOG_ERR("long poll %d ",dev_ctx.poll_ctrl_attr.long_poll_interval);
zb_zdo_pim_set_long_poll_interval(ZB_QUARTERECONDS_TO_MSEC(dev_ctx.poll_ctrl_attr.long_poll_interval));
ZB_TRANSCEIVER_SET_RX_ON_OFF(zb_get_rx_on_when_idle());
break;
dev_ctx.poll_ctrl_attr.long_poll_interval = 240;
n other words, it is 60 seconds.
However, when I look at the MAC Data Request packets in Wireshark, they appear at intervals of approximately 10.21 seconds.
If I configure the value to less than 10 seconds,
it seems to operate according to the configured interval.
However, why are the MAC Data Request packets not occurring at 60-second intervals when the Long Poll Interval is configured to 60 seconds?
