A privacy-first, locally hosted smart home hub platform built on Zephyr RTOS
ZephyrHomeHub is an open-source, self-hosted home automation system that runs entirely on your local network. No cloud dependencies, no monthly fees, complete data ownership. Plug-and-play sensor nodes approach.
ZephyrHomeHub connects various IoT devices (nodes) to a central hub using lightweight, efficient protocols. The system is designed for real-time sensor monitoring, video streaming, and voice command processing - all running locally in your home.
- π Privacy-First: Everything runs locally - no data leaves your network
- β‘ Real-Time Performance: Zephyr RTOS ensures deterministic, low-latency responses
- π§ Modular Architecture: Easily add new sensor types and capabilities
- π Standards-Based: Built on CoAP and mDNS for interoperability
- π± Rich Visualization: Built-in display support for real-time monitoring
- Primary Board: STM32F746G Discovery Board
- Features: Built-in display, Ethernet, ample processing power
- Role: Central server, data aggregation, user interface
| Node Type | Board | Sensor | Purpose |
|---|---|---|---|
| Temperature/Humidity | ESP32-S3 DevKitM | BME280 | Environmental monitoring |
| Camera | ESP32-S3 XIAO | Camera module | Video streaming & capture |
| Voice Commands | B-L475E-IOT01A1 | Microphones | Voice recognition processing |
The project is structured in a hub folder for the main hub server and a nodes folder withe the app of each node. Each node app has its own README.md file.
ZephyrHomeHub/
βββ apps/
β βββ hub/ # Main hub application (STM32F7)
β β βββ src/
β β βββ boards/
β βββ nodes/ # Various node applications
β βββ wifi_based_node/ # Based network node for other purpuses
β βββ temperature_node/ # ESP32-S3 with BME280
β βββ camera_node/ # ESP32-S3 XIAO camera
β βββ voice_command_node/ # ST B-L475 voice recognition
βββ docs/ # Documentation
βββ scripts/ # Build and utility scripts
βββ west.yml # Zephyr west with Zephyr version
- Zephyr RTOS development environment
- West tool for Zephyr project management
- Hardware boards as listed above
-
Clone the repository
git clone https://github.com/your-username/ZephyrHomeHub.git cd ZephyrHomeHub -
Initialize West workspace
west init -l apps/ west update
-
Build the hub application
cd apps/hub west build -b stm32f746g_disco west flash -
Build a node application
cd apps/nodes/temperature west build -b esp32s3_devkitm west flash
Nodes automatically advertise their services using multicast DNS:
Service: _zephyrhomehub._udp.local
TXT Records: node_type, capabilities, version
Lightweight request-response protocol for efficient IoT communication:
coap://[node-ip]:5683/sensors/temperature
coap://[node-ip]:5683/camera/stream
coap://[node-ip]:5683/voice/command
The system supports both Ethernet and WiFi connectivity:
- Hub: Typically uses Ethernet for reliability
- Nodes: Use WiFi for flexible placement
- Automatic Discovery: No manual IP configuration needed
- Implement the node application in
apps/nodes/ - Define mDNS service advertisement
- Implement CoAP resources for data exposure
- Build and flash to target hardware
- Network initialization (Ethernet/WiFi)
- Temperature/humidity sensing
- Basic hub-node communication framework
- CoAP client/server communication
- mDNS service discovery
- Camera video streaming
- Voice command processing
- Web interface for remote monitoring
- Data logging and visualization
- Mobile app integration
We love contributions! Here's how you can help:
- Device Drivers: Support for new sensors and cameras
- Protocol Implementation: Enhanced CoAP features, DTLS security
- User Interfaces: Web dashboard, mobile apps
- Documentation: Tutorials, API references, hardware guides
- Testing: Automated testing, hardware validation
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Check out our Good First Issues to get started!
We're continuously expanding hardware support:
- STM32F746G Discovery
- ESP32-S3 DevKitM
- ESP32-S3 XIAO
- ST B-L475E-IOT01A1
- Raspberry Pi Pico W
- nRF5340 DK
- Other ESP32 variants
- mDNS not working: Ensure multicast is enabled on your router
- CoAP timeouts: Check firewall settings for UDP port 5683
- Build errors: Verify Zephyr environment variables are set
- π Check the documentation
- π Create an Issue
- π¬ Join our Discussions
This project is licensed under the MIT License - see the LICENSE file for details.
- Zephyr Project for the amazing RTOS foundation
- STMicroelectronics for hardware support
- Espressif for ESP32 tooling and support
- All contributors who help make this project better
Ready to get started? β Star this repo and check out our Getting Started Guide!
ZephyrHomeHub - Your home, your data, your control.