小米音箱(小愛同學)做的不錯,但是目前功能上還是有很多限制,比如不能啟動電腦。Home assistant是一個開放的智能家居平台,集成非常多的模塊,比如Wake on LAN模塊就可以實現通過網線喚醒電腦的功能。可惜目前不能通過小米音箱直接連接Home Assistant。好在小愛同學兼容自家的萬能遙控器,我們想到了把Home Assistant設備變成一個遙控終端,通過一個紅外萬能遙控器和一個紅外接收器做為一個橋接中介,實現小米音箱間接控制Home Assistant平台的目的。本文參考了這個教程。
需要的東西
運行Home Assistant的設備(電腦、NAS、樹莓派等,我用的是樹莓派2代)
紅外接收器(我使用的是一個通用USB接收器,樹莓派用戶可以DIY一個)
小米(創米)萬能紅外線遙控器
小米AI音箱
給Home Assistant設備添加紅外遙控接收功能
將紅外接收器連接到home assistant設備上。確認紅外設備存在,如
pi@raspberrypi:~ $ ls /dev/lirc0
/dev/lirc0
安裝紅外線收發lirc程序:
pi@raspberrypi:~ $ sudo apt-get install lirc liblircclient-dev
測試紅外線接收功能正常:
sudo mode2 -d /dev/lirc0
運行上面命令後找一個紅外遙控器對着接收器按任意鍵,應該可以收到類似這樣的字符:
Using driver default on device /dev/lirc0
Trying device: /dev/lirc0
Using device: /dev/lirc0
Running as regular user pi
pulse 2750
space 750
pulse 550
...
好,現在Home Assistant設備可以接收到紅外遙控信息了。下一步,讓Home Assistant和紅外遙控器可以通信。
讓Home Assistant接收紅外遙控數據
隨便給lirc指定一個接收的遙控器數據表,這裡用的是xbox360的遙控器,你不需要有這個遙控器,因為後面可以用小米萬能遙控器把它模擬出來。
下載xbox360遙控器的數據表,把它設置到lirc:
pi@raspberrypi:~ $ wget http://lirc.sourceforge.net/remotes/microsoft/Xbox360
pi@raspberrypi:~ $ sudo mv Xbox360 /etc/lirc/lircd.conf
創建/etc/lirc/lircrc文件,內容:
begin
remote = Microsoft_Xbox360
button = KEY_STOP
prog = home-assistant
config = KEY_STOP
end
begin
remote = Microsoft_Xbox360
button = KEY_PAUSE
prog = home-assistant
config = KEY_PAUSE
end
這裡只以兩個按鍵為例子,參看上面/etc/lirc/lircd.conf的內容,你可以多添加幾個按鍵。
重啟lirc
pi@raspberrypi:~ $ sudo systemctl restart lircd.service
現在在米家app給小米萬能遙控器添加Xbox360遙控器(使用搜索功能添加,裡面有兩個,我添加的是“微軟DVD播放器”那個),現在測試
pi@raspberrypi:~ $ ircat home-assistant
按遙控器上的停止按鍵,應該會收到相應的代碼。
現在米家app可以給home assistant設備發信息了,下一步要做的是根據這個信息,觸發不同的動作。
Home assistant根據遙控器指令觸發動作
編輯 HomeAssistant 的configuration.yaml文件,加入lirc組件,
lirc:
配置home assistant的自動化指令:
automation:
- alias: 打開燈
trigger:
platform: event
event_type: ir_command_received
event_data:
button_name: KEY_PAUSE
action:
service: homeassistant.turn_on
entity_id: group.a_lights
上面的KEY_PAUSE就是剛剛配置的遙控器按鍵。action可以換成你想要的效果,我是幫來它來啟動我的電腦了。重啟homeassistant,讓配置生效,現在對着樹莓派按暫停播放鍵,就Homeassistant就會觸發相應的動作了。
讓小米AI音箱控制萬能遙控器
先打開米家app,在底部點選“智能”,在“我在”tab中點右上角的“+”號創建新智能條目,在選擇條件界面選擇“手動執行”,選擇“小米萬能遙控器”-〈遙控模式〉-〈微軟DVD播放器〉-〈暫停/播放〉-〈右上角“確定”〉設置你想要的名稱,比如“啟動電腦”
好了。打開小米AI app,在底部點選“技能中心”-〈小愛訓練計劃〉-〈創建訓練〉-〈為問題命名,比如“啟動電腦”〉-〈設備控制〉-〈選擇剛創建的“啟動電腦”〉-〈打開〉,預覽後保存。
(相關的圖文教程點這裡)
好了。現在對着小米同學說“啟動電腦”,小米音箱會指示小米萬能遙控器發送一個KEY_PAUSE按鍵,這時home assisant收到後,就會觸發啟動電腦的動作了。
參看:Creating a Raspberry Pi Universal Remote With LIRC
另一種通過第三方平台橋接小愛同學和home assistant的方法: https://bbs.hassbian.com/thread-2404-1-1.html
轉載請註明: 轉自船長日誌, 本文鏈接地址: http://www.cslog.cn/Content/xiaomi-ai-box-2-home-assistant/zh-hant/
貌似只有 stop 和 pause 兩個鍵可用。。。