Skip to content

Verification Request: homebridge-hilo-challenge #996

@justinjsp

Description

@justinjsp

Basic Details

Plugin Name: homebridge-hilo-challenge

Link To GitHub Repo: https://github.com/justinjsp/homebridge-hilo-challenge

Verification Requirements

General

The plugin does not offer the same nor less functionality than that of any existing verified plugin.
🟢 Yes — the existing verified plugin homebridge-hilo integrates Hilo thermostats and devices as HomeKit accessories. This plugin serves a completely different purpose: it detects active Hilo demand response challenge phases and exposes them as HomeKit contact sensors, enabling automations to respond to peak demand events. The existing plugin does not expose challenge phase state.

Environment

The plugin successfully installs and does not start unless it is configured.
🟢 Yes — the plugin requires a refreshToken field. Without it, the Azure B2C token refresh will fail and no accessories will be registered.

The plugin does not require the user to run Homebridge in a TTY or with non-standard startup parameters, even for initial configuration.
🟢 Yes

Codebase

The plugin does not contain any analytics or calls that enable you to track the user.
🟢 Yes — the only outbound calls are to Hilo's Azure B2C auth endpoint (connexion.hiloenergie.com) for token refresh, and the Hilo GraphQL API (platform.hiloenergie.com) for challenge phase detection.

If the plugin needs to write files to disk (cache, keys, etc.), it stores them inside the Homebridge storage directory.
🟢 Yes — the plugin does not write any files to disk.

The plugin does not throw unhandled exceptions, the plugin must catch and log its own errors.
🟢 Yes — all API calls are wrapped in try/catch. Poll failures are logged as errors and the plugin continues running on the next interval.

More Information

This plugin exposes two HomeKit contact sensors:

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

It uses the Hilo GraphQL API to query the gDState field on enrolled devices (thermostats, water heaters). A value of ACTIVE indicates reduction phase; PRE_HEAT indicates preheat.

Seasonal operation: The plugin skips all API calls from April 1 to November 30, since Hilo demand response challenges only occur December through March. Polling resumes automatically each December.

The primary use case is pairing with homebridge-grizzl-e (or other outlet-type plugins) to automatically disable energy-intensive devices during reduction events via HomeKit automations.

npm: https://www.npmjs.com/package/homebridge-hilo-challenge

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions