Monitor your Neevo propane tank levels directly in Home Assistant using the official Neevo API.
If you prefer, I have a HACS plugin available from this custom repository: https://github.com/briadelour/otodata-tank-monitor
- Real-time tank level monitoring - Track your propane tank fill percentage
- Automatic daily updates - Sensor updates every 24 hours
- Historical data - Access last reading date and tank capacity information
- Low maintenance - Set it and forget it configuration
- Home Assistant installed and running
- Neevo account with active propane tank monitoring service
- Neevo username and password (requires setup in Neevo phone app and scanning of QR code on reader to register as home owner)
Edit your secrets.yaml file (located in your Home Assistant config directory) and add your Neevo credentials:
neevo_username: your_neevo_username
neevo_password: your_neevo_passwordNote: Replace
your_neevo_usernameandyour_neevo_passwordwith your actual Neevo account credentials.
Add the following configuration to your configuration.yaml file:
rest:
# -----------------------
# Neevo Tank Sensor
# -----------------------
- resource: https://ws.otodatanetwork.com/neevoapp/v1/DataService.svc/GetAllDisplayPropaneDevices
method: GET
scan_interval: 1440
headers:
Content-Type: application/json
User-Agent: HomeAssistant
authentication: basic
username: !secret neevo_username
password: !secret neevo_password
sensor:
- name: neevotank_raw
unique_id: neevotank_raw_sensor
value_template: "{{ value_json[0].Level }}"
json_attributes_path: "$[0]"
json_attributes:
- Level
- LastReadingDate
- TankCapacityNote: If you already have a
rest:section in your configuration.yaml, add the new sensor under the existingrest:key rather than creating a duplicate.
After making these changes:
- Check your configuration is valid: Settings → System → Repair → Check Configuration
- Restart Home Assistant: Settings → System → Restart
Once configured, the sensor will be available as:
- Entity ID:
sensor.neevotank_raw - State: Current tank level percentage (0-100)
The sensor provides the following attributes:
- Level - Current tank fill percentage
- LastReadingDate - Timestamp of the last sensor reading
- TankCapacity - Total capacity of your propane tank
Add a gauge card to your dashboard to visualize the tank level:
type: gauge
entity: sensor.neevotank_raw
name: Propane Tank
min: 0
max: 100
severity:
green: 50
yellow: 25
red: 0You can create additional template sensors for better formatting:
template:
- sensor:
- name: "Propane Tank Level"
unique_id: propane_tank_level
state: "{{ states('sensor.neevotank_raw') }}"
unit_of_measurement: "%"
device_class: battery
- name: "Propane Tank Capacity"
unique_id: propane_tank_capacity
state: "{{ state_attr('sensor.neevotank_raw', 'TankCapacity') }}"
unit_of_measurement: "gal"
- name: "Propane Last Reading"
unique_id: propane_last_reading
state: "{{ state_attr('sensor.neevotank_raw', 'LastReadingDate') }}"
device_class: timestamp| Parameter | Value | Description |
|---|---|---|
scan_interval |
1440 minutes (24 hours) | How often the sensor updates |
method |
GET | HTTP method for API requests |
authentication |
basic | Uses HTTP Basic Authentication |
value_template |
{{ value_json[0].Level }} |
Extracts the first device's level |
- Verify your Neevo credentials in
secrets.yamlare correct - Check that your Neevo account is active and has tank monitoring enabled
- Review Home Assistant logs for authentication errors: Settings → System → Logs
If you have multiple tanks, the configuration pulls data from the first device ([0]). To select a different tank:
value_template: "{{ value_json[1].Level }}" # Second tank
json_attributes_path: "$[1]"- The sensor updates every 24 hours by default
- You can force an update by restarting Home Assistant
- Check the
LastReadingDateattribute to see when Neevo last received data
To update more or less frequently, modify the scan_interval value (in minutes):
scan_interval: 720 # Update every 12 hours
scan_interval: 60 # Update every hour (not recommended - may overload API)Warning: Setting scan_interval too low may result in API rate limiting.
Create an automation to notify you when the tank is low:
automation:
- alias: "Low Propane Alert"
trigger:
- platform: numeric_state
entity_id: sensor.neevotank_raw
below: 20
action:
- service: notify.mobile_app_your_phone
data:
title: "Low Propane"
message: "Propane tank is at {{ states('sensor.neevotank_raw') }}%"- Neevo Support: Contact Neevo for issues with your tank monitoring hardware or account
- Home Assistant Community: Home Assistant Forums
Found a bug or have a suggestion? Please open an issue on GitHub!
This configuration is provided as-is for personal use. Neevo and its API are property of their respective owners.
Disclaimer: This is an unofficial integration. Use at your own risk. Always maintain multiple methods of monitoring critical systems like propane levels.