Home Assistant Stream Deck YAML 🎮
🎄🎁 Advent of Open Source – Day 08/24: A YAML-based project for controlling Home Assistant with a Stream Deck, enhanced by AI.
(See my intro post)
What started as a personal hack to control my home (temperature, lights, TV, music) with a gifted Stream Deck evolved into something bigger. This project became my first real exploration of AI-assisted development, showing me how much faster I could work with AI as a tool. With 250+ stars and 9 contributors adding significant features, it’s grown beyond my initial vision.
📖 Origin Story
While the Stream Deck’s official software is great for streamers, it doesn’t support Linux and its Home Assistant integration is not very programmable. After creating a simple solution using python-elgato-streamdeck
, I realized others might be interested. Using AI as a development partner changed my workflow - it helped write tests, reviewed code, and generated use cases I hadn’t thought of. What really surprised me was asking AI to brainstorm example configurations - it generated over 30 creative use cases with complete code examples, which I then turned into unit tests. These tests now automatically generate the documentation using markdown-code-runner
(from Day 5).
🔧 Technical Highlights
- YAML configuration with Jinja2 templating
- Supports all Stream Deck models, including the Plus with dials
- Cross-platform (Linux, macOS, Windows)
- 30+ example configurations (AI-generated, then human-refined)
- Documentation auto-generated from code and unit tests
- Available as a Home Assistant add-on
- Community-contributed features like touchscreen support and dial controls
💡 Lessons Learned
- AI can significantly speed up development
- Faster development enables broader project scope
- Good examples make the best documentation
- Tools building upon tools multiply productivity
- Community contributions can take a project in exciting new directions
Want to control Home Assistant with a Stream Deck? Check out the project on GitHub!
#OpenSource #HomeAssistant #SmartHome #Python #AI