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 🙏

© 2025 – Pkg Stats / Ryan Hefner

@openhomekit/homebridge-nhc2

v3.4.0

Published

Niko Home Control 2 support for Homebridge

Readme

homebridge-nhc2

Version License Downloads Node.js Package

As of October 29, 2019 Niko has published their Hobby API which allows end users to control their Niko Home Control 2 installation through the MQTT protocol. This homebridge plugin adds homekit support for a Niko Home Control 2 having the Hobby API defined as a connected service.

Supported actions include:

  • toggle light status
  • set light brightness level

Changes

You can read the complete history of changes in the CHANGELOG.

Known Issues

  1. Currently we need to set the rejectUnauthorized option to false because we are unable to verify the Niko root CA which is not ideal. Feel free to look into this.

Project Principles

This project has a few principles that have and will continue to guide its development.

  1. Dependency lean. Try to keep the required dependencies to a minimum.
  2. Simple. Using the plugin should be simple and straightforward following common conventions.
  3. Completeness This plugin is a far way from being complete, but we aim to make this plugin feature complete based on the official Niko documentation.

Contributing

Contributions are welcome, particularly bug fixes and enhancements! Refer to our Contribution Guidelines for details.

Please note that Project owners reserve the right to accept or reject any PR for any reason.

Code of Conduct

Before contributing or participating in the homebridge-nhc2 community please be sure to familiarize yourself with our project CODE OF CONDUCT. These guidelines are intended to govern interactions with and within the homebridge-nhc2 community.

Hobby API Documentation

The Hobby API encapusulated by this plugin is documented by Niko which can be found here

Warranty Disclaimer

You may use this plugin with the understanding that doing so is AT YOUR OWN RISK. No warranty, express or implied, is made with regards to the fitness or safety of this code for any purpose. If you use this plugin to query or change settings of your installation you understand that it is possible to break your installation and may require the replace of devices or intervention of professionals of which costs cannot be returned by the project team.

Installation

In order to use the plugin you must first download and install it globally.

npm install -g @openhomekit/homebridge-nhc2

You may also install directly from the GitHub source. Either download and unzip the source, or clone the repository. Run the build command and pass the -P flag to homebridge to be able to locate the plugin.

Connecting the Hobby API

Login in to mynikohomecontrol and add the Hobby API to your connected services. This will provide you with a password which in formatted as a JWT token and valid for 1 year.

Following options are available for configuring the plugin.

  • host

  • port (default to 8884)

  • clientId (default to NHC2-homebridge)

  • username (default to hobby)

  • password

Add the plugin to the platforms section in your homebridge configuration file.

  "platforms": [
    {
      "platform" : "NHC2",
      "name" : "NHC2",
      "host": "<IP_ADDRESS_OF_YOUR_CONNECTED_CONTROLLER>",
      "password": "<PASSWORD_PROVIDED_BY_MYNIKOHOMECONTROLL>"
    }
  ]

Note: The clientId should be unique to the MQTT service provided by the Connected Controller. If multiple connections with the same ClientId are running these will continuously disconnect/reconnect and may skip MQTT messages.

More Configuration Options

Verbose Logging

Another configuration option is de verbose switch. It cranks up the information that is published to the logs. This is still at an informational level and can help in detecting anomalies. To really see debugging level details, run homebridge with the -D switch.

Suppressing Accessories

Besides the required host & password and other connection-related configuraion options, the configuration also allows for suppressing accessories:

  "platforms": [
    {
      "platform" : "NHC2",
      "name" : "NHC2",
      "host": "<IP_ADDRESS_OF_YOUR_CONNECTED_CONTROLLER>",
      "password": "<PASSWORD_PROVIDED_BY_MYNIKOHOMECONTROLL>",
      "suppressedAccessories": [
          "fa33d687-9225-4f9e-b55e-013abb69b42e"
      ]
    }
  ]

This allows for not exposing certain accessories to Homebrigde (and therefore also the Home app). This feature can be useful when sharing access to the Home app with others.

Plugin Development

When working on this plugin, you'll want Homebridge to load it from your development directory instead of publishing it to npm each time.

Run this command inside your plugin project folder so your global install of Homebridge can discover it:

npm link

You can undo this using the npm unlink command.

Then start Homebridge in debug mode:

homebridge -D

This will start up Homebridge and load your in-development plugin. Note that you can also direct Homebridge to load your configuration from somewhere besides the default ~/.homebridge, for example:

homebridge -D -U ./homebridge-dev

This is very useful when you are already using your development machine to host a "real" Homebridge instance (with all your accessories) that you don't want to disturb.

Releasing a new version

To release a new version it is sufficient to bump the version number and push the changes, then create a new version on github that will create a tag for you. Github CI will see the new version and publish to NPM.

Please make sure your released version is supported by HOOBS, you can run HOOBS as a docker container for testing purposes.

docker run -p 8080:80 hoobs/hoobs