All Projects → HomeSpan → HomeSpan

HomeSpan / HomeSpan

Licence: MIT License
HomeKit Library for the Arduino-ESP32

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to HomeSpan

Irremoteesp8266
Infrared remote library for ESP8266/ESP32: send and receive infrared signals with multiple protocols. Based on: https://github.com/shirriff/Arduino-IRremote/
Stars: ✭ 1,964 (+379.02%)
Mutual labels:  home-automation, esp32, arduino-ide, arduino-library
Dsckeybusinterface
An Arduino/esp8266/esp32 library to directly interface with DSC security systems.
Stars: ✭ 202 (-50.73%)
Mutual labels:  home-automation, esp32, arduino-library, homekit
Arduino Applemidi Library
Send and receive MIDI messages over Ethernet (rtpMIDI or AppleMIDI)
Stars: ✭ 177 (-56.83%)
Mutual labels:  esp32, arduino-ide, arduino-library
Espui
A simple web user interface library for ESP32 and ESP8266
Stars: ✭ 330 (-19.51%)
Mutual labels:  esp32, arduino-ide, arduino-library
Esp32 Ble Mouse
Bluetooth LE Mouse library for the ESP32 (Arduino IDE compatible)
Stars: ✭ 180 (-56.1%)
Mutual labels:  esp32, arduino-ide, arduino-library
home
Monorepo for all home automation related development, including integrated firmware, PCBs, configuration, and bridges
Stars: ✭ 104 (-74.63%)
Mutual labels:  home-automation, esp32, homekit
Arduino Homekit Esp8266
Native Apple HomeKit accessory implementation for the ESP8266 Arduino core.
Stars: ✭ 545 (+32.93%)
Mutual labels:  esp32, arduino-library, homekit
Homepoint
Espressif ESP32 Based Smarthome screen for MQTT
Stars: ✭ 391 (-4.63%)
Mutual labels:  home-automation, esp32, homekit
AutomationShield
Arduino library and MATLAB/Simulink API for the AutomationShield Arduino expansion boards for control engineering education.
Stars: ✭ 22 (-94.63%)
Mutual labels:  arduino-ide, arduino-library
Pixie Chroma
Arduino library and documentation for Pixie Chroma displays!
Stars: ✭ 33 (-91.95%)
Mutual labels:  esp32, arduino-library
PCF8575 library
Library to use i2c digital expander with arduino, esp8266 and esp32. Can read write digital value with only 2 wire (perfect for ESP-01).
Stars: ✭ 28 (-93.17%)
Mutual labels:  esp32, arduino-library
home-assistant-opentherm-thermostat
Home Assistant OpenTherm Thermostat
Stars: ✭ 26 (-93.66%)
Mutual labels:  home-automation, esp32
arduino-ble-gadget
Create your own Do-It-Yourself BLE enabled sensor gadget on the ESP32 platform.
Stars: ✭ 31 (-92.44%)
Mutual labels:  esp32, arduino-library
homebridge-wink3
Homebridge plugin for wink.com
Stars: ✭ 53 (-87.07%)
Mutual labels:  home-automation, homekit
homify
🏡 Open-source home automation / smarthome platform running on PHP (Laravel).
Stars: ✭ 45 (-89.02%)
Mutual labels:  home-automation, homekit
telnetspy
Telnet Server For ESP8266: Cloning the serial port via Telnet. "Debugging over the air"
Stars: ✭ 41 (-90%)
Mutual labels:  esp32, arduino-library
TP Arduino DigitalRain Anim
A library that represents Digital Rain Animation on color displays that support TFT_eSPI
Stars: ✭ 80 (-80.49%)
Mutual labels:  esp32, arduino-library
gfx demo
GFX Demo for Arduino and the ESP-IDF
Stars: ✭ 63 (-84.63%)
Mutual labels:  esp32, arduino-library
issues
Issue Tracker for ESPHome
Stars: ✭ 182 (-55.61%)
Mutual labels:  home-automation, esp32
M5Stack-Air-Quality-ESPHome
ESPHome configuration for M5Stack's PM2.5 Air Quality Kit with the PMSA003 particulate matter sensor and the SHT20 temperature and humidity sensor
Stars: ✭ 19 (-95.37%)
Mutual labels:  home-automation, esp32

Welcome!

Welcome to HomeSpan - a robust and extremely easy-to-use Arduino library for creating your own ESP32-based HomeKit devices entirely within the Arduino IDE.

HomeSpan provides a microcontroller-focused implementation of Apple's HomeKit Accessory Protocol Specification Release R2 (HAP-R2) designed specifically for the Espressif ESP32 microcontroller running within the Arduino IDE. HomeSpan pairs directly to HomeKit via your home WiFi network without the need for any external bridges or components. With HomeSpan you can use the full power of the ESP32's I/O functionality to create custom control software and/or hardware to automatically operate external devices from the Home App on your iPhone, iPad, or Mac, or with Siri.

HomeSpan is fully compatible with both Versions 1 and 2 of the Arduino-ESP32 Board Manager. Under Version 1, HomeSpan can be run only on the original ESP32. Under Version 2, HomeSpan can be run on the original ESP32 as well as Espressif's ESP32-S2 and ESP32-C3 chips.

HomeSpan Highlights

  • Provides a natural, intuitive, and very easy-to-use framework
  • Utilizes a unique Service-Centric approach to creating HomeKit devices
  • Takes full advantage of the widely-popular Arduino IDE
  • 100% HAP-R2 compliance
  • 38 integrated HomeKit Services
  • Operates in either Accessory or Bridge mode
  • Supports pairing with Setup Codes or QR Codes

For the HomeSpan Developer

  • Extensive use of the Arduino Serial Monitor
    • Real-time, easy-to-understand diagnostics
    • Complete transparency to every underlying HomeKit action, data request, and data response
    • Command-line interface with a variety of info, debugging, and configuration commands
  • Built-in database validation to ensure your configuration meets all HAP requirements
  • Dedicated classes that utilize the ESP32's 16-channel PWM peripheral for easy control of:
    • LED Brightness
    • Servo Motors
  • Integrated Push Button functionality supporting single, double, and long presses
  • Integrated access to the ESP32's on-chip Remote Control peripheral for easy generation of IR and RF signals
  • Dedicated classes to control one- and two-wire addressable RGB and RGBW LEDs and LED strips
  • Extensively-commented Tutorial Sketches taking you from the very basics of HomeSpan through advanced HomeKit topics
  • Additional examples and projects showcasing real-world implementations of HomeSpan
  • A complete set of documentation explaining every aspect of the HomeSpan API

For the HomeSpan End-User

  • Embedded WiFi Access Point and Web Interface to allow end-users (non-developers) to:
    • Set up Homespan with their own home WiFi Credentials
    • Create their own HomeKit Pairing Setup Code
  • Status LED and Control Button to allow end-users to:
    • Force-unpair the device from HomeKit
    • Perform a Factory Reset
    • Launch the WiFi Access Point
  • A standalone, detailed End-User Guide

Latest Update - HomeSpan 1.5.0 (2/20/2022)

  • New integrated library to control one- and two-wire Addressable RGB and RGBW LEDs and LED strips!

    • Adds two new class:

      • Pixel() for control of one-wire RGB and RGBW LEDs and LED strips, such as this NeoPixel RGBW LED
      • Dot() for control of two-wire RGB LEDs and LED strips, such as this DotStar RGB Strip
    • See HomeSpan Pixels for full details, including a detailed tutorial sketch demonstrating different ways of using the Pixel() and Dot() classes, as well an advanced HomeSpan "HolidayLights" Project that shows how to develop custom special effects!

  • Increased the maximum number of simultaneous Controller connections from 8 to 14 (for Arduino-ESP32 version 2.0.1 and later)

    • Added new method reserveSocketConnection(uint8_t nSockets) to the global homeSpan object that allows for better management of custom connections
    • Deprecated older setMaxConnections(uint8_t nCon) method
  • Additional updates include:

    • Added new methods setDescription(const char *desc) and setUnit(const char *unit) to SpanCharacteristic. Useful when creating and working with Custom Characteristics
    • Added new method setStatusAutoOff(uint16_t duration) to the global homeSpan object. Causes the Status LED (if used) to automatically turn off after duration seconds. Very handy for devices located in bedrooms or TV rooms!
    • Added new method setPairCallback(func) to the global homeSpan object. Allows you to create custom actions whenever HomeSpan pairs or subsequently unpairs the device to the Home App
    • Added new method deleteStoredValues() to the global homeSpan object. Provides a programmatic way of deleting the value settings of all Characteristics stored in the NVS

See Releases for details on all changes and bug fixes included in this update.

HomeSpan Resources

HomeSpan includes the following documentation:

  • Getting Started with HomeSpan - setting up the software and the hardware needed to develop HomeSpan devices
  • HomeSpan API Overview - an overview of the HomeSpan API, including a step-by-step guide to developing your first HomeSpan Sketch
  • HomeSpan Tutorials - a guide to HomeSpan's tutorial-sketches
  • HomeSpan Services and Characteristics - a list of all HAP Services and Characterstics supported by HomeSpan
  • HomeSpan Accessory Categories - a list of all HAP Accessory Categories defined by HomeSpan
  • HomeSpan Command-Line Interface (CLI) - configure a HomeSpan device's WiFi Credentials, modify its HomeKit Setup Code, monitor and update its status, and access detailed, real-time device diagnostics from the Arduino IDE Serial Monitor
  • HomeSpan User Guide - turnkey instructions on how to configure an already-programmed HomeSpan device's WiFi Credentials, modify its HomeKit Setup Code, and pair the device to HomeKit. No computer needed!
  • HomeSpan API Reference - a complete guide to the HomeSpan Library API
  • HomeSpan QR Codes - create and use QR Codes for pairing HomeSpan devices
  • HomeSpan OTA - update your sketches Over-the-Air directly from the Arduino IDE without a serial connection
  • HomeSpan PWM - integrated control of standard LEDs and Servo Motors using the ESP32's on-chip PWM peripheral
  • HomeSpan RFControl - easy generation of RF and IR Remote Control signals using the ESP32's on-chip RMT peripheral
  • HomeSpan Pixels - integrated control of addressable one- and two-wire RGB and RGBW LEDs and LED strips
  • HomeSpan Television Services - how to use HomeKit's undocumented Television Services and Characteristics
  • HomeSpan Projects - real-world applications of the HomeSpan Library
  • HomeSpan FAQ - answers to frequently-asked questions

Note that all documentation is version-controlled and tied to each branch. The master branch generally points to the latest release. The dev branch, when available, will contain code under active development.

External Resources

In addition to HomeSpan resources, developers who are new to HomeKit programming should download Apple's HomeKit Accessory Protocol Specification, Release R2 (HAP-R2). The download is free, but Apple requires you to register your Apple ID for access to the document.

You do not need to read the entire document. The whole point of HomeSpan is that it implements all the required HAP operations under the hood so you can focus on just programming whatever logic is needed to control your real-world appliances (lights, fans, RF remote controls, etc.) with the device. However, you will find Chapters 8 and 9 of the HAP guide to be an invaluable reference as it lists and describes all of the Services and Characteristics implemented in HomeSpan, many of which you will routinely utilize in your own HomeSpan sketches.


Feedback or Questions?

Please consider adding to the HomeSpan Discussion Board, or email me directly at [email protected].

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].