你有想過將智能家居和 Tableau 結(jié)合么?Tableau 愛好者 Ann Jackson 就在自己家中,嘗試實(shí)現(xiàn)將智能家居系統(tǒng)與 Tableau 儀表板集成在一起。根據(jù)燈光顏色非?!翱犰诺摹闭故緝x表板中的數(shù)據(jù)信息。想知道她如何腦洞大開?一起來看看!
Ann Jackson 曾在 Twitter 上發(fā)布了一個(gè)視頻,展示了如何將智能家居系統(tǒng)與 Tableau 儀表板集成在一起。視頻的內(nèi)容就是三個(gè)燈泡的燈光顏色會(huì)隨著儀表板中 KPI 結(jié)果的改變而動(dòng)態(tài)變化。
她將照明設(shè)備連接到 Tableau 儀表板的原因除了 “比較酷炫” 之外 —— 還有一些很實(shí)際的原因。使用類似燈光的東西能夠輕松表示 KPI 或 BAN ( Big ass number ) 的狀態(tài),讓用戶迅速理解數(shù)據(jù)信息!
實(shí)現(xiàn)這種展現(xiàn)方式,需要哪些準(zhǔn)備工作?
為了實(shí)現(xiàn)智能家居系統(tǒng)和 Tableau 之間的集成,Ann Jackson使用了 Python 。因?yàn)橐呀?jīng)有人開發(fā)了庫(kù)并將它們發(fā)布到 GitHub 上共享,所以Python 非常適合這種情況。另外一個(gè)原因是 TabPy,它允許您連接到 Python 服務(wù)器并通過計(jì)算字段運(yùn)行本地 Python 代碼。這些計(jì)算字段將在 Tableau 工作表中作為表計(jì)算。一般來說,當(dāng)您將 Tableau 與 Python 結(jié)合使用時(shí),您會(huì)得到一個(gè)數(shù)字 / 字符串 / 布爾值。
當(dāng)然,這不代表您不能拓展 TabPy 的功能,或者以其他方式來使用它。這正是這個(gè)項(xiàng)目的意義所在。因?yàn)檫@涉及到智能家居和她正在學(xué)習(xí)的Python,而 Tableau 是她的最愛。所以這個(gè)項(xiàng)目對(duì) Ann Jackson 來說也是一個(gè)持續(xù)項(xiàng)目。
如果您想模仿 Ann 所做的事,那么您需要一些硬件設(shè)備。比如飛利浦 Hue 燈和配套的橋接器。理論上您可以使用其他智能家居部件。如果您不熟悉智能家居是什么 - 它基本上是通過橋接器向燈泡,給鎖和恒溫器等設(shè)備發(fā)出命令。它同時(shí)也是一種媒介,將您與智能家居系統(tǒng)(通常是移動(dòng)應(yīng)用程序)相連接,并將命令或程序轉(zhuǎn)換為系統(tǒng)中的元素。具體到這個(gè)項(xiàng)目中,Ann 使用 Python 庫(kù)與她的橋接器進(jìn)行交互。她選用的庫(kù)是 Phue,這是一個(gè) Python 庫(kù),用于與 Hue API 的交互。
智能家居系統(tǒng)和 Tableau 集成步驟1下載并安裝 Phue 到 TabPy
首先她下載并安裝了 Phue 到 Tableau - Python - Server(又稱為 TabPy)。這樣就可以通過 Tableau 的 Python 腳本調(diào)用庫(kù)。在安裝過程中,還運(yùn)行了一個(gè)簡(jiǎn)單的腳本將庫(kù)連接到我的橋接器 – 這是這一切工作的必要步驟。您必須建立起傳輸控件和燈具之間的連接。
2使用 Python 進(jìn)行測(cè)試和驗(yàn)證
接下來的部分就是輸入代碼,使用 Python 進(jìn)行測(cè)試和驗(yàn)證誤差,以及體驗(yàn) Tableau 的樂趣。以下是最終計(jì)算出的結(jié)果:
利潤(rùn)率 KPI - 這是我們都熟悉的指標(biāo)。我已經(jīng)完成了基本的利潤(rùn)率計(jì)算,并根據(jù)參數(shù)進(jìn)行了計(jì)算。計(jì)算結(jié)果將是 0 或 25000 。數(shù)字 0 和 25000 對(duì)應(yīng)于燈泡的顏色輸入。 0 是紅色, 25000 是綠色。
這里是純 Python 的計(jì)算字段。在這種情況下,我實(shí)際上并沒有使用 Python 來壓縮任何東西并返回結(jié)果,所以您會(huì)注意到返回參數(shù)是一個(gè)虛擬數(shù)字 1 。
3使用 SCRIPT_INT 函數(shù)
您將在 Tableau 編輯器中的計(jì)算字段描述中看到它 - 要使用 SCRIPT_INT(或任何 SCRIPT 函數(shù)),格式為:將代碼放在引號(hào)中,任何輸入或參數(shù)都使用 _arg1, _arg2, _argN 。這些參數(shù)用逗號(hào)隔開。在例子中有一個(gè)參數(shù),[ Profit Ratio KPI ],它被分配給了一個(gè)代碼。
代碼基本步驟如下:
設(shè)置 [ Profit Ratio KPI ] 為 a
導(dǎo)入 phue 庫(kù),以便我們可以使用它
使用橋接器(我內(nèi)部網(wǎng)絡(luò)中服務(wù)器的 IP 地址)
將光的飽和度設(shè)置為 254 - 這是額外的代碼,但這能確保光線具有全飽和度
將 light hue 設(shè)為 a 值
返回1 - 只是為了好玩!
在測(cè)試此代碼時(shí),打開 Jupyter notebook,輸入相同代碼以在 Tableau 之外的地方對(duì)其進(jìn)行測(cè)試。在正常情況下,可以給 a 分配一個(gè)數(shù),運(yùn)行代碼,并有燈光改變顏色。在 Tableau 中,則必須調(diào)用參數(shù)的第一個(gè)變量 “ [ 0 ] ” 。因此,為了分離出想要的結(jié)果,必須在一個(gè)變量列表中指定想要的元素。所以 Ann 的 KPI 結(jié)果實(shí)際上就像 Python 符號(hào)中的[ 25000 ],被稱為 _arg1 [0](non-Python folk:Python 的變量從 0 開始)。
從字面上看,所有事情都是在設(shè)置和構(gòu)建 Tableau 組件。構(gòu)建 BAN 并添加參數(shù)以動(dòng)態(tài)輸入目標(biāo)變量。在輸入正確的代碼后,其他所有內(nèi)容都將連接并正常工作。以下是其中一張 BAN 工作表的樣子:
計(jì)算字段未在視圖中的任何其他位置使用。(如果您在默認(rèn)的工具提示上懸停,結(jié)果會(huì)顯示 “1”)。
一旦設(shè)置了可視化,只需要與儀表板交互此集成就開始生效。在 Ann 發(fā)布的視頻中,這個(gè)交互速度并不快。這是有原因的 - 從 Tableau 開始接受計(jì)算參數(shù),將其傳送到 Python 服務(wù)器,然后等待結(jié)果返回,這里需要一段時(shí)間。
Ann 進(jìn)行的嘗試非常有借鑒意義,如果你也有相似的想法,不妨參考本文進(jìn)行下實(shí)踐,也許您也能制作出更 “酷炫” 的數(shù)據(jù)展現(xiàn)形式!這是一個(gè)非常簡(jiǎn)單的整合和演示,通過幾行代碼,數(shù)據(jù)驅(qū)動(dòng)的表現(xiàn)就可以存在于物理世界中。這也是物聯(lián)網(wǎng)的一種應(yīng)用,如果你對(duì)物聯(lián)網(wǎng)有著濃厚的興趣,那還不快來參加本周四 Tableau 舉辦的網(wǎng)絡(luò)分享會(huì)!
-
智能家居
+關(guān)注
關(guān)注
1928文章
9565瀏覽量
185240 -
python
+關(guān)注
關(guān)注
56文章
4797瀏覽量
84729
原文標(biāo)題:利用 Python 的力量,實(shí)現(xiàn) Tableau 與智能家居系統(tǒng)集成
文章出處:【微信號(hào):TableauChina,微信公眾號(hào):Tableau社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論