Server-Satellite not sending to Home Assistant

Is it possible to run the Server with Satellite tutorial but handling intent with home assistant at server?

The intent is handled properly in HomeAssistant when recorded from server, but no from satellite. The long lived token is set. The tutorial is working and the intents from Satellite works in server

Any ideas?

Running with Docker and Rhasspy version 2.5

So just to be sure i understand what you mean:
You have a Satelite and a “normal” instance of rhasspy up and running.
Your server is passing the intent handling to home assistant but your satelite isn’t.

If thats the case, most probably you have something setup wrong either with intent handling or recognition. Most times you only have wakeword and stt with sometimes intentrecognition running on the satelite.

And you are using the eventbased API for home asisstant?

Let me explain it more, the satellite is passing the stt to the server, and the intent is recognized in the server (like in the tutorial), but no handled to home assistant (yes, i’m using the event based API).

But with the same configuration (at server), and recording the audio in the server, works properly in home assistant with the automation

Let me show the configuration

Every green field in server has the satellite id.

Wait. So the Intent is recognized but not handled if it comes from the satelite? Can you paste some logs?

This is similar to the following post:

I’m not using a rhasspy based satellite as it is a ESP32 Matrix Voice and its scope is much more limited. It does appear as though a fix might be in place:

Give it a shot and see!

I’m also interested in a fix to this issue. (+1) :grinning:
I did see the issue on github, and that it has been resolved and closed.

So I tried the latest 2.5 Docker (released 6/7 days ago) but unfortunately intent handling does not work on the Server for me either. (i have a pi4 server and a couple of pi0 satellites).

I am using an external MQTT server, and i publish ‘events’ to Home assistant. It works flawlessly if i do intent handling on the satellites. As i say, i tried it on the server again after the last docker release but it doesn’t work from the server.

I would like to get it working on a server as i have a Matrix voice that i want to try. I imagine i will need server based intents for this to work although i have not really looked closely as to how this should be configured.

Satellite Log

[DEBUG:2020-06-21 15:50:42,892] rhasspyserver_hermes: <- NluIntent(input=‘Haz café’, intent=Intent(intent_name=‘Cafe’, confidence_score=1.0), site_id=‘satellite’, id=None, slots=[], session_id=‘satellite-porcupine-8d571eae-b306-4181-9216-2a60913207cc’, custom_data=None, asr_tokens=[[AsrToken(value=‘Haz’, confidence=1.0, range_start=0, range_end=3, time=None), AsrToken(value=‘café’, confidence=1.0, range_start=4, range_end=8, time=None)]], asr_confidence=None, raw_input=‘haz café’, wakeword_id=‘porcupine’, lang=None)
[WARNING:2020-06-21 15:50:39,307] rhasspyserver_hermes: Dialogue management is disabled. ASR will NOT be automatically enabled.
[DEBUG:2020-06-21 15:50:39,305] rhasspyserver_hermes: <- HotwordDetected(model_id=’/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspywake_porcupine_hermes/porcupine/resources/keyword_files/raspberrypi/porcupine.ppn’, model_version=’’, model_type=‘personal’, current_sensitivity=0.5, site_id=‘satellite’, session_id=None, send_audio_captured=None, lang=None)
[DEBUG:2020-06-21 15:50:31,633] speech_to_text.pocketsphinx.mix_weight >0 0 = False
[DEBUG:2020-06-21 15:50:31,631] speech_to_text.pocketsphinx.open_transcription True False = False
[DEBUG:2020-06-21 15:50:31,630] speech_to_text.system pocketsphinx hermes = False
[INFO:2020-06-21 15:50:31,465] rhasspyserver_hermes: Started
[DEBUG:2020-06-21 15:50:31,464] rhasspyserver_hermes: Subscribed to rhasspy/asr/satellite/satellite/audioCaptured
[DEBUG:2020-06-21 15:50:31,462] rhasspyserver_hermes: Subscribed to hermes/intent/#
[DEBUG:2020-06-21 15:50:31,461] rhasspyserver_hermes: Subscribed to hermes/audioServer/satellite/audioSummary
[DEBUG:2020-06-21 15:50:31,460] rhasspyserver_hermes: Subscribed to hermes/asr/textCaptured
[DEBUG:2020-06-21 15:50:31,459] rhasspyserver_hermes: Subscribed to hermes/nlu/intentNotRecognized
[DEBUG:2020-06-21 15:50:31,457] rhasspyserver_hermes: Subscribed to hermes/hotword/+/detected
[DEBUG:2020-06-21 15:50:31,456] rhasspyserver_hermes: Subscribed to hermes/audioServer/satellite/audioSummary
[DEBUG:2020-06-21 15:50:31,454] rhasspyserver_hermes: Subscribed to rhasspy/asr/satellite/satellite/audioCaptured
[DEBUG:2020-06-21 15:50:31,453] rhasspyserver_hermes: Subscribed to hermes/nlu/intentNotRecognized
[DEBUG:2020-06-21 15:50:31,452] rhasspyserver_hermes: Subscribed to hermes/intent/#
[DEBUG:2020-06-21 15:50:31,450] rhasspyserver_hermes: Subscribed to hermes/asr/textCaptured
[DEBUG:2020-06-21 15:50:31,449] rhasspyserver_hermes: Subscribed to hermes/hotword/+/detected
[DEBUG:2020-06-21 15:50:31,448] rhasspyserver_hermes: Connected to MQTT broker
[DEBUG:2020-06-21 15:50:31,429] rhasspyserver_hermes: Connecting to (retries: 0/10)
[DEBUG:2020-06-21 15:50:31,428] rhasspyserver_hermes: Starting core
[DEBUG:2020-06-21 15:50:31,419] rhasspyprofile.profile: Loading default profile settings from /usr/lib/rhasspy/lib/python3.7/site-packages/rhasspyprofile/profiles/defaults.json
[DEBUG:2020-06-21 15:50:31,417] rhasspyprofile.profile: Loading /profiles/es/profile.json
[DEBUG:2020-06-21 15:50:31,413] rhasspyprofile.profile: Loading /usr/lib/rhasspy/lib/python3.7/site-packages/rhasspyprofile/profiles/es/profile.json
[DEBUG:2020-06-21 15:50:30,664] rhasspyserver_hermes: Restarting Rhasspy

Server Log

[DEBUG:2020-06-21 15:50:32,531] speech_to_text.pocketsphinx.mix_weight >0 0 = False
[DEBUG:2020-06-21 15:50:32,530] speech_to_text.pocketsphinx.open_transcription True False = False
[DEBUG:2020-06-21 15:50:32,530] Skipping acoustic_model/variances (/profiles/es/acoustic_model/variances)
[DEBUG:2020-06-21 15:50:32,530] Skipping acoustic_model/transition_matrices (/profiles/es/acoustic_model/transition_matrices)
[DEBUG:2020-06-21 15:50:32,529] Skipping acoustic_model/sendump (/profiles/es/acoustic_model/sendump)
[DEBUG:2020-06-21 15:50:32,529] Skipping acoustic_model/noisedict (/profiles/es/acoustic_model/noisedict)
[DEBUG:2020-06-21 15:50:32,528] Skipping acoustic_model/mixture_weights (/profiles/es/acoustic_model/mixture_weights)
[DEBUG:2020-06-21 15:50:32,528] Skipping acoustic_model/means (/profiles/es/acoustic_model/means)
[DEBUG:2020-06-21 15:50:32,528] Skipping acoustic_model/mdef (/profiles/es/acoustic_model/mdef)
[DEBUG:2020-06-21 15:50:32,527] Skipping acoustic_model/feat.params (/profiles/es/acoustic_model/feat.params)
[DEBUG:2020-06-21 15:50:32,527] Skipping g2p.fst (/profiles/es/g2p.fst)
[DEBUG:2020-06-21 15:50:32,526] Skipping base_dictionary.txt (/profiles/es/base_dictionary.txt)
[DEBUG:2020-06-21 15:50:32,526] speech_to_text.system pocketsphinx pocketsphinx = True
[INFO:2020-06-21 15:50:32,412] rhasspyserver_hermes: Started
[DEBUG:2020-06-21 15:50:32,412] rhasspyserver_hermes: Subscribed to hermes/asr/textCaptured
[DEBUG:2020-06-21 15:50:32,411] rhasspyserver_hermes: Subscribed to hermes/hotword/+/detected
[DEBUG:2020-06-21 15:50:32,411] rhasspyserver_hermes: Subscribed to hermes/nlu/intentNotRecognized
[DEBUG:2020-06-21 15:50:32,410] rhasspyserver_hermes: Subscribed to hermes/intent/#
[DEBUG:2020-06-21 15:50:32,410] rhasspyserver_hermes: Subscribed to rhasspy/asr/master/master/audioCaptured
[DEBUG:2020-06-21 15:50:32,409] rhasspyserver_hermes: Subscribed to hermes/audioServer/master/audioSummary
[DEBUG:2020-06-21 15:50:32,409] rhasspyserver_hermes: Subscribed to hermes/audioServer/master/audioSummary
[DEBUG:2020-06-21 15:50:32,408] rhasspyserver_hermes: Subscribed to rhasspy/asr/master/master/audioCaptured
[DEBUG:2020-06-21 15:50:32,408] rhasspyserver_hermes: Subscribed to hermes/nlu/intentNotRecognized
[DEBUG:2020-06-21 15:50:32,407] rhasspyserver_hermes: Subscribed to hermes/intent/#
[DEBUG:2020-06-21 15:50:32,406] rhasspyserver_hermes: Subscribed to hermes/asr/textCaptured
[DEBUG:2020-06-21 15:50:32,405] rhasspyserver_hermes: Subscribed to hermes/hotword/+/detected
[DEBUG:2020-06-21 15:50:32,404] rhasspyserver_hermes: Connected to MQTT broker
[DEBUG:2020-06-21 15:50:32,401] rhasspyserver_hermes: Connecting to (retries: 0/10)
[DEBUG:2020-06-21 15:50:32,401] rhasspyserver_hermes: Starting core
[DEBUG:2020-06-21 15:50:32,395] rhasspyprofile.profile: Loading default profile settings from /usr/lib/rhasspy/lib/python3.7/site-packages/rhasspyprofile/profiles/defaults.json
[DEBUG:2020-06-21 15:50:32,394] rhasspyprofile.profile: Loading /profiles/es/profile.json
[DEBUG:2020-06-21 15:50:32,393] rhasspyprofile.profile: Loading /usr/lib/rhasspy/lib/python3.7/site-packages/rhasspyprofile/profiles/es/profile.json
[DEBUG:2020-06-21 15:50:31,939] rhasspyserver_hermes: Restarting Rhasspy

