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

v0.1.2

Published

Homebridge plugin for Harvia Sauna (Xenio WiFi) via MyHarvia API

Downloads

28

Readme

homebridge-harvia

Homebridge plugin for Harvia Sauna (Xenio WiFi) via the MyHarvia cloud API.

Ported from the Home Assistant integration by Ruben Harms.

Tested with: Harvia Xenio WiFi (CX001WIFI) and Harvia Cilindro PC90XE. Should work with any controller compatible with the MyHarvia app.


Requirements

  • Node.js ≥ 18
  • Homebridge ≥ 1.6.0
  • Harvia Xenio WiFi module (CX001WIFI)
  • MyHarvia app account

Installation

Via Homebridge UI (recommended)

  1. Go to the Plugins tab in Homebridge UI
  2. Search for homebridge-harvia
  3. Click Install

Via terminal

sudo npm install -g homebridge-harvia

Configuration

Add to your config.json under platforms, or configure via the Homebridge UI settings form:

{
  "platform": "HarviaSauna",
  "name": "Harvia Sauna",
  "username": "[email protected]",
  "password": "yourpassword",
  "pollingInterval": 60,
  "enableThermostat": true,
  "enableLight": true,
  "enableFan": true,
  "enableSteamer": false,
  "enableDoorSensor": true
}

| Field | Required | Default | Description | |---|---|---|---| | username | ✅ | — | MyHarvia app email address | | password | ✅ | — | MyHarvia app password | | pollingInterval | ❌ | 60 | Seconds between fallback polls (min 30) | | enableThermostat | ❌ | true | Expose heater as HomeKit HeaterCooler | | enableLight | ❌ | true | Expose light as HomeKit Switch | | enableFan | ❌ | true | Expose fan as HomeKit Switch | | enableSteamer | ❌ | false | Expose steamer as HomeKit Switch | | enableDoorSensor | ❌ | false | Expose door safety circuit as Contact Sensor |


Exposed Accessories

| Accessory | HomeKit Type | Enabled by default | |---|---|---| | Thermostat | HeaterCooler | ✅ | | Power | Switch | ✅ Always on | | Light | Switch | ✅ | | Fan | Switch | ✅ | | Steamer | Switch | ❌ | | Door Sensor | Contact Sensor | ✅ |

The Power switch is always enabled as it is the core function of the plugin. All others can be toggled via the Homebridge UI settings or config.json.


How It Works

  1. Endpoint discovery — fetches AppSync URLs at startup from prod.myharvia-cloud.net rather than hardcoding them, so the plugin survives backend changes
  2. Authentication — Cognito SRP auth using the same user pool as the MyHarvia mobile app
  3. Real-time updates — 4 AppSync WebSocket subscriptions (device state + sensor data × org receiver + user receiver)
  4. Polling fallback — HTTP polling every pollingInterval seconds if WebSocket drops
  5. Token refresh — automatic Cognito token renewal before expiry

Known Limitations

  • Uses the unofficial, undocumented MyHarvia API — may break if Harvia changes their backend
  • Steamer control is disabled by default — enable only if your heater supports it
  • Temperature is always in °C from the API — HomeKit converts to your region's units automatically

Troubleshooting

Accessories show "No Response" Check Homebridge logs for authentication or WebSocket errors. Restart Homebridge — the plugin reconnects automatically.

Wrong device names The plugin uses the display name from your MyHarvia account. If names are showing as UUIDs, check that your sauna has a name set in the MyHarvia app.

Authentication failed Verify credentials match the MyHarvia app login, not the Harvia website.


Credits

API reverse-engineering by Ruben Harms.

This plugin is not affiliated with or endorsed by Harvia.