HomeSpanUI is an easy-to-use WebUI running on your ESP32 controller. It is based on the famous HomeSpan library which makes it possible to create your own ESP32-based HomeKit devices.
You can install HomeSpanUI on nearly every ESP32 controller and access the UI with a simple web browser. A few clicks and you can add own devices and pair them with HomeKit.
1️⃣ Upload HomeSpanUI to your ESP32
2️⃣ Configure your device on the web interface
3️⃣ Wire the device hardware to the ESP32
4️⃣ Pair the controller with HomeKit
The following hardware is required:
- ESP32 (WROOM, LOLIN Lite, LOLIN S3 etc.)
For advanced information read Hardware documentation
This sketch is for following development environment
Arduino IDE 2.0.0 or higher
Required "Boards Manager" for Arduino IDE
ESP32 by Espressif Systems - https://github.com/espressif/arduino-esp32
from Boards Manager URL: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Required "Libraries" for Arduino IDE
HomeSpan - https://github.com/HomeSpan/HomeSpan
BH1750 support - https://github.com/claws/BH1750
OneWire support - https://github.com/PaulStoffregen/OneWire
DS18B20 support - https://github.com/milesburton/Arduino-Temperature-Control-Library
DHT support - https://github.com/adafruit/DHT-sensor-library
MQTT support - https://github.com/knolleary/pubsubclient
For advanced information read Dependencies documentation
Setup WiFi-Connection in "setup.h":
const char* wlan_ssid = ""; // Wifi SSID, the device will try to connect
const char* wlan_pwd = ""; // Wifi PASSWORD, the device will try to connect
For advanced information read WiFi documentation
After the controller has connected to your WiFi you can access the web interface typing the IP-address into your web-browser.
Now you can setup the devices you want to use with your controller
At least pair HomeSpanUI with your HomeKit with the help of the qr-code published on the webinterface.
For advanced information read HomeKit pairing documentation
HomeSpanUI supports following modes:
* DEVICE - one device
* BRIDGE - up to 8 devices
The following devices/hardware will be supported:
Lights
* LED (dimmable)
* LED RGB
* 8x8 Matrix - MAX7219 (up to three different combinations)
Relais
* Outlet
Sensors
* Contact
* Light - BH1750
* Light - TEMT6000
* Motion - HC-SR501
* Motion - SW420
* Smoke - MQ-2
* Temperature - DS18B20
* Temperature & Humidity - DHT11
* Temperature & Humidity - DHT22
Other
* Button
* Doorbell
* Security System - Armed Contact and Trigger Contact
* Security System - Contact for every state in HomeKit
For advanced information read Devices documentation
The web interface features an easy controller setup for the usage of multiple esp32 homekit controllers.
The devices can be added and configured in an easy way. The web interface shows the wiring of the hardware parts of your homekit device.
The web interface is fully dynamic and shows you the state of each device in nearly the same way the HomeKit app does.
The web interface is able to switch devices even without the Apple Home App.
HomeSpanUI logs the last 20 activities on the controller. Every action can be send via MQTT.
For advanced information read MQTT Log documentation
This project is just beginning, so there are still a few to-dos
* not every device has its icon
* some parts of the code could be more lightweight to save flash
Actual development on this project:
* Garage door device
* Leak device
* Device sources from MODBUS, MQTT and REST APIs