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:
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.
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"
},
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):
{
"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 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 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:
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 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:
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.
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.
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. |
Diese Dateien wurden aus verschiedenen Quellen zusammengestellt und sollten nur als Ausgangspunkt verwendet werden.Einige Änderungen sind zur Anpassung an Ihre Anwendung wahrscheinlich erforderlich.