And About @Zoso suggestion, yes, it appears to be the same issue. And with the HTTP alternative is working properly, thanks for that

I know I’m late to this discussion … but … surely setting the satellite’s Rhasspy “Intent Handling” method to [Disabled] prevents the satellite ever asking the HA server to action anything ?

I have assumed that the image in the documentation at is wrong … but what I have been trying to find is what Remote URL I need to direct the satellite to. Unfortunately the Documentation referenced gives only generic "url": "http://<address>:<port>/path/to/endpoint" without giving a clue as to whether directing to the HA or Rhasspy port, let alone what endpoint address to use.

Quite frankly, I am bamboozled by the Intent Handling options. On a satellite, do we use “Remote HTTP” like the other services we are requesting another machine to do … or the “Home Assistant” option, calling directly to the HA/base machine on port 8123 ?
Or should the satellite use “Remote HTTP” to the base’s Rhasspy on port 12101 - which in turn calls “Home Assistant”? No, the tutorial shows the Base station’s Intent Handling as also “Disabled”.

I believe this is the same issue I ran into where the Rhasspy Base was stripping the Satallite’s ID when passing the intent off to HA.

You can see the GitHub issue I opened here:

Appologies if this is a different issue.

Sorry for not getting back earlier when i got it working.

I note that the Server with Satellites tutorial in the documentation shows neither machine handling the intents :frowning:

Yes it is the satellite which has to call the HA server

and Intent Handling on the Base station can be disabled.

After months of confusion, my conclusion is that it is basically a client-server architecture where the Satellite hears the voice so initiates the transaction and supervises it through all the steps. Some of the steps can be done remotely as services on the Base Rhasspy machine.

The odd thing is “Dialogue Management”, which isn’t one of the actual steps, and I found needs to happen on the Base station and not the satellite.