How Rhasspy Integrates with Home Assistant, Node-RED, and Other Home Automation Software

Updated

Rhasspy connects to home automation software by turning spoken commands into structured JSON events and delivering them over MQTT (Hermes protocol), HTTP, or WebSockets. Home Assistant and Hass.io have built-in support, and Node-RED, Jeedom, and OpenHAB are listed as compatible targets. The practical requirement is that you author voice commands in Rhasspy's template language and train them, then wire the resulting intents into your automation tool.

The core mechanism: commands in, JSON out

You define voice commands in a template language. The documentation example is:

[LightState]
states = (on | off)
turn (){state} [the] light

When Rhasspy recognizes a matching utterance, it produces a JSON event:

{
  "text": "turn on the light",
  "intent": {
    "name": "LightState"
  },
  "slots": {
    "state": "on"
  }
}

Your automation software listens for that event and acts on the intent.name and slots values. This separation matters: Rhasspy handles wake word, speech-to-text, and intent recognition, while your home automation system decides what to actually do.

Integration paths

Path How it works Best when
Hermes MQTT Rhasspy sends and receives Hermes protocol messages (compatible with Snips.AI services) You already run an MQTT broker or want a decoupled, event-driven setup
HTTP API The web UI's full functionality is exposed in a comprehensive HTTP API You want to trigger configuration, training, or recognition from scripts
WebSockets Connect a WebSocket to one of Rhasspy's endpoints You need a persistent, low-latency connection for streaming events
Built-in support Home Assistant and Hass.io have native support You run Home Assistant and want the shortest path to a working setup

The documentation explicitly states Rhasspy is optimized for working with external services via MQTT, HTTP, and WebSockets, and that Home Assistant and Hass.io have built-in support.

What a Node-RED flow looks like conceptually

A Node-RED flow subscribes to the intent event and branches on intent.name. For the example above, the flow would check for LightState and read slots.state to decide whether to turn the light on or off. The documentation names Node-RED flows as a direct trigger target for Rhasspy's JSON events.

Getting from install to integration

The documented getting-started sequence is:

  1. Make sure you have the necessary hardware (audio input and output are listed as separate topics in the docs).
  2. Choose an installation method.
  3. Access the web interface to download a profile.
  4. Author your custom voice commands and train Rhasspy.
  5. Connect Rhasspy to other software such as Home Assistant or a Node-RED flow by sending and receiving Hermes MQTT messages, using the HTTP API, or connecting a WebSocket.

Steps 1–4 are prerequisites; step 5 is where integration actually happens. Skipping training means no intents will fire, regardless of how your automation side is configured.

Choosing your connection method

  • Pick MQTT/Hermes if you want Rhasspy and your automation logic to run as independent services, or if you already have a broker and other Hermes-compatible tools.
  • Pick built-in Home Assistant support if Home Assistant is your hub and you want the least custom wiring.
  • Pick HTTP or WebSockets if you are scripting against Rhasspy itself — for example, triggering training or recognition from an external program — rather than only consuming intent events.

Where to go next

The documentation points to a Getting Started Guide, a "Why Rhasspy?" whitepaper, and a community Discourse site for troubleshooting, plus a GitHub issue tracker. Supported languages are covered on a dedicated page, which matters if your household does not speak English.