Skip to main content

A unified OVOS/Neon.AI Skill for Home Assistant.

Project description

Home Assistant Skill

Status: Active

Control your Home Assistant smart home devices through OVOS or Neon.AI voice assistants.

This unified skill replaces the legacy neon-homeassistant-skill and ovos-PHAL-plugin-homeassistant. Note: Do not install this skill alongside the legacy versions.

Features

  • Control lights (on/off, brightness, color)
  • Control switches and outlets
  • Monitor sensors
  • Control covers (open/close, position)
  • Activate scenes and run scripts (e.g. "turn on movie night")
  • 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:

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. 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
{
  "api_key": "<HA_LONG_LIVED_TOKEN>",
  "host": "<HA_IP_OR_HOSTNAME>"
}

Configuration Options

All available settings with their defaults:

{
  "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)
}

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:

{
  "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:

{
  "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:

{
  "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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

skill_homeassistant-1.4.0.tar.gz (36.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

skill_homeassistant-1.4.0-py3-none-any.whl (87.8 kB view details)

Uploaded Python 3

File details

Details for the file skill_homeassistant-1.4.0.tar.gz.

File metadata

  • Download URL: skill_homeassistant-1.4.0.tar.gz
  • Upload date:
  • Size: 36.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for skill_homeassistant-1.4.0.tar.gz
Algorithm Hash digest
SHA256 5f5955f6e598518dc07d3570ce063378f41ef2aac1ab0b1f5e11361d0433e955
MD5 f04be6a9febbce4a5e4fa63a3de0f93c
BLAKE2b-256 8a87633c9e3fbabd6564410a22630ca16cad271f412aa233540c0d709b3c5f65

See more details on using hashes here.

File details

Details for the file skill_homeassistant-1.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for skill_homeassistant-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 404b37a28ba1c9b789ece6a4ad5911e0ceb5560ecc258f955c5351d804afae3a
MD5 e29d96b9a3221782c454e491c379efdb
BLAKE2b-256 be2283b0f2fb87271c0614c4313e9e8a1bf74e782bcff4133463721d4cfcb142

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page