Home Assistant integration for NiSource gas utilities (Columbia Gas and NIPSCO) to track natural gas usage and billing data. Integrates seamlessly with Home Assistant's Energy dashboard.
This integration works with all six NiSource family companies:
- Columbia Gas of Ohio (OH) - ~1.5 million customers
- Columbia Gas of Kentucky (KY) - ~135,000 customers
- Columbia Gas of Pennsylvania (PA) - ~446,000 customers
- Columbia Gas of Maryland (MD) - ~34,000 customers
- Columbia Gas of Virginia (VA) - ~290,000 customers
- NIPSCO (Northern Indiana) (IN) - ~1.4 million natural gas and electric customers
Nearly 4 million customers across six states can use this integration!
- Historical gas consumption tracking - View up to 18 months of historical usage data in the Energy Dashboard
- Cost tracking - Monitor gas costs with historical billing data
- Account monitoring - Track current bill, balance due, current amount due, and due date
- Energy Dashboard integration - Seamless integration with Home Assistant's native Energy Dashboard
- Automatic statistics insertion - Historical data is automatically backfilled on first setup
- Automatic updates - Data refreshes every 24 hours
- Multi-provider support - Works with all 6 NiSource utility companies
- Home Assistant 2024.1 or newer
- NiSource account (Columbia Gas or NIPSCO online portal)
Note: This integration is not yet published in the HACS default repository. You need to add it as a custom repository first.
-
Install HACS (if not already installed)
- Follow the official HACS installation guide: https://hacs.xyz/docs/setup/download
- Restart Home Assistant after HACS installation
-
Add Custom Repository
Click the badge above to add this repository to HACS directly, OR:
- Open HACS in Home Assistant
- Click on "Integrations"
- Click the three dots in the top right corner
- Select "Custom repositories"
- Add this repository URL:
https://github.com/patrickjcash/nisource-home-assistant - Select "Integration" as the category
- Click "Add"
-
Install Integration
- In HACS, search for "NiSource Gas"
- Click on the integration
- Click "Download"
- Restart Home Assistant
- Copy the
custom_components/nisourcedirectory to your Home Assistantcustom_componentsdirectory - Restart Home Assistant
- Click the badge above to add the integration directly, OR navigate to Settings → Devices & Services
- Click the "+ Add Integration" button
- Search for "NiSource Gas"
- Select your gas provider from the dropdown:
- Columbia Gas of Ohio (OH)
- Columbia Gas of Kentucky (KY)
- Columbia Gas of Pennsylvania (PA)
- Columbia Gas of Maryland (MD)
- Columbia Gas of Virginia (VA)
- NIPSCO (Northern Indiana) (IN)
- Enter your portal credentials (same as your online account login)
- Click Submit
The integration will automatically fetch your account data and set up sensors.
This integration uses long-term statistics (not sensors) for Energy Dashboard tracking. Historical data is automatically backfilled on first setup.
- Go to Settings → Dashboards → Energy
- Under "Gas consumption", click "Add Gas Source"
- Select the statistic:
NiSource Gas Consumption(NOT the sensor) - Historical data (up to 18 months of billing period readings) will be visible immediately
- In the Energy Dashboard, under "Gas consumption"
- Click "Add Cost" or configure cost tracking
- Select the statistic:
NiSource Gas Cost - Historical billing data will be displayed alongside consumption
Note: The integration provides both sensors (for current values) and statistics (for historical tracking). The Energy Dashboard uses statistics, not sensors.
The integration creates the following sensors:
- Gas Usage - Latest billing period's gas consumption in CCF (hundred cubic feet)
- Total Bill Last Period - Previous billing cycle amount in USD (billed in arrears)
- Balance Due - Current account balance in USD
- Current Amount Due - Amount currently due in USD
- Due Date - Next payment due date
- Gas consumption: CCF (hundred cubic feet)
- 1 CCF = 100 cubic feet of natural gas
- Approximately 1 CCF ≈ 1 therm for natural gas
- Cost: USD (US Dollars)
-
Create a
.envfile with your credentials:NISOURCE_USERNAME=your_email@example.com NISOURCE_PASSWORD=your_password
-
Install dependencies:
python3 -m venv venv source venv/bin/activate pip install requests python-dotenv beautifulsoup4 -
Run the diagnostic test:
python tests/test_api_standalone.py
This comprehensive test validates authentication, CSV parsing, statistics calculation, and sensor values.
This integration uses the NiSource portal API:
- Authentication: Form-based POST with cookie session
- Data format: CSV downloads for historical data, JSON API for account summary
- Portal URLs vary by provider (e.g., myaccount.columbiagasohio.com)
- CSV endpoints provide up to 18 months of historical usage and billing data
The integration follows Home Assistant best practices:
- Session-based authentication with cookies
- CSV parsing for usage and billing history
- JSON API for account summary and balance information
- Statistics insertion for Energy Dashboard compatibility
- DataUpdateCoordinator for efficient data management
For developers interested in contributing or understanding the integration architecture, see DEVELOPMENT.md for:
- API endpoint documentation
- Implementation details
- Statistics insertion patterns
- Testing guidelines
- Common issues and solutions
Built for NiSource customers (Columbia Gas and NIPSCO) who want to track their natural gas usage in Home Assistant.
Special thanks to the NiSource family of companies for providing accessible online portals for their customers.
MIT License
For issues and feature requests, please use the GitHub issue tracker.