OhmSweetOhm is an intelligent energy dashboard that creates a Digital Twin of your home to benchmark energy efficiency. Unlike standard utility apps that just show what you used, OhmSweetOhm compares your usage against physics-based simulations (NREL ResStock) to tell you if your home is efficient relative to its specific building type and location.
It leverages Google Gemini 2.5 Flash for multimodal bill extraction, NREL Data Lakes for comparative analysis, and ElevenLabs for personalized audio sustainability coaching.
- 📄 AI-Powered Bill Parsing: Upload PDF or Image bills. We use Gemini 2.5 Flash to extract usage data (kWh), cost, and billing periods via OCR, even from complex layouts.
- 🔒 PII Redaction: Automatic redaction of names and addresses before sending data to third-party AI services.
- 🏠 Digital Twin Benchmarking: Connects to the NREL (National Renewable Energy Laboratory) Data Lake to fetch a simulation of a home matching your specific profile (Square footage, Year built, HVAC type) to calculate an "Efficiency Score."
- 🌍 Carbon Footprint & Grid Mix: Calculates hourly CO2 emissions based on your specific region's grid mix (Solar vs. Coal vs. Nuclear).
- 💡 Smart Scheduling Tips: Generates actionable, time-shifted advice (e.g., "Run laundry at 2 PM when Solar is high") based on your actual grid data.
- 🔊 Audio Insights: Uses ElevenLabs Turbo v2.5 to convert text tips into audio for accessible, on-the-go sustainability coaching.
- Framework: React (Vite) + TypeScript
- Styling: Tailwind CSS
- Visualization: Recharts (Interactive Area, Line, and Pie charts)
- Icons: Lucide React
- Auth: Auth0
- Framework: Flask (Python)
- Database: PostgreSQL (SQLAlchemy ORM)
- Data Science: Pandas (Time-series alignment, interpolation)
- Cloud Storage: AWS S3 (via
s3fsfor accessing NREL Open Data)
- Google Gemini API: Multimodal extraction (OCR) and sustainability strategy generation.
- ElevenLabs API: Text-to-Speech (Turbo v2.5 model).
- NREL ResStock: High-fidelity building stock data.
- Ingest: User uploads a utility bill.
- Sanitize: Backend strips PII using regex/coordinate redaction.
- Analyze: Gemini extracts
usage_kwh,start_date, andend_date. - Simulate: The app queries NREL's S3 Data Lake (using
us-west-2) to find a matching "Reference Home" profile. - Benchmark: We align the user's monthly data with NREL's 15-minute interval simulation data to calculate the Efficiency Score.
- Synthesize: AI generates specific tips based on the delta between the user and the reference model.
- Node.js (v18+)
- Python (v3.10+)
- PostgreSQL
git clone [https://github.com/yourusername/ohmsweetohm.git](https://github.com/yourusername/ohmsweetohm.git)
cd ohmsweetohmcd backend
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txtEnvironment Variables: Create a .env file in /backend:
AUTH0_DOMAIN=your_auth0_domain
AUTH0_AUDIENCE=your_auth0_audience
EIA_API_KEY=your_eia_api_key
GOOGLE_API_KEY=your_google_api_key
ELEVENLABS_API_KEY=your_elevenlabs_api_key
Run the Server:
python app.pycd frontend
npm installEnvironment Variables: Create a .env file in /frontend:
VITE_AUTH0_DOMAIN=your_auth0_domain
VITE_AUTH0_CLIENT_ID=your_client_id
VITE_AUTH0_AUDIENCE=your_auth0_audience
VITE_API_URL=http://localhost:5000/api
Run the Client:
npm run dev-
Onboarding: Log in and set up your home profile (Zip code, SqFt, Heating type). This constructs your "Digital Twin" parameters.
-
Upload: Click "Add New Bill" and select a PDF or Image of your electric bill.
-
Analyze: Wait for the Gemini extraction and NREL benchmarking (approx 5-10 seconds).
-
Insight: View your Efficiency Score.
- Green: You are beating the simulation (Efficient).
- Red: You are using more than the simulation (Inefficient).
-
Listen: Click the speaker icon on any tip to hear audio advice powered by ElevenLabs.
-
Solar ROI Calculator: Estimate savings if the user installed solar based on their specific roof geometry.
-
Smart Thermostat Integration: Direct API connection to Ecobee/Nest.
-
Gamification: Leaderboards for most efficient homes in a zip code.
Contributions are welcome! Please open an issue or submit a pull request.
This project is licensed under the MIT License.

