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-ct200-revived

v2.3.5

Published

Homebridge plugin to control Bosch CT200 smart thermostat. Maintained fork of homebridge-ct200 with Node 24 and Homebridge 2.0 support.

Readme

Homebridge CT200 Revived

Homebridge plugin for Bosch Easycontrol CT200

This is a maintained fork of homebridge-ct200 by Domas Kalinauskas, which was archived in September 2025. All credit for the original implementation goes to the original author.

What this fork fixes

  • Works on current Node.js (v20/v22/v24): the plugin now uses bosch-xmpp 2.x built on the modern, maintained @xmpp/client stack. The old node-xmpp-client stack crashed on recent Node versions with TypeError ... at encode64 and took the (child) bridge down with it (Child bridge ended (code 1)).
  • Homebridge 2.0 support.
  • No more crash loops: connection failures are retried every 30 seconds instead of exiting the process.
  • Survives connection drops: automatic reconnect is re-enabled after login and responses are routed correctly after a reconnect.
  • More stable CT200 polling: Bosch XMPP requests are serialized, unhealthy streams are rebuilt, and HomeKit reads use cached values instead of creating request spikes.
  • Controlled cache refreshes: humidity, localization, away status, target temperatures, and zone modes are refreshed on the configured interval.

Latest release

Version 2.3.5 focuses on CT200 stability: serialized Bosch XMPP requests, automatic client rebuilds for unhealthy streams, and controlled cache refreshes for HomeKit values.

See CHANGELOG.md and RELEASE_NOTES.md for details.

Migrating from homebridge-ct200

Uninstall homebridge-ct200, install homebridge-ct200-revived. Your existing config.json platform block keeps working unchanged (the platform name is still CT200). Accessories are re-created under the new plugin; if you had them assigned to rooms/automations in the Home app you may need to reassign them once.

Introduction

This homebridge plugin exposes CT200 status allowing for heater control

Note: The thermostat accessory in Home app shows a single button to change the control mode. On is the same as 'Auto' mode in the bosch EasyControl App. Off is the same as 'manual'.

Changing the temperature when set on 'Auto', only changes the setpoint until the next defined setpoint is reached.

Compatibility

While I haven't tested this for myself, the plugin apparently also works with the Buderus TC100 v2 as well as bosch radiator valves, and probably other smart thermostats that make use of boschs' EasyControl API.

Installation

To install homebridge ct200 revived:

  • Install the plugin through Homebridge Config UI X (search for ct200) or manually by:
$ sudo npm -g i homebridge-ct200-revived
  • Configure within Homebridge Config UI X or edit config.json manually e.g:
"platforms": [
    {
        "access": "ACCESS_KEY",
        "serial": "SERIAL_KEY",
        "password": "PASSWORD",
        "zones": [
            {
                "index": 1,
                "name": "NAME1"
            },
            {
                "index": 2,
                "name": "NAME2"
            }
        ],
        "platform": "CT200"
    }
]

Configuration settings

  • access is the access key (found in bosch EasyControl app)
  • serial is the serial key (found in bosch EasyControl app)
  • password is the password used to login. For each device you want to control, add a zone, where:
  • index is the zone id (from 1 to X)
  • name is what will show up in the Home app.
Optional settings
  • away if set to false, removes the Away mode switch. (default: true)
  • zoneInterval how often to query all zones (in minutes, default: 2)
  • auxInterval how often to refresh humidity and localization (in minutes, default: 5)

Troubleshooting

List of problems you might encounter and how to fix them

  • "SyntaxError ... Double-check login details!" If you encounter this error, then most likely you are using the wrong password. You need to set and use the password that is in 'Settings' -> 'Personal' -> 'Change Password', not the BOSCH ID password. More details here.

Getting help

If you need help troubleshooting, create an issue and I'll try to help you fix it.