Haaska and Tailscale: Alexa Smart Home without exposing to the internet

Hello,
I’ve published a repo and instructions if anyone wants to use Alexa Smart Home without exposing its instance to the internet, with the help of Haaska and Tailscale

tieum

1 Like

Hello tieum, thanks for sharing this!

I’m not sure I fully understand how it works. I’m using a similar approach, with zerotier, but would love to better grasp the details. As far as I knew, Alexa Skill needs need the hass api exposed publicly, so I guess you are using some sort of private access method from the lambda function to your hass instance?

I’m a Google Cloud person and not fully familiar with the options that AWS offers :slight_smile:

Thanks!

Ah, I guess you are using this to link the skill with your internal network, right?

Hi Ignacio!

Ah, I guess you are using this to link the skill with your internal network, right?

Exactly

Alexa Skills Kit → AWS Lambda with Tailscale → Home Assistant with Tailscale integration

1 Like

@tieum on AWS i need container registry, correct?
What is:

  • HA_TOKEN → long living token or which token?
  • HA_URL → local adress?

Hello, @tieum

I am really struggling with getting this to work… I keep getting “unable to link skill at this time” in the Alexa app when trying to link.

Does this method still work…?

Hi @Squallzz,

I’m also interested in that method… were you able to make it work?

Hi

Im confused with the new Home assistant “voice assistant” option and exposing the devices since there is no option to expose them to Alexa …will this method still work?

I actually came across after trying something similar myself.

Just wondering if anyone is using this setup and whether it is usable. I am finding that because the lambda is short lived that the first time I ask Alexa to do something there is a lag of at least five seconds which I guess is the container starting and the tailscale interface being brought up. After that first request it works reasonably quickly but it then goes back to sleep quite quickly and back to a big delay when you ask for something,

Is this the experience of others or down to the slightly different way I implemented this?

I’ve been familiarizing myself with all the ingredients that make this thing work (Github Actions, Github Secrets, HAASKA, AWS Lambda Functions, Tailscale AWS Lambda, building docker containers, etc) in preparation for implementing it. It’s been an interesting learning experience but it’s disappointing to now hear that the resulting performance may be underwhelming.

The repo has been forked about two dozen times so hopefully someone else will also share their experiences with it.

may being the operative word… It might be something I have done…
My attempt is GitHub - jamesonuk/haalts: Home Assistant, Alexa and Tailscale which is a bit simpler and uses Python 3.12

My attempt essentially just tries to bundle Tailscale into the manual steps in Amazon Alexa - Home Assistant

Hello everyone!

I’m experiencing some issues while trying to create the Lambda function following the info from the GitHub - jamesonuk/haalts: Home Assistant, Alexa and Tailscale. I’ve followed the steps provided in the repository, but I’ve encountered some obstacles during the testing process.

Initially, I came across an error that I managed to solve by adding an additional line to the Dockerfile.
RUN chmod +x /var/runtime/custom_entrypoint

However, upon resolving this initial issue, I encountered another one that I haven’t been able to resolve on my own.

{
  "errorMessage": "2024-03-31T16:07:13.500Z 936a573d-b08b-4e7c-94a7-19597a839936 Task timed out after 3.02 seconds"
}

Could someone please provide me with assistance or suggest possible solutions for this new obstacle? I appreciate any guidance or advice you can offer to overcome these problems and proceed with the creation of my Lambda function.

Thank you very much in advance!

On the lambda configuration there is a timeout setting which defaults to 3s. First off check the lambda logs which may actually have a different error in. Then try upping the timeout to 90 or more seconds