Raumsteuerung
Zuletzt aktualisiert:
Überblick
Mit der Raumsteuerungsfunktion können Sie IP-fähige Geräte von Drittanbietern steuern, sodass die Geräte vom Benutzer über den Zoom Room Controller gesteuert werden können. Administratoren können ein Konfigurationsprofil erstellen, um ausgehende IP-Kontrollnachrichten aus Zoom Room hinzuzufügen.
In diesem Artikel:
Voraussetzungen
- Zoom Rooms für macOS oder Windows oder Zoom Rooms Appliances, Version 5.1 oder höher
- Über LAN oder WLAN steuerbare Geräte von Drittanbietern
- iTach-Netzwerkadapter (IP2SL/IP2CC oder WLAN-Äquivalent), wenn das Gerät keinen nativen LAN- oder WLAN-Zugang hat
Konfiguration
Raumsteuerungen aktivieren
Bevor Sie ein JSON-Konfigurationsprofil hochladen können, muss die Einstellung für Zoom Rooms aktiviert werden. Die Konfiguration ist auf jeder Ebene der Zoom Rooms-Hierarchie möglich.
- Melden Sie sich im Zoom Web Portal an.
- Klicken Sie auf Raumverwaltung, und wählen Sie dann Zoom Rooms aus.
- Klicken Sie rechts neben dem Zoom Room-Namen auf Bearbeiten.
- Schalten Sie unter Devices (Geräte) die Option Enable Room Controls (Raumsteuerung aktivieren) ein (blau).
- Klicken Sie auf Create Profile (Profil erstellen).
- Geben Sie die JSON-Konfiguration für diesen Raum ein.
Raumsteuerungsprofil schreiben
Erste Schritte
Bevor Sie ein Raumsteuerungsprofil schreiben, benötigen Sie einige JSON-Kenntnisse. Vor allem ist zu beachten, dass JSON ein Schlüssel-Wert-Paar-basiertes System ist, dessen Syntax für ein korrektes Layout der Datei wichtig ist. Weitere Informationen zu den Grundlagen von JSON finden Sie in einem Online-Einführungskurs.
In jeder Programmiersprache sollte dem nächsten Bearbeiter Ihrer Datei eine gewisse Höflichkeit entgegengebracht werden.Das empfiehlt sich, auch wenn es keine spezifischen Anforderungen für native Raumsteuerungen von Zoom Rooms gibt. Um eine Aufzeichnung über den Autor, die Version oder einen anderen Verlauf zu hinterlassen, kann das Objekt "about" verwendet und über den "Adaptern" platziert werden. Diese wird nicht von den Raumsteuerungen analysiert, sondern bleibt im Portal erhalten.Ein Beispiel dafür, wie sie genutzt werden könnte, finden Sie unten.
{
"about": {
"type": "Medium Conference A",
"version": "v1.2.4",
"design_ref": "\\files\MediumConfA",
"created": "Mon, 21 Oct 2020 16:35:52 GMT"
},
Adapter
Durch das Einrichten der Adapter werden Raumsteuerungen mit Geräten verbunden. Dieser Abschnitt ist der primäre Abschnitt für die Konfiguration. Einzelne Geräte im verschachtelten JSON-Format müssen einem ähnlichen Format folgen (dieses Beispiel ist analog zum unten stehenden Codebeispiel verschachtelt):
- Adapter: Adapter definierten die einzelnen Geräteanschlüsse
- Model (Modell): Modelle können "GenericNetworkAdapter", "IP2CC" und "IP2SL" sein. Mehr Details weiter unten.
- IP: IP-Adresse + Port des Netzwerkgeräts.
- UUID: Dies ist nur bei Global Caché-Geräten erforderlich und würde auf "GlobalCache_[MAC]" folgen.
- Ports: Ports definieren das an die Verbindung angeschlossene Gerät.
- ID: Dies ist der Name des Geräts im Code. Sollte der JSON-Variablenformatierung folgen.
- Name: Dies ist der Anzeigename, den Ihre Benutzer auf der Benutzeroberfläche sehen.
- Methoden: Methoden definieren den einzelnen UI-Abschnitt.
- ID: Dies ist die Bedienelementtyp-ID, die im Code (spezifisch für den Bedienelementtyp) aufgerufen wird.
- Name: Dies ist der vom Benutzer zugängliche Name, der auf der Zoom Rooms-Benutzeroberfläche angezeigt wird
- Command (Befehl): Dies ist entweder der vollständige Befehl oder die freigegebenen Teile der Befehlszeichenfolge (abhängig vom Aktionstyp).
- HINWEIS: Wenn der Aktionstyp "actions" ist, sollte ein % in der Befehlszeichenfolge als Platzhalter für die eingefügten Elemente innerhalb von "params" platziert werden.
- Params (Parameter): Dieser Abschnitt wird nur mit dem Typ "actions" verwendet und enthält die Elemente, die zum übergeordneten Befehl hochgerollt werden können.
- ID: Dies ist die Programmier-ID, die im Code aufgerufen wird.
- Name: Dies ist der vom Benutzer zugängliche Text auf der Schaltfläche "Room Controls" (Raumsteuerungen).
- Value (Wert): Dies ist der Befehlsabschnitt, der in den übergeordneten Befehl eingefügt wird. Ein Beispiel dafür wäre die Verwendung von 'POWR000%\\x0D' als übergeordnetem Befehl, '0' für Aus oder '1' für Ein könnte für einige Sharp-Bildschirme eingefügt werden.
{
"adapters": [
{
"model": "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"
},
...
Unterhalb von "methods" kann ein zusätzlicher Abschnitt verwendet werden: "response_filter". Der Antwortfilter ist ein Beacon, mit dem die unten definierten Antwortfilter verstehen können, auf welche Verbindung sie achten sollen. In diesem Bereich sind keine Funktionen definiert. Wie ein Antwortfilter in andere Abschnitte passt, wird in diesen Abschnitten behandelt.
Styles
Styles regeln die visuelle Gestaltung Ihrer Benutzeroberflächenelemente. Heute sind die Anpassungen nicht besonders umfangreich, weshalb das Thema nicht sehr schwer zu erlernen ist.
Die Benutzeroberfläche enthält zahlreiche Symbole. Sie reichen von Klimaanlagen bis hin zu Freisprecheinrichtungen.Die folgenden Symbole sind die aktuellen, aber die Liste wird regelmäßig erweitert.
Gerät | Name | Bild |
Klimaanlage | icon_air_conditioner | ![]() |
Kabelfernsehen | icon_cable_tv | ![]() |
Deckenmikrofon | icon_ceiling_mic | ![]() |
Vorhang | icon_curtain | ![]() |
DVD-Player | icon_dvd_player | ![]() |
Xbox-/PS4-System | icon_game_console | ![]() |
HDMI | icon_hdmi | ![]() |
Laptop | icon_laptop | ![]() |
Licht | icon_light | ![]() |
Projektor | icon_projector | ![]() |
Rack-Ausstattung | icon_rack_equipment | ![]() |
Parabolantenne | icon_satellite_dish | ![]() |
Lautsprecher | icon_speaker | ![]() |
Freisprecheinrichtung | icon_speakerphone | ![]() |
TV | icon_tv | ![]() |
Netz | icon_power | ![]() |
Nach oben | icon_up | ![]() |
Nach unten | icon_down | ![]() |
Kalt | icon_cold | ![]() |
Heiß | icon_hot | ![]() |
trocken | icon_dry | ![]() |
Wind | icon_wind | ![]() |
Es gibt drei Hauptmodifikatoren bei Styles: Symbole (wie oben besprochen), Hauptmethoden und Sichtbarkeit.
Symbole sind die Visualisierungen des Systems.Sie können sie entweder verwenden, um ein Gerät zu markieren oder um den an eine Schaltfläche gebundenen Text zu ersetzen. Im folgenden Beispiel haben wir ein Gerät namens "Example" (Beispiel) definiert.
{
"adapters": [
{
"model": "ExternalControlSystem",
"ip": "tcp://[USER_IP_ADDRESS]:[USER_PORT]",
"ports": [
{
"id": "example",
"name": "Example Device",
"methods": [
...
Sobald "Example" als Gerät definiert ist, können wir diese ID in Styles verwenden.Zum Beispiel ist es einfach, das Hauptsymbol für unser Beispielgerät als Licht einzustellen.
"styles": [
"example.icon=icon_light",
"example.main_method=power"
]
Möglicherweise stellen Sie auch fest, dass wir innerhalb einer einzigen Zeile auch die Hauptmethode für das Gerät definiert haben.Die Hauptmethode zieht den referenzierten Befehl, den Sie definiert haben, in die Titelleiste des Geräts und verarbeitet ihn wie folgt:
Wir haben den Netz-Befehl als Hauptmethode definiert, so dass er in der oberen Leiste getrennt von den anderen Befehlen angezeigt wird.
Der dritte Style-Typ ist Sichtbarkeit. Sichtbarkeit ermöglicht es dem Programmierer, eine Funktion zu definieren, diese jedoch vollständig aus der Benutzeroberfläche auszublenden.Sie kann genauso einfach definiert werden:
"example.power.invisible=true"
Wenn Sie dem Format "device.command.invisible=true" folgen, kann dieser Befehl vollständig vor dem Rooms-Benutzer verborgen werden.
Regeln
Regeln sind die Automatisierungsmaschine von Room Controls.Dies ist der Bereich, in dem Dinge definiert werden, die von selbst passieren.Wenn ich beispielsweise möchte, dass meine Anzeige nur aktiv ist, wenn ein Meeting aktiv ist, könnte ich "meeting_started" und "meeting_ended" (Standard-Zoom-Ereignisse) dafür nutzen.
"styles": {
"meeting_started": [
"display.power.on",
"camera.power.wake"
]
),
"meeting_ended": [
"display.power.off"
]
}
Dieses Beispiel kann verwendet werden, um den Stromverbrauch Ihres Systems zu reduzieren.
Wenn ein Befehl pro Regel nicht ausreicht, können diese Befehle leicht gestapelt werden.Auch wenn sie technisch gesehen nacheinander ausgelöst werden, werden sie so schnell verarbeitet, dass wir diese Ereignisse als gleichzeitig betrachten können.In meinem obigen Beispiel wird "camera.power.wake" unterhalb von "display.power.on" hinzugefügt, um meine Kamera zu aktivieren, wenn mein Bildschirm aufwacht.
Die verfügbaren Standard-Zoom-Befehle innerhalb der heutigen Regeln sind einfach:
- Meeting-Ereignisse
- "meeting_started"
- "meeting_stopped"
- Audio-Ereignisse
- "microphone_muted"
- "microphone_unmuted"
- Video-Ereignisse
- "video_started" (Kamera ohne Stummschaltung)
- "video_stopped" (Kamera stummgeschaltet)
- Admin-Ereignisse
- "operation_time_started"
- "operation_time_ended"
Hinweis: Die Betriebszeiten werden auf der Einstellungsseite von Zoom Rooms festgelegt.
Es können auch einfach eigene Antwortfilter hinzugefügt werden.Im Abschnitt "Regeln" können Sie zudem die unten beschriebenen Trigger-Ereignisse verwenden, um Ihre eigene Automatisierung mit externen Eingaben voranzutreiben.
"rules":{
"operation_time_started":[
"light.power.on"
],
"user_customized_event1":[
"light.power.off"
]
}
In diesem Beispiel wird durch unser "user_customized_event1" unser gesteuertes Licht ausgeschaltet.Es könnte durch eine Eingabe über eine Schaltfläche oder einen inaktiven Bewegungssensor oder vielleicht sogar durch ein Drittanbietersystem wie ein Buchungssystem gesteuert werden, das den Raum darüber informiert, dass sich keine Benutzer für das Meeting eingecheckt haben.Wie Sie diese Funktion nutzen können, ist in erster Linie durch Ihre Vorstellungskraft begrenzt.
Antwortfilter
Antwortfilter sind eine leistungsstarke Weiterentwicklung der Zoom Rooms-Raumsteuerungsfunktionen.Diese Filter lesen Nachrichten, die von definierten Geräten zurückkommen, und suchen sofort nach einer passenden Phrase.Wenn diese Phrase (oder Ausdruck) in dieser Verbindung identifiziert wird, tritt das Regelauslöseereignis (oben beschrieben) ein.
Jeder Antwortfilter besteht aus drei Elementen:
- "name": Der Name wird im Abschnitt "ports" von "methods" verwendet.Wenn der Antwortfilter diesen Namen im Bereich "Ports" zuordnet, wird die definierte Verbindung hergestellt.
- "filter_regex": Regex (oder regulärer Ausdruck) ist der Satz von Zeichen, die der Antwortfilter abzugleichen versucht.Bei Übereinstimmung wird das "trigger_event" aktiviert.
- "trigger_event": Das Trigger-Ereignis wird im Regelbereich verwendet.Wenn "filter_regex" aktiviert wird, erfolgt die in diesem Trigger-Ereignis in den Regeln definierte Automatisierung.
Raumsteuerungen verwenden
Tippen Sie auf dem Raumsteuerungsgerät einfach auf das Symbol "Raumsteuerung", um auf diese zusätzlichen Funktionen zuzugreifen.
Wenn Sie nicht an einem Meeting teilnehmen, finden Sie das Symbol "Raumsteuerung" im Hauptmenü.
Wenn Sie während einer Besprechung auf das Symbol oben rechts auf dem Controller tippen, werden dieselben Raumsteuerungen angezeigt.
Fehlerbeseitigung
Die Fehlerbehebung ist ein wichtiger Bestandteil jeder benutzerdefinierten Konfiguration.Die Raumsteuerung kann zwar einfach sein, ist aber auch flexibel genug, um bei Bedarf komplex zu sein.Die folgenden Abschnitte sollen helfen, mögliche Hindernisse zu beheben.
Fehler bei der Raumsteuerung
Fehlercode | Beschreibung |
No_Config_Error | JSON-Profil wird nicht in Web Portal geladen |
Json_Syntax_Error | JSON-Profil enthält einen Syntaxfehler |
Json_Config_Error | JSON-Profil enthält einen Konfigurationsfehler |
IP_Error | Es liegt ein Problem beim Herstellen einer Verbindung mit einer angegebenen IP-Adresse vor. |
IP_Is_Public | Öffentliche IPs sind derzeit nicht zulässig. |
DeviceID_Error | Eine oder mehrere Geräte-IDs wurden falsch festgelegt. |
MethodID_Error | Eine oder mehrere Methoden wurden falsch definiert. |
ParamID_Error | Ein oder mehrere Parameter wurden falsch definiert. |
IP2SL_Settings_Error | Serielle Schnittstelle an GC IP2SL wurde falsch konfiguriert. |
Empty_Device_Error | Ein oder mehrere Geräte werden aufgerufen, ohne im JSON-Profil definiert zu sein. |
Unknown | Ein unbekannter Fehler ist aufgetreten. |
Beispieldateien
Diese Dateien wurden aus verschiedenen Quellen zusammengestellt und sollten nur als Ausgangspunkt verwendet werden.Einige Änderungen sind zur Anpassung an Ihre Anwendung wahrscheinlich erforderlich.
- Generische Dateien
- Avocor
- Mittlerer Atlantik
- Shure
Zoom-Community
Werden Sie Teil der 250.000 anderen Mitglieder in der Zoom-Community! Melden Sie sich mit Ihren Zoom-Kontodaten an und beginnen Sie mit der Zusammenarbeit.