How to configure Garadget for LOCAL MQTT Only
I’ve had this TODO item on my list since September 27th 2019 when Garadget released firmware version 1.20. Reconfigure the two Garadget Garage Door openers to use LOCAL ONLY MQTT rather than the cloud based Particle.io setup that they shipped with.
With firmware version 1.20, the Garadget developers implemented FULL MQTT control over the garage door openers. This meant absolutely no reliance on the cloud whatsoever. For me, this was always a nice to have but recently, I’ve been having a ton of issues with the particle.io hosting platform that the cloud service relies on, it has become a necessity. Random losses of connection at 3am, made Home Assistant think that the garage doors were either offline (or worse, OPEN) and would trigger a ton of different automations in the house (including flipping the lights on, thinking someone opened the garage doors and arrived home). Super annoying. MQTT is here to save the day.
MQTT is a completely local solution with ZERO outside dependencies. My internet could go down and the Garage Door <-> MQTT <-> Home Assistant conversations would be just fine. As long as local WiFI stayed up, and they do thanks to Battery Backup, everything from a garage door perspective and automation perspective would be great.
Ripping the cloud dependency from the controllers was pretty easy as well. In fact, so easy that I wish I would have done this way back in September and avoided all the headaches from Particle.io.
Here are the basic steps to configuring Garadget to use MQTT with Home Assistant:
- Put your unit into listening mode: press and hold “M” button for about 3 seconds until LED starts blinking dark blue.
- Connect any WiFi enabled device to PHOTON-XXXX access point.
- Open http://192.168.0.1/ in the browser and (re-)configure WiFi connection and MQTT settings
- Submit to save. The device will reconnect to your WiFi network.
Once the Garadgets have been reconfigured for MQTT, the YAML in Home Assistant is pretty easy. You can find the complete YAML here.
The important parts are basically the cover section which defines the Garage Doors and functions (open, close & stop) and the MQTT automation that sends the get-status command every minute to poll the status of the Garage doors.
automation: - alias: 'Update Garage Get-Status' trigger: - platform: time_pattern minutes: '/1' action: - service: mqtt.publish data: topic: "garadget/GSmall/command" payload: "get-status"
If you want to see the whole process in more detail, check out the video below:
Special thanks to Cody Gagnon for letting me know how he went about doing this to make my journey easier.