diff --git a/README.md b/README.md index f5fe39a..799f505 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,139 @@ -# srcful-spark -Sourceful Energy Grants Repo +# Zap Spark Initiative: Home Assistant Integration - Community Improvements + +## Challenge Overview + +We've created a reference implementation for the Zap P1-Meter Home Assistant integration, but we need the community's help to bring it to Home Assistant core standards. We're calling on talented developers to improve our open-source integration with UI configuration, multi-device support, comprehensive testing, and more. Help us create a professional integration that will be included in Home Assistant core! + +## Grant Amounts + +Multiple grants are available for specific improvements: +- **Config Flow Implementation (UI setup)**: 300 USDC +- **Multi-Device Support**: 200 USDC +- **Test Coverage (80%+)**: 200 USDC +- **DataUpdateCoordinator Migration**: 200 USDC +- **Additional improvements**: 100 USDC each + +*First come, first served - claim an issue on GitHub to get started!* + +## Who Can Participate + +This challenge is open to individual developers and teams who are passionate about Home Assistant and creating quality integrations. To participate, check the open issues at [github.com/srcfl/zap-home-assistant](https://github.com/srcfl/zap-home-assistant) + +## Current Implementation Status + +### What's Already Working +- ✅ HACS-compatible custom component +- ✅ 35+ sensors from OBIS codes +- ✅ Energy Dashboard integration +- ✅ Real-time power monitoring +- ✅ Device diagnostics and system info +- ✅ YAML-based configuration + +### What We Need + +## Priority Improvements for Core Inclusion + +### 1. Config Flow Implementation +- Replace YAML config with UI-based setup +- Add device discovery (mDNS/SSDP) +- Implement config validation +- Follow Home Assistant config flow guidelines +- Include options flow for settings + +### 2. Multi-Device Support +- Support multiple Zap devices per installation +- Unique entity naming per device +- Proper device registry management +- Handle device removal/addition + +### 3. Comprehensive Testing +- Achieve 80%+ test coverage with pytest +- Mock all API responses +- Test error conditions +- Test all sensor types +- Include integration tests + +### 4. DataUpdateCoordinator Pattern +- Migrate from current polling to DataUpdateCoordinator +- Implement proper error handling +- Add connection state management +- Follow HA best practices + +### 5. Additional Improvements +- Diagnostics support +- Repair suggestions +- Device triggers for automations +- Documentation improvements +- Code quality enhancements + +## Technical Requirements + +### Development Standards +- Follow [Home Assistant development guidelines](https://developers.home-assistant.io/docs/development_index) +- Use type hints throughout +- Implement proper logging +- Follow Python PEP 8 style +- Include docstrings + +### Integration Quality +- Meet [Home Assistant Integration Quality Scale](https://developers.home-assistant.io/docs/integration_quality_scale_index) requirements +- Implement proper error handling +- Add connection retry logic +- Handle edge cases gracefully + +### Testing Requirements +- Unit tests with pytest +- Mock external API calls +- Test coverage reports +- CI/CD integration + +## Submission Requirements + +### How to Contribute + +1. Review the current implementation at [github.com/srcfl/zap-home-assistant](https://github.com/srcfl/zap-home-assistant) +2. Check [open issues](https://github.com/srcfl/zap-home-assistant/issues) for available tasks +3. Comment on an issue to claim it (one task per developer at a time) +4. Fork the repository and create a feature branch +5. Submit a pull request with: + - Implementation following task requirements + - Tests for new functionality + - Updated documentation + - Clear commit messages + +### Review Process +- Code review by Sourceful team +- Functionality testing with real Zap devices +- Home Assistant standards compliance check +- Community feedback period +- Grant payment upon PR merge + +## Why Participate? + +By improving this integration, you'll: +- 🏠 Help thousands of Zap users get official Home Assistant support +- 💡 Gain experience with Home Assistant core development +- 💰 Earn grants for your contributions +- 🏆 Be credited in the official integration +- 🤝 Join our growing developer community + +## Timeline + +- **Challenge Open**: Ongoing +- **Tasks Available**: First come, first served +- **Review Period**: 3-7 days per PR +- **Payment**: Within 7 days of PR merge + +## How to Get Started + +1. Visit [github.com/srcfl/zap-home-assistant](https://github.com/srcfl/zap-home-assistant) +2. Review the README and current code +3. Check [open issues](https://github.com/srcfl/zap-home-assistant/issues) for available tasks +4. Claim an issue by commenting +5. Start coding! + +## Questions? + +Join our Discord at [discord.com/invite/srcful](https://discord.com/invite/srcful) #dev channel for support and discussion. + +**Let's work together to bring professional Zap integration to Home Assistant core!** 🚀 diff --git a/submission.md b/submission.md new file mode 100644 index 0000000..3e7e404 --- /dev/null +++ b/submission.md @@ -0,0 +1,4 @@ +Edit this file and issue a pull request when your submission is ready for review. + +Link to your repo: +Link to Home Assistant community thread announcing your integration: