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 🙏

© 2026 – Pkg Stats / Ryan Hefner

homebridge-nilan

v1.0.2

Published

Homebridge plugin for Nilan Compact P.

Readme

 

Nilan Homebridge Plugin

This plugin enables Apple HomeKit support for certain Nilan devices via Homebridge.

NPM Version Build and Lint

Apple Home App

Elgato Eve App

Supported Devices

Compact P

Compact P ventilation and heating system with the CTS 700 control panel (older non-touchscreen version). The implementation is based on the Modbus Registers Description document, dated 20150826.

Note that the new CTS 700 touchscreen control panel uses a different version of the communication protocol and hence needs a different implementation.

Hardware Setup

Use the built-in network cable to connect the Compact P to your home network. The unit's default IP address is 192.168.5.107. You need to make sure you can reach the Compact P from the device that is hosting the Homebridge server (e.g., your Raspberry Pi). If the Homebridge device is on the same network you have to main options.

Adjust the Device IP

Adjust the Compact P network settings via the CTS 700 control panel. First Switch to Super User mode (Settings > Change user level), then adjust the IP Address, Network mask and Network gateway to match your network configuration (using Settings > Network settings). Be sure to select a free IP address on your network that is outside of any DHCP server IP ranges:

Add Second Subnet (Advanced)

Adjust your router configuration to connect your current subnet to 192.168.1.0/24. With this you can leave the default device settings and reach 192.168.5.107 from the rest of your network.

The exact details will differ depending on your router and IP range. Here's an example with 192.168.1.0/24 as the current subnet and a MikroTik router:

ip address add interface=bridge1 address=192.168.5.1/24
ip fire fil add chain=forward src-address=192.168.1.0/24 dst-address=192.168.5.0/24 action=accept
ip fire fil add chain=forward src-address=192.168.5.0/24 dst-address=192.168.1.0/24 action=accept

Software Setup

  1. Install Homebridge by following the official wiki.
  2. Install this plugin using Homebridge Config UI X, or by running npm install -g homebridge-nilan.
  3. Add the configuration to your homebridge config.json.

Configuration

This plugin supports Homebridge Config UI X. You can use the web interface to configure all settings.

Alternatively you can enable the plugin manually in config.json. Here's an example entry in the platforms array:

"platforms": [
    {
        "devices": [
            {
                "name": "Compact P",
                "host": "192.168.5.107",
                "schedule": true
            }
        ],
        "platform": "Nilan"
    }
]

Be sure to update the host parameter to match your device (if you changed the IP).

Schedule

The schedule option should be enabled, if you have a week schedule programmed on your control unit. The option ensures that the values reported in HomeKit update when the week program changes. Otherwise HmeKit just reflects the last set user value.

Developer Notes

Setup Development Environment

This plugin requires Node.js 12 or later and a modern code editor such as VS Code. It uses TypeScript and comes with pre-configured settings for VS Code and ESLint. If you are using VS Code install these extensions:

Install Development Dependencies

Using a terminal, navigate to the project folder and run this command to install the development dependencies:

npm install

You might need to run this command with sudo.

Build Plugin

TypeScript needs to be compiled into JavaScript before it can run. The following command will compile the contents of your src directory and put the resulting code into the dist folder.

npm run build

Link to Homebridge

Run this command so your global install of Homebridge can discover the plugin in your development environment:

npm link

You can now start Homebridge, use the -D flag so you can see debug log messages in your plugin:

homebridge -D

Watch for Changes and Build Automatically

If you want to have your code compile automatically as you make changes, and restart Homebridge automatically between changes you can run:

npm run watch

This will launch an instance of Homebridge in debug mode which will restart every time you make a change to the source code. It will load the config stored in the default location under ~/.homebridge. You may need to stop other running instances of Homebridge while using this command to prevent conflicts. You can adjust the Homebridge startup command in the nodemon.json file.

Disclaimer

The plugin is based on the open Nilan Modbus protocol and only accesses user-level registers without needing any privileged access. While the plugin was extensively tested on the author's own hardware, there is no guarantees given that the it will perform without issues in other environments. Please proceed at your own risk.

This plugin, or it's author is in no way associated with Nilan A/S.

Nilan is a registered trademark of Nilan A/S.