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-nuheat2

v1.2.6

Published

Homebridge Platform for NuHeat Signature Thermostats

Readme

homebridge-nuheat2

npm version npm downloads

Homebridge platform plugin for Nuheat Signature floor-heating thermostats.

This fork focuses on modernizing the plugin for current Homebridge releases, improving runtime stability, and preparing for Homebridge 2.0 while keeping the existing NuHeat platform configuration intact.

This project builds on the original senorshaun/homebridge-nuheat plugin and retains attribution for Shaun's original work.

Highlights

  • Automatically discovers thermostats on the authenticated Nuheat account
  • Optionally creates HomeKit switches for Nuheat group away mode
  • Supports permanent, scheduled, and timed holds
  • Uses Nuheat's OAuth-based API instead of legacy site scraping
  • Includes compatibility improvements for Homebridge 1.8+ and 2.0 betas
  • Can optionally expose a schedule switch for each thermostat
  • Allows advanced OAuth overrides for long-term API stability

Compatibility

  • Homebridge: ^1.8.0 || ^2.0.0-beta.0
  • Node.js: ^18.20.4 || ^20.18.0 || ^22 || ^24

For current Homebridge 2.0 betas, use Node 22 or 24.

Installation

Install Homebridge first:

npm install -g homebridge

Then install the plugin:

npm install -g homebridge-nuheat2

The published package name for this maintained fork is homebridge-nuheat2. The Homebridge platform name in config remains NuHeat.

Configuration

Most users should configure the plugin through Homebridge Config UI X, but the equivalent JSON looks like this:

{
  "platform": "NuHeat",
  "name": "NuHeat",
  "email": "[email protected]",
  "password": "password123",
  "devices": [{ "serialNumber": "1111111" }, { "serialNumber": "2222222" }],
  "autoPopulateAwayModeSwitches": true,
  "exposeScheduleSwitches": false,
  "holdLength": 1440,
  "refresh": 60
}

Options

  • platform: Must be NuHeat
  • name: Display name used in Homebridge logs
  • email: MyNuheat account email address
  • Email: Legacy alias still accepted for backward compatibility, but email is the preferred documented field
  • password: MyNuheat account password
  • devices: Optional list of thermostats to expose. If omitted or empty, every thermostat on the account will be discovered automatically
  • serialNumber: Thermostat serial number from MyNuheat
  • autoPopulateAwayModeSwitches: Automatically expose away-mode switches for all groups on the account
  • exposeScheduleSwitches: Optionally expose a switch per thermostat that reflects whether the thermostat is following its schedule and can be turned on to resume the schedule
  • groups: Optional allow-list of groups to expose as away-mode switches. This only affects group/away-mode accessories
  • groupName: Group name as shown in MyNuheat
  • holdLength: Hold duration in minutes
  • refresh: Poll interval in seconds, default 60
  • debug: Enables verbose logging
  • clientId: Optional advanced override for the Nuheat OAuth client ID. This is recommended once you have official Nuheat API credentials
  • clientSecret: Optional advanced override for the Nuheat OAuth client secret
  • redirectUri: Optional advanced override for the Nuheat OAuth redirect URI, default http://localhost

Hold Length Behavior

  • 0: hold until the next scheduled event
  • 1-1439: timed hold for the configured number of minutes
  • 1440: permanent hold

Device Discovery

If devices is omitted or empty, the plugin will automatically expose every thermostat on the authenticated account.

If groups is omitted and autoPopulateAwayModeSwitches is enabled, the plugin will automatically expose away-mode switches for all groups on the account.

If exposeScheduleSwitches is enabled, the plugin will also create one switch per thermostat that turns on when the thermostat is following its Nuheat schedule and can be used to resume that schedule from HomeKit.

Nuheat API Access

Nuheat's public OpenAPI documentation indicates that third-party developers should request their own API credentials:

This fork still supports the legacy built-in OAuth client settings as a fallback, but using your own clientId and clientSecret is the recommended long-term path once Nuheat issues them for your integration.

What's New In This Fork

  • Fixed the manual-mode thermostat issue where HomeKit could immediately snap back to Off
  • Hardened online-state parsing and general accessory refresh behavior
  • Delayed platform startup until Homebridge finishes restoring cached accessories
  • Improved SignalR reconnect handling
  • Added regression tests for the key thermostat behavior fixes
  • Updated package metadata and dependency overrides for a cleaner modern release
  • Published under the maintainer-owned package identity homebridge-nuheat2
  • Added Swagger-aligned account, schedule, and energy API helpers for future enhancements

Development

Run the test suite with:

npm test

Future Work

  • Validate the plugin against the official Nuheat API credentials requested for this integration.
  • Verify group and away-mode behavior against current live API responses.
  • Evaluate whether SignalR notifications can reduce polling further in real-world deployments.