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

v0.4.3

Published

Homebridge plugin for LetPot automatic plant watering systems (ISE05/ISE06)

Readme

homebridge-letpot

verified-by-homebridge

npm npm GitHub

A Homebridge plugin for the LetPot Automatic Plant Watering System, bringing it into Apple HomeKit.

Supports the DI-2 (ISE05) and DI-3 (ISE06) models.

Features

Each device is exposed to HomeKit as a set of services:

| Service | Characteristic | Description | |---|---|---| | Valve "Pump" | Active | Enable / disable scheduled watering (pump_mode) | | | In Use | Live indicator — pump is currently running | | | Set Duration | Manual run duration in seconds | | | Remaining Duration | Countdown to end of current watering run | | Switch "Cycle Watering" | On | Enable / disable the automated cycling schedule | | Leak Sensor "Low Water" | Leak Detected | Fires when the device reports low water | | Occupancy Sensor "Watering Started" | Occupancy Detected | Briefly triggers each time the pump turns on | | Occupancy Sensor "Watering Ended" | Occupancy Detected | Briefly triggers each time the pump turns off |

The two occupancy sensors ("Watering Started" / "Watering Ended") trigger for 5 seconds on each pump transition then reset automatically. To get push notifications, long-press each tile in the Home app → settings (gear icon) → enable Allow Notifications. No Shortcuts or automations required.

The plugin uses LetPot's cloud MQTT broker for real-time push updates, so state changes in the LetPot iOS app are reflected in HomeKit immediately.

Eve and Home+ extras

Users of Eve or Home+ get three additional read-only fields on the Pump, populated from device telemetry:

| Characteristic | Description | |---|---| | Last Watered | Timestamp of the most recent pump run | | Next Watering | Timestamp of the next scheduled run | | Last Watering Reason | What triggered the last run: 0 = none, 1 = interrupted, 2 = manual, 3 = cycle, 4 = scheduled |

These use custom UUIDs and are invisible in Apple Home.

Requirements

  • Homebridge ≥ 1.8.0
  • Node.js 18, 20, 22, or 24
  • A LetPot account with at least one watering system paired

Installation

Homebridge UI (recommended)

Search for LetPot in the Homebridge UI plugin search and click Install.

Command line

npm install -g homebridge-letpot

Homebridge Docker (manual install)

If your Homebridge runs in Docker and you want to install from source:

  1. Clone and build:

    git clone https://github.com/genaardo/homebridge-letpot.git
    cd homebridge-letpot
    npm install && npm run build && npm pack
  2. Copy to your Homebridge host:

    scp homebridge-letpot-*.tgz user@host:/path/to/homebridge/volumes/homebridge/
  3. Install inside the container:

    docker exec <container> sh -c "cd /homebridge && npm install /homebridge/homebridge-letpot-*.tgz"
    docker restart <container>

Configuration

Add the platform to your Homebridge config.json, or configure it through the Homebridge UI:

{
  "platforms": [
    {
      "platform": "LetPot",
      "name": "LetPot",
      "email": "[email protected]",
      "password": "yourpassword"
    }
  ]
}

Options

| Field | Type | Required | Default | Description | |---|---|---|---|---| | platform | string | Yes | — | Must be "LetPot" | | name | string | Yes | — | Display name | | email | string | Yes | — | Your LetPot account email | | password | string | Yes | — | Your LetPot account password |

Scheduling watering via HomeKit

HomeKit has no native schedule editor for irrigation, but Home app Automations work great as a replacement and are more flexible than the LetPot app's built-in scheduler. You can add conditions (e.g. only on weekdays, only when someone is home), use different durations on different days, chain multiple actions, or trigger Shortcuts. If you set up HomeKit automations, disable the corresponding schedule in the LetPot app to avoid both firing at the same time.

Fixed duration (simplest)

  1. In the Home app, tap the Pump tile and adjust the duration slider to your desired run time (e.g. 15 minutes). This value is saved to the device.
  2. Create a time-based automation at your desired start time (e.g. 06:00) with the action: turn the Pump on.
  3. The pump runs for the configured duration and turns off automatically — no second automation needed.

Variable duration (e.g. longer on weekends)

Set the Pump duration slider to a value longer than your longest intended watering window (e.g. 60 minutes). Then create two automations per schedule:

  • On automation at 06:00 → turn Pump on
  • Off automation at 06:15 (or 06:30 on weekends, etc.) → turn Pump off

The off automation controls the actual run time; the 60-minute duration acts as a safety backstop and never triggers as long as the off automation fires first.

Automation cookbook

A few ideas for what you can do once the plugin is running. All of these use the Home app's built-in Automations tab unless noted.

Watering notifications

The "Watering Started" and "Watering Ended" occupancy sensors briefly trigger for 5 seconds each time the pump turns on or off, then reset automatically.

To enable push notifications: long-press the Watering Started tile → tap the settings icon (gear) → enable Allow Notifications. Repeat for Watering Ended. That's it — no Shortcuts or automations needed. Each sensor is independently toggleable.

Low water alert

The "Low Water" leak sensor triggers HomeKit's built-in leak notifications automatically — no automation needed. Just go to the sensor's settings in the Home app and make sure Allow Notifications is enabled.

"Water my plants" Siri shortcut

You can already say "Hey Siri, turn on Pump" and it works. For something more natural, open the Shortcuts app, create a shortcut that turns the Pump on via HomeKit, and name it "Water my plants." Siri will run it on command.

Morning watering scene

Create a scene called "Good Morning" that turns the Pump on alongside other actions (lights, coffee maker, etc.). The pump runs for its configured duration and shuts off on its own.

Vacation mode

Before leaving for a trip, run a "Leaving for a few days" shortcut or scene that:

  • Turns Cycle Watering on (so the device waters on its own schedule while you are away)
  • Optionally bumps the Pump duration to a longer value for deeper watering

Pair it with a Low Water notification so you know if the tank runs dry while you are gone.

Skip watering when it rains

If you have a weather station or rain sensor in HomeKit (e.g. Netatmo, Eve Weather, Ecowitt), you can add a condition to your watering automation:

  • Trigger: time (e.g. 06:00)
  • Condition: Rain Sensor is not active (or humidity below a threshold)
  • Action: turn Pump on

This keeps the automation but prevents watering after rainfall without any manual intervention.

Child bridge (isolation)

If Homebridge hosts other plugins and you want to isolate a crash, you can run homebridge-letpot as a Child Bridge. In the Homebridge UI, go to the plugin settings and enable Child Bridge. The plugin gets its own process — a crash or restart does not affect the rest of your accessories.

How it works

  1. On startup the plugin authenticates with the LetPot REST API (api.letpot.net) using your email and password to obtain access and refresh tokens.
  2. It fetches your device list and registers each ISE05/ISE06 watering system as a Homebridge accessory.
  3. It opens an MQTT-over-WebSocket connection to broker.letpot.net and subscribes to each device's status topic for real-time push updates.
  4. Controlling a service in HomeKit publishes a command message back over the same MQTT connection.
  5. Access tokens are refreshed every 50 minutes in the background; the MQTT client reconnects automatically on drop.

Development

npm install       # install dependencies
npm run build     # compile TypeScript → dist/
npm run watch     # watch mode
npm pack          # create distributable tarball

Acknowledgements

Protocol reverse-engineered from python-letpot by @jpelgrom, which also powers the official Home Assistant LetPot integration.

License

MIT