pedroms
February 25, 2026, 2:46pm
1
Hello,
Coming from a Pixel 6a, one thing that I miss is a voice assistant. I do not miss the Google Assistant or, hell forbid, Gemini, but I do miss controlling some smart home stuff with my voice, mostly.
So hearing out recommendations for privacy-friendly, sovereign, and possibly self-hosted solutions for voice assistance.
I know there’s Home Assistant voice which seems to me, as far as I know of, possibly the best route for this, but would love to hear about other projects or solutions.
Thanks!
The best privacy friendly assistant i found was Dicio but that is pretty basic.
You can ask to search up something, what is weather, call someone etc. but it can’t control smarthome stuff.
Maybe in the future it will be able to if someone adds that feature to it, it is open source afterall
2 Likes
Just found out someone already made Home assistant support for it. The merge request just need to be review & merged.
master ← mretallack:changes-for-ha
opened 10:23AM - 08 Dec 25 UTC
# [HomeAssistant] - Voice Control Integration
## Status: Ready for Merge
T… his PR isHome Assistant integration with Dicio. It is **now ready for production** but requires review, it has been been tested for the past 2 months.
**Note:** This implementation was developed with assistance from AWS Kiro AI to accelerate the initial development and explore the feasibility of Home Assistant integration.
## Overview
Adds a new skill that allows users to control and query Home Assistant entities using voice commands. Users can turn devices on/off, check status, and query person locations through natural language.
## Features Implemented
### Voice Commands
**Entity Control:**
- Turn entities on/off/toggle: `"Turn living room light on"`, `"Switch bedroom lamp off"`
- Check entity status: `"Get status of garage door"`, `"Check front door"`
- Person location: `"Where is the person Mark"`, `"What is Sarah location"`
### Supported Entity Types
- Lights, switches, covers, locks, fans, media players
- Person entities for location tracking
- Any entity that supports standard Home Assistant services
### Configuration
- Settings UI for Base URL and Access Token
- Entity mapping system (friendly name → entity ID)
- Secure token storage using DataStore
## Technical Implementation
### Files Added/Modified
**Core Implementation:**
- `app/src/main/kotlin/org/stypox/dicio/skills/homeassistant/`
- `HomeAssistantInfo.kt` - Skill registration
- `HomeAssistantSkill.kt` - Main skill logic
- `HomeAssistantOutput.kt` - Output handling
- `HomeAssistantApi.kt` - REST API client
- `HomeAssistantSettings.kt` - Settings UI
**Sentence Definitions:**
- `app/src/main/sentences/skill_definitions.yml` - Added sentence IDs
- `app/src/main/sentences/en/home_assistant.yml` - English patterns
**Proto/DataStore:**
- `app/src/main/proto/skill_settings_home_assistant.proto` - Settings schema
**Tests:**
- `app/src/test/kotlin/org/stypox/dicio/skills/homeassistant/HomeAssistantSkillTest.kt` - 19 comprehensive tests
**Documentation:**
- `SETUP.md` - Complete setup guide for users
**Resources:**
- String resources for UI and speech output
- Icon for the skill
### Architecture
- Uses Home Assistant REST API for all operations
- Implements entity mapping for flexible friendly names
- Handles multiple entity domains (light, switch, cover, lock, person, etc.)
- Provides detailed error messages for troubleshooting
## Testing
✅ All 19 unit tests passing:
- Entity control (on/off/toggle) - 8 tests
- Status queries - 7 tests
- Person location - 4 tests
Tests cover:
- All sentence pattern variations
- With/without "the" article
- Different command verbs (turn, switch, get, check, etc.)
- Edge cases and pattern conflicts
## Known Issues / TODO
### Before Merge:
- [x] **Error handling** - More robust network error handling
- [x] **UI/UX review** - Settings screen design
- [x] **Integration tests** - Test against real Home Assistant instance
- [x] **Code review** - General code quality and style
- [x] **Performance** - Test with large numbers of entities
### Pattern Conflicts:
- Avoided conflict with navigation skill by using `"where is the person <name>"` instead of `"where is <name>"`
### Limitations:
- Only supports basic on/off/toggle/status operations
- No support for setting specific values (brightness, temperature, etc.)
- No support for scenes or automations
- Person location returns raw state (not formatted nicely)
## Future Enhancements
Potential improvements for future iterations:
- Support for setting brightness, color, temperature
- Scene activation
- Automation triggering
- Better person location formatting (zone names)
- Support for climate entities (thermostats)
- Multi-entity commands ("Turn off all lights")
- Confirmation prompts for sensitive actions
## How to Test
1. Set up a Home Assistant instance (or use existing)
2. Build and install the app
3. Go to Settings > Skills > Home Assistant
4. Configure Base URL and Access Token
5. Add entity mappings
6. Try voice commands (see SETUP.md for examples)
## Screenshots
_TODO: Add screenshots of settings UI and example interactions_
## Related Issues
_Link to any related issues or discussions_
## Checklist
- [x] Code compiles without errors
- [x] All tests pass
- [x] Documentation added (SETUP.md)
- [x] Tested on physical device
- [x] Security review completed
- [x] Ready for merge
---
Feedback and suggestions are welcome!
I compiled it myself.
https://github.com/furdiburd/dicio-android/releases/download/HomeAssistant/Dicio.Home.Assistant.pre-release.apk
3 Likes
RasPi5
February 26, 2026, 11:42pm
4
Home assistant and running Ollama maybe? I do not really know to be honest, there are others voices-assistant which can go locally without even network connection.
What device and OS do you have?
I know that Ollama and Jarvis works fine from some projects with RaspberryPi and HomeAssistant as well.
1 Like