Rhasspy not working with fresh installed Home Assistant?

Dear Community,

I am using Rhasspy on two raspberrys (192.168.178.2 / 10) to send the communication to the second one for HomeAssistant (192.168.178.10 (port 8123)). It handled the commands very well over intent handling with the following settings:

system info (.2):
System Health

version: core-2021.4.3
installation_type: Home Assistant Container
dev: false
hassio: false
docker: true
virtualenv: false
python_version: 3.8.7
os_name: Linux
os_version: 5.10.63-v7l+
arch: armv7l
timezone: Europe/Berlin

logged_in: false
can_reach_cert_server: ok
can_reach_cloud_auth: ok
can_reach_cloud: ok

dashboards: 1
resources: 0
mode: auto-gen

api_endpoint_reachable: ok


{
“dialogue”: {
“system”: “rhasspy”,
“volume”: “0.2”
},
“handle”: {
“system”: “hass”
},
“home_assistant”: {
“access_token”: “CORRECT TOKEN FROM HOME ASSISTANT”,
“url”: “http://192.168.178.10:8123/
},
“intent”: {
“system”: “fsticuffs”
},
“microphone”: {
“arecord”: {
“device”: “default:CARD=Microphone”
},
“system”: “arecord”
},
“sounds”: {
“system”: “aplay”
},
“speech_to_text”: {
“kaldi”: {
“min_confidence”: “0.3”
},
“system”: “kaldi”
},
“text_to_speech”: {
“system”: “nanotts”
},
“wake”: {
“porcupine”: {
“keyword_path”: “blueberry_raspberry-pi.ppn”
},
“system”: “porcupine”
}
}

Now, I created a fresh install of Home Assistant on a computer and tried to send the intents to it and changed the IP to …54 - the port 8123 is open but it isnt working. There is no response from the Home Assistant / no intent handling.
I already checked the scripts, they can be activated and work if I execute them directly in Home Assistant. And if I change the Rhasspy back to send the intents to the second raspberry (.10) the intents are also handled correctly…

Any help would be appreciated.

Thanks!

Can you post you IntentHandling scripts? Are the new and old the same?
Did you also create a token in the new HA and updated it?

Hey romkabouter, thank you for your answer.

The scripts are the same (copied).
Here is the configuration.yaml:


# Configure a default setup of Home Assistant (frontend, api, etc)
default_config:

sensor:
  - platform: time_date
    display_options:
      - 'time'
      - 'date'
      - 'date_time'
      - 'date_time_utc'
      - 'date_time_iso'
      - 'time_date'
      - 'time_utc'
      - 'beat'

# Text to speech
tts:
  - platform: google_translate

timer:
  rhasspy:

spotify:
  client_id: XXX
  client_secret: XXX

intent:
intent_script:
  GetTime:
    speech:
      text: Es ist {{ states('sensor.time') }}
  GetDate:
    speech:
      text: Es ist der {{ states('sensor.date') }}
  GetTemperature:
    speech:
      text: Es hat {{ states('sensor.openweathermap_temperature') }} Grad, es ist {{ states('sensor.openweathermap_weather') }} mit {{ states('sensor.openweathermap_humidity') }} Prozent Luftfeuchtigkeit und der Wind weht mit {{ states('sensor.openweathermap_wind_speed') }} Metern pro Sekunde. Außerdem soll es bald {{ states('sensor.openweathermap_forecast_temperature') }} Grad haben
  ChangeLightState:
    speech:
     text: Ok.
    action: 
     service: script.{{ ort }}_licht_{{ state }}
  AddToEinkaufsliste:
    speech:
     text: Ok, ich habe {{ stk }} {{ gegenstand }} auf die Einkaufsliste gesetzt
    action:
      - service: shopping_list.add_item
        data_template:
          name: "{{ stk if stk != NULL else '1' }} {{ gegenstand if gegenstand != NULL else '?' }}"
  SetTimer:
    action:
      - service: timer.start
        target:
          entity_id: timer.timer1
        data_template:
          duration: "{{ stunden if stunden != NULL else '00' }}:{{ minuten if minuten != NULL else '00'}}:{{ sekunden if sekunden != NULL else '00' }}"
    speech:
      text: Timer gesetzt {{ stunden if stunden != NULL }} {{ 'stunden' if stunden != NULL }} {{ minuten if minuten != NULL }} {{ 'minuten ' if minuten != NULL }} {{ sekunden if sekunden != NULL }} {{ 'sekunden' if sekunden != NULL }}
  SpotifySwitchGeraet:
    action:
      - service: media_player.select_source
        target:
          entity_id: media_player.spotify
        data_template:
          source: "{{ geraet if geraet != NULL else 'Wohnzimmer' }}"
      - service: media_player.media_play
        target:
          entity_id: media_player.spotify
        data:
          media_content_id: "https://open.spotify.com/playlist/HIDDEN"
          media_content_type: playlist
  SpotifyStop:
    action:
      - service: media_player.media_pause
        target:
          entity_id: media_player.spotify
  SpotifyPlay:
    action:
      - service: media_player.media_play
        target:
          entity_id: media_player.spotify
        data:
          media_content_id: "https://open.spotify.com/playlist/...HIDDEN"
          media_content_type: playlist

