Local Command Intent Handler difficulties

I’m trying to set up Rhasspy to call a Python program that I have written using the local command intent handler. However, despite having enabled the local command intent handler and supplying the path to the script, when an intent is recognized the script is not getting called and I do not see any message in the log relating to the intent handling at all. No error, no success, nothing. I am running Rhasspy inside of a Docker container, so it’s possible that the script isn’t visible where I have put it, but I would expect to see an error message if that’s the case.

Tell us a bit more about docker commands to start, the settings in Rhasspy and where you have put the script.
Otherwise it is a bit hard for us to help.

Sure, no problem. The Docker command is basically the same as in the tutorial, but I have opened up an additional port.

docker run -d -p 12101:12101 -p 12183:12183 \
      --name rhasspy \
      --restart unless-stopped \
      -v "$HOME/.config/rhasspy/profiles:/profiles" \
      -v "/etc/localtime:/etc/localtime:ro" \
      --device /dev/snd:/dev/snd \
      rhasspy/rhasspy \
      --user-profiles /profiles \
      --profile en

Here are the settings for the command handler. The script is located at the location indicated.

{
    "dialogue": {
        "system": "rhasspy"
    },
    "handle": {
        "command": {
            "program": "/home/sloth/sloth/sloth_client.py"
        },
        "system": "command"
    },

Even if this is not an appropriate location, shouldn’t I be getting an error in the logs?

Hey Light,
This may be a case of having a hammer so everything looks like a nail :grinning: but have you considered using MQTT? I’ve had a lot of success having a python script that listens for a topic in MQTT, and then firing when the correct topic/message is published.
Jeffrey

Hey Jeff. I actually have used MQTT for another project, and was simply looking to do something a little “simpler” this time. However, maybe it ends up being not that much simpler. And that is in fact the port that I opened up on the Docker container.

This path is not available in the contrainer.
Put your script somewhere in the profiles folder (with the language path)
You can use ${RHASSPY_PROFILE_DIR}/sloth/sloth_client.py in the command.
The file should then be wherever your profiles dir is, in you case

$HOME/.config/rhasspy/profiles/en/sloth/sloth_client.py

assuming your language is en.

I would say yes, but apparently not

Yeah, I thought it might be something like that. But I guess I just got thrown off by not getting an error. In any case, I guess I’m not going to pursue this further, because I have already gotten MQTT working, and I think it’s going to make things a bit simpler for what I’m trying to do.

1 Like