現行的 Tasmota 穩定版是 15.6.0(代號 Sylvie,2026 年 8 月 25 日發布)。
這篇從「打開網頁查出自己現在是哪一版」開始,做到「升完、五項檢查全過、Home Assistant 重新認得它」。中間會分岔成 OTA 與 USB 兩條路,兩條都寫完,不會叫你去看別篇。
每一步都有「你會看到什麼」。做完第三步要能自己確認第三步成功了,才走第四步。看不到預期的輸出就停在那裡,往下走只會讓你分不清是哪一步壞的。
做完這篇你會有什麼
一台跑在 15.6.0 的裝置,Wi-Fi、MQTT、GPIO 設定全部還在
兩份備份:網頁按一下就有的 .dmp,加一份出事時看得懂、貼得回去的文字檔
升級失敗時看得懂網頁上那一行字,知道下一步該做什麼
會用 USB 刷一台本來不是 Tasmota 的裝置(含零件清單與逐腳位接線)
Home Assistant 裡重新出現這台裝置,而且是掛在 Tasmota 整合底下不是 MQTT 底下
先講誰不該升
官方升級文件的第一句話是「If it ain't broke, don't fix it」,東西沒壞就不要動。Tasmota 不會強迫你更新,舊版繼續跑不會有人來關掉它。
真的值得升的是這四種:
你手上是 ESP8266 加 PZEM 電力量測,而且現在跑 15.5.0 —— 這個組合在 15.5.0 會當機重開無限循環,15.6.0 的修正清單裡就寫著這一條。這種要馬上升
你要用新硬體 —— 新的感測器型號、新的 ESP32 變體(C5、C6、P4),舊韌體根本不認得
你想把介面換成繁體中文 —— Tasmota 有官方的繁體中文版本,下面「新版用得到的東西」會講怎麼換
你已經兩年沒升了 —— 拖越久中間要走的中繼站越多,而且八年前的版本現在已經不能直升
反過來說,一台在牆上跑了三年、每天準時開關燈、從來沒出過事的 Sonoff,沒有理由去動它 。
Tasmota 大約兩個月出一版 (15.1.0 到 15.6.0 之間,除了一次隔四個月,其餘都是兩個月)。不用每版跟,一年升一次很夠。
---
步驟 1:查出你現在是哪一版、哪一顆晶片、多大的快閃記憶體
這三個數字決定後面全部的路線。先查完再決定要做什麼。
用瀏覽器打開裝置的 IP(不知道 IP 就去路由器的 DHCP 清單找 tasmota 開頭的主機名稱)。首頁最底下那一行就會寫版本,但那不夠,我們要三個數字。
點主選單的「控制台」(Console) ,在最下面的輸入框打:
你會看到什麼
控制台會多出一行(時間戳記和 MAC 會不一樣):
20:14:03.271 RSL: stat/tasmota_3D5E26/STATUS2 = {"StatusFWR":{"Version":"15.6.0(tasmota)","BuildDateTime":"2026-08-25T11:23:41","Boot":31,"Core":"2_7_8","SDK":"2.2.2-dev(38a443e)","CpuFrequency":80,"Hardware":"ESP8266EX","CR":"465/699"}} 複製代碼
要記下來的有兩個:
Version —— 前面那個「15.6.0」是版本,括號裡的「tasmota」是你刷的是哪一種版本(tasmota / tasmota-sensors / tasmota-lite / tasmota-ir…)。升級時要挑同一種,不然功能會突然少掉
Hardware —— 「ESP8266EX」或「ESP8285」是 ESP8266 家族;「ESP32」「ESP32-C3」「ESP32-S3」這些是 ESP32 家族。兩家的升級方式完全不同
接著打第二個指令:
你會看到什麼
20:14:47.882 RSL: stat/tasmota_3D5E26/STATUS4 = {"StatusMEM":{"ProgramSize":651,"Free":352,"Heap":26,"ProgramFlashSize":1024,"FlashSize":1024,"FlashChipId":"1440C8","FlashFrequency":40,"FlashMode":"DOUT", ... 複製代碼
這裡有兩個關鍵數字,單位都是 KB:
FlashSize —— 1024 就是 1MB 的板子(絕大多數的 Sonoff Basic、Sonoff Mini、雜牌插座都是),4096 是 4MB
Free —— 這是整篇最重要的一個數字。 它是「還能拿來收新韌體的空位」。這個數字比你要刷的檔案小,OTA 就會失敗
為什麼會這樣 :OTA 的做法是先把新韌體完整寫進一塊空白區域,確認沒問題才換過去 。所以升級的那一刻,快閃記憶體裡要同時放得下新舊兩份韌體。1MB 的板子總共就 1024 KB,舊的那份已經佔掉六百多,剩下的才是 Free。
換算標準 (2026-09-25 從官方伺服器實際量到的檔案大小):
tasmota.bin.gz 458 KB ← ESP8266 升級用這個 tasmota.bin 651 KB ← 未壓縮,通常塞不下 tasmota-minimal.bin.gz 257 KB ← 空間不夠時的中繼站 tasmota32.bin 2131 KB ← ESP32 tasmota32-safeboot.bin 782 KB ← ESP32 的中繼站 複製代碼
上面那台 Free 只有 352 KB,小於 458 KB,所以它直接 OTA 一定會失敗 。這不是故障,是 1MB 板子的正常狀況,步驟 4 會處理。
看不到控制台這個選單 ,代表你現在跑的是 minimal 版韌體(有人升級升到一半就停在那裡了)。主選單最上面會有一行紅字警告。這種情況直接跳到步驟 4-4 的第二段。
---
步驟 2:對號入座,決定走哪一條
用步驟 1 查到的 Version 對照上圖。這裡把最容易出事的那一條再講清楚。
Version 在 8.1.0 以前的,不能直接升到 15.6.0。
官方升級文件的原話是全大寫的一句:「DO NOT ATTEMPT TO UPGRADE VERSIONS PRIOR TO v7.x STRAIGHT TO THE CURRENT VERSION」。
原因是 8.1.0 那一版把設定在快閃記憶體裡的擺放位置整個重排過 。舊版的設定區長什麼樣子,新韌體已經不認得了。硬刷上去的結果是設定被判定無效,裝置開機後變成全新的、什麼都沒有,而且你的 .dmp 備份也吃不回去。
⚠ 這一條很容易被誤會成「15.6.0 新加的限制」 ,因為每一版的發行說明開頭都會再寫一次「This version removes support for direct migration from versions before v8.1.0」。拿去跟前面三十幾版比對會發現那一段是逐字相同的固定樣板 ,真正加上限制的是 2020 年的 8.1.0。所以這不是「趕快升免得以後不能升」的理由 —— 已經卡住的早就卡住了。
要走中繼站:
每一站的做法都跟步驟 4 一樣(設 OtaUrl、Upgrade 1),只是網址換成該站的。每一站升完都要等它真的重開機、網頁進得去、Status 2 回報的版本真的變了,才走下一站。 網址照抄:
OtaUrl http://ota.tasmota.com/tasmota/release_5.14.0/sonoff.bin OtaUrl http://ota.tasmota.com/tasmota/release_6.7.1/sonoff.bin OtaUrl http://ota.tasmota.com/tasmota/release-7.2.0/tasmota.bin OtaUrl http://ota.tasmota.com/tasmota/release-8.5.1/tasmota.bin OtaUrl http://ota.tasmota.com/tasmota/release-9.1.0/tasmota.bin.gz OtaUrl http://ota.tasmota.com/tasmota/release/tasmota.bin.gz 複製代碼
注意 5.14.0 和 6.7.1 那兩行用的是底線(release_),7.2.0 之後才是減號(release-)。 這不是筆誤,官方發行說明特別註明了:舊版的網址解析不吃減號。
老實說,如果你只有一兩台這麼舊的裝置,拆開來用 USB 重刷(步驟 7)通常比走六站快,而且不會中途卡死 。走中繼站只在「裝置裝在牆裡拆不下來」時才划算。
---
步驟 3:備份,兩份都要
3-1:網頁備份(三十秒)
主選單 → 設定(Configuration) → 備份設定(Backup Configuration) 。瀏覽器會下載一個檔案,名字是 `Config_主機名稱_版本.dmp`,例如:
Config_tasmota_3D5E26_15.6.0.dmp 複製代碼
你會看到什麼 :檔案大小在 4 KB 上下(ESP8266)或 8 KB 上下(ESP32)。0 KB 就是失敗,重按一次。
這是設定區的二進位傾印,而且是混淆過的,用記事本打開只會看到亂碼,不能手改 。
⚠ 這裡有一個到處流傳、但方向是反的說法:「.dmp 只能還原回同一個版本」。
實際上 Tasmota 還原 .dmp 時只檢查三件事:檔案的 CRC 對不對、來源版本是不是 8.1.0 之後、以及晶片家族符不符合 。通過之後它會刻意保留備份裡的舊版號,讓裝置重開機時自己跑一次設定遷移。
所以真正的硬限制是「同一顆晶片家族」,不是「同一版」 :
ESP8266 的 .dmp 絕對不能 還原到 ESP32 上
ESP32-C3 的也不能還原到 ESP32-S3 上
但是 9.x 時代的 .dmp 還原到 15.6.0 是可以的
檔案不合的時候網頁會回「檔案無效(File invalid)」,很明確。
3-2:文字備份(出事時唯一看得懂的東西)
.dmp 的問題不是還原不了,是它壞掉的時候你連裡面有什麼都看不到 。所以第二份要是人看得懂的。
最省事的做法是把三個指令的輸出存成記事本:
Backlog Status 0; Template; Rule1 複製代碼
你會看到什麼 :控制台會跑出很長的三段 JSON。`Status 0` 是完整狀態(含 MQTT 位址、Topic、Wi-Fi SSID),`Template` 是 GPIO 腳位設定,`Rule1` 是你寫的規則。全部選起來複製到記事本,檔名寫上日期。
比較正式的做法 是用官方工具 decode-config,它會把 .dmp 轉成可讀的 JSON。到 github.com/tasmota/decode-config/releases 下載(Windows 抓 decode-config_win64.exe),在下載資料夾開命令提示字元:
decode-config_win64.exe --source 192.168.1.50 --backup-file Config-@f 複製代碼
把 IP 換成你的。`@f` 會自動換成裝置的 FriendlyName。
你會看到什麼 :資料夾裡多出一個 .json,用記事本打開長這樣:
{ "cfg_holder": 4617, "devicename": "客廳燈", "friendlyname": ["客廳燈"], "mqtt_host": "192.168.1.10", "topic": "livingroom_light", "template": {"NAME":"Sonoff Basic","GPIO":[17,255,255,255,255,0,0,0,21,56,0,0,0],"FLAG":0,"BASE":1}, ... } 複製代碼
有裝置名稱、有 MQTT 位址、有 template,這份就成功了。 程式回「Login failed」是因為你設了網頁密碼,指令要加 `--username admin --password 你的密碼`。
還原的指令是: