Technical release but some new features too
[!IMPORTANT] I messed up the CI configuration and the *.factory.bin does not include the littlefs partition, it will be fixed but for now I’ll put some instructions here for anyone starting fresh.
Make sure to also download the littlefs.bin file alongside the *.factory.bin for your chip and use the command bellow for flashing
esptool.py write_flash 0x0 <*.factory.bin> 0x3e0000 <littlefs.bin>
Been a while, huh? I've been working on this big refactoring as it was an enormous mess and i've done a lot of weird shit in the code that no longer made any sense so it's more of a technical release, though there are some new stuff. Either way, hope you'll all like it 💙.
What's Changed
- Fiy typo by @Noschvie in https://github.com/rednblkx/HomeKey-ESP32/pull/191
- Codebase refactored into individual components for separation of responsibilities
- Web interface rebuilt with a modern material design
- Fixes #179
- Fixes #188
- Fixes #198
- Implemented OTA updating through the web interface
- Implemented log viewing on the web interface (closes #162)
- Renamed HomeKey Triggers -> NFC Triggers and HomeKit Triggers -> State Triggers to better represent their purpose
- Added a "Tag Event" trigger in NFC Triggers used for regular NFC Tags, replacing the previous behavior of being treated as "Auth Failed"
- A brand new wiki available at https://rednblkx.github.io/HomeKey-ESP32/
- This should allow for a more presentable and easier to read wiki along with the help of the search functionality of the wiki
- Additionally, anyone can now easily contribute to the wiki, relevant files being located here or you can also quickly edit any page while browsing the wiki by pressing the "Edit this page on GitHub" button on the right of any page on the site.
- The naming scheme for the firmware files has been changed and it now follows this format:
{chip_model}.firmware(.factory).bin- The old merged firmware files now have the suffix "factory" to aid in better understanding their use as this file erases everything
Technical Notes
I've done an extensize refactoring of the codebase that now restructures it into 8 pillars of management to implement a separation of concerns as follows:
- ConfigManager: to handle passing configurations to other components
- HardwareManager: handling hardware actions (Simple GPIO and Pixel)
- LockManager: handling the internal state for the virtual lock that gets synced with HomeKit and Home Assistant
- NfcManager: handling all the NFC communications
- MqttManager: handling MQTT communications
- HomeKitLock: the star of the show, handling all HomeKit-related stuff
- ReaderDataManager: handling the private authentication data for HomeKey
- WebServerManager: handling the Web interface and APIs
The web interface also gets a new look using the Svelte 5 web framework and TailwindCSS + DaisyUI for the styling.
New Contributors
- @Noschvie made their first contribution in https://github.com/rednblkx/HomeKey-ESP32/pull/191
Full Changelog: https://github.com/rednblkx/HomeKey-ESP32/compare/v0.6...v0.7
EDIT Updated littlefs.bin file attachment, there's a build issue and for some reason the logs route does not load, updated file works