Nous gérons le bureau à l'aide d'un simple robot de télégramme

Bonjour, Habr! Je m'appelle Alexander, je travaille pour FINCH. Nous créons des applications pour de grandes marques comme Spartak, Stoloto et Gazprom-Media.



En plus des projets clients, nous aimons vraiment créer des projets internes - pour le plaisir et la commodité. C'est cool quand vous et vos collègues pouvez créer une super-application ou un bot pour les stand-ups . Un bot interne est également apparu pour ouvrir les portes et regarder les caméras, dont je parlerai dans cet article.







Avertissement : Si vous recherchez des cas techniques complexes, j'ai bien peur de ne rien vous plaire. Je vous le dis à l'avance pour que vous n'ayez pas de fausses attentes. Nous avons une solution simple mais efficace qui peut être facilement réalisée en quelques heures et obtenir des tonnes de valeur.



Comment fonctionne le bot



Le bot est extrêmement simple: deux boutons pour les portes (ouvrir une porte, ouvrir une porte) + plusieurs boutons pour les caméras.







Dans le même temps, au lancement, l'effet s'est avéré insensé - ils ont immédiatement commencé à utiliser le bot, et comme ça, parce que c'est cool de changer quelque chose en appuyant sur le bouton.



Le bot fait gagner du temps



Un bot est pratique. Surtout lorsque vous avez oublié vos clés ou lorsque vous êtes trop paresseux pour les obtenir pendant que vous allez fumer. Il semble que ce soient des bagatelles - eh bien, vous obtenez un trousseau de clés avec un porte-clés de Paris ou un laissez-passer de votre poche et le mettez à la porte. Mais toute notre vie se compose de si petites choses - il semble que si vous gagnez 10 à 15 secondes chaque jour, vous pouvez profiter de la réalité pendant 5 à 10 jours supplémentaires. Découvrez cette belle infographie sur les années de vie.



Mais la principale raison du bot est le courrier. Nous avons un bureau de 800 m² sur deux étages, mais avec une entrée pour les coursiers. Si vous travaillez au rez-de-chaussée, il n'y a aucun problème, mais il faudra une éternité pour passer du département DevOps à l'entrée.





Rencontre avec le courrier après de nombreuses années d'errance



En même temps, rencontrer le coursier n'a pas de sens en soi: vous voyez un gars en salopette, ouvrez la porte pour lui avec un bouton, attendez qu'il vienne, ouvrez le coffre tant convoité, prenez le colis et ouvrez à nouveau la porte avec le bouton. Et puis - le long chemin du retour.



Tout serait plus facile avec un bot. Vous travaillez calmement, le courrier appelle, vous lui demandez d'appuyer sur le bouton de la sonnette et de laisser la commande à la porte, vous entendez la cloche. Il appuya sur le bouton - ouvrit la porte, appuya sur le second - ouvrit la porte. Courrier a laissé de la nourriture - Profit!



L'essentiel est d'appuyer sur deux boutons - portes et portails. Sinon, le coursier se retrouvera coincé dans le patio et jurera dans un langage incompréhensible, comme le personnage des Sims, dans l'horreur, ne sachant que faire.



Comment le bot surveille le bureau



Avec la porte réglée, mais un autre problème se pose: les étrangers peuvent frapper au bureau. Si tout est clair avec les gars en salopette, alors si un client, un partenaire ou une personne inconnue est arrivé, tout n'est pas si simple. Dans de tels cas, l'intégration avec des caméras s'est avérée utile. C'est pratique lorsque vous pouvez appuyer sur un bouton et comprendre qui se trouve derrière la porte.



Il y a plusieurs caméras et si vous cliquez sur chacune d'elles, vous pouvez vérifier si tout est en ordre dans le bureau, si vous avez oublié d'éteindre la lumière et si vous avez laissé vos affaires. Il est clair que si vous oubliez votre téléphone dans les toilettes, aucun robot ne vous aidera. Mais si dans un coin fitness, alors tout à fait.







Ce qu'il y a à l'intérieur du bot



Nous avons écrit un service spécial, car il est dangereux de s'en passer - je ne voudrais pas que quelqu'un tombe accidentellement sur un robot en cherchant et puisse ouvrir les portes de notre bureau. Une telle personne est assise à Pereslavl-Zalessky et sème la confusion dans la production mobile de Moscou.





Et c'est Pereslavl-Zallesky. Ça a l'air génial!



Par conséquent, nous avons créé un mécanisme pour confirmer et interdire l'utilisateur - une personne entre un numéro de téléphone pour l'enregistrement et le bot d'administration le confirme avec une commande.







