+1 for the external MQTT method for a master/satellite setup. It’s working great for me.
My intent handling happens on the satellites (I plugged my Home Assistant details into each one). If it’s supposed to happen on the server, then maybe I don’t have something configured right. But it seems to work well when handled by the satellites!
You can handle intents on the satellites, it just is more work doing so and the server is normally more powerful. It also means that you have to configure intents on all satellites instead of doing so once on the server.
Indeed. I’d certainly like to handle the intents on the server, but if I disable intent handling on the satellites and enable it on the server, nothing seems to be sent to Home Assistant.
If you’re talking about intent recognition, then yes, the server does that pretty well in my case. It’s just the handling that still has to be done on my satellites - the actual sending of events or intents to Home Assistant.
Can you share your configuration on both server and satellite?
For some reason when i ask for the time i get the response 4 time!
I also can’t seem to see the siteId sent in the intent json
I followed the exact instructions at the Getting Started Guide for an external MQTT broker. On my satellites I use arecord for recording, Snowboy for wake word, and aplay for playback. Speech to text, intent recognition, and text to speech are all set as Hermes MQTT. On the server, I have speech to text set to Kaldi, intent recognition as Fuzzywuzzy, and text to speech as PicoTTS. Make sure you name each satellite differently and then include those siteId’s as comma separated in the text fields for each of those server entries.
I actually don’t use Rhasspy for text to speech as I already have something else in place for that through Home Assistant. So I can’t answer your last two questions.
Each of the Pi Zero satellites I have around my house are running Snapcast, so my automations in HA just play TTS feedback on all of them. I have motion sensors around the house and mute/unmute each one based on my current location in the house. So Rhasspy is not doing any of the TTS at this point.
Interesting, I assume you use docker? Because Hermes MQTT does not seem to work from satellite to server at all (it works the other way around for playing sounds) if you use the python virtual env, see this post: Rhasspy 2.5: sattelite can not remotely detect wakeword
If you are using snips: in your HA configuration.yaml file, I’ve found you don’t need to set up intent handling with Rhasspy. The Snips component in HA listens to all of the Hermes MQTT topics and responds to intents (not events) appropriately.
I don’t know why you are beeping or getting the TTS twice.
Try disabling/turning off Home Assistant to see if you still get that behavior when you wake Rhasspy.
I can’t seem to make it work with the Master/Satellite over MQTT.
Master/Satellite over HTTP works great, except for the fact that the intent json doesn’t send siteID to hass. any idea for this?
Throwing my observations in there - if both dialogue managements (on sat and server) are on, I also get multiple beeps - different ones, when I set different sound files.