Using an Elgato Stream Deck and Home Assistant to bring Samuel L Jackson into your Microsoft Teams meetings

Time for another in the series of “completely useless, but fun things to do with technology” series.

I have an Elgato Stream Deck, along with Key Lights and arm-mounted Wave:3 microphone. They make amazing kit, you can really tell the quality of the build and technology.

For a while I haven’t had much use for the Stream Deck other than controlling the LED light strip behind me. As I’m not a professional YouTuber or podcaster, I don’t really have the need to have fart sounds available within arm’s reach. (That is what people use them for, isn’t it?)

Initially the LED strip was controlled via IFTTT which was connected to my Stream Deck, but a while back I switched to using Home Assistant directly.

Even with my house more increasingly connected to Home Assistant, I still have minimal need for control through the Stream Deck as there are a couple of wall-mounted tablets in the house dedicated to the task (more on that in the future).

So, I would often wonder what can I do with my Stream Deck, ask colleagues, but was never able to get an answer – as everyone has their own specific ways of working and preferences.

But today, it struck me. One of the most important use cases possible: to provide entertainment value in Teams meetings.

We already have custom backgrounds, and Together Mode, soon we’ll have Avatars (with far too many reactions IMHO), plus you can even do moving backgrounds through a cheeky little hack. Why not take it a step further, and bring a special guest: Mr Samuel L Jackson of “Snakes on a Plane” fame (as well as some other lame superhero movies nobody really watches).

Requirements

The key ingredients in this are:

The connecting bits you’ll need are:

As the names suggest, the Home Assistant plug-in for Stream Deck allows you to perform any number of actions in Home Assistant. In this instance I’ll be calling a script – but more on that soon.

And the Alexa Media Player custom component for Home Assistant turns your Amazon Echo devices into externally controllable speakers from Home Assistant.

One of the most important ingredients for this solution is Samuel L Jackson himself, available as a celebrity personality voice for Alexa. It only costs $4.99 for the voice, but I was lucky enough to pick it up at launch for $0.99 – amazing stuff.

The caveat here is that for the voice to work, your Alexa account needs to be set to US, and the Echo you want to use also needs to have its language set to English (United States).

You might be freaking out at this point, but relax – it’s not as impactful as you think. I live in Australia, we have our account set to US, most devices set to English (Australia), and an Amazon Prime subscription in Australia. While it does mean we don’t have access to Australian skills, I don’t really care – there’s not much available that compares against Samuel.

The Echo speaker in my home office is set to English (United States), which allows me to say “Alexa, ask Samuel…” in order to get him to speak. However, you can also configure “Hey Samuel” as a wake word – which is just brilliant!

Configuration

The script in Home Assistant is quite simple. Using the Alexa Media Player custom component, I only need to tell the Echo to play media with the “media content” being a command as if I was speaking to it directly. Effectively the script is doing the “Alexa, <insert command here>” for me.

alias: STUDY - Samuel L Jackson
sequence:
  - service: media_player.play_media
    data:
      media_content_id: ask samuel to use swear words
      media_content_type: custom
    target:
      entity_id: media_player.study_echo
mode: single

To configure the button on my Stream Deck, add an entity from the Home Assistant plug-in:

And configure it like so:

Hit save, apply an icon of your choosing, and enjoy!

Here’s what the experience is like (note, there is a second or two delay between pressing the button and him saying anything).


Also published on Medium.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: