Hey everyone! I’d like to share my AmeriGas Propane integration for Home Assistant. This integration lets you monitor your AmeriGas propane account directly in HA, including tank levels, delivery tracking, cost calculations, and full Energy Dashboard integration.
What It Does
This integration connects to your MyAmeriGas account and creates 37 sensors that track:
- Tank level and gallons remaining
- Delivery history - dates, amounts, and automatic pre-delivery capture
- Usage tracking - daily average, consumption since delivery, days until empty
- Cost monitoring - per gallon, total spend, estimated refill cost
- Energy Dashboard - track propane consumption alongside electricity and gas
- Account info - payments, balance, autopay status, service address
Screenshots
yaml
# Example Dashboard Card
type: entities
title: Propane Tank
entities:
- entity: sensor.amerigas_tank_level
name: Tank Level
- entity: sensor.amerigas_tank_gallons_remaining
name: Gallons Remaining
- entity: sensor.amerigas_used_since_last_delivery
name: Used Since Delivery
- entity: sensor.amerigas_daily_average_usage
name: Daily Average
- entity: sensor.amerigas_days_until_empty
name: Days Until Empty
- entity: sensor.amerigas_estimated_refill_cost
name: Est. Refill Cost
- entity: sensor.amerigas_last_delivery_date
name: Last Delivery
Latest Updates
v3.0.7 (Current) - Critical Race Condition Fix
Fixed a major bug where sensors weren’t updating when you manually set the pre-delivery level. Previously only the “Used Since Delivery” sensor would recalculate - now ALL dependent sensors update immediately.
Fixed sensors:
Daily Average Usage - no longer shows 0.0000 gal/day
Cost Since Last Delivery - uses correct usage values
Energy Consumption - calculates properly
Days Until Empty - works for ANY usage rate (even vacation homes!)
Before v3.0.7:
yaml
sensor.propane_daily_average_usage: 0.0000 gal/day ✗
sensor.propane_cost_since_last_delivery: $0.00 ✗
sensor.propane_days_until_empty: 9999 days ✗
After v3.0.7:
yaml
sensor.propane_daily_average_usage: 4.69 gal/day ✓
sensor.propane_cost_since_last_delivery: $526.50 ✓
sensor.propane_days_until_empty: 58 days ✓
v3.0.5 - Automatic Pre-Delivery Capture
The integration now automatically captures your exact tank level before each delivery, giving you 100% accurate consumption tracking for ANY delivery size (no more estimation!).
How it works:
- AmeriGas delivers propane
- Integration detects the delivery date changed
- Automatically calculates:
Pre-delivery = Current - Delivery Amount - All sensors immediately use this exact value
Example: 28 gallon delivery that used to show 0 gallons used now correctly shows 120 gallons used!
Installation
Via HACS (Easiest)
- HACS → Integrations → ⋮ → Custom repositories
- Add:
https://github.com/skircr115/ha-amerigas - Category: Integration
- Click “Download”
- Restart Home Assistant
- Settings → Devices & Services → Add Integration → “AmeriGas”
- Enter your MyAmeriGas credentials
Manual Installation
- Download from GitHub releases
- Copy
custom_components/amerigasto your config directory - Restart HA
- Add integration via UI
Coming in v3.0.8
I have pending PRs for:
- Brand icons/logos - proper AmeriGas branding in the UI
- HACS default integration - will be directly visible in HACS storefront (no custom repo needed!)
This will make installation even easier for new users.
From Pyscript to Native Integration
This project started as a pyscript-based solution (v2.x) but I completely rewrote it as a native custom component (v3.0+) to provide:
Why I moved away from pyscript:
Required Pyscript dependency
Manual YAML configuration
Manual file updates
Limited error handling
No UI configuration
Benefits of native integration:
Zero dependencies
UI-based configuration
HACS one-click updates
Better error handling and diagnostics
Proper state restoration
Native coordinator pattern
If you’re still using the pyscript version, I’ve included a detailed migration guide.
Cool Use Cases
Automations:
yaml
# Low propane alert
- alias: "Propane Low Alert"
trigger:
- platform: numeric_state
entity_id: sensor.amerigas_tank_level
below: 20
action:
- service: notify.mobile_app
data:
message: "Propane tank at {{ states('sensor.amerigas_tank_level') }}%"
Energy Dashboard: Track propane consumption over time alongside your other utilities. The integration provides proper state_class: total_increasing sensors that work perfectly with the Energy Dashboard.
Cost Tracking: See exactly how much you’ve spent on propane since your last delivery, and get realistic estimates for your next refill (based on 80% fill, not 100%).
Technical Details
Update Schedule: 00:00, 06:00, 12:00, 18:00 daily (cron-based, no drift)
Manual Services:
amerigas.refresh_data- Force immediate API updateamerigas.set_pre_delivery_level- Manually set pre-delivery level for historical deliveries
Sensors include:
- 15 base sensors from AmeriGas API
- 11 calculated sensors (usage, cost, energy)
- 2 lifetime tracking sensors (gallons, energy)
- 1 diagnostic entity (pre-delivery level)
Links
- GitHub: GitHub - skircr115/ha-amerigas: Unofficial Home Assistant integration for AmeriGas propane monitoring. Track tank levels, deliveries, payments, and integrate with Energy Dashboard.
- Issues: GitHub · Where software is built
- Documentation: ha-amerigas/README.md at main · skircr115/ha-amerigas · GitHub
- Changelog: ha-amerigas/CHANGELOG.md at e8099e1b523d44f38e73e34e1e92439fbed4dcdc · skircr115/ha-amerigas · GitHub
- Migration Guide: ha-amerigas/MIGRATION.md at e8099e1b523d44f38e73e34e1e92439fbed4dcdc · skircr115/ha-amerigas · GitHub
- Contributing: ha-amerigas/CONTRIBUTING.md at e8099e1b523d44f38e73e34e1e92439fbed4dcdc · skircr115/ha-amerigas · GitHub
Disclaimer
This is an unofficial integration and is not affiliated with AmeriGas. Use at your own risk. Always verify propane levels manually.
Credits
Big thanks to @Ricket and other contributors who’ve helped with bug reports and fixes. The Home Assistant community has been incredibly helpful in testing and providing feedback!
If you use AmeriGas for propane and Home Assistant, give this integration a try! ![]()
Questions? Issues? Feature requests? Drop a comment or open an issue on GitHub!