-
Notifications
You must be signed in to change notification settings - Fork 7.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support of Arduino Matter library #7432
Comments
Why does this need to be part of the core? It can be handled in a 3rd party library. |
Hello @Humancell, thanks for opening this feature Request. I'm adding this to next major milestone 3.0.0 and we will evaluate it. |
Hello, Thank you for considering this! @lbernstone I can understand your question, but I see this no differently from all of the other libraries that are already a part of core. We already have Bluetooth, HTTP, DNS, Webserver, NetBIOS, RainMaker and many more. Just as many of these are built on the esp-protocols, this - it seems - would be built on https://github.com/espressif/esp-matter . It is a protocol layer provided by Espressif in the IDF, and besides the technical reasons I believe by exposing it to Arduino developers it could assist the ESP32 in becoming an even more powerful platform for the development of Matter controllers and devices. |
You can try library I have created few days ago https://github.com/jakubdybczak/esp32-arduino-matter |
Hello,
I did see this library, but from my understanding you have not made this 100% open source, which is a problem for us. We can not use any closed source code in our projects. If I am incorrect, and this really is 100% open source then we could take a look. |
@Humancell |
We will consider this request for next releases in 2023... please be patient. |
I have done an initial effort to build Matter and Arduino as Component. |
Hi all Is there any progress for supporting Matter to the Arduino core? |
@HamzaHajeir - We are currently working to release OpenThread as an Arduino Library. This shall be done later this month. |
About Matter Library implementation for Arduino Core 3.0.x:
|
Glad to hear that's coming support of Matter in the Arduino core. I have just some questions and comments:
With thanks, |
@HamzaHajeir - Thanks for the comments.
Not as part of the tools that ESP32 Arduino would provide.
Commissioning will always be done on-network. Therefore, On-Network Commissioning method will be included.
Yes, correct.
We may consider it for future feature. At first, we'll focus on the Matter 1.0 device types as described above. |
@SuGlider Nice, that explains all, I was mixing between commissioning discovery and commissioning process, seems two different operations. However, it seems that all Factory Data Providers would be 'custom' in Arduino, correct? |
Arduino will set the Matter Device as a Testing unit using a VIDs allocated by the CSA for testing purposes. Commissioning will happen as defined in the description from https://developers.home.google.com/matter/primer/commissioning Discovery may be done using BLE and/or WiFi AP, as described here: https://developers.home.google.com/matter/primer/commissionable-and-operational-discovery |
This is a long term development process. The main goal of the current effort is to allow users to build Matter Accessories using an ESP32 Arduino Matter Library (to be created). In such case, it will use the native Matter WiFi control layer and the native Matter Thread control layer as the first approach. Currently I'm working on:
I would say that making Arduino WiFi Library and Arduino Matter Library compatible with each other is not in the priority list of the current project. But it can be achieved in the long term.
I'll post an example using Arduino + Matter as IDF Component based on Arduino Core 3.0.5 and IDF 5.1. I think I may have it done by the end of the next week. |
Undefined reference implies that some sources are not included in the build. I remember I had this one just recently, I just enabled something within WiFi component through esp-idf menuconfig, then it compiles. Per ESP-Matter and WiFi library coexistence, I believe it's possible through telling Matter that WiFi is controlled by Application. And, here the source shows not reacting to calls (and wifi events) if so: https://github.com/project-chip/connectedhomeip/blob/master/src/platform/ESP32/ConnectivityManagerImpl_WiFi.cpp [Search for kWiFiStationMode_ApplicationControlled]. I believe that the designers of CHIP just considers this range of use cases, where clients implement their own wifi management code. Consider a product which was in market before adopting Matter and yet have its own wifi management, should the manufacturer deliberately use CHIP wifi management? Nope. |
Follow your hint I was find the config that make Arduino could not build, it is CONFIG_ESP_WIFI_SOFTAP_SUPPORT=n, I enable it then the code can build. Now let play with Wifi part. |
Correct. |
Some correction by considering that |
@SuGlider The PR has a ugly side effect. It causes mass of redefine warnings with pioarduino / Platformio.
EDIT: Probably fixed with espressif/esp32-arduino-lib-builder#217 |
Yes, espressif/esp32-arduino-lib-builder#217 will fix PIO adding |
Thank @HamzaHajeir for the information! I see that, when both Therefore, maybe, we can override Something to dig out. |
To my understanding, we don't need to override the No_WiFi implementation. we just keep CONFIG_ENABLE_WIFI_STATION defined, and CONFIG_ENABLE_WIFI_AP if needed to activate AP. But telling Matter to not touch WiFi with 'ApplicationControlled' concept. That way the application should be responsible to manage WiFi (+WiFiAP) machine state by itself. Considering some issues as WiFi AP SSID should comply to Matter's standard, for an example. Therefore we have something like WiFiManager library. But however I don't know what Arduino WiFi library intersect with that matter, is it something as just managing automatic reconnection? We might consider relying on CHIP's implementation of WiFi management, at least as an available option... |
This integration with Arduino WiFi Library will be left for the long run. As a first approach, the Arduino Matter Library will use CHIP and ESP_Matter as it is now, meaning that ESP_Matter will manage WiFi/Ethernet/Thread directly through ESP-IDF calls. I also need to understand the implication of using Arduino WiFi Lib instead of CHIP WiFi Manager regarding Network Provisioning and Matter Fabric Commissioning processes. |
Initial PR for Arduino Matter Library is posted in PR #10467 |
#10467 is merged and Matter Library will be released into Arduino Core 3.1.0-RC2 or into initial release of Core 3.1.0. Next step is the implementation of more Endpoint profiles as in the list:
|
Related area
Arduino Library
Hardware specification
All Boards
Is your feature request related to a problem?
The Matter specification has been released, and there has been IDF support for quite some time. At one level is would be good to see examples of using these APIs from the Arduino environment. At another level it would be great if there was a higher level Arduino library created that leveraged these APIs and provided examples for both implementing and controlling a Matter device.
Describe the solution you'd like
It would be great if there was a higher level Arduino library created that leveraged the IDF Matter APIs and provided examples for both implementing and controlling a Matter device.
Describe alternatives you've considered
There are some other people outside of this project starting to experiment with this, but they are not fully open source nor sponsored by Espressif.
Additional context
For the Espressif platform to dominate in the market for Matter devices it could be engaging the Arduino developers better.
I have checked existing list of Feature requests and the Contribution Guide
The text was updated successfully, but these errors were encountered: