HomeAssistant xiaomi_gateway3 如何讓目前不支援的傳感器能正常使用

最近買了新的人體傳感器2s,結果發現xiaomi_gateway3沒辦法正常讀取,只有ble正常。於是我只能使用雲端版的xiaomi,然後感應燈自動化就不夠及時了。

小米IoT有一套很成熟的平臺,而且陸版往往比台版早推出許久,因此我認為參數運作等等早就已經在陸版推出不久就已經被串好,只是台版沒有順利用陸版運作邏輯去撈資料。

陸版跟台版最大差異是無線與伺服器。

因此台版人體傳感器2s,其實與陸版人體傳感器2s是不同model,這也導致xiaomi_gateway3沒辦法將台版人體傳感器2s用陸版人體傳感器2s的參數去撈資料。

https://iot.mi.com/v2/new/doc/introduction/knowledge/spec

https://home.miot-spec.com/s/xiaomi.motion.pir1

以上是小米各種產品的iot運作參數,在兩三年前,小米各種產品都各自有一套siid與piid,這部份看以上連結就能查閱。

台版人體傳感器2s與陸版人體傳感器2s的參數都一樣,只是一個型號是
xiaomi.motion.pir1g、xiaomi.motion.pir1,這是市場型號,對於xiaomi_gateway3來說,型號是19552、13617。

怎麽得知台版人體傳感器2s的model?透過xiaomi_gateway3的裝置資訊!

這邊可以看到model為19552。

米家生態系產品眾多,不可能每一種都為其創立函式。一定是透過字典mapping,而字典mapping就需要model在字典中。

這份字典在哪裡?在xiaomi_gateway3/core/devices.py中。

在xiaomi_gateway3/core/devices.py中,siid與piid都能對上,如2.p.1005是光照度lux。

而2.e.1008,則對應MIot的Event,如果有觸發就會上報事件,即時更新狀態。

要如何讓台版人體傳感器2s在hacs中的xiaomi_gateway3中能正常被讀取?

  1. 參考https://home.miot-spec.com/s/xiaomi.motion.pir1,瞭解eiid、siid。
  2. 透過xiaomi_gateway3的裝置資訊取得model。
  3. 在xiaomi_gateway3/core/devices.py中,添加model,並對照eiid與siid。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *