Home assistant rhasspy server satellite issue

My server as 2 functions : server and satellite.

I did not check your settings in detail, but I followed the satellite instructions in the docs (https://rhasspy.readthedocs.io/en/latest/tutorials/#server-with-satellites) and get the siteId of the satellite when I use a satellite. As MQTT broker I use the one running on hassio.

I will show you my settings:

This is my master aka server, which is also being actively used in a room:

This is one of my satellites:

Hi

@HorizonKane
thanks for your reply. I changed my settings from using the remote http to hermes mqtt as you have it in your settings. This works for now :+1: So I can continue with my proof of concept.
However the docs state that the preferred approach is using the remote http to reduce mqtt traffic. So I used it and still intend to do so in the future. I guess it’s a bug with the remote http config or maybe its by design. I don’t know. That’s a question for @synesthesiam or @maxbachmann

@cakp59
To be clear everything works except I get the wrong siteid at the external mqtt.
I see that you are using the internal mqtt on both your master and your satellite. So maybe thats the difference. How did you check that you get the correct siteid?

Best Regards and stay healthy.
Marc

Have you tried setting intent handling on the satellites instead of the master / server?

I did try intents on the server - like you but could not get it to work at all.

My setup differs slightly - my intents are going to home assistant and not remote http…

The siteid is passed correctly in this setup, so that i can respond to the correct satellite.

I tried remote http once but failed. Im sure I did something wrong but as MQTT is working great I keep it. To reduce mqtt traffic you can define an UDP audio port like suggested in the satellite tutorial.

In my configuration, Home assistant receive the rhasspy server siteId : I use the development tools :

my setup is working fine. My Intent handling is setup on the satellite NOT the server. I am publishing events to home assistant. You can see the correct site id as ‘slave’ in the home assistant screen.
hope this helps.

I would prefer to handle intents on the server, but have not managed to get it working.

Hi,
thank you all for sharing your working configs. Great community :+1: :+1: :+1:
Sorry I should have mentioned it before I don’t have Home Assistant, so basically I planned using openHAB and Node-Red based on the Hermes MQTT messages from master. Note that Intent Handling is disabled on my master and satellite.
I was hoping that it would be possible to have only the master talking to the external mqtt broker and the satellites using the internal mqtt, connecting via the remote http method to keep things a bit more organized.
However that doesn’t seem to work like I was expecting it.

I also tried the the udp approach but I get some weird behavior. Initially no message is sent via MQTT, as you would expect, but after speaking the wake word I get the wakeup sound twice, so I guess two sessions. Then the audio is streamed via mqtt but it don’t seem to stop for at least a minute or even more. :scream:

For now I reverted back to the Remote HTTP method getting the same results as shown in the screenshot from @cakp59. However that way I don’t know which satellite was used.

Will do some more tests (probably tomorrow) and post my results.

Thanks again for your help.

@friendofgermany On which mqtt topics are you listening for the intents with node-red ?
You could also try and look if the messages from the websocket contain the correct siteid. I dont have a satelite setup yet, so i can not test it at the moment.

Websocket connection from node-red

There is no extra setting that you need to activate to use this method of handling intents.
grafik
You wil need to use the ip of your rhasspy server instead of 127.0.0.1 obviously.

1 Like

I would suggest you to do a fresh install and configure as per the satellite tutorial. That way you should get the correct siteID for sure.

I am also using Node-Red by the way, having intent handling disabled in rhasspy (on master not disabled but it is set to Remote HTTP with no URL so essentially disabled I think). I handle my intents completely in Node-Red with a webhook, like you intend to do it.

I also see no big advantage in using Remote HTTP vs MQTT as long as you set an UDP audio Port to keep voice in the satellites until recongnition (is in the satellite tutorial).

1 Like

Hello,
To-day, I have updated my server-satellites configuration (docker pull rhasspy/rhasspy).
By using MQTT and my new configuration all is now OK (server and satellites are usable) : satellite send request to server which sent it to Home Assistant with siteId of satellite, so that Home Assistant can send back an answer to satellite.
Thank’s to everybody for help.

2 Likes

Glad you got it working :slight_smile:

Hi,

I started from scratch as suggested by @HorizonKane now for both master and satellite using the mqtt approach and the udp settings for audio streaming as documented in the tutorial. On the Pi there was definitely something messed up.
For the master I exposed the mqtt port 12138 so that my satellites can directly connect via mqtt to the master.
That way I can separate my existing broker from the Rhasspy setup. The siteId is correct in this setup.

@moqart
I tried the websocket method earlier and I think (80% sure) that the site id was the master one.
I listen on hermes/intent/

Here is my config if anyone is interested:

Master

Satellite:

Again thank you all for your great support. :+1: :+1: :+1: :+1:

2 Likes

@friendofgermany Which Hardware are you using for your satelites. I am thinking about setting up a satelite for my own setup.

I’m using a Pi Zero W and a ReSpeaker 2-Mics Pi HAT for under 10USD.
I did some tests and I think for the price the results are really good. Wake word was detected about 4m away without issues. Will do some more tests later.

I am using the same setup for satellites and it is performing good. Recording a good wakeword and modify the audio gain setting was crucial but now it is near perfect.

I am happier with rhasspy than I was with Snips already. Almost no false positives and still responding 98% of the time.

With Snips I also had the problem that often the satellite in the other reacted together with the correct one, this has gone away, too with rhasspy.

Which audio settings are you using for the ReSpeaker 2-Mics Pi HAT? I have the same setup, but I feel that it can use some tweaking.

i am using the default settings for my respeaker 2 mic hat. I get some noise on my recordings but wakeword and tts work great.

Find my current settings here:

1 Like