Inspiration 💡

The idea for FusionSolarAU came from a real frustration at home. My family installed solar panels on our roof, expecting significant savings on our electricity bill. While the panels worked great, we discovered a harsh reality: the compensation we receive for excess energy sent back to the grid is ridiculously low.

My father approached me with a challenge: "Why are we selling our surplus energy for pennies when we could use it ourselves?" He wanted to automatically heat our water heater and charge our electric vehicle whenever we had excess solar production, instead of wasting that valuable energy.

That conversation sparked the idea for FusionSolarAU—an intelligent automation system that maximizes our solar investment by smartly activating high-consumption devices when surplus energy is available.

What it does ⚡

FusionSolarAU connects directly to Huawei FusionSolar photovoltaic installations via the official Northbound API. The app monitors:

  • Real-time solar production (W)
  • Battery state of charge (SOC%)
  • Grid consumption/export
  • Active power flow

Based on this data, it automatically triggers smart devices like:

  • Electric vehicle chargers
  • Water heaters
  • Pool pumps
  • HVAC systems
  • Any IoT-enabled appliance

The app ensures we consume our own solar energy instead of sending it to the grid for minimal compensation.

How I built it 🛠️

I developed FusionSolarAU using Flutter/Dart for cross-platform compatibility (Android, iOS, Windows, Web). The architecture includes:

  1. API Integration Layer: Implemented authentication and data retrieval from Huawei's SmartPVMS Northbound API (v25.3.0)
  2. Real-time Monitoring Engine: Polling system that fetches plant data every few seconds
  3. Automation Rules Engine: Logic system that evaluates conditions (production > threshold, battery > X%) and triggers actions
  4. Device Control Module: Integration with smart home protocols to activate/deactivate devices
  5. UI/UX Design: Clean, intuitive interface showing energy flow visualization with dynamic graphics

Tech Stack:

  • Flutter/Dart for the app
  • HTTP client for API communication
  • Secure credential storage
  • State management for real-time updates

Challenges I faced 🚧

  1. API Documentation Complexity: Huawei's Northbound API documentation is extensive but sometimes unclear. Understanding authentication flows, token refresh mechanisms, and data structures took considerable reverse-engineering and testing.

  2. Real-time Data Synchronization: Balancing API polling frequency to get near-real-time data without overwhelming the server or draining battery on mobile devices was tricky. I implemented adaptive polling rates.

  3. Automation Logic Safety: Creating fail-safe mechanisms to prevent unwanted device activations (e.g., not charging the car if battery is critically low for home use) required careful threshold tuning.

  4. Cross-platform Device Control: Integrating with different smart home ecosystems (Wi-Fi switches, Zigbee devices, etc.) while maintaining a unified interface was challenging but essential for real-world usability.

  5. Convincing My Father It Works: The hardest challenge was proving to my dad that the app wouldn't accidentally drain the battery or mess with our energy setup! After weeks of testing and refinement, he now uses it daily.

What I learned 🎓

  • Deep understanding of solar energy systems and how inverters, batteries, and grid connections interact
  • Practical experience with enterprise APIs and authentication protocols
  • Importance of user-centered design—the app needed to be simple enough for my parents to use
  • Energy optimization algorithms and rule-based automation systems
  • Real-world problem-solving: building something that actually saves my family money every month!

This project taught me that the best solutions come from real needs. Now, instead of getting €0.05/kWh for our excess energy, we're using it to heat water and charge our car—essentially getting full retail value for every watt we produce.

Built With

Share this project:

Updates