Hi everyone! This is my first post in this forum. I have been reading it for some time, looking for answers as I was building my automation devices. I have settled on ESP32H2 and STM32WB55 as they have extensively documented Zigbee SDKs and are available on inexpensive breakout boards.
It seems that these systems are not very popular for DIY, so I want to share what I have built and learned, hopefully this will save some time to others.
Outdoor Roller Shade - ESP32H2
This uses H2 Supermini board sold on Aliexpress at around USD 4-5. These boards have pretty good range despite using a PCB antenna. I typically see LQI >200 at 40-50ft distance and 1 floor away.
The firmware in this repo exposes a window covering cluster and OTA upgrade cluster. There is also a quirk for better integration with ZHA.
This sensor is based on STM32WB55 board, currently only available on Aliexpress from WeAct Studio. Price is USD 7-8. This is a quality made board, featuring both HS and LS crystals and a LDO with fairly small dropout voltage, which is important for low-power applications.
This board uses PCB antenna and has a noticeably poorer range than H2. Still, with a router within 20-30ft the connection is perfectly stable.
The firmware implements a sleepy end device that wakes up 3 times a minute to read its sensors and update the server.
It exposes pressure, temperature, humidity and voltage clusters. The board piggybacks a solar night light and voltage cluster is used to monitor the battery charge level.
Looked mainly at H2 code. A lot of work my friend. I did a lot of testings on ESP32-C6 with Arduino wrapper. A lot easier they did a great job. It does a lot of what you did in at least 80% minus code. You did it the hard way. Arduino esp32 zigbee developer is really friendly and responds almost directly.
I made converter for zigbee2mqtt was another story but is worth it. Z2m rocks, just have to understand ota is a pain in the ass.
Thanks for the pointing to it! When I began work on my Zigbee controllers two years ago, Zigbee SDK was not yet in Arduino’s library. Good to know it is ready now.
Still, as I understand it idf works better for larger projects, so I hope time to learn it was not total waste.
ZHA seemed easier to start using. I thought of switching to Z2M a couple of times because ZHA did not fully support some clusters and attributes. But then I discovered that v2 quirks are really easy to use, and I can add any sensors/buttons/commands/etc so now ZHA works perfectly for me.
Thank you, that is good to know!
For me though, most time consuming is usually the hardware part of the project…