Run esp-zigbee-sdk example in PlatformIO

I would like to run the following example using PlatformIO esp-zigbee-sdk/examples/esp_zigbee_HA_sample/HA_on_off_switch at main · espressif/esp-zigbee-sdk · GitHub

I’m trying to understand how this should work. From ducking around how to add IDF components I found multiple references to this bit of documentation: Espressif IoT Development Framework — PlatformIO latest documentation

However, that seems to be about locally splitting up your code into components, rather than installing dependencies as appears to be the case with a idf_component.yml file.

Should I just manually check them out in the components folder and add them that way, or is there a way to use the idf_component.yml method?

Any other tricky things I’m going to run into when trying to run this example? There are some bits about idf.py menuconfig and sdkconfig.defaults and such.

It turns out that just putting idf_component.yml in your src directory tries to install the components. However, I get the following error

Processing 3 dependencies:
[1/3] espressif/esp-zboss-lib (1.2.1)
[2/3] espressif/esp-zigbee-lib (1.2.1)
[3/3] idf (5.1.2)
-- Configuring incomplete, errors occurred!
See also "/home/pepijn/Documents/PlatformIO/Projects/floracle/.pio/build/esp32-c6-devkitc-1/CMakeFiles/CMakeOutput.log".

fatal: not a git repository (or any of the parent directories): .git
CMake Error at /home/pepijn/.platformio/packages/framework-espidf/tools/cmake/component.cmake:250 (message):
  ERROR: 2 problems were found in the manifest file
  /home/pepijn/Documents/PlatformIO/Projects/floracle/managed_components/espressif__esp-zboss-lib/idf_component.yml:


  Invalid manifest format

  Unknown keys: repository_info

  

  SUGGESTION: This component may be using a newer version of the component
  manager.

  You can try to update the component manager by running:

      /home/pepijn/.platformio/penv/.espidf-5.1.2/bin/python -m pip install --upgrade idf-component-manager

  

Call Stack (most recent call first):
  /home/pepijn/.platformio/packages/framework-espidf/tools/cmake/build.cmake:574 (__component_get_requirements)
  /home/pepijn/.platformio/packages/framework-espidf/tools/cmake/project.cmake:547 (idf_build_process)
  CMakeLists.txt:3 (project)

I tried the suggestion but it doesn’t seem to do anything.

I’m running into this as well,

I’ve narrowed it down to platformio forcefully reinstalling version 1.2.3

Installing collected packages: idf-component-manager
  Attempting uninstall: idf-component-manager
    Found existing installation: idf-component-manager 2.0.1
    Uninstalling idf-component-manager-2.0.1:
      Successfully uninstalled idf-component-manager-2.0.1
Successfully installed idf-component-manager-1.2.3
Reading CMake configuration...

It then errors out, because the wrong version is used again. (the suggestion installs an update)

Not sure how to fix this. I think platformio needs to update some stuff on their end to be able to use the newer version

If anyone comes looking for a solution

inside platform-espressif32/builder/frameworks/espidf.py at e9dbab3109bb301f0f33b7a65ec46059b644e131 · platformio/platform-espressif32 · GitHub

it lists the dependency for idf-component-manager. If you change the version it will install that on platformio run

However as shown in the github link the current version should be at 1.5.2, which supports the key repository_info in my experience

running pio pkg update should fix the issue therefore