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

@uboness/homebridge-tedee

v0.2.2

Published

Homebridge plugin for Tedee locks using the local Tedee Bridge API

Readme

Homebridge Tedee

Homebridge plugin for Tedee locks using the local Tedee Bridge API only.

A single platform manages multiple Tedee bridges through one shared webhook server.

Local Development

Install dependencies with pnpm:

pnpm install

Edit .homebridge/config.json with your Tedee bridge(s) IP/host and local API token.

Run Homebridge locally:

pnpm run homebridge

Run the Homebridge UI locally:

pnpm run ui

Configuration

{
  "platform": "Tedee",
  "name": "Tedee",
  "webhook": { "port": 8088 },
  "defaults": {
    "bridge": { "port": 80, "tokenMode": "encrypted", "unlockMode": 3, "lowBatteryThreshold": 20, "refreshInterval": 600000 },
    "lock":   { "pullSpringSwitch": false, "unlockMode": 3 }
  },
  "bridges": [
    {
      "id": "main",
      "host": "192.168.1.139",
      "token": "…",
      "locks": [ { "id": 77178, "pullSpringSwitch": true } ]
    },
    {
      "id": "annex",
      "host": "192.168.1.138",
      "token": "…",
      "locks": [ { "id": 77176 } ]
    }
  ]
}
  • Each entry under bridges is one Tedee bridge, keyed by a unique, stable id.
  • defaults.bridge / defaults.lock set values inherited by every bridge / lock; per-entry settings override them.
  • webhook.host is optional — leave it unset to auto-detect the local address each bridge can reach the plugin on; set it only for unusual multi-subnet setups.

The bridge id is part of each accessory's identity and of the webhook path, so changing it re-creates that bridge's accessories in HomeKit.

Tedee Features

  • Discovers all locks paired to each configured Tedee bridge.
  • Exposes each lock as a HomeKit Lock Mechanism.
  • Adds a Battery service per lock with battery level, low battery, and charging state.
  • Adds a linked momentary Switch service for pulling the spring (per-lock, optional).
  • Runs one shared local callback server registered with every Tedee bridge.

Webhook Registration

The callback server is mandatory and managed by the plugin. It listens on webhook.port (default 8088) and receives events for every bridge at /tedee/events/<bridgeId>.

On startup, each bridge resolves the local address the Tedee bridge can reach the plugin on (or uses webhook.host when set), registers a single POST callback tagged with an internal X-Homebridge-Tedee-Instance secret header, updates it if the URL changed, and removes any duplicates. The callback is removed from the bridge on shutdown, so a bridge removed from the configuration doesn't leave an orphaned callback behind.

Migrating from 0.1.x

The multi-bridge configuration is a breaking change and accessories are re-created. A one-shot cleanup CLI removes the old callbacks left by the single-bridge version from your bridges:

npx tedee-cleanup <path-to-homebridge-config.json> [--dry-run]