-
Notifications
You must be signed in to change notification settings - Fork 176
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
Stuck with matter customization (CON-1563) #1291
Comments
I think you can setup the esp-matter sdk first and build the light example, after that, you can add other device types base on the light example. Please refer to this document: https://docs.espressif.com/projects/esp-matter/en/latest/esp32/developing.html |
I've build the light example earlier and it worked. The only things indeed is that I then need to add those things. But I don't know how. I've also tried to change the example like in the manuel. I found it also not verry clear if I wanne make a personal data model. |
If you want to use standard esp-matter data model, you can use the interface in this file:https://github.com/espressif/esp-matter/blob/main/components/esp_matter/esp_matter_endpoint.cpp, if you want to add custom data model, you can follow this guide: https://docs.espressif.com/projects/esp-matter/en/latest/esp32/developing.html#custom-cluster . If you don't know how to add driver, you can refer to this file https://github.com/espressif/esp-matter/blob/main/examples/light/main/app_driver.cpp . The motor driver can refer to this file: https://github.com/espressif/esp-matter/tree/main/examples/all_device_types_app/main/driver/fan |
Ok, I've this filled in from the matter SDK manual. ` drift = endpoint::create(node(), ENDPOINT_FLAG_NONE); // Endpoint 1 (drift) uint32_t custom_cluster_id = 0x131bfc00; uint32_t position_drift_attribute_id = 0x0001; static esp_err_t move_drift_level_callback(const CreateCommandPath &command_path, TLVReader &tlv_data, void *opaque_ptr) { uint32_t position_tilt_attribute_id = 0x0002; static esp_err_t move_tilt_level_callback(const CreateCommandPath &command_path, TLVReader &tlv_data, void *opaque_ptr) { uint32_t display_content_attribute_id = 0x0003; static esp_err_t display_content_callback(const CreateCommandPath &command_path, TLVReader &tlv_data, void *opaque_ptr) { |
Please note: For the custom endpoint, cluster, attribute, you can't handle them through Goole Home App. The Google ecosystem can only control standard matter device which defined in the matter spec. |
I mayby need to start back from the begin with the example and work from their up to my application. I read part 2.5 now 10 times even more. It is for real verry frustrating that I'm not able to fix it. I begin to read and everything I read is relative easy but it's just the problem to apply the theory in the code. This is what I get if I follow the color_temperture_lightbulb. app_main.cpp
app_driver.cpp
|
Don't make custom clusters, they take too long and you will never finish in time. Just map the existing light bulb app to control the motors and displays. Make 12 light bulb devices if you need to. That will work fine in GoogleHome. Start from the light bulb example. Make 12 bulbs instead of just one. Give them names so that you know what they do. Then modify the LED driver code to control your stepper or display. You will be able to finish that in a reasonable of time for a class. |
Well, I have also created smaller partition programs in which I programme all output separately. So it is only the implementation in the example that stops me. |
Make 12 endpoints here instead of just one https://github.com/espressif/esp-matter/blob/main/examples/light/main/app_main.cpp#L183 |
I have currently done this which might work if I also use a slider for changing the display content. Which makes the application rate higher. Do I now need to change the attributes and the app_attribute_update_cb? Because those two where not very clear to me.
|
Hello,
I'm stuck with a project for school where I need to make my own Matter device.
This device need to be able to control 2 steppermotors and 10 different display modes.
This all need to be controlled with a google home app. The teachers decided to use Matter. Because they had a few students that tried Matter before but it never worked. I would love to be proven wrong.
But this is where the shoe pinches. Namely, I thought to start from a matter example and build on that. I need the following interfaces: I2C, SPI, PWM, Matter and GPIO.
So I have everything finished separately, but I don't know where to start. Personally, I tought to start at the user guide for matter SDK, which is what I have done. The problem, though, is that I hardly understand anything they say.
The only thing I think I understood is the data model. I created one for my project.
Can somebody help me with implementing this? Does have somebody experiences with matter SDK and customize them for specific purposes?
The text was updated successfully, but these errors were encountered: