22

I am currently using fauxmo to send custom commands to various devices to turn them on/off (For instance I have a WiFi to IR converter to control my Tuner & TV) and I can turn the tv on/off with this.

I also have Kodi integration setup, so I can say:

Alexa, Ask Kodi to set volume to 50%

But I'd like to be able to say:

Alexa, Set tuner volume to 50%
Alexa, Play Bluray

I.e. I want to be able to control devices without needing an Ask xxxx as part of my request.

Ideally I want to do this without a cloud-based service (i.e. SmartThings or Wink).

I like the solution used by fauxmo (emulate an existing UPNP service), but it is limited to on/off (and 'dim' if you use the Hue enabled patch) and not really flexible enough.

Bence Kaulics
  • 7,843
  • 8
  • 42
  • 90
PhratcuredBlue
  • 323
  • 1
  • 2
  • 5

5 Answers5

12

I've been exploring dropping the invocation name for Alexa custom skills myself for a couple of projects. And what I came up with after hours of reading through guides and documentations is that... It can't be done for custom skills.

So, your best bet for your use case is to use Alexa Smart Home along with some smart home service. I know you said:

Ideally I want to do this without a cloud-based service (i.e. SmartThings or Wink)

Unfortunately, the only way to not have an invocation name with Alexa is to use their predefined APIs (i.e. Smart Home, List Skill, & Flash Briefing).

EDIT: Your use case falls within the Smart Home API though. So you can always create your own service that consumes that API instead on relying on other services (Wink, SmartThings, etc).

9

You should be able to do this now with Alexa's name free interaction.

To make your skill more discoverable for name-free interaction, you can implement the the CanFulfillIntentRequest interface in your skill

CSharper
  • 191
  • 1
  • 1
6

As lynx already details in his answer, there is no way to go completely without invocation name unless you're addressing the predefined APIs. However ask my skill is not the only way to use the invocation name.

The developer pages offer three different ways to use invocation names with a request.

“Alexa, Ask Daily Horoscopes for Gemini”

“Alexa, Talk to Daily Horoscopes and give me the horoscope for Taurus”

“Alexa, give me my Taurus horoscope using Daily Horoscopes

Alexa invocation name documentation

Furthermore this page shows what other words you can use to connect the request, the invocation name and the mandatory connection words. Thus, if you do create your own Alexa skill it's all about using a good invocation name and a good request to make it sound natural.

Even better, your echo should already react to this by starting the Blu-ray with your Kodi integration.

Alexa, play Blu-ray with Kodi.

So, while you cannot get rid of the invocation name outside the predefined APIs you can make the voice command feel more natural and skip the awkward ask ... usage.

Helmar
  • 8,450
  • 6
  • 36
  • 84
2

If you use special words not used by default by Alexa, it is actually possible. The method is quite tricky anyway.

You just need to avoid passing by AWS for your request! Impossible you say? Yes—it is possible.

In your Amazon Alexa app or on the Amazon Alexa web app, you log in in your Amazon Alexa account, and in --> settings --> history your have a live page of all requests and words that you will tell Alexa.

At this moment, you can use a web parser to get the word said and trigger a script if this word is the one you want, or you can use some amazing small software for Windows only that can trigger actions and scripts.

Here the link of the software. Check on YouTube for tutorials on how to use addtopad.

If you want to launch scripts, just trigger a listener on a port and a special request sent after a word in the software. I use it at home and I really like the fact of not having to say any invocation name.

After, as I said, you can use any words, even words like open. It will trigger your script, but you will hear a "sorry, I don't know that" from Alexa.

I use it and it work perfectly!

Glorfindel
  • 159
  • 1
  • 1
  • 9
-2

So is this Amazon documentation not true? https://developer.amazon.com/docs/custom-skills/understanding-how-users-invoke-custom-skills.html#invoking-a-skill-with-no-specific-request-no-intent

This seems to say fairly directly that you can say "Alexa" plus the invocation name. Such as "Alexa, Daily Horoscopes".

It also shows this method as a option #3 for custom skills: https://developer.amazon.com/docs/custom-skills/choose-the-invocation-name-for-a-custom-skill.html#invoking-custom-skills

Mike
  • 1