I've been setting up Weewx with Belchertown, and everything seems to be working great...except that I cannot connect to the MQTT within the skin.
My Mosquito server is running in a docker on my Unraid server, and I have an Ubuntu VM that is gathering UDP packets from my Tempest Weatherflow station. Weewx is writing the data to the Mosquito server without problem. I can connect to the server on my local network with MQTT Explorer, and I can see the weather data & loop.
For the web page, I'm running a Cloudflare tunnel into my network, and I have a CaddyV2 reverse proxy between the tunnel and the web server. I'm able to access the website from the Internet without problem:
https://www.2whippets.org/weather/belchertown/
I have a DNS entry for
mqtt.whippets.org set up in cloudflare for the websockets, and I'm able to use MQTT Explorer to connect to the tunnel from the internet. wg://
mqtt.2whippets.org on port 443 (with TLS encryption). It goes through the cloudflare tunnel to the caddy proxy that has a config as such:
And it works through MQTT Explorer.
However, in my Weewx.conf file, my connection looks like this:
#--- MQTT Websockets (for Real Time Streaming) Options ---
mqtt_websockets_enabled = 1
mqtt_websockets_host = "ws://
mqtt.2whippets.org"
mqtt_websockets_port = 443
mqtt_websockets_ssl = 0
mqtt_websockets_topic = "weather/#"
# disconnect_live_website_visitor = 1800000
It doesn't seem to make any difference if I turn on Websockets_ssl. It still fails.
I'm using the cloudflare tunnel so that all of the certificates are taken care of by cloudflare...and I don't have to open any ports on my firewall.
Any ideas of where to troubleshoot?
Thanks
rm