skill-homeassistant


Nameskill-homeassistant JSON
Version 0.3.0 PyPI version JSON
download
home_pageNone
SummaryA unified OVOS/Neon.AI Skill for Home Assistant.
upload_time2025-08-11 03:13:56
maintainerNone
docs_urlNone
authorMike Gray
requires_python<4.0,>=3.9
licenseApache-2.0
keywords ovos neon home assistant voice interface skill plugin
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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"
}
        
Elapsed time: 0.43837s