Retour au classement

maximkulkin/esp-homekit

C

Apple HomeKit accessory server library for ESP-OPEN-RTOS

esp8266homekit
Croissance des étoiles
Étoiles
1.2k
Forks
166
Croissance hebdomadaire
Issues
29
5001k
déc. 2017oct. 2020sept. 2023juil. 2026
README

esp-homekit

Apple HomeKit accessory server library for ESP-OPEN-RTOS.

See esp-homekit-demo for examples.

Building for ESP-IDF 4.x

In ESP-IDF >= 4.0 there is a SPI flash write protection that checks if area written to is inside writable parition. Haven't figured out yet how esp-homekit can modify parition table automatically, so for the time being you need to disable that check in menuconfig: go to Component config -> SPI Flash driver -> Write to dangerous flash regions and set it to "Allowed".

Building for ESP-IDF >= 5.0

You need to add a custom partition of type data and subtype "homekit" and at least 4KB (0x1000) in size for HomeKit data storage. Put this into partitions.csv file in your project:

# ESP-IDF Partition Table
# Name,   Type, SubType, Offset,  Size, Flags
nvs,      data, nvs,     0x9000,  0x5000,
phy_init, data, phy,     0xe000,  0x1000,
homekit,  data, homekit, 0xf000,  0x1000,
factory,  app,  factory, 0x10000, 1M,

Enable custom partitions in project configuration (sdkconfig):

CONFIG_PARTITION_TABLE_CUSTOM=y
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"

QR code pairing

You can use a QR code to pair with accessories. To enable that feature, you need to configure accessory to use static password and set some setup ID:

homekit_server_config_t config = {
    .accessories = accessories,
    .password = "123-45-678",
    .setupId="1QJ8",
};

The last piece of information you need is accessory category code. You can find it in mDNS announcement in accessory logs

mDNS announcement: Name=Sample LED-1692md=MyLEDpv=1.0id=16:92:CE:D4:EE:7Ac#=1s#=1ff=0sf=1ci=5 Port=5556 TTL=4500

(notice "ci=5" <- this is accessory category code)

Or just find value of category enum you set in main accessory:

  HOMEKIT_ACCESSORY(.id=1, .category=homekit_accessory_category_lightbulb, .services=(homekit_service_t*[]){

(notice "homekit_accessory_category_lightbulb" <- this is accessory category code)

Then you need to generate QR code using supplied script:

tools/gen_qrcode 5 123-45-678 1QJ8 qrcode.png

QR code example

Dépôts similaires
arendst/Tasmota

Alternative firmware for ESP8266 and ESP32 based devices with easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP, Serial or KNX. Full documentation at

CGNU General Public License v3.0tasmotafirmware
tasmota.github.io/docs
24.6k5.1k
wled/WLED

Control WS2812B and many more types of digital RGB LEDs with an ESP32 over WiFi!

C++European Union Public License 1.2lightesp8266
kno.wled.ge
18.4k4.3k
Aircoookie/WLED

Control WS2812B and many more types of digital RGB LEDs with an ESP8266 or ESP32 over WiFi!

C++lightesp8266
kno.wled.ge
15.6k3.4k
SpacehuhnTech/esp8266_deauther

Affordable WiFi hacking platform for testing and learning

COtherwifiarduino
deauther.com
14.9k2.8k
justcallmekoko/ESP32Marauder

A suite of WiFi/Bluetooth offensive and defensive tools for the ESP32

C++esp32arduino
11.6k1.4k
esphome/esphome

ESPHome is a system to control your ESP32, ESP8266, BK72xx, RP2040 by simple yet powerful configuration files and control them remotely through Home Automation systems.

C++Otherhome-automationiot
esphome.io
11.4k5.5k
platformio/platformio-core

Your Gateway to Embedded Software Development Excellence :alien:

PythonPyPIApache License 2.0iotembedded
platformio.org
9.4k897
nodemcu/nodemcu-firmware

Lua based interactive firmware for ESP8266, ESP8285 and ESP32

CMIT Licensenodemculua
nodemcu.readthedocs.io
7.9k3.1k
tzapu/WiFiManager

ESP8266 WiFi Connection manager with web captive portal

C++MIT Licenseesp8266configuration-portal
tzapu.com/esp8266-wifi-connection-manager-library-arduino-ide/
7.2k2.1k
bblanchon/ArduinoJson

📟 JSON library for Arduino and embedded C++. Simple and efficient.

C++MIT Licensearduinoc-plus-plus
arduinojson.org
7.2k1.2k
martin-ger/esp_wifi_repeater

A full functional WiFi NAT Router (and now also a WiFi Repeater)

CMIT Licenseesp8266nat
5.2k981
blinker-iot/blinker-library

An IoT Solution,Blinker library for embedded hardware. Works with Arduino R4, ESP32.

C++MIT Licensearduinoesp8266
diandeng.tech
5.2k236