事情是這樣的,我經常打遊戲打著打著需要開樓下門禁讓外賣小哥把投食放門口,但是經常需要切換出去打開小程序,點擊開門。
這個時間足夠我完成一次精彩的五殺了。
這能讓一個懶狗程序員忍得下?不能的!於是閒暇時間寫了個開門服務部署在我的 k8s 上。
至今已安全運行超過兩個月了。
抓包#
破壞計算機信息系統罪預警
最簡單的方式是在電腦端打開小程序獲取小程序的請求參數和地址。
小程序門禁為了不頻繁登錄開門的用戶 token 是不變的...
具體怎麼抓包,本文不進行展開。
米家第三方平台#
經過本人主觀調研 巴法雲 是目前最適合的雲平台。
大致流程圖如下:
具體的巴法雲服務調用流程可以去官網查詢詳細的文檔。
這裡以開門為例。
新建一個 MQTT 設備雲 名稱叫 FBIOPENTHERDOOR001 , 這裡的設備名稱尾號的數值代表設備的類型,001 則代表著開關類型。
然後去米家 APP -> 我的 -> 其他平台設備 -> 添加 -> 輸入你的巴法雲平台賬號並且同步一下設備。
這個時候當你和小愛同學說開門時,訂閱端會收到一個 on 的字符串,這個時候去調用你的門禁 API 就可以實現語音開門的效果了。
注意事項#
- 請注意 MQTT 重連的時候需要你重新訂閱主題。
- 可以加入 API 的重試機制防止某些特殊情況導致門禁 API 調用失敗。
- 加入服務重啟機制,如果有 k8s 當我沒說,某些情況下 MQTT 連接不穩定會斷開,需要重啟。
- 可以製作一個自己的門禁 API,通過 SmsForwarder 轉發未接來電實現開門,防止點夜宵睡過頭。( 🤡是誰睡過頭了我不說