Nous ne pensons même pas au piratage. Le bot fonctionne sur le réseau interne, il n'y a donc pas besoin de protection supplémentaire. Il n'existe aucun moyen externe d'accéder à une application qui exécute des commandes, sauf via un bot. La seule façon pour un inconnu d'ouvrir la porte est de trouver un de nos employés dans la rue, de prendre le téléphone et d'ouvrir la porte. En fait, nous avons tout confié à Telegram.



Bot et caméras



L'histoire est similaire avec les caméras. Il existe un réseau interne qui génère automatiquement des aperçus. Il suffit de se référer au lien, qui est toujours garanti d'avoir une image fraîche - la dernière image de la caméra. Il est toujours stocké dans la «RAM» - il n'est pas constamment mis à jour, mais c'est certainement le cas. C'est précisément dans le «opératif» que les appels sont effectués selon le schéma d'autorisation astucieux.



Par «délicat», j'entends une demande non standard, qui n'est guère utilisée ailleurs que sur les caméras. Vous devez spécifier le nom d'utilisateur et le mot de passe directement dans le domaine, tout comme mailto. Ensuite, tout est simple - Java accède à l'URL, enregistre le fichier et le télécharge sur Telegram. Le bot ne crée pas de nouveau cadre, mais écrase celui existant. Il ne s'intéresse pas à qui est venu travailler, il ne s'intéresse qu'à l'état actuel. Chaque image pèse environ 200 à 300 Ko, on ne parle pas de charges élevées. Mais pour que personne ne puisse «mettre» le bot, et pour que le bot ne soit pas interdit par Telegram pour spam, nous avons ajouté un intervalle de 10 secondes entre l'envoi des requêtes.



La seule chose que nous ne savons pas, c'est comment les images sont stockées - il y a une idée que les solutions de partitionnement sont utilisées pour déplacer des fichiers qui ont été utilisés pendant une longue période vers des serveurs séparés. Si vous savez comment cela fonctionne, faites-le nous savoir dans les commentaires.



La dernière chose à noter est les notifications de nuit. Nous organisons occasionnellement des fêtes de bureau, et nous avons toujours des gens qui quittent le bureau plus tard que les autres. Par conséquent, nous avons fait en sorte que si quelqu'un utilise le bot de 00h00 à 09h00, l'utilisateur et les personnes spécialement marquées reçoivent une notification.







Toute personne ayant utilisé le bot reçoit une notification avec une demande d'éteindre les lumières, les climatiseurs et de fermer les fenêtres. Aux personnes spécialement marquées - la notification habituelle qu'un tel utilisateur a utilisé le bot, cela est nécessaire pour comprendre que tout va bien et qu'il n'y a pas d'étrangers au bureau.







En conséquence, il s'avère que nous avons une base de données avec les rôles suivants:



  • administrateur qui confirme et interdit;
  • utilisateur qui utilise;
  • alerte qui reçoit des notifications.


Auparavant, les choses n'allaient pas très bien avec la vitesse en général - grâce au blocage de Telegram. Les commandes censées durer 2 à 3 millisecondes ont pris une seconde. Et pour tous les liens qui utilisent des proxies (réception et envoi), le ping augmente plusieurs fois.



Parfois, cela a conduit à des plantages et des plantages. Les gens se sont habitués à appuyer 50 fois sur le bouton «ouvrir». Et puis, avec un retard, on pouvait entendre la symphonie des sonnettes. Nous avons dû changer les ports et les proxies, alors que nous n'avons pas codé en dur, afin de pouvoir changer en toute sécurité un chiffre voila.



Bonus track: proposer des idées de ce que vous pouvez proposer pour le bureau. Viens aussi avec toi



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



    — ? , , , . , , ?


En fait, il n'y a aucun cas qui ne puisse pas être implémenté techniquement dans un bot. Cela se résume toujours à l'UX, à l'ergonomie et à l'imagination. Telegram vous permet de créer n'importe quel clavier en ligne avec des boutons de toutes tailles, même une matrice de 50 par 50. Mais ces boutons sont tout ce qu'il y a: pas de bandes, d'écrans, de hamburgers, de cases à cocher.



Dans le même temps, créer des bots individuels est encore pire, car vous devez les rechercher, et c'est tellement de clics que pourquoi un tel bot du tout, s'il est plus rapide de tout faire manuellement (même si vous êtes assis dans le département DevOps et que vous devez rencontrer un coursier).



Cependant, personne n'interdit de rêver. Parlez-nous des idées les plus folles pour le bot Telegam, et nous distribuerons des t-shirts FINCH exclusifs aux auteurs des plus cool. Nous expédierons partout dans le monde



Merci!



All Articles