La función de Controles de sala le permite controlar los equipos con capacidad IP de terceros para que el usuario pueda controlar el equipo a través del controlador de Zoom Room. Los administradores pueden crear un perfil de configuración para agregar mensajes de control de IP salientes desde Zoom Room.
Este artículo trata sobre:
Antes de poder cargar un Perfil de configuración JSON, la configuración deberá estar habilitada para Zoom Rooms. Esto se puede configurar en cualquier nivel de la jerarquía de Zoom Rooms.
Antes de escribir un Perfil de controles de sala, se requiere algún conocimiento práctico de JSON. Los elementos clave que deben tenerse en cuenta son que JSON es un sistema basado en par clave-valor y que la sintaxis es importante para disponer correctamente el archivo. Para obtener información adicional sobre los aspectos básicos de JSON, consulte un curso de introducción en línea.
En cualquier lenguaje de codificación, hay dispensar cierta cortesía a la siguiente persona que maneje su archivo. Aunque no hay ningún requisito específico al respecto para los controles de sala nativos Zoom Rooms, se recomienda. Para dejar un registro del autor, la versión u otro historial, se puede usar el objeto «about» y se lo puede colocar encima de «adapters».Los Controles de sala no lo analizan, pero se conservarán en el portal.A continuación se muestra un ejemplo de cómo podría aprovecharse eso.
{
"about": {
"type": "Medium Conference A",
"version": "v1.2.4",
"design_ref": "\\files\MediumConfA",
"created": "Mon, 21 Oct 2020 16:35:52 GMT"
},
La configuración de los adaptadores conecta los Controles de sala a los dispositivos. Esta sección es la sección principal para la configuración. Los dispositivos individuales dentro del formato JSON anidado deben seguir un formato similar (este ejemplo está anidado para que sea paralelo al ejemplo de código siguiente):
{
"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"
},
...
Debajo de «methods», se puede usar una sección adicional: «response_filter». El Filtro de Respuesta es una baliza que permite a los Filtros de Respuesta definidos a continuación entender qué conexión escuchar.No hay funciones definidas en esta área. La forma en que un Filtro de respuesta se ajusta a otras secciones se tratará dentro de esas secciones.
Los estilos controlan el estilo visual de los elementos de la interfaz. En la actualidad, los ajustes no son extremadamente extensos, por lo que no es algo muy difícil de aprender.
Hay muchos iconos disponibles en la interfaz. Abarcan todo, desde aires acondicionados hasta altavoces. Los iconos de abajo son la lista actual, pero esta lista se amplía regularmente.
Dispositivo | Nombre | Imagen |
aire acondicionado | icon_air_conditioner | |
TV por cable | icon_cable_tv | |
micrófono de techo | icon_ceiling_mic | |
cortina | icon_curtain | |
Reproductor de DVD | icon_dvd_player | |
Sistema Xbox/PS4 | icon_game_console | |
HDMI | icon_hdmi | |
Portátil | icon_laptop | |
luz | icon_light | |
proyector | icon_projector | |
equipo de bastidor | icon_rack_equipment | |
antena parabólica | icon_satellite_dish | |
parlante | icon_speaker | |
altavoz | icon_speakerphone | |
TV | icon_tv | |
encendido | icon_power | |
arriba | icon_up | |
abajo | icon_down | |
frío | icon_cold | |
caliente | icon_hot | |
seco | icon_dry | |
viento | icon_wind |
Hay tres modificadores principales dentro de los estilos: iconos (como se describió anteriormente), Métodos principales y Visibilidad.
Los iconos son las visualizaciones del sistema. Puede utilizarlos para marcar un dispositivo o para reemplazar el texto vinculado a un botón. En el siguiente ejemplo, hemos definido un dispositivo llamado «ejemplo».
{
"adapters": [
{
"model": "ExternalControlSystem",
"ip": "tcp://[USER_IP_ADDRESS]:[USER_PORT]",
"ports": [
{
"id": "example",
"name": "Example Device",
"methods": [
...
Una vez que «ejemplo» se define como un dispositivo, podemos usar esta ID dentro de los estilos. Por ejemplo, la configuración del icono principal de nuestro dispositivo de ejemplo para que sea una luz se hace fácilmente.
"styles": [
"example.icon=icon_light",
"example.main_method=power"
]
También puede observar que dentro de una sola línea, también hemos definido el Método principal para el dispositivo. El Método Principal extrae el comando al que se hace referencia que ha definido en la barra de título del dispositivo, lo que le da una facturación destacada de la siguiente manera:
Hemos definido el comando de encendido como el método principal, y así se muestra en la barra superior separada de los otros comandos.
El tercer tipo de estilo es la Visibilidad. La visibilidad le permite al programador definir una función, pero ocultar esa función de la interfaz del usuario por completo. Se puede definir con la misma facilidad:
"example.power.invisible=true"
Seguir el formato de «device.command.invisible=true» permite que este comando se oculte por completo al usuario de salas.
Las reglas son el motor de automatización de los Controles de salas Esta es el área donde se definen las cosas que suceden por sí solas. Por ejemplo, si quisiera que mi pantalla solo estuviera activa cuando una reunión está activa, podría aprovechar «meeting_started» y «meeting_ended» (eventos de Zoom habituales) para que esto ocurra.
"styles": {
"meeting_started": [
"display.power.on",
"camera.power.wake"
]
),
"meeting_ended": [
"display.power.off"
]
}
Este ejemplo se puede utilizar para reducir el consumo de energía del sistema.
Si un comando por regla no es suficiente, estos comandos se pueden apilar fácilmente. Aunque técnicamente se activan de manera secuencial, se procesan lo suficientemente rápido como para que consideremos estos eventos simultáneos. En mi ejemplo anterior, «camera.power.wake» se agrega debajo de «display.power.on» para activar mi cámara cuando mi pantalla se activa.
Los comandos de Zoom habituales disponibles dentro de las reglas actuales son sencillos:
Nota: El horario de funcionamiento se establece en la página de configuración de Zoom Rooms.
También es sencillo agregar el suyo propio para los Filtros de respuesta. Dentro de la sección de reglas, también puede utilizar los eventos desencadenantes que se describen a continuación para impulsar su propia automatización con entradas externas.
"rules":{
"operation_time_started":[
"light.power.on"
],
"user_customized_event1":[
"light.power.off"
]
}
En este ejemplo, nuestro «user_customized_event1» está apagando nuestra luz controlada. Esto podría estar impulsado por una entrada de un botón o tal vez un sensor de movimiento que se queda inactivo o tal vez incluso un sistema de terceros, como un sistema de reservas que envía a la sala una actualización que indica que ningún usuario se registró para la reunión. La forma en que puede utilizar esta función se ve limitada principalmente por su imaginación.
Los Filtros de respuesta son un poderoso avance en la funcionalidad de los controles de sala nativos de Zoom Rooms. Estos filtros leen los mensajes que regresan de dispositivos definidos y buscan instantáneamente una frase que coincida. Cuando se identifica esta frase (o expresión) en esa conexión, se desencadena el Evento desencadenante de reglas (descrito anteriormente).
Cada Filtro de respuesta se compone de tres elementos:
En el dispositivo del controlador de sala, simplemente pulse el icono Controles de sala para acceder a estas funciones adicionales.
Cuando no está en una reunión, el icono de Controles de sala se puede encontrar en los menús principales.
Durante una reunión, al pulsar el icono en la parte superior derecha del controlador se mostrarán los mismos Controles de sala.
La resolución de problemas es una parte importante en cualquier configuración personalizada. Si bien los Controles de sala pueden ser simples, también son lo suficientemente flexibles como para ser complejos cuando sea necesario. Las secciones siguientes deberían ayudar a resolver posibles obstáculos.
Código de error | Descripción |
No_Config_Error | El perfil JSON no se carga en el Web Portal |
Json_Syntax_Error | El perfil JSON contiene un error de sintaxis |
Json_Config_Error | El perfil JSON contiene un error de configuración |
IP_Error | Hay un problema al conectarse a una dirección IP especificada |
IP_Is_Public | Las direcciones IP públicas no están permitidas en este momento |
DeviceID_Error | Una o más ID de dispositivo están configuradas incorrectamente |
MethodID_Error | Uno o más métodos están definidos incorrectamente |
ParamID_Error | Uno o más parámetros están definidos incorrectamente |
IP2SL_Settings_Error | El puerto de serie está configurado incorrectamente en GC IP2SL |
Empty_Device_Error | Se llama a uno o más dispositivos sin estar definidos en el perfil JSON |
Desconocido | Se ha producido un error desconocido |
Estos archivos han sido compilados de varias fuentes y deben utilizarse como punto de partida solamente. Es probable que se requiera alguna modificación para que se adapten a su aplicación.