Skip to content
Draft
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
29 changes: 29 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# ESPHome
.esphome/
*.bin
*.elf
*.map

# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
venv/
env/
ENV/

# IDE
.vscode/
.idea/
*.swp
*.swo
*~

# OS
.DS_Store
Thumbs.db

# Secrets
secrets.yaml
81 changes: 81 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.0.0] - 2024-10-19

### Added
- Initial release of ESP32 Waveshare Dashboard
- Main configuration file (`esp32-dashboard.yaml`) with comprehensive display layout
- Support for multiple Waveshare e-paper display models (1.54", 2.13", 2.90", 4.20", 7.50")
- Four example configurations:
- Basic: Minimal setup for testing
- Weather: Weather-focused dashboard with icons
- Small: Optimized for 2.9" and 2.13" displays
- Battery: Power-efficient configuration with deep sleep
- Comprehensive documentation:
- README with full setup instructions
- QUICKSTART guide for 30-minute setup
- WIRING guide with detailed pin diagrams
- CONTRIBUTING guidelines
- Home Assistant API integration with encryption
- OTA (Over-The-Air) update support
- WiFi configuration with fallback access point
- Time synchronization from Home Assistant
- Weather sensor integration (temperature, humidity, wind speed)
- Indoor sensor support
- Material Design Icons support
- Customizable fonts (Roboto family)
- Manual display refresh button
- Deep sleep mode for battery operation
- Battery level monitoring (for battery-powered setups)
- WiFi signal strength monitoring
- Status indicators and last update timestamp

### Features
- Auto-refresh every 5 minutes (configurable)
- Responsive display layouts for different screen sizes
- Low power consumption with deep sleep
- Web server for local configuration
- Captive portal for initial WiFi setup
- Multiple sensor types support
- Extensive customization options

### Documentation
- Quick start guide for new users
- Detailed wiring diagrams and pin configurations
- Troubleshooting guides
- Contributing guidelines
- MIT License
- Example configurations for common use cases

### Technical Details
- ESPHome-based firmware
- ESP32 platform support
- SPI communication for e-paper displays
- YAML-based configuration
- Modular sensor architecture
- Secure API encryption

## [Unreleased]

### Planned Features
- Support for additional sensor types
- Pre-built binary firmware
- Web-based configuration tool
- Additional display layouts
- Multi-language support
- Enhanced weather icons and graphics
- Calendar integration
- Energy monitoring displays
- Custom image support
- Touchscreen support for compatible displays

---

## Version History

- **1.0.0** (2024-10-19): Initial release with full dashboard functionality
139 changes: 139 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
# Contributing to ESP32 Waveshare Dashboard

Thank you for your interest in contributing! This document provides guidelines for contributing to this project.

## How to Contribute

### Reporting Bugs

If you find a bug, please open an issue with:
- Clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Your hardware setup (ESP32 model, display model)
- ESPHome version
- Relevant logs or error messages

### Suggesting Enhancements

Enhancement suggestions are welcome! Please open an issue with:
- Clear description of the enhancement
- Use case or problem it solves
- Any implementation ideas you have

### Pull Requests

1. **Fork the repository**
2. **Create a feature branch** (`git checkout -b feature/amazing-feature`)
3. **Make your changes**
4. **Test your changes** with actual hardware if possible
5. **Commit your changes** (`git commit -m 'Add amazing feature'`)
6. **Push to the branch** (`git push origin feature/amazing-feature`)
7. **Open a Pull Request**

## Development Guidelines

### Configuration Files

- Use clear, descriptive variable names
- Add comments for complex sections
- Follow ESPHome YAML formatting conventions
- Test with multiple display sizes when possible

### Documentation

- Update README.md if adding new features
- Include usage examples
- Document any new sensor configurations
- Update WIRING.md for hardware changes

### Examples

- Keep examples simple and focused
- Test examples before submitting
- Include comments explaining key sections
- Ensure examples work with common hardware

### Code Style

- Use 2-space indentation for YAML
- Keep lines under 100 characters when possible
- Use descriptive IDs for components
- Add internal: true for helper sensors

## Testing

Before submitting a PR:
- [ ] Configuration compiles without errors
- [ ] Test with actual hardware if possible
- [ ] Check that existing examples still work
- [ ] Verify documentation is updated
- [ ] Test with ESPHome latest stable version

## Project Structure

```
ha-esp32-dashboard/
├── esp32-dashboard.yaml # Main configuration
├── secrets.yaml.example # Example secrets file
├── examples/ # Example configurations
│ ├── esp32-dashboard-basic.yaml
│ ├── esp32-dashboard-weather.yaml
│ ├── esp32-dashboard-small.yaml
│ └── esp32-dashboard-battery.yaml
├── fonts/ # Font files (not in repo)
├── README.md # Main documentation
├── QUICKSTART.md # Quick start guide
├── WIRING.md # Wiring documentation
└── CONTRIBUTING.md # This file
```

## Adding New Features

### Adding a New Sensor Type

1. Add sensor configuration to appropriate example file
2. Document in README.md with entity ID examples
3. Add display code to lambda function
4. Test with Home Assistant integration

### Adding Support for New Display Model

1. Create new example configuration
2. Document model specifications
3. Update WIRING.md if pin configuration differs
4. Test display refresh and update intervals

### Adding New Display Layouts

1. Create example in `examples/` directory
2. Include comments explaining layout sections
3. Provide screenshots or diagrams if possible
4. Document in examples/README.md

## Community Guidelines

- Be respectful and constructive
- Help others when you can
- Share your implementations
- Credit others' work appropriately

## Questions?

If you have questions about contributing:
- Open a discussion on GitHub
- Check existing issues and PRs
- Review ESPHome documentation

## License

By contributing, you agree that your contributions will be licensed under the MIT License.

## Recognition

Contributors will be recognized in:
- GitHub contributors list
- Release notes (for significant contributions)
- README acknowledgments (for major features)

Thank you for making this project better! 🎉
Loading