Alexa home assistant

How is it possible that Home Assistant does not have a simple integration with alexa without cloud HA

Because Alexa doesn’t have an easy way to interface. The only way to interface with alexa is through skills. The only way to publish a public skill is to pay. Therefor, if you want the public solution, you’ll have to join the cloud. Otherwise you can make your own skill (which is free) but comes at a cost of complication.

I said this because I come from another openHAB system where there is an official skill.
so I was wondering why not for HA

I don’t know much about OpenHAB, but I would assume that a good Samaritan is paying for a DNS server out of pocket.

I understand that Alexa (free mode) works if my HA is reachable via https protocol, so I need a TLS / SSL certificate through Let’s Encrypt. My connection has a static IP required I don’t need Duck DNS, but I don’t understand how only the certificates are provided to make my HA reachable with HTTPS protocol in order to use Alexa for free.

Thanks

Depends on your installation. When you use hassio the Nginx Proxy Manager addon
similar things exist for docker. When you run for example in a venv you can install Nginx and certbot directly.

The explanation is found in the openHAB’s documentation for the Amazon Alexa skill

The skill connects your openHAB setup through the myopenHAB.org cloud service to Amazon Alexa.

myopenHAB.org is a free cloud service for openHAB users. The equivalent for Home Assistant is Nabu Casa’s Home Assistant cloud service except it is not free.

I followed the procedure to install duckdns and I can access it remotely through my https://my-domain remotely. While locally only via browser. From App locally I can’t access HA. Can anyone help me

cant comment on ios, but if using the android companion, there’s an option to select your local wifi in the app configuration options.

I’ll explain. Before creating the dunckdns domain to be able to use the ssl certificates for the alexa skill, I was able to log in easily. But now that the protocol is https, my app does not connect with local wifi but only by remote url with mydominio.dunckdns.org

I believe that’s the way you must now connect to the server, even from your local network.

Yes that is true. Unless you add nginx. Then you can do both.

1 Like

I tried to connect locally with the duckdns address, but it doesn’t show my home assistant. From a local PC or smartphone browser I have to enter https://ip:8123 while from local app no access

If you connect locally through nginx with your ip, its: http://ip:8123

Can you explain every step you have done so far? Including all the steps you’ve taken on your router.

Then summarizing. I had a hassio installation and I pointed to the server with http: // mioip: 8123 then since I wanted to integrate alexa I created a ddns on duckdns as explained in several guides following the steps. Now my http protocol has changed to https and I can reach the server from the browser locally in wifi with https: // mioip: 8123 while from the outside with duckdns and external port x set on the router which points to the internal 8123 and works. The problem that the home assistant app with smartphone locally in wifi does not access the home assistant. In the app I inserted the main url https: // dunckdns with its router port and internal url https: // mioip: 8123

Your router may not support nat loopback. So…

Have you set up nginx? Yes or No.

install the nginx official addon.

for your configuration use:

domain: xxxx.duckdns.org
certfile: fullchain.pem
keyfile: privkey.pem
hsts: max-age=31536000; includeSubDomains
cloudflare: false
customize:
  active: false
  default: nginx_proxy_default*.conf
  servers: nginx_proxy/*.conf

make sure 443/tcp is set to 443.

Remove any current port forwards that you have for your pi.
Add a port forward for 443 -> ip:443 on tcp

After all that is done you should be able to access locally with:

http://ip:8123

Externally with

https://xxxx.duckdns.org

perfect.
thanks. thanks. thanks.

Does this solution still require the following in the configuration?

http:
  ssl_certificate: /ssl/fullchain.pem
  ssl_key: /ssl/privkey.pem