給每個房間加個掃地機——小米(石頭)掃地機接入HOMEKIT實現分割槽域打掃

作者:casatift

哈嘍,艾瑞巴蒂。我是你們的智慧家居領路人CT。非常高興時隔數月終於再次更新本專欄,這主要是因為家裡的翻新裝修終於結束,這周已經開始陸續的整理工作,為打回老家做準備了。同時期進行的就是全屋智慧家居的設定了,而這次部署的智慧家居系統我則是拋棄了之前使用多年的domoitcz轉向使用Home Assitant搭配APP DAEMON實現自動化,在語音控制上則是全屋部署了Homepod搭配Home APP來實現。

而這次帶給大家的是一個非常簡單的應用,就是將小米(石頭)掃地機器人接入HA以及HK,並且實現區域控制。這個想法主要是因為這幾天在整理過程中,經常整理哪間房間,哪間房間的地板就會弄髒,如果髒了之後不即時清理,髒東西就會隨著人的走動帶到家裡各處,而每次區域打掃都要開啟米家APP,找到掃地機,再選擇區域,就略顯麻煩,所以就決定一勞永逸的給每個房間添上一個對應的清掃開關,這樣要打掃餐廳的時候,就只要說一句“hey siri,開啟餐廳掃地機”,當然,如果再設定個場景的話,就只要說“hey siri,打掃下餐廳”掃地機就會自己跑出來把餐廳打掃一遍,下面我們來說說具體步驟:

將掃地機接入Home Assitant

首先第一步自然是將掃地機接入Home Assitant,這裡使用的官方Miio整合,我們只需要在整合裡面搜尋MIIO:

給每個房間加個掃地機——小米(石頭)掃地機接入HOMEKIT實現分割槽域打掃

然後選擇Xiaomi Miio。

給每個房間加個掃地機——小米(石頭)掃地機接入HOMEKIT實現分割槽域打掃

按照提示填入自己的使用者名稱,密碼等資訊:

給每個房間加個掃地機——小米(石頭)掃地機接入HOMEKIT實現分割槽域打掃

然後選上我們的掃地機器人,我這裡用的是石頭T7 pro,提交之後,在HA的整合裡就會出現一個掃地機器人的卡片:

給每個房間加個掃地機——小米(石頭)掃地機接入HOMEKIT實現分割槽域打掃

點進去就可以看到自動生成的實體:

給每個房間加個掃地機——小米(石頭)掃地機接入HOMEKIT實現分割槽域打掃

一般來說,這裡我們只需要用到控制掃地機的實體:

給每個房間加個掃地機——小米(石頭)掃地機接入HOMEKIT實現分割槽域打掃

這時,你就可以對掃地機進行簡單的控制了,例如開始清掃,回充,暫停,定點清掃等以及調整吸塵模式了。相對於之前的YAML配置,新版的HA基本都使用了UI配置,對於小白來說簡單了不少。

獲取區域ID

給每個房間加個掃地機——小米(石頭)掃地機接入HOMEKIT實現分割槽域打掃

這裡我們需要在將掃地機器人接入米家完成之後第一次清掃之後,就將家裡的區域都劃分設定好,我這裡是劃分了11個區域,並在米家裡面命名了。但是HA呼叫的時候,是不能直接使用名字的,而只能使用每塊區域對應的ID號,所以這一步,我們就是獲取區域ID,我這使用的整合是gateway3。我們首先需要做的就是在HACS的Integrations裡 Explore& Add repository搜尋新增XiaomiGateway3,如果沒有安裝HACS的話,可以先自行安裝HACS(安裝方式見HACS官網,一條命令的事),或是手動從github上下載最新版的XiaomiGateway3 複製到custom_components目錄下重啟HA,之後就可以在HA的配置整合裡面新增新的gateway3的整合:

之後按照提示選擇新增小米雲賬號:

給每個房間加個掃地機——小米(石頭)掃地機接入HOMEKIT實現分割槽域打掃

之後按照提示選擇新增小米雲賬號:

給每個房間加個掃地機——小米(石頭)掃地機接入HOMEKIT實現分割槽域打掃

新增完成之後就可以在HA整合頁面上找到gateway3的整合,新增自己的小米賬號:

給每個房間加個掃地機——小米(石頭)掃地機接入HOMEKIT實現分割槽域打掃

然後在gateway3整合上點選進入自己的賬號,大家可以看到,gateway3主要功能其實是將米家多模閘道器接入HA,實現zigbee以及藍芽子裝置的接入。進去之後點選選項,選擇對應的掃地機器人:

給每個房間加個掃地機——小米(石頭)掃地機接入HOMEKIT實現分割槽域打掃

頁面就會顯示出掃地機器人的Token以及Room ID,說到這,就引出了gateway3外掛的另一妙用就是獲取米家裝置的Token了。拿到房間ID之後,我們就可以進行下一步——給對應區域新增掃地機開關了。

生成掃地機區域打掃開關

終於,我們還是用到了YAML配置,開啟HA的configuration。yaml檔案,在switch:裡面新增如下程式碼:

給每個房間加個掃地機——小米(石頭)掃地機接入HOMEKIT實現分割槽域打掃

這裡的keweisaodiji就是你自己對這個開關的命名,這裡不能用中文,而下面的service如果自己不會寫,可以在HA的開發者工具服務裡透過UI生成:

給每個房間加個掃地機——小米(石頭)掃地機接入HOMEKIT實現分割槽域打掃

先選擇Xiaomi Miio: Vacuum clean segment服務,然後實體選擇掃地機:

給每個房間加個掃地機——小米(石頭)掃地機接入HOMEKIT實現分割槽域打掃

最後segments後面填對應的ID:

給每個房間加個掃地機——小米(石頭)掃地機接入HOMEKIT實現分割槽域打掃

然後點選進入YAML模式:

給每個房間加個掃地機——小米(石頭)掃地機接入HOMEKIT實現分割槽域打掃

直接將生成的程式碼複製進configuration。yaml的turn_on下,注意空格和縮排。而turn_off的service就是回充Return to base命令,依葫蘆畫瓢也可以在UI裡生成:

給每個房間加個掃地機——小米(石頭)掃地機接入HOMEKIT實現分割槽域打掃

進入YAML模式:

給每個房間加個掃地機——小米(石頭)掃地機接入HOMEKIT實現分割槽域打掃

然後複製程式碼填到turn_off下方就好。如果有多個區域,就在configuration。yaml裡面新增多個:

給每個房間加個掃地機——小米(石頭)掃地機接入HOMEKIT實現分割槽域打掃

只要改名字和segments序號就成。然後重啟HA,查詢實體,就能找到剛才配置的這些開關了:

給每個房間加個掃地機——小米(石頭)掃地機接入HOMEKIT實現分割槽域打掃

點選進去就可以看到我們可以對每個開關進行開關操作了:

給每個房間加個掃地機——小米(石頭)掃地機接入HOMEKIT實現分割槽域打掃

這裡面大家可能會發現一個問題,就是這裡的開關on和off是兩個按鈕,這是因為我們定義開關的時候沒有定義開關狀態造成的,當然,該如何定義,作為HA萌新的我並不知道,如果誰知道可以在評論區告訴我,但即使這樣也完全不影響我們使用。不過我這裡還是做了個進階設定,就是當掃地機狀態為停靠時,所有的區域開關都自動關閉。這裡我用的是APP DAEMON,因為這部分設不設只對狀態有影響,對使用沒影響,我這裡就不展開說了,只把程式碼貼出來供大家參考,首先我做了一個vacuum_auto。py檔案:

給每個房間加個掃地機——小米(石頭)掃地機接入HOMEKIT實現分割槽域打掃

這裡面就定義了掃地機的ID,然後監聽掃地機的狀態,當狀態變化為”docked“的時候,就自動將所有的掃地機都關掉。然後我們在APP。YAML裡新增這個module:

給每個房間加個掃地機——小米(石頭)掃地機接入HOMEKIT實現分割槽域打掃

這樣每次打掃完,APP DAEMON就會重置所有的區域掃地機開關。

給每個房間加個掃地機——小米(石頭)掃地機接入HOMEKIT實現分割槽域打掃

將開關接入HomeKit

開關做好了,但是如果每次開都需要點開HA再去開的話,就和米家沒啥區別了,所以最後一步,我們就是將它接入Homkit了,這裡我們用的也是HA自帶的Homekit整合:

給每個房間加個掃地機——小米(石頭)掃地機接入HOMEKIT實現分割槽域打掃

這裡我們要選擇的是Homekit:

給每個房間加個掃地機——小米(石頭)掃地機接入HOMEKIT實現分割槽域打掃

然後在要包含的域裡選擇switch,如果你有更多裝置型別要接入Homekit的話可以一併勾選,然後照提示做,將掃地機開關們新增進去:

給每個房間加個掃地機——小米(石頭)掃地機接入HOMEKIT實現分割槽域打掃

完成之後就能在通知項裡找到配對二維碼,手機掃碼新增即可:

給每個房間加個掃地機——小米(石頭)掃地機接入HOMEKIT實現分割槽域打掃

剩下的Homkit上的重新命名,移動房間這裡就不多說了。之後你就能享受到語音控制分割槽打掃的便捷了。

年終理財爆款福利!領取8%+理財券,每日限額2000份,先到先得!

頂部