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-nee-vo-propane

v1.0.3

Published

Homebridge plugin for Otodata / Nee-Vo propane tank sensors via HomeKit Humidity Sensor and Battery services

Readme

homebridge-nee-vo-propane

A Homebridge plugin that integrates Otodata / Nee-Vo propane tank sensors into Apple HomeKit.

Monitor your propane level as a percentage, track estimated gallons remaining, and trigger automations when your tank runs low — all from the Home app.


How It Works

Otodata wireless tank sensors report propane levels to the Nee-Vo cloud. Nee-Vo provides a public share page for each tank at https://nv.otodata.com/d/<shareId>. This plugin uses a JSON endpoint inferred from that share page to retrieve tank telemetry on a configurable schedule, and exposes your tank to HomeKit using a Humidity Sensor service for the propane percentage tile, a Battery service for the low-level alert, and a custom Propane service for gallons remaining and tank capacity metadata.

Important: Nee-Vo has not published or documented this API. The endpoint used by this plugin was discovered by inspecting the network requests made by the share page. It could change or disappear without any notice. See Known Limitations.

The sensor hardware updates at most once per hour, so the plugin defaults to polling once every 24 hours to keep API load minimal while still keeping your data reasonably fresh.


Requirements

  • Homebridge v1.8.5 or later
  • Node.js v20, v22, or v24
  • An Otodata / Nee-Vo propane tank sensor
  • Your tank's share link ID from the Nee-Vo app or web portal

Finding Your Share ID

Nee-Vo provides a public share page for each tank. When you share your tank, you get a URL in this format:

https://nv.otodata.com/d/FJZvjg
                         ^^^^^^
                         this is your shareId

You can find or generate this link in the Nee-Vo app under your tank's sharing settings. The share page displays your current tank level in a browser and is the intended public-facing URL.

This plugin infers a JSON API endpoint from that same share ID:

https://nv.otodata.com/api/devices/FJZvjg

To confirm your share ID is working, visit your share page URL in a browser — you should see your tank's current level displayed. If that works, the plugin should be able to retrieve the underlying data.


Installation

From npm

npm install -g homebridge-nee-vo-propane

Then add the platform block to your config.json (see Configuration below) and restart Homebridge.

Via Homebridge UI

  1. Open the Homebridge UI
  2. Go to Plugins and search for homebridge-nee-vo-propane
  3. Click Install
  4. Configure via the plugin settings form (see Configuration below)
  5. Restart Homebridge

From Git

On your Homebridge server:

git clone <repository-url>
cd homebridge-nee-vo-propane
npm install
npm run build
sudo npm install -g .

Then add the platform block to your config.json (see Configuration below) and restart Homebridge.

To update to a newer version:

cd homebridge-nee-vo-propane
git pull
npm install
npm run build
sudo npm install -g .
sudo hb-service restart

Configuration

Homebridge UI

After installing the plugin, click the Settings button to open the configuration form. All fields include descriptions and validation.

Manual config.json

Add a platform entry to the platforms array in your Homebridge config.json:

{
  "platforms": [
    {
      "platform": "PropaneTank",
      "name": "Propane Tank",
      "shareId": "YOUR_SHARE_ID",
      "tankCapacityGallons": 500,
      "pollIntervalMinutes": 1440,
      "lowThreshold": 10,
      "apiBaseUrl": "https://nv.otodata.com/api/devices"
    }
  ]
}

Configuration Fields

| Field | Type | Required | Default | Description | |---|---|---|---|---| | platform | string | ✅ | — | Must be PropaneTank | | name | string | ✅ | — | Display name in HomeKit | | shareId | string | ✅ | — | Your Nee-Vo share token | | tankCapacityGallons | number | ✅ | — | Total tank capacity in gallons | | pollIntervalMinutes | number | — | 1440 | How often to poll the API (minimum 60) | | lowThreshold | number | — | 30 | % level that triggers the low alert | | apiBaseUrl | string | — | https://nv.otodata.com/api/devices | Base URL for the Nee-Vo JSON endpoint. Only change this if the endpoint moves |

Note: If pollIntervalMinutes is set below 60, the plugin will automatically use 60 and log a warning. The sensor hardware does not update more frequently than once per hour, so polling below 60 minutes returns stale data.


HomeKit Behavior

The tank appears in the Home app primarily as a Humidity Sensor so the room tile can display the propane percentage. It also exposes a Battery service that maps propane percentage to HomeKit's low-battery alert behavior.

| Element | Behavior | |---|---| | Room tile | Humidity Sensor shows propane level as a percentage (e.g. "69%") | | Low battery alert | Battery service triggers when propane level drops below lowThreshold | | Automations | Appears under "A sensor detects something" — trigger when level drops below threshold | | Siri | "Hey Siri, what is my propane level?" | | Gallons remaining | Exposed through a custom Propane service; visible in advanced HomeKit apps (e.g. Eve, Home+) |

Tip: In the Home app go to Automation → + → Add Automation → A sensor detects something, select Propane Tank, and trigger when the level drops below your threshold. Use "Notify when run" on the automation or a Shortcuts action to send a custom notification.


Known Limitations

  • Uses an inferred, undocumented API endpoint — Nee-Vo has not published this API. It was discovered by inspecting the network requests made by the share page at https://nv.otodata.com/d/<shareId>. Nee-Vo could change, move, or remove it at any time without notice and without breaking their own product
  • The sensor updates at most once per hour — this is a hardware constraint, not a plugin limitation
  • Gallons remaining is derived from the percentage and your configured capacity, not read directly from the sensor
  • No real-time push updates — the plugin is poll-based only

Troubleshooting

The accessory isn't appearing in HomeKit

  • Check the Homebridge logs for any errors on startup
  • Confirm your shareId is correct by visiting https://nv.otodata.com/api/devices/YOUR_SHARE_ID in a browser
  • Restart Homebridge after any config change

The level isn't updating

  • The sensor hardware updates at most once per hour — if lastRead in the API response isn't changing, the sensor may be offline or out of range
  • Check the Homebridge logs to confirm polls are running

Homebridge UI isn't showing a settings form

  • Ensure you're on Homebridge UI v4.x or later

Future Enhancements

  • Adaptive polling based on lastRead age
  • Estimated days remaining based on usage history
  • Multi-tank support
  • Historical usage tracking

License

MIT


Acknowledgements

Built on top of Homebridge and the unofficial Otodata / Nee-Vo share API.