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.

  1. Melden Sie sich im Zoom Web Portal an.
  2. Klicken Sie auf Raumverwaltung, und wählen Sie dann Zoom Rooms aus.
  3. Klicken Sie rechts neben dem Zoom Room-Namen auf Bearbeiten.
  4. Schalten Sie unter Devices (Geräte) die Option Enable Room Controls (Raumsteuerung aktivieren) ein (blau). 
  5. Klicken Sie auf Create Profile (Profil erstellen).
  6. 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:

mceclip0.png

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.

 

 

Zoom-Community

Werden Sie Teil der 100.000 anderen Mitglieder in der Zoom-Community! Melden Sie sich mit Ihren Zoom-Kontodaten an und beginnen Sie mit der Zusammenarbeit.