Gestionamos la oficina utilizando un simple bot de telegramas

¡Hola, Habr! Mi nombre es Alexander, trabajo para FINCH. Creamos aplicaciones para grandes marcas como Spartak, Stoloto y Gazprom-Media.



Además de los proyectos de los clientes, nos encanta crear proyectos internos, por diversión y conveniencia. Es genial cuando usted y sus colegas pueden crear una superaplicación o un bot para stand-ups . También ha aparecido un bot interno para abrir puertas y ver cámaras, que discutiré en esta publicación.







Descargo de responsabilidad : si está buscando casos técnicos complejos, me temo que no tengo nada para complacerlo. Te lo digo de antemano para que no tengas falsas expectativas. Tenemos una solución simple pero efectiva que se puede hacer fácilmente en un par de horas y obtener toneladas de valor.



Cómo funciona el bot



El bot es extremadamente simple: dos botones para puertas (abrir una puerta, abrir un portón) + varios botones para cámaras.







Al mismo tiempo, en el lanzamiento, el efecto resultó ser una locura: inmediatamente comenzaron a usar el bot, y así, porque es genial cambiar algo con un toque en el botón.



El bot ahorra tiempo



Un bot es conveniente. Especialmente cuando olvidaste tus llaves o cuando eres demasiado vago para conseguirlas mientras vas a fumar. Parece que son bagatelas, bueno, saca un manojo de llaves con un llavero de París o un pase de tu bolsillo y ponlo en la puerta. Pero toda nuestra vida consiste en cosas tan pequeñas: parece que si ahorra de 10 a 15 segundos todos los días, puede disfrutar de la realidad durante 5 a 10 días más. Echa un vistazo a esta hermosa infografía de dónde van nuestros años de vida.



Pero la razón principal del bot son los mensajeros. Disponemos de una oficina de dos plantas de 800m², pero con una entrada para mensajería. Si trabaja en la planta baja, entonces no hay problemas, pero llevará una eternidad llegar desde el departamento de DevOps a la entrada.





Encuentro con el mensajero después de muchos años de vagar



Al mismo tiempo, encontrarse con el mensajero no tiene sentido en sí mismo: ves a un tipo con un mono, le abres la puerta con un botón, esperas a que venga, abres el codiciado cofre, tomas el paquete y vuelves a abrir la puerta con el botón. Y luego, el largo camino de regreso.



Todo sería más fácil con un bot. Trabajas tranquilamente, el mensajero llama, le pides que apriete el timbre y dejes un pedido en la puerta, escuchas el timbre. Apretó el botón - abrió la puerta, apretó el segundo - abrió la puerta. Courier dejó comida - ¡Beneficio!



Lo principal es presionar dos botones: puertas y portones. De lo contrario, el mensajero se quedará atascado en el patio y proferirá palabrotas en un lenguaje incomprensible, como el personaje "Sims", horrorizado, sin saber qué hacer.



Cómo el bot monitorea la oficina



Con la puerta resuelta, pero luego surge otro problema: los forasteros pueden llamar a la oficina. Si todo está claro con los chicos en monos, entonces si ha llegado un cliente, pareja o alguien desconocido, no todo es tan simple. Para tales casos, la integración con cámaras fue útil. Es conveniente cuando puede tocar un botón y comprender quién está detrás de la puerta.



Hay varias cámaras y si pulsas en cada una puedes comprobar si todo está en orden en la oficina, si olvidaste apagar la luz y si dejaste tus cosas. Está claro que si olvidas tu teléfono en el baño, ningún bot te ayudará. Pero si está en un rincón de fitness, entonces bastante.







¿Qué hay dentro del bot?



Hemos escrito un servicio especial, ya que es peligroso prescindir de él; no quisiera que alguien se topase accidentalmente con un bot mientras busca y pudiera abrir las puertas de nuestra oficina. Tal persona se sienta en Pereslavl-Zalessky y genera confusión en la producción móvil de Moscú.





Y este es Pereslavl-Zallesky. ¡Se ve muy bien!



Por lo tanto, creamos un mecanismo para confirmar y prohibir al usuario: una persona ingresa un número de teléfono para registrarse y el bot de administración lo confirma con un comando.







Ni siquiera pensamos en piratear. El bot se ejecuta en la red interna, por lo que no es necesaria ninguna protección adicional. No existe una forma externa de acceder a una aplicación que ejecuta comandos, excepto a través de un bot. La única forma de que un extraño abra la puerta es encontrar a uno de nuestros empleados en la calle, agarrar el teléfono y abrir la puerta, de hecho, le confiamos todo a Telegram.



Bot y cámaras



La historia es similar con las cámaras. Existe una red interna que genera automáticamente vistas previas. Todo lo que se requiere es consultar el enlace, que siempre está garantizado para tener una imagen nueva: el último fotograma de la cámara. Siempre se almacena en la "RAM"; no se actualiza constantemente, pero ciertamente lo está. Es precisamente en el "operativo" donde se realizan las llamadas según el ingenioso esquema de autorización.



Cuando digo "complicado" me refiero a una solicitud no estándar, que apenas se usa en ningún otro lugar que no sean cámaras. Debe especificar el nombre de usuario y la contraseña directamente en el dominio, al igual que mailto. Entonces todo es simple: Java accede a la URL, guarda el archivo y lo carga en Telegram. El bot no crea un nuevo marco, sino que sobrescribe el existente. No le interesa quién vino a trabajar, solo le interesa el estado actual. Cada imagen pesa alrededor de 200-300 KB, no se habla de cargas elevadas. Pero para que nadie pudiera "poner" el bot, y para que Telegram no prohibiera el bot por spam, agregamos un intervalo de 10 segundos entre el envío de solicitudes.



Lo único que no sabemos es cómo se almacenan las imágenes: existe la idea de que las soluciones de fragmentación se utilizan para mover archivos que se han utilizado durante mucho tiempo a servidores separados. Si sabe cómo funciona, háganoslo saber en los comentarios.



Lo último que cabe destacar son las notificaciones nocturnas. Ocasionalmente organizamos fiestas en la oficina, además siempre tenemos personas que salen de la oficina más tarde que otros. Por lo tanto, lo hicimos para que si alguien usa el bot de 00:00 a 09:00, el usuario y las personas especialmente marcadas reciban una notificación.







Cualquiera que haya usado el bot recibe una notificación con una solicitud para apagar las luces, el aire acondicionado y cerrar las ventanas. Para las personas especialmente marcadas: la notificación habitual de que dicho usuario ha utilizado el bot, esto es necesario para comprender que todo está bien y que no hay extraños en la oficina.







Como resultado, resulta que tenemos una base de datos con los siguientes roles:



  • administrador que confirma y prohíbe;
  • usuario que usa;
  • alerta que recibe notificaciones.


Anteriormente, las cosas no iban muy bien con la velocidad en general, gracias al bloqueo de Telegram. Los comandos que se suponía que iban a tomar 2-3 milisegundos tardaron un segundo en completarse. Y para todos los enlaces que utilizan proxies (recepción y envío), el ping aumenta muchas veces.



A veces, esto provocaba accidentes y accidentes. La gente se acostumbró a presionar el botón "abrir" 50 veces. Y luego, con un retraso, se pudo escuchar la sinfonía de timbres. Tuvimos que cambiar puertos y proxies, mientras que no codificamos, para poder cambiar de forma segura un dígito, listo.



Bonus track: proponer ideas sobre qué más se le puede ocurrir para la oficina. Sube contigo tambien



  1. . , «FINCH ». , , (, ).
  2. : , , « ?» «» «». , .
  3. CO2. , . «», , .
  4. . , . , . , . , — — .



    — ? , , , . , , ?


De hecho, no hay casos que no puedan implementarse técnicamente en un bot. Siempre se trata de UX, ergonomía e imaginación. Telegram te permite crear cualquier teclado en línea con botones de cualquier tamaño, incluso una matriz de 50 por 50. Pero estos botones son todo lo que hay: sin cintas, pantallas, hamburguesas, casillas de verificación.



Al mismo tiempo, hacer bots individuales es aún peor, porque tienes que buscarlos, y hay tantos clics que por qué un bot de este tipo, si es más rápido hacer todo manualmente (incluso si estás sentado en el departamento de DevOps y necesitas encontrar un mensajero).



Sin embargo, nadie prohíbe soñar. Cuéntanos las ideas más locas para el bot de Telegam y distribuiremos camisetas exclusivas de FINCH a los autores de las más geniales. Enviaremos a cualquier parte del mundo ¡



Gracias!



All Articles