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-hilo-challenge

v0.1.3

Published

Homebridge plugin for Hilo (Hydro-Québec) demand response challenges — exposes challenge phases as HomeKit contact sensors

Readme

homebridge-hilo-challenge

npm npm

A Homebridge plugin that exposes Hilo (Hydro-Québec) demand response challenge phases as HomeKit contact sensors.

Two sensors are created:

  • Hilo Preheat — opens during the pre-heat phase
  • Hilo Reduction — opens during the reduction (peak demand) phase

When a sensor opens, it can trigger HomeKit automations — for example, automatically disabling EV chargers during a reduction event.

Seasonal operation: The plugin only polls the Hilo API during challenge season (December 1 – March 31). Outside of that window it makes no API calls and the sensors remain inactive.

Requirements

  • A Hilo account with at least one enrolled device (thermostat or water heater)
  • The homebridge-hilo plugin already installed and working (this plugin reuses the same refresh token)
  • Homebridge v1.6.0 or later
  • Node.js v20 or later

Installation

Search for Hilo Challenge in the Homebridge UI, or install manually:

npm install -g homebridge-hilo-challenge

Configuration

Configure via the Homebridge UI, or add to your config.json:

{
  "platform": "HiloChallenge",
  "name": "Hilo Challenge",
  "refreshToken": "your-hilo-refresh-token",
  "locationId": "urn:hilo:crm:XXXXX-XXXXX:0",
  "pollInterval": 60
}

| Field | Required | Default | Description | |-------|----------|---------|-------------| | refreshToken | ✅ | — | Your Hilo refresh token — copy from your homebridge-hilo plugin config | | locationId | ❌ | auto | Your Hilo location URN. Found in homebridge-hilo logs: Subscribed to updates for location urn:hilo:crm:... | | pollInterval | ❌ | 60 | How often (in seconds) to poll during challenge season (30–300) |

Getting Your Refresh Token

  1. Open your Homebridge config.json
  2. Find the homebridge-hilo platform entry
  3. Copy the refreshToken value into this plugin's config

Finding Your Location ID

If you leave locationId blank, the plugin will attempt to auto-discover it. If auto-discovery fails, you can find your location ID in the homebridge-hilo logs — look for a line like:

Subscribed to updates for location urn:hilo:crm:12345-abcde:0

Copy that full URN into the locationId field.

How It Works

During challenge season (December–March), the plugin polls the Hilo GraphQL API every pollInterval seconds. It checks the gDState field on enrolled devices (thermostats, water heaters) to determine the current phase:

| gDState value | Sensor state | |---|---| | PRE_HEAT | Hilo Preheat opens | | ACTIVE | Hilo Reduction opens | | RECOVERY | both sensors closed | | OFF / absent | both sensors closed |

Automations

Use the Hilo Reduction sensor to automatically manage energy-intensive devices during peak demand:

  • When Hilo Reduction sensor opens → Turn off EV charger(s), electric heaters, etc.
  • When Hilo Reduction sensor closes → Turn on EV charger(s)

Pairs well with homebridge-grizzl-e for automatic EV charger control.

Issues & Support

Please open an issue on GitHub.