Share energy like sharing WiFi - Connect your batteries and let communities power themselves
APIS is an innovative open-source platform that enables Physical Peer-to-Peer (PP2P) energy sharing between distributed batteries in microgrids. By leveraging Variable Renewable Energy (VRE) sources, APIS builds resilient microgrids that enhance community self-sufficiency and reduce dependency on traditional centralized power generation.
Imagine if your home battery could automatically share power with your neighbors when they need it, and get power back when you need it. That's exactly what APIS does!
- ๐ฐ Save Money: Share excess solar power instead of selling it back to the grid at low prices
- ๐ Stay Powered: Never run out of energy when your neighbors have extra
- ๐ฑ Go Green: Maximize renewable energy use in your community
- ๐ Be Independent: Reduce reliance on big power companies
- ๐ก๏ธ Build Resilience: Keep communities powered during grid outages
Click here for more details about the research behind APIS.
APIS achieves precise energy sharing between batteries using constant current control. This technology:
- โ Offsets energy shortages by delivering the necessary amount from surplus batteries
- โ Enables fixed-amount power transfers between specific users (batteries)
- โ Supports P2P energy trading based on energy amount and price conditions
- โ Works where voltage control fails - providing true peer-to-peer transactions
The same software is installed on every battery system, creating a truly decentralized network where:
- ๐ค Smart Decision Making: Each system makes autonomous trading decisions
- โ๏ธ Flexible Conditions: Set different trading rules for each battery system
- ๐ Dynamic Updates: Change conditions for each time window
- ๐ Custom Parameters: Configure energy amount, pricing, and timing preferences
Want to try it out? Here's how:
# 1. Get the code
git clone https://github.com/hyphae/APIS.git
cd APIS
# 2. Build everything
make build
# 3. Start the system
make runThat's it! Now open your web browser and go to:
| Service | URL | What You'll See |
|---|---|---|
| ๐ Main Controller | http://0.0.0.0:4382/ |
Primary dashboard and controls |
| ๐ง Hardware Emulator | http://0.0.0.0:4390/ |
Simulate batteries and DC/DC converters |
| ๐งช Testing Interface | http://0.0.0.0:10000/ |
System testing and validation tools |
| ๐ข Service Center | http://127.0.0.1:8000/static/ui_example/staff/visual.html |
Admin interface (login: admin/admin) |
- Access the Main Controller at
http://0.0.0.0:4382/ - Clear your browser cache (recommended for best performance)
- Set Global Mode to "Run" to start energy exchange simulation
- Watch the magic happen - energy will start flowing between simulated batteries automatically!
To stop the system:
make stopAPIS consists of several interconnected software modules that work together seamlessly:
| Component | Purpose | What It Does |
|---|---|---|
| ๐ง apis-main | Energy Exchange Engine | Makes smart trading decisions and handles bi-directional energy flow with autonomous control (Documentation) |
| ๐ apis-main_controller | Visual Dashboard | Monitor system status and energy exchanges in real-time through an easy web interface (Documentation) |
| ๐ apis-web | Web Service Layer | Provides data and API services, connects everything to the internet securely (Documentation) |
| ๐ง apis-emulator | Hardware Simulator | Test the system without real batteries - simulates DC/DC converters and battery behavior (Documentation) |
| Component | Purpose | What It Does |
|---|---|---|
| ๐ข apis-service_center | Community Management | Admin tools for managing large networks, user services, and cluster information Added Dec 24, 2020 (Documentation) |
| ๐ก apis-ccc | Communication Hub | Coordinates between different APIS networks and uploads energy sharing information Added Dec 24, 2020 (Documentation) |
| ๐ apis-log | Smart Analytics | Receives data via multicast and stores comprehensive system analytics in database Added Dec 24, 2020 (Documentation) |
| ๐งช apis-tester | Quality Assurance | Automated testing and evaluation framework for system validation Added Dec 24, 2020 (Documentation) |
| Component | Purpose | What It Does |
|---|---|---|
| โ๏ธ apis-dcdc_batt_comm | Hardware Driver | Controls actual DC/DC converters and batteries (replaces emulator for real deployments) (Documentation) |
| ๐ apis-build_version_up_system | Deployment Tool | Automates multi-node software installation and configuration for production systems (Documentation) |
| ๐ apis-hw-info | Hardware Guide | Reference documentation for compatible hardware and technical specifications (Documentation) |
Tested Operating Systems:
- Ubuntu: 18.04, 20.04 โ
- CentOS: 7, 8 โ
- macOS: Catalina, Big Sur โ
โ ๏ธ Important: Virtual environments are not currently supported.
Before you start, make sure you have:
# Ubuntu/Debian systems:
sudo apt update
sudo apt install git make maven groovy python3-venv python3-pipAlso Required:
- Java Development Kit (JDK): Latest version
- Python: 3.6.9 or later
- SQLite: 3.8.3 or later (required for CentOS 7)
1. Clone the Repository
git clone https://github.com/hyphae/APIS.git
cd APIS2. Build All Components
make buildThis downloads and compiles all necessary software - takes 5-10 minutes
3. Start the System
make run4. Verify Installation
- Open
http://0.0.0.0:4382/in your browser - You should see the APIS control panel
- All components should show as "Running" status
If you encounter issues:
- "Command not found" errors: Install all prerequisites first
- "make build" or "make run" fails: Open a new terminal and try again
- Port conflicts: Stop other web servers or restart your computer
- Permission issues: Check file permissions or try with appropriate privileges
Start the System:
make runMonitor System Health:
- Check component status through the Main Controller interface
- Monitor energy flow patterns and transaction logs
- Review system performance metrics in the Service Center
Stop the System:
make stopEnergy Trading Setup:
- Access the web interfaces to modify transaction parameters
- Adjust energy trading conditions per time window
- Configure battery system preferences and constraints
- Set pricing rules and availability schedules
System Monitoring:
- Real-time energy flow visualization
- Transaction history and analytics
- Performance metrics and system health
- Community-wide energy balance reports
- ๐ฐ Lower Bills: Reduce electricity costs significantly
- ๐ Backup Power: Access community energy when your battery runs low
- ๐ค Fully Automatic: Set preferences once, let APIS handle everything
- ๐ฑ Easy Monitoring: Simple web interface accessible from any device
- ๐ฑ Environmental Impact: Maximize clean energy use and reduce carbon footprint
- ๐ก๏ธ Disaster Resilience: Keep power flowing during grid outages and emergencies
- ๐ผ Economic Benefits: Keep energy money in the community
- ๐ Energy Independence: Reduce reliance on big power companies
- ๐ Open Source: Free to use and modify under Apache License 2.0
- ๐ Well Documented: Comprehensive guides and API references
- ๐ค Active Community: Get help and contribute back
- โ Proven Technology: Already working in real installations worldwide
We welcome contributions from the community! Here's how you can help:
Even if you're not a programmer:
- ๐ Improve documentation (fix typos, add examples)
- ๐งช Test new features and report bugs
- ๐ฃ๏ธ Help answer questions in forums
- ๐ข Share your APIS success stories
If you code:
- ๐ Fix bugs and improve stability
- โก Add new features and capabilities
- ๐ง Create better tools and interfaces
- ๐ Improve performance and efficiency
If you're a hardware person:
- ๐ Create drivers for new battery systems
- โ๏ธ Design better integration methods
- ๐ Contribute hardware compatibility guides
- ๐ ๏ธ Help with installation and setup
- Fork the Repository: Create your own fork of the APIS project
- Create Feature Branch:
git checkout -b feature/your-feature-name - Make Changes: Implement your improvements or fixes
- Test Thoroughly: Ensure all tests pass and functionality works
- Submit Pull Request: Describe your changes and their benefits
- Follow existing code style and conventions
- Include comprehensive tests for new features
- Update documentation for any API changes
- Provide clear commit messages and PR descriptions
- ๐ Documentation: Most questions answered in our comprehensive guides
- ๐ GitHub Issues: Search existing problems and solutions
- ๐ฌ Community Forums: Ask and answer questions with other users
- ๐ Bug Reports: Create a GitHub issue for bug reports
- ๐ก Feature Requests: Suggest improvements through GitHub issues
- ๐ Security Issues: Contact maintainers directly for sensitive matters
APIS is released under the Apache License Version 2.0
What this means for you:
- โ Use it for free, forever
- โ Modify it however you want
- โ Use it in commercial products
- โ No fees or royalties
- โ Patent protection included
What you need to do:
- ๐ Include the license notice if you redistribute
- ๐ Note any changes you make
- ๐ That's pretty much it!
See the LICENSE file for all legal details.
See the NOTICE for additional notices.
- ๐ฑ Mobile App: Control APIS from your smartphone
- โ๏ธ Cloud Integration: Connect with major cloud platforms
- ๐ค AI Optimization: Smarter energy trading decisions
- ๐ More Hardware: Support for additional battery brands
- ๐ Global Network: Connect APIS communities worldwide
- ๐ฑ Carbon Credits: Automatic environmental impact tracking
- ๐น Dynamic Pricing: Real-time energy market integration
- ๐ฅ Peer Review: Community-driven system improvements
Choose your path:
Try the Quick Start guide above and start saving on your energy bills today!
Explore the system components and documentation to start building energy applications.
Set up APIS for your neighborhood and bring energy independence to your community.
Contribute to the future of distributed energy systems through APIS development and research.
Made with โค๏ธ by the APIS Community - Powering the future, one battery at a time.





