I’m having trouble getting ESPHome to work when used through my CloudFlare tunnel.
I have a basic CloudFlare Tunnel setup and working. I can access the HA instance from my home computer through the tunnel without any issues (other than the one here), see my DSM linked security cameras, turn lights on, etc, with no issues. This also all works remotely through the HA app on my phone when away from the house. I’ve also setup an additional “host” in the configuration that allows me to access my Synology and that’s working fine as well.
What does not work is several functions under the ESPHome area of HA.
What I access the ESPHome section via my local address (http://homeassistant.local:8123
) I can click on one of my ESP devices “Logs” button and get a stream of logs without issue. I can also install wirelessly and “Verify” the configuration.
However, when accessed over my Cloudflare tunnel connection (https://ha.my.domain/
), these displays show nothing.
As an example: in both circumstances, when trying to run the “Validate” command, the webapp is opening a WS (or WSS):
ws://my-domain/api/hassio_ingress/big-long-string-of-characters-here/validate
wss://my-domain/api/hassio_ingress/big-long-string-of-characters-here/validate
In the local
tab, this will show a checkmark and stream a bunch of data in to the UI (which can also be seen in the devtools). In the tunnel
tab, however, nothing ever comes back from the websocket – like it’s never fully established.
I’ve checked my Cloudflared logs and don’t see anything obviously revealing.
My cloudflare tunnel has only the two forwarders setup: ha.my.domain -> http://192.168.1.2:8123
one one for the Synology (that forwards to unverified https instead). Maybe the forwarding from tunnel → HA needs to have HA be on HTTPS instead of HTTP so some part of the websocket chain isn’t broken? Swing in the dark.
I’ve searched around the forums a bit and seen some other folks successfully have this setup and working, so I believe it’s possible, I’ve just missed a switch/toggle/config somewhere.
Thanks!