需求材料
Qmote:
一款由Qblinks推出的藍牙遙控裝置,外型是金屬質感的水滴狀按鈕。
(癮科技:〈Qmote小按鈕 串起全家智慧物聯網〉)
Qmote APP:
與Qmote搭配使用的手機APP,有iOS和Android版。安裝之後,記得先和你的Qmote配對喔。
以下的範例圖會是iOS,Android的介面會有些許不同。
聲寶冷氣:
由聲寶推出,可以用Wi-Fi控制的冷氣。適用機種請參照App Store或Google Play的說明。
安裝之後,記得先和你的冷氣配對喔。
Maid White:
TIH的服務,能將Qmote和冷氣串接起來。
為了使用Maid White,我們需要一個Maid White帳號。如果還沒有,別緊張,等等的步驟會從註冊開始。
能發送http指令的工具:
若是新手,推薦使用Postman(有適用Mac OS、Windows和Linux的版本,也有Chrome的擴充功能)。
Mac或Linux的使用者如果不排斥純文字介面,可以用內建的Terminal。
預估耗時
五十分鐘。
步驟
01、註冊一個Maid White帳號
到Maid White的註冊頁面,選個你有在用的電子信箱,想組記得住又不會簡單到過份的密碼,填進對應的欄位,註冊個新帳號。
送出後,一封認證信很快就會寄到你剛剛填的的信箱。點擊認證信中的連結,會打開一個新的頁面,告知你的帳號已經認證完畢,感謝你的配合OwO。
02、取得一個Access Token
Access Token是進入Maid White伺服器的通行證,是一組長得像這樣的字串:
efd73555-a69a-acac-f15c-d463213d710a8
我們接下來要取得的Access Token是屬於你剛剛申請的那個帳號的。
使用Terminal
請輸入以下指令:
$ curl 'https://www.tih.tw/2/token' -d 'username=your@email.tw&password=yourpassword'
請將指令中的your@email.tw
以及yourpassword
分別換成你註冊Maid White用的電子信箱位址以及密碼。
送出之後,你會收到來自系統的回應。
使用Postman
1、選擇POST
2、在網址列輸入https://www.tih.tw/2/token
3、Body格式選擇x-www-form-urlencoded
4、在一個Key欄位輸入username
,在其對應的Value欄位打你的Maid White帳號;在下一列的Key跟Value欄位分別輸入password
以及你的Maid White密碼
5、按下Send送出,接著你會在下方看見來自系統的回應。
錯誤回應A
{"error":"bad_request","error_description":"username or password incorrect"}
收到這個回應,代表你的帳號或密碼打錯了。(如果真的試了很多次還是無法成功,請聯絡TIH的粉絲專頁尋求協助。)
錯誤回應B
{"error":"require_parameter","error_description":"parameter xxx not found"}
收到這個回應,代表缺了參數。請檢查username
和password
是否有漏打或拼錯。
成功回應
{"access_token":"efd73555-a69a-acac-f15c-d463213d710a8","token_type":"bearer","scope":"*"}
收到這個回應,代表剛剛送出的http request成功了!取得Access Token efd73555-a69a-acac-f15c-d46321d710a8
(當然,你的Access Token長得一定跟這個不一樣)。
03、測試Access Token
讓我們來測試一下剛剛拿到的Access Token是不是真的能用。
使用Terminal
請輸入以下指令:
$ curl 'https://www.tih.tw/2/devices' -H 'Authorization: bearer efd73555-a69a-acac-f15c-d463213d710a8'
記得將efd73555開頭的那一大串字,換成自己的Access Token喔。
送出之後,你會收到來自系統的回應。
使用Postman
1、選擇GET
2、在網址列輸入https://www.tih.tw/2/devices
3、Authorization類型選擇Bearer Token
4、在Token欄位輸入你的Access Token
5、按下Send送出,接著你會在下方看見來自系統的回應。
錯誤回應
{"error":"bad_request","error_description":"User not found"}
收到這個回應,請檢查你在複製貼上Access Token的時候有沒有缺漏或其它錯誤。
成功回應
{
"devices": [],
"status": "ok"
}
收到這個回應,代表這個Access Token正常、可用!既然可用,就可以往下一步去囉。
04、在Maid White上新增聲寶冷氣
打開聲寶冷氣的APP「聲寶智慧操作系統」,可以在列表上看見你的冷氣,以及其它家電(如果你有的話)。
冷氣那項會顯示那台冷氣的名字、狀態以及一行長長的字串,如附圖上的「客廳的冷氣」、「已連線」以及一串28UH2D開頭,長長的的文字。那個字串是這台冷氣的UID,如同冷氣的身分證字號一樣的東西,你可以從自己的手機上看見你家冷氣的UID。
Maid White就是透過這個UID知道要控制的是哪一台冷氣。
現在我們要將這台冷氣登記上Maid White了!
使用Terminal
請輸入:
$ curl 'https://www.tih.tw/2/devices' -H 'Authorization: bearer efd73555-a69a-acac-f15c-d463213d710a8' -d 'driver_name=tw.tih.x.tw.sampo.v2.air_conditioner&uid=28UH2D5LK8ZW3VYW111A'
記得將Access Token和uid
都換成自己的喔!
送出之後,你會收到來自系統的回應。
使用Postman
1、選擇POST
2、在網址列輸入https://www.tih.tw/2/devices
3、Authorization類型選擇Bearer Token
4、在Token欄位輸入你的Access Token
5、Body格式選擇x-www-form-urlencoded
6、在一個Key欄位輸入driver_name
,在其對應的Value欄位輸入tw.tih.x.tw.sampo.v2.air_conditioner
;在下一列的Key跟Value欄位分別輸入uid
以及你的冷氣的UID
7、按下Send送出,接著你會在下方看見來自系統的回應。
成功回應
{"data": 363}
收到這個回應,代表新增成功!回應得到的那個數字(如範例中的363
)是那台冷氣的device ID。
05、取得冷氣的基本資訊
現在讓我們來取得這台冷氣的一些基本資訊吧!像是有沒有開機、目前溫度、設定溫度、是否有設定定時⋯⋯等等。
使用Terminal
請輸入:
$ curl 'https://www.tih.tw/2/devices/363' -H 'Authorization: bearer efd73555-a69a-acac-f15c-d463213d710a8'
記得將363
換成你的冷氣的device ID,還有把Access Token換成你的。
使用Postman
1、選擇GET
2、在網址列輸入https://www.tih.tw/2/devices/363
,記得將網址末段的363
換成你的冷氣的device ID。
3、Authorization類型選擇Bearer Token
4、在Token欄位輸入你的Access Token
5、按下Send送出,接著你會在下方看見來自系統的回應。
錯誤回應
{
"display_name": "sampo AC 28UH2D5LK8ZW3VYW111A",
"display_picture": "",
"driver_name": "tw.tih.x.tw.sampo.v2.air_conditioner",
"error_description": "get uid IOTC_ER_DEVICE_OFFLINE",
"id": 633,
"online": false
}
收到這個回應,代表你的那台冷氣現在不在線上,請檢查冷氣是否有正確連線,或者是否加到了一台已經沒有在使用的冷氣。
成功回應
{ "ambient_temperature": 35,
"disable_ir_remote_controller": false,
"display_name": "sampo AC 28UH2D5LK8ZW3VYW111A",
"display_picture": "",
"driver_name": "tw.tih.x.tw.sampo.v2.air_conditioner",
"eco": false,
"fan_level": -1,
"id": 363,
"internet_sound": false,
"ionizer": false,
"mode": "cool",
"online": true,
"outdoor_current": 2,
"outdoor_power": 210,
"outdoor_power_total": 2309,
"outdoor_temperature": 0,
"power_status": false,
"self_clean": false,
"sleep_mode": false,
"target_temperature_range": [
29,
29
],
"vertical_wind_direction": -1,
"x_error_code": 0,
"x_maximum_mode": false,
"x_quite_mode": false,
"x_turn_off_timer_minute": 0,
"x_turn_on_timer_minute": 0
}
收到這個回應代表成功取得冷氣資訊!我們可以看見包含開關、周圍溫度、設定溫度、睡眠模式⋯⋯等等數值。
06、控制冷氣
現在來開關機吧!
使用Terminal
請輸入:
$ curl 'https://www.tih.tw/2/devices/363' -H 'Authorization: bearer efd73555-a69a-acac-f15c-d463213d710a8' -d ‘power_status=true'
開機囉!和上一步一樣,系統的回應會包含這台冷氣的種種資訊,可以注意到此時power_status=true
。
再來,只要把power_status
的參數改成false
— —
$ curl 'https://www.tih.tw/2/devices/363' -H 'Authorization: bearer efd73555-a69a-acac-f15c-d463213d710a8' -d 'power_status=false'
噠啦!成功關機!此時回應中的power_status
的值是false
。
使用Postman
1、選擇POST
2、在網址列輸入https://www.tih.tw/2/devices/363
3、Authorization類型選擇Bearer Token
4、在Token欄位輸入你的Access Token
5、Body格式選擇x-www-form-urlencoded
6、在一個Key欄位輸入power_status
,在其對應的Value欄位輸入true
7、按下Send送出 — — 開機囉!接著你會在下方看見來自系統的回應。
和上一步一樣,系統的回應會包含這台冷氣的種種資訊,可以注意到此時power_status=true
。
再來,只要把power_status
的Value改成false
,按下Send送出,就可以關機啦。此時回應中的power_status
的值是false
。
07、設定Qmote APP
有記得先配對好你的Qmote和這支APP嗎?現在打開Qmote APP,主畫面上顯示著已經配對好的Qmote,我們點一下那顆Qmote,進到新的畫面後,按一下右上角的「+」號,我們要來新增Qmote的指令囉。
點代表短按,線代表長壓,畫面上顯示的其實是不同的按鈕組合,像附圖上如骰子一般的那幾個就依照點的數量,分別是按一下到四下,想要更多按鈕組合的話,可以點畫面下方的開啟長鍵按鈕組合,就會看到除了原先的四種短壓組合,還多了「長壓一下、短按一下」、「長壓一下、短按兩下」等等,更為豐富的按鈕組合。
先以最簡單好記的「短按一下」進行設定吧。
我們進入了新的畫面,看到一大堆可選的功能,讓我們拉到畫面最下方,選擇HTTP請求。
1、請在GET、POST、DELETE、PUT那列選項中選擇POST。
2、請在網址那列輸入https://www.tih.tw/2/devices/363
(記得將device ID從363
換成自己的喔)。
3、點擊Add Parameter來新增參數。跳出的視窗有兩個欄位,分別是Key以及Value。
3-A、請在Key輸入power_status
,Value輸入true
,代表我們是想要開機(若是想關機,請改成false
)
3-B、按下Save儲存
3-C、再按一次Add Parameter
3-D、在Key與Value分別輸入access_token
以及你的Access Token。
新增完兩組參數後,點畫面右上角的儲存 — — 就可以開始測試囉!
07、測試
拿起你的Qmote,按一下之後稍微等幾秒 — — 聽到冷氣的嗶聲了嗎?
成、功、啦!
以上,希望大家玩(?)得還開心。歡迎大家和我們分享實作的經驗!
如果有任何疑問或建議,可以直接在這篇文章留言,或者到TIH的Facebook粉絲專頁留言、私訊我們。