[DECO 3] 裝潢筆記 - 用 SIRI 遙控電動窗簾
這次裝潢的時侯,主臥跟客廳都採用了電動窗簾。客廳採用電動窗簾,最主要的原因是怕傢俱、木作久了會變色,所以想說用了電動窗簾,設定 schedule 後,白天就可以自動把窗簾拉上,增加傢俱及木作的耐用度。
但是這款電動窗簾其實並沒有 schedule 的功能,只有一個無線遙控器,因此只好自己來了 XD
原廠附的遙控器質感還不錯,是採用磁吸式跟掛架結合
我使用了 OpenHAB + RM2 Pro +RM Bridge 來完成第一步。
第一步 - 用 RM Bridge 來控制窗簾
http://rm-bridge.fun2code.de/
原本的 RM2 Pro 就可以透過它的 App 就來控制窗簾了,但 App 並沒有提供任何 API 或者 HTTP command 讓我們透過程式去操作,因此我另外用了 RM Bridge 操作 RM2 Pro。
RM Bridge 本身就有提供 learning code 的介面 http://rm-bridge.fun2code.de/rm_manage/code_learning.html,你可以自己定義指令名稱,然後按下原本的遙控器讓他學習即可。下面則是窗簾、投影機及布幕等學習完的指令清單。接下來只要透過 URL 就可以去發射遙控器訊號了。
當然,RM2 Pro 本身也有提供完整的 SDK,所以其實要全部自己來,不透過 RM Bridge 也是可以的。
第二步 - 整合進入 OpenHAB
http://www.openhab.org/
OpenHAB 是我目前最喜歡的 home automation 平台,因為各式各樣的 binding 非常豐富,從常見的 Philips Hue, Sonos, INSTEON,到 DAIKIN 冷氣,SAMSUNG電視,甚至我的音樂撥放器 SqueezeBox 都有。而一般 RD 最喜歡看到的 HTTP,TCP也都一應俱全,而且如果覺得不夠,也可以自己再擴充,真的是夢幻逸品啊 XD
這裡我是使用 HTTP binding 來跟 RM Bridge 整合。OpenHAB 最困難的地方是它的設定檔,官方網頁開宗明義就有說:很難學,但是很值得 XD
首先要把它加到 OpenHAB 的 item 中,以我的環境為例:
/opt/openhab/configurations/items/demo.items
在最後面加入
Switch Curtain "Living Room Curtain" { http=">[ON:GET:http://192.168.11.5:7474/code/openit] >[OFF:GET:http://192.168.11.5:7474/code/closeit]" }
接下來要在 sitemaps 中把這個 Curtain 加進去:
/opt/openhab/configurations/sitemaps/homekit.sitemap
sitemap homekit label="Diro HomeKit" {
Switch item=Curtain label="Curtain"
Switch item=Screen label="Screen"
Switch item=Projector label="Projector"
}
接下來啟動 OpenHAB 後,就可以透過瀏覽器看到:
這樣就可以透過 OpenHAB 去設定 schedule 來定時開關窗簾了。
第三步 - 整合 HomeKit bridge
https://github.com/htreu/OpenHAB-HomeKit-Bridge最後就是要想辦法跟 SIRI 做整合了,只能說 OpenHAB 實在太強大了,貢獻者眾,竟然已經有人寫好了 HomeKit Bridge!!
因此只要正確的啟動,就沒有問題了
npm start -- --name "myopenhab-bridge" --sitemap homekit
如果平常沒有在用 node.js 的,應該會缺很多 package,基本上補一補就沒什麼問題了
npm install --save-dev babel-preset-es2015
npm install --save-dev babel-preset-stage-2
npm install stdio
npm install hap-nodejs
npm install ws
npm install debug
...
接下來就跟操作一般 HomeKit 的設備一樣了,設定房間、設備名稱等,然後就可以用 SIRI 來控制他們了 :)
示範影片:
0 comments