智慧家庭教學 | 兩種取得小米Token的方式 讓你的小米智能裝置無痛轉移到其它智能系統

哈囉、各個宅智家的朋友大家好我是你們的阿毛師今天又是我們「讓你家變聰明」的單元啦要來跟大家聊聊如何取得小米設備的Token來讓外部的智能系統控制它吧相信很多人家裏都有小米的智能產品也應該有不少人是用了小米的系統覺得有所不足,想轉用其它系統又不想換掉已經花錢購買的小米產品但小米是一家野心很大的公司他希望能一統智能家庭產品的天下.所以他會採用相對較封閉的方式來做裝置的溝通不過先不說封閉的部份其實很多智能裝置在要取得或控制裝置的狀態時也都採用與小米相同的方式就是使用一組由裝置產生的字串來做為你擁有這裝置控制權的證明一般來說我們將這字串稱為Token當你有了這個Token之後,你就可以參考廠商提供的API文件來開發與裝置溝通的程式了那為什麼說小米採用相對封閉的方式呢因為小米他並不想讓你取得它的Token也不會給你相關的API文件.所以基本上除了米家的App之外.沒有其它控制的辦法但感謝許多熱心的開發者還是將相關的API透過逆向工程給找出來了.
但要取得米家的Token還是必須得透過一些麻煩的手續而這也是為什麼我說以我個人來說我不喜歡使用小米設備的原因不單單只是取得Token的方式麻煩.還有可能在小米更新裝置的軔體後,API改變了.而開源的Library還沒更新就會有可能你不小心更新了設備.你的智能系統就無法控制了的情況同時也可能會有因為米家App更新了.
原有取得Token的方法就失效了無論如何,我將方法教給大家再讓你們自己去決定要怎麼選擇吧.那今天我就來講解比較相對沒那麼麻煩的兩種方法.分別對應iOS及Android的手機那開始之前要先了解一下.因為米家的設備是由許多不同廠商代工的.
所以有時侯會有些差異.如果遇到有代工廠家自己的App也能連線的情況可以試着用代工廠家的App連線後尋找Home Assistant接入的方法.如果可以的話,你會省去非常多麻煩.
也比較不會有更新了就翻車的可能性喔.另外就是我會再多找一些其它的取得方式.如果我拍好了就會放在右上方資訊卡裏面另外如果您有我有還沒拍過你覺得比較簡單的取得方式也歡迎你在下面留言告訴我我也會拍成影片給大家參考喔所以如果你還沒訂閱請就趁現在你還記得.按下下面那紅紅的訂閱按鈕同時小鈴鐺給他開起來就不會錯過我們的影片更新囉好,那就讓我們繼續看下去我們先來聊聊iOS的方法.
首先你要先確定您已經在米家App中連接好你的設備.連接好之後,透過電腦使用iTune做一次完整的備份記得備份時要選擇不加密喔備份的同時來下載iBackup Viewer我會在下方資訊欄裏面放入所有我提到的連結下載完之後我們就安裝它安裝完之後就等待備份完成備份完成後我們將打開iBackup Viewer打開後你應該就可以看到您剛剛備份的資料點選它,等待一下不用多久的時間就會看到這個畫面我們點選這個Raw
Files在AppDomain裏面找到com.xiaomi.mihome點選它進到這個資料夾會看到一堆東西.我們直接按放大鏡,搜尋_mihome就會找到像這樣一串數字加_mihome的檔案副檔名為sqlite我們點選它,按下這個export再按下selected選擇要存放的位置後按下存檔存檔後就可以關掉iBackup
Viewer了接着來安裝DB Browser for SQLite來到他的網頁,點選Download依照您的作業系統下載我是Windows就下載這個.
zip這個是不安裝直接執行的當然你也可以下載這個安裝檔下載完後解壓縮來到他的資料夾找到這個檔案點兩下執行.理論上打開後會是中文的.不是中文也沒關係,因為我們也不會一直用它點選這個圖示找到剛剛匯出的sqlite檔、按下開啟接着點選Execute SQL的頁籤在下面輸入SELECT
ZNAME,ZMODEL,ZTOKEN FROM ZDEVICE接着按下這個圖示就會出現所有你連接過的裝置.你可以從名稱跟型號來選擇你要的裝置而這個ZTOKEN就是他的TOKEN了但是這個Token還不是最終的Token.
我們還要做一些運算來取得真正的Token好像在繞口令啊.讓我們打開這個網頁將剛剛複製的那串未解碼前的Token放到Input Text中將Input type選為TextFunction選為AES、Mode為ECB再將Key中輸入32個0然後這個選項選擇Hex就是16進位最後再按下Decrypt右邊這串就是我們的Token了.
我們按下Download as a binary
file用記事本打開,就可以看到我們的Token在裏面了記得複制的時侯這後面有些空白不要一起複制了好,iOS的部份講解完了.接下來就來講解Android的部份其實說到Android.基本上就可以很好的體現我上面講的問題因為Android在米家App版本5.4.49前都可以用很簡單的方法來找到Token在這之後的版本就被改掉了.
雖然還是有別的方法,但因為是Android.要找到以前的App還不算太難所以我們就用較簡單的方式來取得首先先用你新版的米家App來配對你想控制的裝置如果有兩支手機最好才不用重複安裝跟刪除為什麼要這麼做呢?因為從5.4.49版之後小米陸陸續續的出了很多新的裝置除非你的裝置剛好是很舊很舊的.
要不然還是先透過新版的配對會比較方便配對完之後我們將新版本的App刪除準備來裝我們舊版本的米家App首先我們來到這個網頁如果您有其它取得舊版本apk的方法也可以使用您的方法去找喔然後我們在Search這裏輸入Mi Home 5.4.49然後按下這個放大鏡圖示就會出現在這裏、點選它拉到下面Download這裏點選這個連結接着再點這個Download
APK就可以開始下載了接着將這檔案安裝到您的手機中您可以複制到您的手機安裝,或是使用ADB來安裝相信大部份的人都會了,就不浪費大家的時間安裝完之後,打開它選擇大陸地區.因為我是小米手機,有登入小米帳號了所以一裝好會直接登入.如果您不是小米手機,在這裏應該會要求您登入.登入之後就可以來到我們的電腦打開你的手機的資料夾找到Smarthome再找到logs的資料夾.
打開這個寫有日期的檔案按下格式,將自動換行打開接着按下搜尋,尋找」TOKEN」把它從這個左大括號到這個最後一個右大括號選起來然後複制起來再來到這個jsonlint的網站把剛剛那串貼到這裏面然後按下validate就會看到它被漂亮的格式化好了接着如果你有看過我之前的JSON教學影片.你就會大概知道這在寫什麼東西基本上從這個左大括號到下面這個右大括號代表的就是你的一個裝置總之這樣格式化後你應該大概也看得出來這是你裝置的名稱而這就是它的Token再看另一個例子這就是裝置的名稱這就是它的Token好,以上就是這次的兩個取得小米Token的方式請為自己認真學會這個不知道什麼時侯會被改掉我拍影片的時侯還是可以用但你看到這個影片卻不確定能不能用的方法給自己一點掌聲鼓勵吧雖然還有很多不同的方式.但都是相對麻煩的方法如果我有拍新的方法,或是哪天這個方法被改了請記得看一下右上方資訊卡裏有沒有新的方法喔好,如果覺得今天的內容有任何你不大了解的地方或是我有什麼講錯的地方,歡迎在下方留言跟我討論.如果不想錯過任何更新的話希望幫我按讚+訂閱,同時也別忘了開啟小鈴噹覺得內容有幫助拍的不錯的話也希望各位幫我分享給你所有的朋友.
.那這部影片就到這,我們下次再見囉,拜拜