Awesome Open Source
Awesome Open Source


This script interfaces with homebridge to expose a relay to Apple's HomeKit, allowing you to integrate numerous devices into your smart home.


  • NodeMCU

  • Relay Module

  • Pin header cables

  • Micro-USB cable


  1. First, install the ArduinoJson library from the Library manager in the Arduino IDE, then follow this gist which walks you through how to flash a NodeMCU.

  2. Assuming that you already have homebridge set up, the next thing you will have to do is install homebridge-http using the command:

npm install -g homebridge-http
  1. Finally, update your config.json file following the example below, making sure to adapt it accordingly:
"accessories": [
      "accessory": "Http",
      "name": "Lights",
      "on_url": "http://relay.local/setState?type=switch&value=1",
      "off_url": "http://relay.local/setState?type=switch&value=0",
      "http_method": "GET"


NodeMCU Relay Module
D7 IN1

Available Features

As you can see from the config.json example above, the basic format of the HTTP request is the declaration of the mode type followed by the required state:


Here is a table which shows you the available queries:

Name Query Description Example Uses
Switch /setState?type=switch Will simply turn on/off the relay permanently as per the Home app. Lights, Faucets, Fans
Momentary /setState?type=momentary Will activate the relay for a brief moment, then deactivate after the amount of time specified in the script. Garages, Gates, Buzzers
Modulation /setState?type=modulation Will activate then deactivate the relay constantly for the amount of time specified in the script until turned off. Lights, Misting systems
State /status Will return the currentState in JSON form as 0 or 1 N/A
Related Awesome Lists
Top Programming Languages
Top Projects

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
C Plus Plus (236,216
Arduino (30,655
Http (30,165
Wifi (8,734
Esp8266 (4,891
Relay (4,335
Esp32 (4,029
Nodemcu (1,593
Homebridge (1,522
Arduino Ide (1,325
Homebridge Plugin (611
Getrequests (10