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 🙏

© 2025 – Pkg Stats / Ryan Hefner

homebridge-virtual-filtermaintenance

v0.1.1

Published

A simple timer for filter replacement or cleaning schedule.

Readme

Homebridge Plugin For Virtual Filter Maintenance Timers

This plugin creates a virtual dummy device with FilterMaintenance properties, which allows you to check on the status various filters or other things which need regular replacement or cleaning, such as whole house water filters, furnace filters (if you don't have a smart thermostat with its own filter maintenance property), vent filters, or anything that requires a periodic reminder.

The filter maintenance timers can be set to any number of days, months, or years, and each filter has it's own timer duration and reset.

Unfortuanatly support for filter maintenance is poor in the Apple Home app, but the Eve app has reasonable support including display of filter status, life remaining (in percent), a reset button, and the ability to trigger automations based on both status and life percent.

With the use of additional Homebridge plugins, automations could be setup to notify the user when filters need attention.

Device Types

The plugin provides 3 types of devices, each has its own strengths and weeknesses in the different home apps.

FilterMaintenance

The basic FilterMaintenance device does not pretend to be anything else. The Apple Home app does not support this device in any way. It will display as a device but will say it is unsupported. It will not show any status information, and can not be reset.

However in the Eve app, FilterMaintenance has full functionality. The status can be displayed on the At a Glance screen and status, life and reset are displayed in the room view.

Air Purifier

This pretends to be an air purifier which doesn't do anything. In the Home app the filter status and life will be displayed in the device Accessory Details screen, however Home does not provice a reset button. Home will display a tiny warning icon in the device tile when the filter life is low.

The behaviour in the Eve app is similar to the Home app, but also includes a filter reset button. Unlike the Filter Maintenance device type, the At a Glace tile will only show if the air purifier is running (it isn't), not the status of the filter.

Button

This emulates a stateless switch with no functionality. It has similar behaviour as the air purifier in both apps, but without the clutter in your climate device summary.

Sensor Types

A sensor can optionally be included with the the device. This provides more options for automations, and enables the Apple Home app to send notifications on your phone when the filter timer expires. Sensor status can also be shown in the Security summary. Each type of sensor has slightly different behavior. Contact Sensor is generally the most usable.

Sensor Status Values

The status of the sensors does not map directly to an obvious condition for your filters. Here is a table of some status strings you may see in the various apps and what they mean for your filter.

|Dirty |Clean | |------------------|--------------| |Needed |Not Needed | |No |Yes | |Open |Closed | |Motion Detected |Not Detected | |Motion |Clear | |Occupancy Detected|Occupancy None| |Home |Away |

Configuration

  • platform: Must be "VirtualFilterMaintenance"
  • name: The display name of the plugin
  • filters: An array of filter devices
  • filter-name: The display name for your filter or device
  • id: Must be unique amongst all the filters. Can be any length, letters or numbers
  • duration: Maintenance interval in Years, Months, Days, Hours. "1y 2m 3d 4h"
  • device-type: "filter", "purifier", or "button"
  • sensor-type: "contact", "motion", or "occupancy"
{
  "platforms": [
    {
      "name": "VirtualFilterMaintenance",
      "filters": [
        {
          "filter-name": "Basic Filter",
          "id": "1",
          "duration": "3m",
          "device-type": "filter"
        },
        {
          "filter-name": "Purifier Filter",
          "id": "2",
          "duration": "1y 6m",
          "device-type": "purifier",
          "sensor-type": "contact"
        },
        {
          "filter-name": "Button Filter",
          "id": "3",
          "duration": "7d12h",
          "device-type": "button",
          "sensor-type": "occupancy"
        }
      ],
      "platform": "VirtualFilterMaintenance"
    }
  ]
}