group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml

The tokens are up to date (new and the IP is correct and port is opened)
I already tried it with other tokens but the result is the same.

In the log of rhasspy everything seems ok, but the intent doesnt seem to work because nothing happens (with the new system).

Example of a command which should trigger “ChangeLightState”

[DEBUG:2021-11-16 21:32:33,440] rhasspyserver_hermes: Sent 699 char(s) to websocket
[DEBUG:2021-11-16 21:32:33,437] rhasspyserver_hermes: Handling NluIntent (topic=hermes/intent/ChangeLightState, id=3b976849-1c82-40ef-b583-3ff1423b69af)
[DEBUG:2021-11-16 21:32:33,436] rhasspyserver_hermes: <- NluIntent(input='kuche aus', intent=Intent(intent_name='ChangeLightState', confidence_score=1.0), site_id='site1', id='5dc4d9ba-f00c-4b21-816b-639254b38315', slots=[Slot(entity='Lichter', value={'kind': 'Unknown', 'value': 'kuche'}, slot_name='ort', raw_value='küche', confidence=1.0, range=SlotRange(start=0, end=5, raw_start=0, raw_end=5)), Slot(entity='state', value={'kind': 'Unknown', 'value': 'aus'}, slot_name='state', raw_value='aus', confidence=1.0, range=SlotRange(start=6, end=9, raw_start=6, raw_end=9))], session_id='5dc4d9ba-f00c-4b21-816b-639254b38315', custom_data=None, asr_tokens=[[AsrToken(value='kuche', confidence=1.0, range_start=0, range_end=5, time=None), AsrToken(value='aus', confidence=1.0, range_start=6, range_end=9, time=None)]], asr_confidence=None, raw_input='küche aus', wakeword_id=None, lang=None)
[DEBUG:2021-11-16 21:32:33,374] rhasspyserver_hermes: Publishing 263 bytes(s) to hermes/nlu/query
[DEBUG:2021-11-16 21:32:33,373] rhasspyserver_hermes: -> NluQuery(input='küche aus', site_id='site1', id='5dc4d9ba-f00c-4b21-816b-639254b38315', intent_filter=None, session_id='5dc4d9ba-f00c-4b21-816b-639254b38315', wakeword_id=None, lang=None, custom_data=None, asr_confidence=None, custom_entities=None)

I have to say that the new system is a debian 10. (but also running with docker)

Hm ok, does look ok. It is a bit hard to troubleshoot because I see you do not use MQTT for intents.
Rhasspy should post a json to the /api/intent but since I do not use intent_script I do not know a way to check it that json is indeed posted.

Is there maybe something in the loggin of Home Assistant? Maybe an error or something?

Sadly there is no log about the tokens used or logins from rhasspy.

You said I should use MQTT?
Is it that much different/better?

It might be easier for debugging, but both should work.
Also, with MQTT you can end the session and send a TTS response (to Rhasspy, not the HA TTS), but that is independent from the intent_script.

There must be something in error somewhere, but I am afraid I cannot help you with that from here.
How do you change the IP? I assume in the frontend and then restart Rhasspy? Setting is still on intents and not events?

1 Like

Okay, thank you for the info.

I always used the intent scripts and they worked without a problem.
The problems all started a few days ago.
Now suddenly the first raspberrypi (192.168.178.2) can only send to the old Home Assistant on the second raspberry (192.168.178.10).

On the raspberry where the old Home Assistant runs (192.168.178.10) no intents are recognized anymore from the rhasspy on it. How can that be? It is accessible from the outside (192.168.178.2) rhasspy but not from the one rhasspy on itself?
I already copied/used the same advanced config because the systems and settings are the same.
Nothing changed on it, but it seems that not only connecting my new Home Assistant system makes problems.

EDIT: yes, it is on intents and the IP is correct and was changed through the frontend/webUI
When trying to connect any of the raspberrys to the new Home Assistant system (192.168.178.54) none of them work.

I now created a new home assistant with the home assistant os version. It was a lot of work to port everything but now it works. I changed literally nothing.

Thank you anyways for trying to help.

1 Like