# Home Assistant Skill
Control your Home Assistant smart home devices through OVOS or Neon.AI voice assistants.
This unified skill is a replacement for the `neon-homeassistant-skill` and `ovos-PHAL-plugin-homeassistant` skill/plugin. Most features are supported, but please report any issues you encounter. **_Note: Do not install both this skill and the previous skills/plugins._**
## Features
- Control lights (on/off, brightness, color)
- Control switches and outlets
- Monitor sensors
- Control covers (open/close, position)
- Silent mode for specific devices
- Support for Home Assistant Assist API
## Installation on Neon
You can `pip install neon-homeassistant-skill`, or handle the installation from the `~/.config/neon/neon.yaml` file if you prefer:
```yaml
skills:
default_skills:
- skill-homeassistant # Optionally with a version, such as skill-homeassistant==0.1.0
```
## Configuration
### Authentication Using a Long-lived Token
We recommend using a [long-lived token for Home Assistant](https://developers.home-assistant.io/docs/auth_api/#long-lived-access-token). This provides persistent access without requiring re-authentication. Configure it in your skill settings file:
- OVOS: `~/.config/mycroft/skills/skill-homeassistant/settings.json`
- Neon: `~/.config/neon/skills/neon_homeassistant_skill/settings.json`
```json
{
"api_key": "<HA_LONG_LIVED_TOKEN>",
"host": "<HA_IP_OR_HOSTNAME>"
}
```
### Configuration Options
All available settings with their defaults:
```jsonc
{
"host": "", // Home Assistant instance URL - required, no default
"api_key": "", // Long-lived access token - required, no default
"disable_intents": false, // Disable all Home Assistant intents. In most cases, you should just uninstall the skill instead of setting this to true.
"silent_entities": [], // List of entities to control without voice confirmation
"brightness_increment": 10, // Percentage to change brightness by
"search_confidence_threshold": 0.5, // Minimum confidence for entity matching, from 0 to 1 (correlates to a percentage)
"assist_only": true, // Only pull entities exposed to Home Assistant Assist
"timeout": 5, // Timeout for Home Assistant API requests in seconds
"log_level": "INFO" // Logging level (DEBUG, INFO, WARNING, ERROR)
}
```
### Legacy Configuration Support
If you're migrating from the previous neon-homeassistant-skill with ovos-PHAL-plugin-homeassistant, the skill will automatically detect and use configuration from your `mycroft.conf` or `neon.yaml`. However, we recommend migrating to the new settings.json location.
### Hostname Considerations
Mycroft Mark II may not support `.local` hostnames (e.g., `homeassistant.local`). Options include:
1. Use the IP address of your Home Assistant instance (recommended for local access)
2. Use your Nabu Casa DNS if you have a subscription (requires internet connectivity)
3. Use a local DNS server that resolves to your Home Assistant instance
## Usage
### Voice Commands
#### Lights
- "Turn on/off [device name]"
- "Set [device name] brightness to [X] percent"
- "Increase/decrease [device name] brightness"
- "What color is [device name]?"
- "Set [device name] color to [color]"
- "What's the brightness of [device name]?"
#### Switches
- "Turn on/off [device name]"
- "Toggle [device name]"
#### Covers
- "Open/Close [device name]"
- "Set [device name] position to [X] percent"
- "Stop [device name]"
#### Sensors
- "What's the temperature in [sensor name]?"
- "What's the status of [sensor name]?"
#### Home Assistant Assist
- "Ask Home Assistant [command]" (passes command directly to HA Assist API)
### Silent Mode
Add devices to the `silent_entities` list to control them without voice feedback:
```json
{
"silent_entities": ["light.kitchen", "switch.office"]
}
```
### Disabling Intents
If you don't want the skill's intents enabled (e.g., when shipping in a voice assistant image), set `disable_intents` to true:
```json
{
"disable_intents": true
}
```
## Troubleshooting
### Common Issues
1. **Connection Failures**
- Verify your Home Assistant instance is reachable
- Check the host URL format (should include protocol, e.g., `https://`)
- Ensure your token has the required permissions
2. **Entity Not Found**
- Check if the entity is exposed to Home Assistant Assist
- Verify the entity name matches exactly
- Try using the entity's friendly name
3. **Authentication Issues**
- For long-lived tokens: Verify the token is valid and not expired
- For OAuth: Try re-authenticating with "connect to home assistant"
### Debug Mode
Enable debug logging for more detailed information:
```json
{
"debug": true,
"log_level": "DEBUG"
}
```
## Upcoming Features
- Vacuum functions
- HVAC functions
- Media player control
- Camera integration
## Contributing
Contributions are very welcome! Please read our contributing guidelines and submit pull requests to our GitHub repository.
## License
Apache License 2.0
Raw data
{
"_id": null,
"home_page": null,
"name": "skill-homeassistant",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.9",
"maintainer_email": null,
"keywords": "ovos, neon, home, assistant, voice, interface, skill, plugin",
"author": "Mike Gray",
"author_email": "mike@oscillatelabs.net",
"download_url": "https://files.pythonhosted.org/packages/ad/3e/1ffe4055c89f267930f7966c05915163022db689ecb53e25f37a1a2bbc45/skill_homeassistant-0.3.0.tar.gz",
"platform": null,
"description": "# Home Assistant Skill\n\nControl your Home Assistant smart home devices through OVOS or Neon.AI voice assistants.\n\nThis unified skill is a replacement for the `neon-homeassistant-skill` and `ovos-PHAL-plugin-homeassistant` skill/plugin. Most features are supported, but please report any issues you encounter. **_Note: Do not install both this skill and the previous skills/plugins._**\n\n## Features\n\n- Control lights (on/off, brightness, color)\n- Control switches and outlets\n- Monitor sensors\n- Control covers (open/close, position)\n- Silent mode for specific devices\n- Support for Home Assistant Assist API\n\n## Installation on Neon\n\nYou can `pip install neon-homeassistant-skill`, or handle the installation from the `~/.config/neon/neon.yaml` file if you prefer:\n\n```yaml\nskills:\n default_skills:\n - skill-homeassistant # Optionally with a version, such as skill-homeassistant==0.1.0\n```\n\n## Configuration\n\n### Authentication Using a Long-lived Token\n\nWe recommend using a [long-lived token for Home Assistant](https://developers.home-assistant.io/docs/auth_api/#long-lived-access-token). This provides persistent access without requiring re-authentication. Configure it in your skill settings file:\n\n- OVOS: `~/.config/mycroft/skills/skill-homeassistant/settings.json`\n- Neon: `~/.config/neon/skills/neon_homeassistant_skill/settings.json`\n\n```json\n{\n \"api_key\": \"<HA_LONG_LIVED_TOKEN>\",\n \"host\": \"<HA_IP_OR_HOSTNAME>\"\n}\n```\n\n### Configuration Options\n\nAll available settings with their defaults:\n\n```jsonc\n{\n \"host\": \"\", // Home Assistant instance URL - required, no default\n \"api_key\": \"\", // Long-lived access token - required, no default\n \"disable_intents\": false, // Disable all Home Assistant intents. In most cases, you should just uninstall the skill instead of setting this to true.\n \"silent_entities\": [], // List of entities to control without voice confirmation\n \"brightness_increment\": 10, // Percentage to change brightness by\n \"search_confidence_threshold\": 0.5, // Minimum confidence for entity matching, from 0 to 1 (correlates to a percentage)\n \"assist_only\": true, // Only pull entities exposed to Home Assistant Assist\n \"timeout\": 5, // Timeout for Home Assistant API requests in seconds\n \"log_level\": \"INFO\" // Logging level (DEBUG, INFO, WARNING, ERROR)\n}\n```\n\n### Legacy Configuration Support\n\nIf you're migrating from the previous neon-homeassistant-skill with ovos-PHAL-plugin-homeassistant, the skill will automatically detect and use configuration from your `mycroft.conf` or `neon.yaml`. However, we recommend migrating to the new settings.json location.\n\n### Hostname Considerations\n\nMycroft Mark II may not support `.local` hostnames (e.g., `homeassistant.local`). Options include:\n\n1. Use the IP address of your Home Assistant instance (recommended for local access)\n2. Use your Nabu Casa DNS if you have a subscription (requires internet connectivity)\n3. Use a local DNS server that resolves to your Home Assistant instance\n\n## Usage\n\n### Voice Commands\n\n#### Lights\n\n- \"Turn on/off [device name]\"\n- \"Set [device name] brightness to [X] percent\"\n- \"Increase/decrease [device name] brightness\"\n- \"What color is [device name]?\"\n- \"Set [device name] color to [color]\"\n- \"What's the brightness of [device name]?\"\n\n#### Switches\n\n- \"Turn on/off [device name]\"\n- \"Toggle [device name]\"\n\n#### Covers\n\n- \"Open/Close [device name]\"\n- \"Set [device name] position to [X] percent\"\n- \"Stop [device name]\"\n\n#### Sensors\n\n- \"What's the temperature in [sensor name]?\"\n- \"What's the status of [sensor name]?\"\n\n#### Home Assistant Assist\n\n- \"Ask Home Assistant [command]\" (passes command directly to HA Assist API)\n\n### Silent Mode\n\nAdd devices to the `silent_entities` list to control them without voice feedback:\n\n```json\n{\n \"silent_entities\": [\"light.kitchen\", \"switch.office\"]\n}\n```\n\n### Disabling Intents\n\nIf you don't want the skill's intents enabled (e.g., when shipping in a voice assistant image), set `disable_intents` to true:\n\n```json\n{\n \"disable_intents\": true\n}\n```\n\n## Troubleshooting\n\n### Common Issues\n\n1. **Connection Failures**\n\n - Verify your Home Assistant instance is reachable\n - Check the host URL format (should include protocol, e.g., `https://`)\n - Ensure your token has the required permissions\n\n2. **Entity Not Found**\n\n - Check if the entity is exposed to Home Assistant Assist\n - Verify the entity name matches exactly\n - Try using the entity's friendly name\n\n3. **Authentication Issues**\n - For long-lived tokens: Verify the token is valid and not expired\n - For OAuth: Try re-authenticating with \"connect to home assistant\"\n\n### Debug Mode\n\nEnable debug logging for more detailed information:\n\n```json\n{\n \"debug\": true,\n \"log_level\": \"DEBUG\"\n}\n```\n\n## Upcoming Features\n\n- Vacuum functions\n- HVAC functions\n- Media player control\n- Camera integration\n\n## Contributing\n\nContributions are very welcome! Please read our contributing guidelines and submit pull requests to our GitHub repository.\n\n## License\n\nApache License 2.0\n\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "A unified OVOS/Neon.AI Skill for Home Assistant.",
"version": "0.3.0",
"project_urls": null,
"split_keywords": [
"ovos",
" neon",
" home",
" assistant",
" voice",
" interface",
" skill",
" plugin"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "a2123c4fd137fb3f0d2c389d39e682cdcab1e088805659c6fc3d210cf6cc6524",
"md5": "8f9dea0ced69811e09fd35457b306429",
"sha256": "3ba74c4c8656d7d9849b41088594f219f55bb9445229cec753354e84ed1e7193"
},
"downloads": -1,
"filename": "skill_homeassistant-0.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8f9dea0ced69811e09fd35457b306429",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.9",
"size": 31890,
"upload_time": "2025-08-11T03:13:55",
"upload_time_iso_8601": "2025-08-11T03:13:55.616514Z",
"url": "https://files.pythonhosted.org/packages/a2/12/3c4fd137fb3f0d2c389d39e682cdcab1e088805659c6fc3d210cf6cc6524/skill_homeassistant-0.3.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ad3e1ffe4055c89f267930f7966c05915163022db689ecb53e25f37a1a2bbc45",
"md5": "f163878a73e4060837402705cad8e49b",
"sha256": "2d98e569104ce7f27d6716310189a1295757713f12c66249242899f57d48e6c0"
},
"downloads": -1,
"filename": "skill_homeassistant-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "f163878a73e4060837402705cad8e49b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.9",
"size": 23067,
"upload_time": "2025-08-11T03:13:56",
"upload_time_iso_8601": "2025-08-11T03:13:56.618107Z",
"url": "https://files.pythonhosted.org/packages/ad/3e/1ffe4055c89f267930f7966c05915163022db689ecb53e25f37a1a2bbc45/skill_homeassistant-0.3.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-11 03:13:56",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "skill-homeassistant"
}