A bridge that connects Apple HomeKit to MQTT, enabling Siri and HomeKit app control of MQTT-based smart home devices.
homekit2mqtt is an open-source bridge that connects Apple's HomeKit smart home platform to devices using the MQTT communication protocol. It solves the problem of integrating non-HomeKit-certified, MQTT-based IoT devices—like DIY sensors, lights, or cameras—into the Apple Home app, allowing them to be controlled via Siri and other HomeKit interfaces.
DIY smart home enthusiasts, home automation tinkerers, and developers who have MQTT-based devices and want to integrate them into Apple's HomeKit ecosystem without proprietary hubs.
Developers choose homekit2mqtt because it provides a flexible, open-source way to bring virtually any MQTT device into HomeKit, avoiding vendor lock-in and leveraging the extensive mqtt-smarthome ecosystem for a unified smart home setup.
HomeKit to MQTT bridge 🏡📱
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports over 30 HomeKit service types, from basic switches to complex cameras with RTSP streaming, as detailed in the README's exhaustive list.
Offers both a JSON file for programmatic setup and a built-in web UI on port 51888 for visual management, catering to different user preferences.
Leverages the mqtt-smarthome architecture, enabling seamless connection with a wide range of MQTT-based DIY and commercial devices without vendor lock-in.
Shows active development with CI/CD badges, code style enforcement (XO), and npm updates, ensuring ongoing compatibility and community support.
The README explicitly warns about potential breaking changes in updates, like in version 0.9.4, which can force users to delete persistence files and re-pair accessories.
Setting up device mappings requires deep understanding of both MQTT topic structures and HomeKit characteristics, with a detailed JSON schema that is error-prone for novices.
Only officially supports Debian, Ubuntu, Raspbian, or macOS, excluding users on Windows or other Linux distributions without additional troubleshooting.
Default JSON parsing relies rigidly on the 'val' attribute per mqtt-smarthome, and configurable options are only planned for future releases, limiting flexibility.