Tasmota
Open-source firmware for ESP-based smart devices
Tasmota is alternative open-source firmware for ESP8266 and ESP32-based smart home devices. It frees devices from the cloud, enabling local control via MQTT, HTTP, and a web interface.
Key features
- Cloud-free device firmware
- MQTT and HTTP control
- Web configuration UI
- Supports hundreds of devices
Pros & cons
Strengths
- Total local control
- Huge device support
Trade-offs
- Requires flashing hardware
- Not for non-tinkerers
Tasmota replaces
Last reviewed Aug 26, 2026 · 835 words
Check the chip before you buy the second device. Tasmota runs on ESP8266 and ESP32 modules only, and in recent years a large share of Tuya-based plugs and switches quietly moved to Beken and other non-ESP chips that look identical from the outside. The device page on the Tasmota templates repository tells you which module is inside a given model and whether anyone has flashed it. Get that right and the payoff is a switch that answers on your LAN in a few milliseconds, works when the internet is down, and will still work in 10 years when the manufacturer's cloud is gone. Get it wrong and you own a paperweight with a soldering iron next to it.
Flashing means opening the case
Tuya-Convert, the over-the-air trick that once flashed devices without tools, stopped working on hardware made after Tuya patched its firmware, so assume serial flashing. That means a USB-to-serial adapter set to 3.3 volts (5 volts kills the ESP), 4 connections for VCC, GND, TX and RX, and GPIO0 held to ground at power-up on the ESP8266 to enter flash mode. The Tasmota Web Installer does the rest from Chrome or Edge over Web Serial: pick the build, click install, wait 30 seconds. Never flash a mains-powered device while it is connected to mains; power it from the adapter with the case open and the relay side untouched. The firmware itself is C, GPL-3.0, has 24,728 stars, and fits in a chip with under 100 KB of usable RAM, which is why the 16 MB listing is about your flashing machine rather than the device.
First boot: the AP, then Backlog
A fresh Tasmota device broadcasts a WiFi network named tasmota-XXXX; join it, browse to 192.168.4.1, enter your WiFi details. Then open the device's web console and hand it everything else in one line:
Backlog SSId1 homenet; Password1 secret; MqttHost 192.168.1.10; MqttUser tasmota; MqttPassword secret; Topic kitchen_plug; FriendlyName1 Kitchen Plug
Backlog runs commands in sequence with a short pause between them, which matters because several of them trigger a restart. If the device is a known model, paste its template from the repository with Template {...} followed by Module 0, and the buttons, relays and LEDs map themselves. An unknown board means an evening with a multimeter and the GPIO configuration page; that is the tinkering the difficulty rating warns about.
Home Assistant: the integration, not SetOption19
Older guides say to run SetOption19 1 for MQTT discovery. That path is deprecated. Leave it at 0, install the official Tasmota integration in Home Assistant, and devices appear on their own through the tasmota/discovery/ topics the firmware publishes, with the correct device model, firmware version and entities. It needs an MQTT broker both sides can reach; the Mosquitto add-on is the usual answer. The first month with Home Assistant post covers where MQTT sits in the wider setup.
The settings that save you later
Four commands cover most regret. PowerOnState 3 restores the last relay state after a power cut, so the fridge plug does not come back off. PulseTime turns a relay into a momentary switch, the trick behind garage-door openers built from a 5-pound relay board. TelePeriod 60 publishes sensor telemetry every minute instead of the default 300 seconds, which is what you want for power-monitoring plugs feeding an energy dashboard. And a rule keeps behaviour local when the broker is down:
Rule1 ON Button1#State DO Power1 TOGGLE ENDON
Rule1 1
The switch on the wall then works whether or not Home Assistant is alive, which is the entire argument for local firmware in one line.
Tasmota or ESPHome
Both free the same chips from the same clouds and the choice is about workflow. Tasmota is one prebuilt binary configured at runtime through the console and web UI, ideal for commodity plugs and switches where you want it done in 10 minutes. ESPHome compiles a firmware per device from YAML and integrates with Home Assistant natively without MQTT, which wins for custom sensor builds and for people who already live in Home Assistant. Plenty of homes run both. If you are not using Home Assistant at all, Tasmota's MQTT and HTTP interfaces make it the easier one to drive from Node-RED or a shell script.
What I'd do
Buy only devices with a confirmed ESP module and an existing template, flash them over serial with the web installer, and configure each with one Backlog line pasted from a text file so every device is identical. Set PowerOnState 3 and TelePeriod 60, leave SetOption19 off, and let Home Assistant's integration discover them over Mosquitto. Once the first one works, the rest take 10 minutes each, and none of them will ever need the cloud again.
Compare Tasmota
1 head-to-head comparisons.
Similar home automation apps
Home Assistant
Home AutomationOpen-source home automation that puts privacy first
Replaces SmartThings, Google Home
Frigate
Home AutomationLocal NVR with real-time AI object detection
Replaces Google Home
ntfy
Home AutomationSend push notifications to your phone via simple HTTP
Replaces Pushover, Pushbullet
Homebridge
Home AutomationBring non-HomeKit smart devices into Apple Home
Replaces Apple HomeKit hubs
ThingsBoard
Home AutomationOpen-source IoT platform for device management and data
Replaces AWS IoT, Azure IoT
WLED
Home AutomationFirmware for controlling addressable LED strips
Replaces Philips Hue