banner
远浅

远浅

今宵绝胜无人共,卧看星河尽意明。

技術 | 如何讓小愛同學聯動小程式門禁

事情是這樣的,我經常打遊戲打著打著需要開樓下門禁讓外賣小哥把投食放門口,但是經常需要切換出去打開小程序,點擊開門。

這個時間足夠我完成一次精彩的五殺了。

這能讓一個懶狗程序員忍得下?不能的!於是閒暇時間寫了個開門服務部署在我的 k8s 上。

至今已安全運行超過兩個月了。

抓包#

破壞計算機信息系統罪預警

最簡單的方式是在電腦端打開小程序獲取小程序的請求參數和地址。

小程序門禁為了不頻繁登錄開門的用戶 token 是不變的...

具體怎麼抓包,本文不進行展開。

米家第三方平台#

經過本人主觀調研 巴法雲 是目前最適合的雲平台。

大致流程圖如下:
image.png

具體的巴法雲服務調用流程可以去官網查詢詳細的文檔。

這裡以開門為例。

新建一個 MQTT 設備雲 名稱叫 FBIOPENTHERDOOR001 , 這裡的設備名稱尾號的數值代表設備的類型,001 則代表著開關類型。

然後去米家 APP -> 我的 -> 其他平台設備 -> 添加 -> 輸入你的巴法雲平台賬號並且同步一下設備。

這個時候當你和小愛同學說開門時,訂閱端會收到一個 on 的字符串,這個時候去調用你的門禁 API 就可以實現語音開門的效果了。

注意事項#

  • 請注意 MQTT 重連的時候需要你重新訂閱主題。
  • 可以加入 API 的重試機制防止某些特殊情況導致門禁 API 調用失敗。
  • 加入服務重啟機制,如果有 k8s 當我沒說,某些情況下 MQTT 連接不穩定會斷開,需要重啟。
  • 可以製作一個自己的門禁 API,通過 SmsForwarder 轉發未接來電實現開門,防止點夜宵睡過頭。( 🤡是誰睡過頭了我不說

參考鏈接#

載入中......