Skip to content

frizzy/node-red-contrib-homekit

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

node-red-contrib-homekit

Node-RED nodes to simulate Apple HomeKit devices.

Intro

Prerequisites

These nodes are based on the extremely awesome HAP-NodeJS -Project which uses an implementation of mdns to provide Bonjour / Avahi capability. Please refer to the HAP-NodeJS Wiki and to mdns for install instructions, if you get stuck on the following.

Install

For Debian / Ubuntu you need to install the following in order to support Bonjour / Avahi

    sudo apt-get install libavahi-compat-libdnssd-dev

Then run the following command in your Node-RED user directory - typically ~/.node-red

    npm install node-red-contrib-homekit

Docker

If you have a beautiful solution to run this in Docker, please share :)

Related Issue: #8

Nodes

Accessory

The Accessory node is a configuration node, specifying the device that iOS sees.

  • Pin Code: Specify the Pin for the pairing process.
  • Port: If you are behind a Firewall, you may want to specify a port. Otherwise leave empty.
  • Manufacturer, Model, Serial Number: Can be anything you want.
  • Name: If you intend to simulate a rocket, then why don't you call it Rocket.

Bridged Accessories are not supported at the moment.

Service

The Service nodes add functionality to your Accessories. You can assign multiple Services to one Accessory.

  • Accessory: What Accessory this Service is for.
  • Service: Choose the type of Service from the list.
  • Name: optional

Input Messages

Input messages can be used to update any Characteristic that the selected Service provides. Simply pass the values-to-update as msg.payload object.

Example: to signal that an Outlet is turned on and in use, send the following payload

{
    "On": 1,
    "OutletInUse": 1
}

Hint: to find out what Characteristics you can address, just send {"foo":"bar"} and watch the debug tab ;)

Output Messages

Output messages are in the same format as input messages. They are emitted from the node when it receives Characteristics updates from a paired iOS device.

Supported Types

The following is a list of Services that are currently supported. If you encounter problems with any of them please file an Issue.

  • Air Quality Sensor
  • Battery Service
  • Camera Control
  • Camera RTP Stream Management
  • Carbon Dioxide Sensor
  • Carbon Monoxide Sensor
  • Contact Sensor
  • Door
  • Doorbell
  • Fan
  • Garage Door Opener
  • Humidity Sensor
  • Leak Sensor
  • Light Sensor
  • Lightbulb
  • Lock Management
  • Lock Mechanism
  • Microphone
  • Motion Sensor
  • Occupancy Sensor
  • Outlet
  • Relay
  • Security System
  • Smoke Sensor
  • Speaker
  • Stateful Programmable Switch
  • Stateless Programmable Switch
  • Switch
  • Temperature Sensor
  • Thermostat
  • Time Information
  • Window
  • Window Covering

Context

Context info can be provided as part of the input message and will be available in the output message as hap.context.

Example:

{
    "On": 1,
    "Context": "set_from_mqtt_topic"
}

About

Node-RED nodes to simulate Apple HomeKit devices.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • HTML 56.4%
  • JavaScript 43.6%