Room Controls 功能可讓您控制第三方、具備 IP功能的設備,這樣使用者就能透過 Zoom Room 控制器控制設備。管理員可以建立設定檔,從 Zoom Room 加入外寄 IP 控制訊息。
附註: 如果您是將室內控制功能用於音訊 / 視訊 (A/V) 用途,您可以在 Zoom Rooms 中具有多個 NIC 的電腦上指定獨立的網路介面卡 (NIC)。NIC 可以從連接至其他網路的房間控制裝置中獨立選擇,這些房間控制裝置與啟用 Zoom Rooms 的電腦相連。此設定可讓您的音訊/視訊流量遠離主要網路。
在您上傳 JSON 設定檔之前,需要啟用 Zoom Room 的設定。
在撰寫 Room Controls Profile 之前,需要對 JSON 有一定的瞭解。需要注意的關鍵項目是 JSON 是基於 key:value 對的系統,而且語法對於正確排版檔案非常重要。如需 JSON 基礎知識的其他資訊,請參考線上入門課程。
在任何編碼語言中,都應該對處理您檔案的下一個人給予一些禮貌。雖然室內控制對此沒有特定的要求,但我們建議您這樣做。若要留下作者、版本或其他歷史記錄,可以使用「關於」物件,並將其置於「適配器」之上。Room Controls 不會解析,但會保留在入口網站中。 以下舉例說明如何運用此功能。
{
"關於" :{
"類型" :"中型會議 A" 、
"version":"v1.2.4" 、
"design_ref":"\files\MediumConfA" 、
"created" :"Mon, 21 Oct 2020 16:35:52 GMT"
},
設定轉接器可將 Room Controls 連接到裝置。本節是設定的主要部分。巢狀 JSON 格式內的個別裝置應遵循類似的格式 (本範例的巢狀與下面的程式碼範例平行):
{
"適配器" :[
{
"型號":"iTachIP2SL" 、
"IP":"[IP_ADDRESS]" 、
"uuid" :"GlobalCache_[UNIT_MAC_ADDRESS]" 、
"ports" :[
{
"id":"sl_sharp_tv" 、
"name":"Sharp Display" 、
"settings" :{
"baud_rate" :"38400" 、
"flow_control" :"FLOW_NONE" 、
"parity" :"PARITY_NO"
},
"methods": [
{
"id":"power" 、
"name":"Power" 、
"command" :"POWR000%\x0D" 、
"params" :[
{
"id":"displayOn" 、
"name":"On" 、
"value":"0001"
},
{
"id":"displayOff" 、
"name":"Off" 、
"value":"0000"
}
],
"type":"actions"
},
...
在「方法」下面,可以使用額外的部分:"response_filter" 。回應篩選器是一個信標,可讓下面定義的回應篩選器了解要聆聽哪個連線。此區域未定義任何功能。回應篩選器如何與其他章節配合,將在這些章節中說明。
樣式控制介面元素的視覺樣式。調整的範圍不是非常廣泛,所以學起來也不是很難。
介面中有許多可用的圖示。它們涵蓋了從空調到免提電話的所有產品。以下圖示為目前的清單,但此清單仍會定期擴充。
裝置 | 名稱 | 圖片 |
冷氣機 | 空氣調節器 | ![]() |
有线电视 | 有線電視 | ![]() |
天花麥克風 | 圖示天花板麥克風 | ![]() |
帷幕 | 圖示窗簾 | ![]() |
DVD 播放器 | 圖示_dvd_player | ![]() |
Xbox/PS4 系統 | 遊戲控制台圖示 | ![]() |
HDMI | 圖示_hdmi | ![]() |
筆記本電腦 | 圖示_筆記型電腦 | ![]() |
輕 | 圖示燈 | ![]() |
投影機 | 圖示投影機 | ![]() |
機架設備 | 機架設備 | ![]() |
衛星碟 | 衛星碟 | ![]() |
喇叭 | 圖示_喇叭 | ![]() |
免提電話 | 圖示_喇叭 | ![]() |
電視 | 圖示_電視 | ![]() |
功率 | 圖示功率 | ![]() |
向上 | 圖示向上 | ![]() |
下 | 圖示向下 | ![]() |
冷 | 圖示_冷 | ![]() |
熱 | 圖示_熱 | ![]() |
乾燥 | 圖示_乾燥 | ![]() |
風 | 圖示風 | ![]() |
樣式中有三個主要的修改器:圖示(如上文所述)、主要方法和可見性。
圖示是系統的可視化。您可以使用它們來標記裝置或取代與按鈕連結的文字。在下面的範例中,我們定義了一個名為「example」的裝置。
{
"適配器" :[
{
"模型" :"ExternalControlSystem" 、
"ip":"tcp://[USER_IP_ADDRESS]:[USER_PORT]" 、
"連接埠" :[
{
"id":"範例" 、
"name":"Example Device" 、
"方法": [
...
將「example」定義為裝置後,我們就可以在樣式中使用這個 ID。 舉例來說,將我們範例裝置的主圖示設定為一盞燈就很容易完成。
"樣式": [
"example.icon=icon_light" 、
"example.main_method=power"
]
Zoom 也支援 Material Design Icons (MDI),可在Google 官方 MDI 網站找到。
若要指定其中一個圖示,請遵循以下格式:
"example.icon=mdi:local_airport:two_tone"
請注意,這應該全部使用小寫。在圖示名稱中使用下劃線 (_) 代替空格。如果圖示無法下載,則會顯示預設圖示。
您可能也注意到,在單一行中,我們也定義了裝置的 Main Method。 Main Method 會將您定義的引用指令拉到裝置的標題列中,並將其放在顯眼的位置,就像這樣:
我們已將 power 指令定義為主要方法,因此它會顯示在上列,與其他指令分開。
第三種樣式類型是可見性。可視性允許程式設計師定義一個函數,但在使用者介面上完全隱藏該函數。 它可以很容易地被定義:
"example.power.invisible=true"
遵循"device.command.invisible=true 的格式"允許 Rooms 使用者完全隱藏此指令。
規則是 Room Controls 的自動化引擎。這是定義自行發生的事情的區域。舉例來說,如果我希望我的顯示器只有在會議進行時才會啟動,我可以利用"meeting_started" 和"meeting_ended" (Zoom現有的事件) 來實現這一目標。
"規則" :{
"meeting_started" :[
"display.power.on" 、
"喚醒攝影機"
]
),
"meeting_ended" :[
"display.power.off"
]
}
此範例可用於降低系統的耗電量。
如果每條規則只有一個指令還不夠,這些指令可以很容易地堆疊在一起。雖然它們在技術上是依序啟動的,但它們處理的速度很快,所以我們會認為這些事件是同時發生的。在我上面的範例中,"camera.power.wake" 加在"display.power.on" 之下,以便在顯示器喚醒時啟動我的攝影機。
注意:
類型 | 活動 | 字串 | Zoom Notes |
會議 | |||
會議 | 會議開始 | zr_meeting_started | |
會議 | 會議結束 | zr_meeting_ended | |
會議 | 會議開始 | zr_zoom_meeting_started | 新增此指令是為了區分常規會議和 interop 會議,不過,仍支援 meeting_started 和 meeting_ended 指令。 |
會議 | 會議結束 | zr_zoom_meeting_ended | 新增此指令是為了區分常規會議和 interop 會議,不過,仍支援 meeting_started 和 meeting_ended 指令。 |
會議 | 會議開始 | zr_interop_meeting_started | |
會議 | 會議結束 | zr_interop_meeting_ended | |
會議 | 來電會議邀請開始 | zr_meeting_ring_started | |
會議 | 來電會議邀請結束 | zr_meeting_ring_ended | |
觸發下次會議警示 | zr_meeting_item_about_to_start | ||
會議清單 項目開始 | zr_meeting_item_start | ||
會議清單 項目 停止 | zr_meeting_item_stop | ||
電話 | |||
電話 | 來電啟動 | zr_phone_ring_started |
任何類型的電話互動(Zoom Phone、音訊計畫、第三方 PBX)都會觸發此指令 |
電話 | 來電結束 | zr_phone_ring_ended |
所有電話鈴聲類型都必須處於非活動狀態才能觸發此事件 |
電話 | 電話開始 | zr_phone_call_started |
活動會議中的 PSTN 邀請不會觸發此事件 |
電話 | 電話應答 | zr_phone_call_ended |
|
會中會議 | |||
會中會議 - 視訊 | 視訊開啟(相機靜音關閉) | zr_video_started | |
會中會議 - 視訊 | 視訊關閉(相機靜音開啟) | zr_video_stopped | |
會中會議 - 視訊 | 選取的視訊裝置已變更 | zr_video_device_changed | 只有當主要選取的裝置變更時,才會觸發視訊裝置變更事件。多攝影機變更不會觸發此事件。 |
會中會議 - 音訊 | 麥克風開啟 (麥克風未靜音) | zr_microphone_unmuted | |
會中會議 - 音訊 | 麥克風關閉 (麥克風靜音) | zr_microphone_muted | |
會中會議 - 音訊 | 選取的音訊裝置已變更 | zr_audio_device_changed | 音訊裝置變更事件只有在主要選取的裝置變更時才會觸發。Dante 麥克風頻道變更不會觸發此事件。 |
會中會議 - 內容 | 開始無線分享 | zr_share_started | 適用於直接共用、白板攝影機共用、攝影機共用、縮放應用程式共用,以及 Apple Airplay(對於多個同步共用,只會傳送第一個指令)。數位電子看板不會觸發這些事件。 |
會中會議 - 內容 | 無線共享 | zr_share_ended | 多個共用的最後一個共用結束時會傳送此指令。 數位電子看板不會觸發這些事件。 |
會中會議 - 內容 | 開始 HDMI 分享 | zr_hdmi_share_started | 數位電子看板不會觸發這些事件。 |
會中會議 - 內容 | HDMI 共用停止 | zr_hdmi_share_ended | 數位電子看板不會觸發這些事件。 |
會中會議 - 錄音 | 開始錄音 | zr_recording_started | |
會中會議 - 錄音 | 錄製停止 | zr_recording_ended | |
海拔高度 | 會議海拔 | zr_elevate_too_meeting | 當參與電話或螢幕分享會議的 Zoom Room 將會議升級為視訊會議時,就會觸發此事件。 |
配對 | |||
配對 | 使用者配對至 ZR | zr_user_paired | 每個使用者都會觸發一般化的配對事件。 |
配對 | 使用者從 ZR 解除配對 | zr_user_unpaired |
所有未配對的使用者都會觸發一般化的未配對事件。 |
數位看板 | |||
數位看板 | 數位電子看板開始 | zr_digital_signage_started | |
數位看板 | 數位電子看板被罷免 | zr_digital_signage_ended | |
Whiteboard | |||
Whiteboard | 開啟電子白板 | zr_whiteboard_started | 適用於 Classic Whiteboard、New Whiteboard 和會議室白板 |
Whiteboard | 關閉電子白板 | zr_whiteboard_ended | 適用於 Classic Whiteboard、New Whiteboard 和會議室白板 |
Whiteboard | 同伴白板已加入 Zoom Room | zr_companion_whiteboard_connected | |
Whiteboard | 從 Zoom Room 移除同伴白板 | zr_companion_whiteboard_disconnected | |
管理員 | |||
操作時間 | 操作時間開始 | zr_operation_time_started | |
操作時間 | 操作時間結束 | zr_operation_time_ended | |
人員偵測 | 偵測到的人 | zr_people_detected | 僅適用於硬體層人員偵測 |
人員偵測 | 未偵測到任何人 | zr_people_not_detected | 僅適用於硬體層人員偵測 |
語音指令 | 語音指令已啟用 | zr_voice_command_on | |
語音指令 | 語音指令已停用 | zr_voice_command_off | |
Zoom Apps | 開啟 Zoom 應用程式 | zr_zoom_app_opened | 開啟任何應用程式都會觸發此事件,即使會議中已有應用程式開啟。 |
Zoom Apps | Zoom 應用程式已關閉 | zr_zoom_app_closed | 關閉任何應用程式都會觸發此事件,即使其他應用程式仍在會議中活動。 |
管理員 | 開啟房間控制 | zr_room_controls_opened | |
管理員 | 房間控制關閉 | zr_room_controls_closed | |
管理員 | Zoom Rooms 啟動完成 | zr_room_startup_completed | Zoom Room 啟動、登入和 Room Controls 載入完成 |
注意:操作時間事件的操作時間是在 Zoom Rooms 設定頁面中設定。
您也可以簡單地新增自己的回應篩選器。在規則區中,您也可以使用下面討論的觸發事件 (Trigger Events),利用外部輸入驅動您自己的自動化。
"規則":{
"operation_time_started":[
"開啟"
],
"user_customized_event1":[
"關閉電源"
]
}
在這個範例中,我們的"user_customized_event1" 正在關閉受控的燈。這可能是由按鈕的輸入驅動,也可能是動作感應器失效,甚至可能是第三方系統(例如預約系統)向會議室發送沒有使用者報到的更新。如何使用此功能主要受限於您的想像力。
Zoom Rooms 5.13.0 的新功能「場景」,讓房間控制的忠實使用者,終於可以在使用者體驗中加入巨集(在單一按鈕上堆疊多個指令)。 這對於場景召回或依賴裝置(例如降低投影機螢幕以及開啟投影機電源)很有幫助。
與規則或適配器一樣,場景也是 JSON 檔案中的頂層部分。 目前最多可設定 20 個場景。 在這些場景中,最多可支援 50 個獨立指令。
配置完成後,這些新的場景按鈕就會出現在房間控制視窗的頂端。
若要設定場景,您可以參考以下的程式碼範例。
在複製此內容之前,請注意「//text」區段是供您參考的備註,無法包含在最後的 JSON 檔案中。
"場景":[
{
"id":"scene_1", //required
"name":"Turn on all lights", //可選,如果名稱和圖示為空則顯示
"圖示":"icon_light", //可選,見圖示清單
"指令" :[ //必要
"light1.power.on" 、
"light2.power.on"
]
},
{
"id":"scene 2" 、
"name":"關閉所有燈光"
"圖示":"icon_light"
"命令" :[
"light1.power.off" 、
"light2.power.off"
]
}
]
響應濾波器是室內控制功能的強大進步。這些篩選器會讀取從已定義裝置傳回的訊息,並立即掃描要匹配的詞組。當此詞組(或表達方式)在該連線上被識別時,Rules Trigger Event(如上所述)會啟動。
每個回應篩選器都由三個元件組成:
在 Zoom Rooms 控制器上,只要點選Room Controls 圖示,就能存取這些新增功能。
不在會議中時,可以在主功能表中找到Room Controls圖示。
在會議中,點選控制器視窗右上方的圖示,就會顯示相同的Room Controls。
故障排除是任何自訂組態的重要部分。雖然 Room Controls 可以很簡單,但它也有足夠的彈性在需要時變得複雜。以下部分應有助於解決可能出現的障礙。
錯誤代碼 | 說明 |
No_Config_Error | JSON Profile 未載入入口網站 |
Json_Syntax_Error | JSON Profile 包含一個語法錯誤 |
Json_Config_Error | JSON Profile 包含設定錯誤 |
IP_Error | 連線到指定 IP 有問題 |
IP_Is_Public | 目前不允許使用公共 IP |
DeviceID_Error | 一個或多個裝置 ID 設定不正確 |
方法 ID_Error | 一個或多個方法定義不正確 |
ParamID_Error | 一個或多個參數定義不正確 |
IP2SL_Settings_Error | 串列埠在 GC IP2SL 上設定不正確 |
清空裝置錯誤 | 在 JSON Profile 中未定義的情況下呼叫一個或多個裝置 |
未知 | 發生未知錯誤 |
這些檔案是從不同來源彙編而成,僅可作為起點使用。可能需要進行一些修改以符合您的應用。