Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
141 changes: 139 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -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!** 🚀
4 changes: 4 additions & 0 deletions submission.md
Original file line number Diff line number Diff line change
@@ -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: