SOLVED MQTT server is offline
I am using an ESP8266 board as a door-sensor which publishes messages to my adafruit IO feed. I am then using the MMM-mqtt module by @javiergayala to subscibe to the feed and show if my door is open or closed.
This all works fine for a short time, but then I get a notification on the mirror that the “MQTT server is offline” and the module fails to receive any new published messages.
The adafruit feed is being updated fine when my garage door is opened/closed.
The only thing I can see in adafruit’s monitor screen is:
2020/11/15 10:20:51AM mqttjs_aaeacdcb disconnected
And I can’t see anything in mm logs:
pi@mirror:~/MagicMirror/config $ tail -1000 ~/.pm2/logs/mm-out.log | grep mqtt [2020-11-15 10:11:54.078] [LOG] MMM-mqtt started ... [2020-11-15 10:12:07.819] [LOG] Creating new MQTT client for url: mqtts://*adafruit...* [2020-11-15 10:12:08.106] [INFO] Checking git for module: MMM-mqtt
Any ideas on what’s happening, or where I can look for a steer on what’s happening? The sensor and adafruit feed look to be working fine, just the mirror is disconnecting.
Also, very occasionally, get the notification:
“MQTT Error. The MQTT client has suffered an error: Error: getaddrinfo EAI_AGAIN io.adafruit.com”
Would appreciate a steer in the direction of any logs I can dig in to.
@matt216 eai_again in a name server problem. See that a lot when people are using advert filters like Pinole, or have unstable internet
Thanks @sdetweil . I do indeed have Pihole running on my network. Yesterday I observed the “MQTT offline” mirror notification exactly at the same time as a (successful) A and AAAA request from the mirror for the MQTT server URL.
Today, however, the notification appeared but there is no corresponding DNS request from the mirror.
This is the first module (and only device on my network) that struggles… not convinced it is DNS related.
Appreciate the help.
@matt216 the error is dns failure
I can ‘force’ this error by turning off the nearest wifi access point that the mirror uses on my home network. Although the mirror associates with another AP the connection to the MQTT server is broken and will not re-establish.
This error only occurs occasionally, usually, which would make sense as the nearest access point is… ‘flaky’, shall we say (it’s a powerline adaptor type).
I am going to specify a certain (reliable) AP for the mirror to connect to. Otherwise I may try a different ssid for the second AP (keen to avoid this, though).
Thanks for help so far.
@matt216 i M glad that you were able to recreate and have a plan to resolve.
I had a similar problem w my wifi security cams and an mm system.
Finally replaced the networking w a Google wifi system, where I could put one of the stations in a location to resolve the connection issues.
Little update… upgraded the ‘flaky’ hotspot and ran an ethernet cable to it, rather than use powerline adapters. The mirror has held connection to the queue for 3 days now, which is by far a record!
Network connectivity seemed to be the issue, prompting a DNS error. Curious if the module could be a bit more resilient but perhaps that’s the nature of MQTT…? Decent home network has resolved.
Thanks for assistance.
@matt216 the code could be made more resilient, but maybe lower down than module, which module author doesn’t control.
Its hard to make 100% reliable code.
Glad u resolved to issue