// the find
arendst/Tasmota
Alternative firmware for ESP8266 and ESP32 based devices with easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP, Serial or KNX. Full documentation at
Tasmota is a replacement firmware for ESP8266/ESP32-based smart home devices — primarily the Sonoff/Tuya product lines — that gives you local control instead of relying on cloud services that may disappear or spy on you. It runs on hundreds of device variants and exposes control via MQTT, HTTP, serial, or a built-in web UI. If you have a drawer full of cheap smart plugs and hate that they phone home to China, this is the project.
The device template system is genuinely well-designed — you describe your hardware's GPIO wiring in JSON and the firmware adapts, which means community support for new devices doesn't require a firmware fork. Berry scripting (a Python-like language that runs on-device) lets you write real automation logic without building custom firmware. OTA update infrastructure is mature: every dev commit produces a flashable binary, and there's a migration path documented across 8 major version breaks. The `.doc_for_ai/` directory is an unusual touch — they've written structured developer docs specifically for LLM-assisted contributions, which suggests the maintainers are thinking seriously about onboarding.
The codebase is C with Arduino idioms on top, and it shows — global state everywhere, file-level coupling, and the kind of code that only makes sense once you know the hardware constraints. Porting to a new chip family (ESP32-P4, ESP32-C5) requires touching many files with no clean abstraction layer. Downgrading firmware is officially unsupported and can brick devices, which is a real operational risk when you have 20 switches in your walls. The web UI is functional but dated — no REST API designed for programmatic use, so anything beyond basic MQTT integration gets awkward fast.