發表文章

目前顯示的是 1月, 2018的文章

透過Tasker控制LIFX

最近從Amazon入手了一顆LIFX A19,主要是為了可以解決房間早上照不進太陽害我非常難起床的問題,因此我希望想要做的事情是: 在早晨隨著日出時間開啟並且緩慢改變亮度以及色溫,模擬日出的感覺。 在出門(手機沒有連上家裡Wi-Fi)之後透過行動網路傳送訊息給LIFX關燈。 在手機連上家裡Wi-Fi,而且時間是白天的時候自動開燈(回家就開燈的意思)。 第一項可以透過LIFX官方的App設定schedule來達成。只要先設定一個schedule在日出前任何時候先將色溫改成2500K(其他設定都保持不改變,即使燈是關的也沒關係),再設定一個schedule在日出時將燈開啟,色溫設定為3500K(日出後1小時的色溫)、亮度設定為100%、Fade Duration為60分鐘,這樣子LIFX就會在日出後慢慢地從暗開到最亮,並且模擬太陽的色溫變化了。 第2、3項則需要透過一些Automation的App來達成。在Android上我的首選當然是Tasker,但LIFX並沒有做跟Tasker接的plugin,只有IFTTT有這樣的功能,因此一開始我是選擇先試看看IFTTT。但IFTTT相當不穩定,有些applet完全沒辦法觸發,一氣之前還是想辦法找Tasker可以控制LIFX的方法。一開始找的方法是透過LIFX提供的 HTTP API文件 中提到利用HTTP POST方法開關燈,結果Tasker雖然可以做HTTP POST task,但沒辦法在其中帶header,所以無法滿足LIFX HTTP API的需求。簡單的解決方法是利用 RESTask 這個Tasker Plugin讓Tasker可以送出包含header的HTTP POST訊息。(2021/07/05 Updated: 忘記是多久以前Tasker的HTTP Request已經可以支援帶header了,所以現在可以直接利用Tasker內建的HTML Request對LIFX下指令了喔。) 但因為我實在是很不想再另外裝App,最後終於找到了一篇 reddit討論串 剛好有人也有做一樣的事情,他使用的方法是用JavaScript指令來觸發LIFX的HTTP API。因此在Tasker中可以做一個JavaScriptlet task,貼上以下這段Code: 這段Code中,想要對LI