[nrf52, zigbee] Add sensor (#12187)
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com>
This commit is contained in:
1 parent
d6554702d8
commit
ada4e6d5e9
12 files changed
+471
-54
No files matched your search
@@ -138,9 +138,26 @@ void ZigbeeComponent::setup() {
|
||||
}
|
||||
|
||||
#ifdef USE_ZIGBEE_WIPE_ON_BOOT
|
||||
erase_flash_(FIXED_PARTITION_ID(ZBOSS_NVRAM));
|
||||
erase_flash_(FIXED_PARTITION_ID(ZBOSS_PRODUCT_CONFIG));
|
||||
erase_flash_(FIXED_PARTITION_ID(SETTINGS_STORAGE));
|
||||
bool wipe = true;
|
||||
#ifdef USE_ZIGBEE_WIPE_ON_BOOT_MAGIC
|
||||
// unique hash to store preferences for this component
|
||||
uint32_t hash = 88498616UL;
|
||||
uint32_t wipe_value = 0;
|
||||
auto wipe_pref = global_preferences->make_preference<uint32_t>(hash, true);
|
||||
if (wipe_pref.load(&wipe_value)) {
|
||||
wipe = wipe_value != USE_ZIGBEE_WIPE_ON_BOOT_MAGIC;
|
||||
ESP_LOGD(TAG, "Wipe value in preferences %u, in firmware %u", wipe_value, USE_ZIGBEE_WIPE_ON_BOOT_MAGIC);
|
||||
}
|
||||
#endif
|
||||
if (wipe) {
|
||||
erase_flash_(FIXED_PARTITION_ID(ZBOSS_NVRAM));
|
||||
erase_flash_(FIXED_PARTITION_ID(ZBOSS_PRODUCT_CONFIG));
|
||||
erase_flash_(FIXED_PARTITION_ID(SETTINGS_STORAGE));
|
||||
#ifdef USE_ZIGBEE_WIPE_ON_BOOT_MAGIC
|
||||
wipe_value = USE_ZIGBEE_WIPE_ON_BOOT_MAGIC;
|
||||
wipe_pref.save(&wipe_value);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
ZB_ZCL_REGISTER_DEVICE_CB(zcl_device_cb);
|
||||
@@ -152,15 +169,54 @@ void ZigbeeComponent::setup() {
|
||||
zigbee_enable();
|
||||
}
|
||||
|
||||
void ZigbeeComponent::dump_config() {
|
||||
bool wipe = false;
|
||||
static const char *role() {
|
||||
switch (zb_get_network_role()) {
|
||||
case ZB_NWK_DEVICE_TYPE_COORDINATOR:
|
||||
return "coordinator";
|
||||
case ZB_NWK_DEVICE_TYPE_ROUTER:
|
||||
return "router";
|
||||
case ZB_NWK_DEVICE_TYPE_ED:
|
||||
return "end device";
|
||||
}
|
||||
return "unknown";
|
||||
}
|
||||
|
||||
static const char *get_wipe_on_boot() {
|
||||
#ifdef USE_ZIGBEE_WIPE_ON_BOOT
|
||||
wipe = true;
|
||||
#ifdef USE_ZIGBEE_WIPE_ON_BOOT_MAGIC
|
||||
return "ONCE";
|
||||
#else
|
||||
return "YES";
|
||||
#endif
|
||||
#else
|
||||
return "NO";
|
||||
#endif
|
||||
}
|
||||
|
||||
void ZigbeeComponent::dump_config() {
|
||||
char ieee_addr_buf[IEEE_ADDR_BUF_SIZE] = {0};
|
||||
zb_ieee_addr_t addr;
|
||||
zb_get_long_address(addr);
|
||||
ieee_addr_to_str(ieee_addr_buf, sizeof(ieee_addr_buf), addr);
|
||||
zb_ext_pan_id_t extended_pan_id;
|
||||
char extended_pan_id_buf[IEEE_ADDR_BUF_SIZE] = {0};
|
||||
zb_get_extended_pan_id(extended_pan_id);
|
||||
ieee_addr_to_str(extended_pan_id_buf, sizeof(extended_pan_id_buf), extended_pan_id);
|
||||
ESP_LOGCONFIG(TAG,
|
||||
"Zigbee\n"
|
||||
" Wipe on boot: %s",
|
||||
YESNO(wipe));
|
||||
" Wipe on boot: %s\n"
|
||||
" Device is joined to the network: %s\n"
|
||||
" Current channel: %d\n"
|
||||
" Current page: %d\n"
|
||||
" Sleep threshold: %ums\n"
|
||||
" Role: %s\n"
|
||||
" Long addr: 0x%s\n"
|
||||
" Short addr: 0x%04X\n"
|
||||
" Long pan id: 0x%s\n"
|
||||
" Short pan id: 0x%04X",
|
||||
get_wipe_on_boot(), YESNO(zb_zdo_joined()), zb_get_current_channel(), zb_get_current_page(),
|
||||
zb_get_sleep_threshold(), role(), ieee_addr_buf, zb_get_short_address(), extended_pan_id_buf,
|
||||
zb_get_pan_id());
|
||||
}
|
||||
|
||||
static void send_attribute_report(zb_bufid_t bufid, zb_uint16_t cmd_id) {
|
||||
|
||||
Reference in new issue
Block a user