npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

homebridge-indigo

v0.3.11

Published

Indigo plugin for homebridge: https://github.com/nfarina/homebridge

Downloads

24

Readme

homebridge-indigo

Homebridge platform plugin for the Indigo home automation server

Supports the following Indigo device types:

  • Lights and Switches (dimmable and non-dimmable, represented as HomeKit lightbulbs)
  • Outlets (represented as HomeKit lightbulbs)
  • Thermostats (represented as HomeKit thermostats)
  • Ceiling Fans (represented as HomeKit fans)
  • Actions (optional, represented as HomeKit switches)

Installation

  1. Install homebridge using: npm install -g homebridge
  2. Install this plugin using: npm install -g homebridge-indigo
  3. Update your configuration file. See sampleconfig.json in this repository for a sample.

More details can be found in this discussion thread.

Configuration

Configuration sample:

   "platforms": [
       {
           "platform": "Indigo",
           "name": "My Indigo Server",
           "protocol": "http",
           "host": "127.0.0.1",
           "port": "8176",
           "path": "",
           "username": "myusername",
           "password": "mypassword",
           "includeActions": true,
           "includeIds": [ "12345", "67890" ],
           "excludeIds": [ "98765", "43210" ],
           "treatAsSwitchIds": [ "13579", "24680" ],
           "treatAsLockIds": [ "112233", "445566" ],
           "treatAsDoorIds": [ "224466", "664422" ],
           "treatAsGarageDoorIds": [ "223344", "556677" ],
           "treatAsMotionSensorIds": [ "336699" ],
           "treatAsContactSensorIds": [ "446688" ],
           "treatAsWindowIds": [ "123123", "456456" ],
           "treatAsWindowCoveringIds": [ "345345", "678678" ],
           "invertOnOffIds": [ "234234", "567567" ],
           "thermostatsInCelsius": false,
           "accessoryNamePrefix": "",
           "listenPort": 8177
       }
   ]

Fields:

  • "platform": Must always be "Indigo" (required)
  • "name": Can be anything (required)
  • "protocol": "http" or "https" (optional, defaults to "http" if not specified)
  • "host": Hostname or IP Address of your Indigo web server (required)
  • "port": Port number of your Indigo web server (optional, defaults to "8176" if not specified)
  • "path": The path to the root of your Indigo web server (optional, defaults to "" if not specified, only needed if you have a proxy in front of your Indigo web server)
  • "username": Username to log into Indigo web server, if applicable (optional)
  • "password": Password to log into Indigo web server, if applicable (optional)
  • "includeActions": If true, creates HomeKit switches for your actions (optional, defaults to false)
  • "includeIds": Array of Indigo IDs to include (optional - if provided, only these Indigo IDs will map to HomeKit devices)
  • "excludeIds": Array of Indigo IDs to exclude (optional - if provided, these Indigo IDs will not be mapped to HomeKit devices)
  • "treatAsSwitchIds": Array of Indigo IDs to treat as switches (instead of lightbulbs) - devices must support on/off to qualify
  • "treatAsLockIds": Array of Indigo IDs to treat as locks (instead of lightbulbs) - devices must support on/off to qualify (on = locked)
  • "treatAsDoorIds": Array of Indigo IDs to treat as doors (instead of lightbulbs) - devices must support on/off to qualify (on = open)
  • "treatAsGarageDoorIds": Array of Indigo IDs to treat as garage door openers (instead of lightbulbs) - devices must support on/off to qualify (on = open)
  • "treatAsMotionSensorIds": Array of Indigo IDs to treat as motion sensors - devices must support on/off to qualify (on = triggered)
  • "treatAsContactSensorIds": Array of Indigo IDs to treat as contact sensors - devices must support on/off to qualify (on = contact detected)
  • "treatAsWindowIds": Array of Indigo IDs to treat as windows (instead of lightbulbs) - devices must support on/off to qualify (on = open)
  • "treatAsWindowCoveringIds": Array of Indigo IDs to treat as window coverings (instead of lightbulbs) - devices must support on/off to qualify (on = open)
  • "invertOnOffIds": Array of Indigo IDs where on and off are inverted in meaning (e.g. if a lock, on = unlocked and off = locked)
  • "thermostatsInCelsius": If true, thermostats in Indigo are reporting temperatures in celsius (optional, defaults to false)
  • "accessoryNamePrefix": Prefix all accessory names with this string (optional, useful for testing)
  • "listenPort": homebridge-indigo will listen on this port for device state updates from Indigo (requires compatible Indigo plugin) (optional, defaults to not listening)

Note that if you specify both "includeIds" and "excludeIds", then only the IDs that are in "includeIds" and missing from "excludeIds" will be mapped to HomeKit devices. Typically, you would only specify one or the other, not both of these lists. If you just want to expose everything, then omit both of these keys from your configuration.

Also note that any Indigo devices or actions that have Remote Display unchecked in Indigo will NOT be exposed to HomeKit, because Indigo excludes those devices from its RESTful API.

HomeKit limits bridges to 100 devices, so if you have more than 99 Indigo devices (and action groups, if you're including them), then you will want to use includeIds or excludeIds to get your list down to under 100. homebridge-indigo will only include up to the first 99 accessories discovered.