Control AV sin programar la instalación.
Das de alta el proyector desde el navegador y su control queda publicado al instante como API HTTP. Dibujas el mando arrastrando botones. Lo abres en una tablet. Sin recompilar, sin volver a la obra.
Pedir una demo Ver cómo funciona
Software, no hardware propietario: un binario y un contenedor en un mini-PC con Ubuntu.
Lo que hoy cuesta una visita a obra
Cinco cosas que un integrador AV da por perdidas porque siempre han sido así.
-
Cada cambio es programar
Añadir un proyector o mover un botón significa abrir el entorno del fabricante, escribir código, compilar y subir. Un cambio de cinco minutos se convierte en un desplazamiento.
-
Dependes del fabricante
Herramienta propietaria, certificación, licencia por procesador. Un ecosistema del que no se sale.
-
El cliente no puede tocar nada
Todo pasa por ti, incluso lo trivial. Y lo trivial es la mayoría de las llamadas.
-
No sabes qué hay montado
La configuración vive dentro de un programa compilado, no en algo que se pueda abrir y leer.
-
El mando es lo más caro y lo más rígido
Panel táctil propietario, licencia por pantalla, y mover un botón de sitio es un ticket. Y el cliente siempre quiere mover un botón de sitio.
Das de alta el equipo. El control se publica solo. El mando lo dibujas tú.
Cuatro pasos, y en ninguno se escribe una línea de código.
-
1
Das de alta el equipo
Eliges tipo → marca → modelo en el catálogo, y el driver, el puerto y los comandos ya vienen puestos. Tú pones la IP.
-
2
El control se publica solo
Aparecen los endpoints HTTP de ese equipo, listos para llamar. Sin recompilar y sin reiniciar el servicio: la configuración se recarga en caliente.
-
3
Dibujas el mando
Arrastras botones y sliders a un lienzo y eliges el equipo y el comando de un desplegable, que sale del propio servidor y no de tu memoria.
-
4
Lo cuelgas en la pared
Generas, y la tablet abre una URL. Sin app que instalar, sin tienda de aplicaciones y sin licencia por pantalla.
Tablet / Web / App ──HTTP JSON──▶ front-rc ──HTTP JSON──▶ jaso-rc ──PJLink · SICP · OSC · RS-232 · DALI──▶ Equipo (el panel generado) (diseña, genera, (publica el control) sirve y pone el token)
El diseñador de mandos
El mando de la sala se dibuja arrastrando, en el navegador. Es la parte que ve el cliente final, y la que hasta ahora era la más cara de cambiar.
Arrastras, no programas
Botones, sliders, imágenes, etiquetas, líneas y rectángulos. Varias pantallas por diseño —vídeo, audio, luces— con navegación entre ellas.
Con la cara del cliente
Fondos, gradientes, su logo, y 36 iconos SVG de AV incluidos.
Cambiar un botón de sitio son dos minutos
Lo mueves, generas, y la tablet lo tiene al recargar. Sin compilar nada, sin volver a la sala.
El panel no miente
El botón se ilumina porque el proyector dice que está encendido, no porque alguien lo haya pulsado. El fader se coloca en el nivel real de la mesa. Y el equipo que no responde se ve apagado en el panel. Si alguien enciende el proyector con el mando de la pared, el panel se entera.
El estado se consulta cada pocos segundos, no se empuja: refleja el equipo de verdad, pero no es instantáneo. Y solo puede reflejar lo que cada driver publica.
El panel que sale
Es una web, no una app
HTML, CSS y JavaScript planos, sin framework ni dependencias. Cualquier tablet, Mac, PC o móvil con navegador. Nada que instalar, nada que caduque, ninguna tienda de aplicaciones de por medio.
Cuelga los paneles que quieras
Son URLs. Sin licencia por pantalla, sin hardware homologado, sin contar dispositivos.
Dura años
No hay build que mantener ni framework que dentro de tres años pida una migración. Una tablet vieja lo abre igual que una nueva.
Tu instalación, en un fichero que puedes leer
No hay un programa compilado escondiendo tu sala. Hay un YAML, y se entiende sin que nadie te lo explique.
# Equipos a controlar. Gestionado desde la web de administración.
devices:
- id: proyector-sala1
driver: pjlink
network:
host: 192.168.10.50
port: 4352
transport: tcp
timeout_ms: 2000
commands:
power_on: POWR 1
power_off: POWR 0
input_hdmi1: INPT 31
Lo escribe la web de administración por ti —tú eliges marca y modelo del catálogo—, pero puedes abrirlo, leerlo, versionarlo y llevártelo. Dentro de tres años seguirá diciendo qué hay montado en esa sala.
Y cuando lo cambias, el servidor recarga en caliente: los equipos nuevos quedan publicados sin reiniciar el servicio y sin recompilar nada.
Qué controla hoy
Solo lo que existe y está en el código. Ni una casilla de más.
| Familia | Driver | Qué controla |
|---|---|---|
| Proyectores | PJLink Clase 1 | Cualquier proyector Clase 1 —Epson, NEC, Panasonic, Sony, Christie, Optoma…— con solo dar de alta la IP: encendido, entradas, mutes, lámpara y errores |
| Displays y cartelería | Philips SICP · Samsung MDC · LG (control externo) | Encendido, entradas, volumen y mute, por IP o RS-232 |
| Audio: mesas | Midas M32 / Behringer X32 (OSC) | Faders, mutes, escenas |
| Audio: DSP de sala | Biamp Tesira (TTP) · QSC Q-SYS (QRC) | Volumen, mute, presets y snapshots — sobre el TCP genérico |
| Matrices | Extron SIS · Kramer Protocol 3000 | Ties de vídeo y audio, routing y consultas, por IP o serie |
| Iluminación | DALI vía pasarela | Direcciones, grupos, escenas y regulación 0–254 |
| Cualquier equipo TCP/UDP | TCP genérico | La cadena cruda que el equipo entienda |
| Cualquier equipo serie | RS-232 | Matrices, pantallas motorizadas, relés |
Esos son los protocolos, no la lista de equipos. Los equipos concretos viven en un catálogo — y el catálogo lo amplías tú.
Todo lo que jaso-rc controla, front-rc lo dibuja. El editor no tiene una lista propia de equipos: lee la del servidor.
El soporte DALI está verificado de punta a punta contra pasarela simulada, no todavía contra una pasarela física. Lo digo aquí y no en la letra pequeña de un contrato.
En Biamp, QSC y las matrices, los comandos del catálogo vienen preparados, no
adivinados: las etiquetas de control —Level1, MainGain,
Sala1— las define el integrador en el proyecto de cada sala, y se ajustan al dar
de alta el equipo. Vienen escritos; no vienen adivinados.
El catálogo crece contigo
El servidor trae un catálogo de tipo → marca → modelo: hoy, 15 marcas y 28 modelos en seis categorías —proyectores, displays, pantallas LED, telas de proyección, audio y matrices—. Cuando das de alta un equipo eliges los tres, y el driver, el puerto y los comandos ya vienen puestos: tú solo escribes la IP.
¿Y tu proyector? Ya es compatible. Con PJLink Clase 1 basta la IP: no hay que esperar a que alguien añada tu modelo a una lista. Y la sala entera va por el mismo sitio —fuente → matriz → pantalla, con el DSP de audio incluido—, hablando el protocolo nativo de cada fabricante: PJLink, MDC, SICP, TTP, QRC, SIS, Protocol 3000. Sin cajas propietarias.
¿Un equipo raro que no está? Lo añades tú, desde la misma web, sin tocar un fichero: creas la marca, creas el modelo, eliges su driver y dejas escritos sus comandos. Y se queda ahí para siempre y para todas tus instalaciones — el trabajo de descifrar un equipo raro se hace una vez, no en cada obra.
El matiz honesto: añadir un modelo es un formulario, y reutiliza uno de los drivers de arriba. Añadir un protocolo nuevo —uno que no sea PJLink, SICP, MDC, OSC, DALI, TCP o serie— sigue siendo un fichero Go. Pero si el equipo habla TCP, UDP o RS-232, ya se controla hoy con los drivers genéricos: es la cadena cruda que el equipo entienda, y esa la pones en el catálogo.
categories:
- id: proyector
brands:
- id: nec
models:
- id: np-pa653u
driver: pjlink
defaults:
port: 4352
commands:
power_on: POWR 1
input_hdmi1: INPT 31
mute_on: AVMT 31 # lo tecleas una vez
Seguridad
Si has visto instalaciones abiertas de par en par, esta sección es para ti.
-
Redes permitidas
Solo se aceptan peticiones desde la LAN de control. El resto, 403.
-
Un token por panel
Revocas el del vestíbulo sin tocar los demás. Del token solo se guarda su huella: quien lea el fichero de configuración no entra.
-
Login con contraseña
Para las personas que administran, con freno a la fuerza bruta.
-
HTTPS
Servido por el propio binario, con certificado incluido.
Y lo que no protege, porque lo vas a preguntar
Los paneles no piden contraseña, a propósito. Una tablet en la pared no puede escribirla. Quien alcance el servidor de paneles puede pulsar un botón, igual que quien alcanza el mando físico de la pared.
La defensa de los paneles es la red: una VLAN de control y la lista blanca de IPs. Es una decisión, no un descuido, y prefiero contártela ahora que el día de la puesta en marcha.
Instalación y operación
Escrito para quien va a mantenerlo dentro de tres años.
El control es un binario
Sin base de datos y sin runtime que actualizar. Un servicio systemd endurecido, con instalador idempotente: reinstalar no pisa tu configuración, ni tus equipos, ni tu certificado.
El diseñador es un contenedor
Un docker compose up -d en la misma máquina, y solo lo necesitas cuando
diseñas. Lo que gobierna la sala —lo que no se puede caer— no tiene runtime.
Todo cabe en dos carpetas de texto
La configuración es YAML legible; los diseños y las imágenes, ficheros. Copia de seguridad, restauración y reset desde las propias webs. Clonar una instalación entera en otro edificio es restaurar una copia.
Un mini-PC con Ubuntu Server
Sin hardware propietario, sin procesador homologado, sin nube. Ni cuentas, ni suscripciones, ni datos saliendo de tu red.
Frente a un sistema propietario
Solo hechos comprobables. Ni una opinión.
| Aspecto | Sistema propietario típico | Jasodev |
|---|---|---|
| Añadir un equipo | Programar, compilar, subir | Un formulario web |
| Diseñar el mando | Entorno propietario y programación | Arrastrar y soltar en el navegador |
| Paneles táctiles | Hardware propietario, licencia por pantalla | Cualquier tablet con navegador. Sin licencia |
| Cambios en caliente | Reinicio del procesador | Sin reiniciar |
| Entorno de desarrollo | Propietario, con certificación | Ninguno |
| Configuración | Dentro de un programa compilado | YAML legible y HTML plano |
| Integrar con otro software | SDK del fabricante | API HTTP y JSON |
AMX y Crestron son marcas registradas de sus respectivos propietarios, y no tienen relación con este proyecto. Se nombran solo como referencia de categoría.
Preguntas que me hacen siempre
¿Necesito saber programar?
No. Das de alta el equipo en un formulario y dibujas el mando arrastrando. No hay entorno de desarrollo que instalar ni certificación que sacarse.
¿Y si se cae el servidor?
El control es un servicio systemd que rearranca solo. Y los equipos conservan su estado físico: una sala encendida no se apaga porque el control se reinicie.
¿Funciona sin internet?
Sí. Todo funciona en la red local. No hay nube, no hace falta ninguna cuenta y el sistema no envía datos a servidores externos.
¿Puedo controlar un equipo que no está en la lista?
Casi siempre sí, y sin esperarme. El catálogo de marcas y modelos lo amplías tú desde la web: creas el modelo, le asignas un driver y escribes sus comandos. Si el equipo habla PJLink, SICP o MDC, hereda el driver nativo; y si no, los drivers genéricos de TCP, UDP y RS-232 mandan la cadena cruda que el equipo entienda. Solo un protocolo verdaderamente nuevo necesita código, y eso es un fichero Go, no un rediseño.
¿Cuántas tablets puedo colgar?
Las que quieras. El panel es una URL: no se cuentan dispositivos ni se licencian pantallas.
¿Puedo seguir usando mis paneles actuales?
Si saben abrir una URL, sí: los comandos se ejecutan también por GET.
¿Puedo hacerme mi propio panel en vez de usar el editor?
Sí, contra la API HTTP. El editor es la vía cómoda, no una jaula.
¿El panel se adapta a cualquier pantalla?
El diseño se dibuja en un lienzo de tamaño fijo y se escala al viewport, que no es lo mismo que un diseño web adaptativo. En la práctica, dibujas para el formato de la tablet que vas a colgar.
¿Quién es el dueño de la configuración y de los diseños?
Tú. Son ficheros de texto en tu máquina, y te los llevas cuando quieras.
Hablemos de tu instalación
Cuéntame qué sala quieres montar y qué equipos tiene. Te respondo yo, y si encaja te enseño el sistema funcionando de verdad: dando de alta un proyector y dibujando su mando en directo.
No hay formulario ni nube: escribes a una persona, y esa persona te contesta.