Simplifying IFTTT integration

New user a bit puzzled by the documentation again, this time for setting up IFTTT integration.

I read over the Home Assistant - IFTTT page, which in turn links to a description of how to set up DuckDNS, which in turn describes how to set up Lets Encrypt. The description of why these specific services are needed is a bit hazy. Historical searching for examples turns up few complete examples, and mention of a major change in how authorization is handled some time ago, making the relevance of some of the examples uncertain.

So I decided to give it a simple test without going through the full setup described. I already use IFTTT webhooks in both directions with other services, so I didn’t need any help with that. I already have home IP cameras and file servers set up for external access using an existing dynamic DNS service from noip, so it was no problem to make my Home Assistant server accessible from the internet. A quick test confirmed that it was working to access the user interface from the internet. I did enter my base_url (the noip one) in the configuration.yaml file and then configure the IFTTT integration in the Home Assistant UI as directed, which took just a few clicks.

Then I tried a simple test with a Home Assistant automation calling an IFTTT webhook. That worked fine. Apparently no other setup required in that direction. I doubt that HA even has to be accessible from the internet for that to work.

Going in the other direction, I realized that there was an issue. The easy example I found called for using an api key created by the IFTTT integration. But that api key is MIA after initial configuration. It appeared one time in a popup message after the initial setup, but it’s nowhere else to be found in the UI afterwards (I’m sure it’s hidden in a config file somewhere). So I deleted my IFTTT integration and re-did i so I could get the pop-up back and copy the needed api key and the complete url it gave me to call Home Assistant from IFTTT using my base_url (it has the form: http://(myhomename).noip.me:8123/api/webhook/verylongstringoflettersandnumbers). Then I created a sample automation triggered by IFTTT to turn on a switch. Finally I went to IFTTT, created an applet to call Home Assistant when triggered by Alexa voice command, using the supplied url with api key. That worked fine: Alexa voice command -> HA automation -> switch turned on. I tried using https: in the url called by IFTTT to make sure that’s allowed, and that also worked fine.

So while the documentation initially made it look more complicated than I expected, it actually proved straightforward. That leaves me puzzled as to why the documentation describes a more complex setup process involving DuckDNS and Let’s Encrypt. Is it just one take on how to do it? Does it provide better security in some way? Am I inadvertently using a legacy method? Is there extra difficulty to overcome if running hass.io in a VM? Have I missed some other important point?