Русский
Русский
English
Статистика
Реклама

Управляем офисом с помощью простого telegram-бота

Привет, Хабр! Меня зовут Александр, я работаю в компании FINCH. Мы создаем приложения для крупных брендов вроде Спартака, Столото и Газпром-медиа.

Помимо клиентских проектов, мы очень любим создавать внутренние проекты для веселья и удобства. Круто, когда ты с коллегами можешь придумать суперприложение или бота для стендапов. Так же появился внутренний бот для открытия дверей и просмотра камер, о котором я расскажу в этой заметке.




Дисклеймер: если вы ищете сложных технических кейсов, боюсь мне нечем вас порадовать. Говорю заранее, чтобы у вас не было ложных ожиданий. У нас простое, но эффективное решение, которое можно легко сделать за пару часов, получив кучу пользы.

Как устроен бот


Бот предельно простой: две кнопки для дверей (открыть дверь, открыть калитку) + несколько для камер.



При этом на запуске эффект оказался безумным ботом сразу стали пользоваться, причем просто так, потому что прикольно одним тапом по кнопке что-то менять вокруг.

Бот экономит время


Бот это удобно. Особенно, когда забыл ключи или когда лень их доставать пока идешь курить. Кажется, что это мелочи ну достань ты связку ключей с брелоком из Парижа или пропуск из кармана и приложи к двери. Но из таких мелочей состоит вся наша жизнь кажется, если каждый день экономить по 10-15 секунд то можно будет наслаждаться реальностью дополнительные 5-10 дней. Посмотрите на эту красивую инфографику о том, куда уходят наши годы жизни.

Но главная причина для бота курьеры. У нас двухэтажный офис на 800м, но с одним входом для курьеров. Если ты работаешь на первом этаже, то проблем нет, но пока дойдешь из DevOps-отдела до входа, пройдет вечность.


Встреча с курьером после долгих лет странствий

При этом встреча курьера сама по себе смысла не несет: ты видишь парня в комбинезоне, открываешь ему кнопкой дверь, ждешь пока он дойдет, откроет заветный ларец, берешь пакет и снова открываешь кнопкой дверь. А потом долгий путь обратно.

С ботом все было бы проще. Спокойно работаешь, курьер звонит, просишь его нажать на кнопку звонка и оставить заказ у двери, слышишь звонок. Нажал на кнопку открыл калитку, нажал вторую открыл дверь. Курьер оставил еду Profit!

Главное нажать две кнопки двери и калитки. Иначе курьер застрянет во внутреннем дворике и будет ругаться на непонятном языке, как персонаж Симс, в ужасе не понимая, что ему делать.

Как бот следит за офисом


С дверью разобрались, но тут возникает другая проблема в офис могут стучаться посторонние. Если с ребятами в комбинезоне все понятно, то если приехал клиент, партнер или кто-то незнакомый все не так просто. Для таких случаев нам пригодилась интеграция с камерами. Удобно, когда ты можешь тапнуть одну кнопку и понять, кто там стоит за дверью.

Камер несколько и если прокликать по каждой, можно проверить все ли в порядке в офисе, не забыл ли ты выключить свет и не оставил ли свои вещи. Понятное дело, что если забываешь телефон в туалете, то тут никакой бот не поможет. Но если в фитнес-уголке, то вполне.



Что внутри бота


Мы написали специальный сервис, так как без него делать опасно не хотелось бы, чтобы кто-то случайно наткнувшись в поиске на бота, смог бы открывать двери в нашем офисе. Сидит такой человек в Переславле-Залесском и вносит смуту в Московском мобильном продакшне.


А это Переславль-Заллеский. Выглядит прекрасно!

Поэтому мы сделали механизм подтверждения и бана пользователя человек вводит телефон для регистрации, а админ бота его подтверждает с помощью команды.



О взломе мы даже не думаем. Бот запущен во внутренней сети, поэтому нет необходимости в какой-либо дополнительной защите. Внешнего способа обратиться к приложению которое выполняет команды, кроме как через бота, нет. Единственный способ чужому человеку открыть двери найти одного из наших сотрудников на улице, отобрать телефон и открыть дверь.По факту мы все доверили Telegram.

Бот и камеры


С камерами похожая история. Есть внутренняя сеть, которая автоматически генерирует превью. Все, что требуется обратиться на ссылку по которой всегда гарантированно есть свежая картинка последний кадр с камеры. Он всегда хранится в оперативке обновляется не постоянно, но точно есть. Как раз в оперативку и идет обращения по хитрой схеме авторизации.

Говоря хитрую я имею ввиду нестандартный запрос, который вряд ли где-то кроме камер используется. Нужно прям в домене указывать логин и пароль, прям как mailto. Дальше все просто Java обращается к URL, сохраняет файл и загружает в Telegram. Бот не создает новый кадр, а перезаписывает существующий. Ему неинтересно кто во сколько пришел на работу, его интересует только текущее состояние. Каждое изображение весит около 200-300 Кб, о высоких нагрузках речи не идет. Но чтобы никто не смог положить бота, и чтобы бота не забанил Telegram за спам, мы добавили 10-секундный интервал между отправкой запросов.

Единственное мы не знаем как хранятся изображения есть идея, что используются шардинговые решения, чтобы давно используемые файлы передвигать на отдельные сервера. Если вы знаете как это работает, расскажите в комментариях.

Последнее, что стоит отметить ночные уведомления. Мы периодически устраиваем вечеринки в офисе, плюс у нас всегда есть люди, которые уходят из офиса позднее остальных. Поэтому мы сделали так, что если кто-то с 00:00 до 09:00 пользуется ботом, то пользователю и специально отмеченным людям приходит уведомление.



Тому, кто воспользовался ботом приходит уведомление с просьбой выключить свет, кондиционеры и закрыть окна. Специально отмеченным людям обычное уведомление, что такой то пользователь воспользовался ботом, это нужно чтобы понять, что все ок и посторонних в офисе нет.



В итоге получается, что у нас есть база данных со следующими ролями:
админ, который подтверждает и банит;
юзер, который пользуется;
алерт, который получает уведомления.

Раньше со скоростью вообще дела шли не очень спасибо блокировке Telegram. Команды, которые должны были выполняться 2-3 миллисекунды, выполнялись секунду. А для всех звеньев, которые используют прокси (получение и отправление) пинг возрастает многократно.

Иногда это приводило к сбоям и вылетам. Люди привыкали тыкать кнопку открыть по 50 раз. И потом с задержкой можно было услышать симфонию дверных звонков. Приходилось менять порты и прокси, при этом мы не хардкодили, чтобы можно было спокойно поменять одну цифру вуаля.

Бонус трек: придумываем идеи, что еще можно придумать для офиса. Придумывайте и вы


  1. Заказывать еду в офис. То есть автоматизировать то, что мы обычно делаем в специальных чатах вроде FINCH Еда. Многим нашим сотрудникам, не особо нравится разговаривать с людьми, им нравится тыкать кнопки (Денис, кто создал бота из таких).
  2. Бот мог бы помочь: условно люди подписывались на него, и когда дело доходило до заказа, человеку в личку прилетал вопрос Будешь пиццу? с ответами Да и Нет. При необходимости он выяснял бы детали у человека, кто создал запрос.
  3. Выводить CO2. Вовремя проветриваем помещение, не теряем сознание от углекислого газа. Сейчас это можно посмотреть в Графане, но мы можем сделать так, что и значения и график будут прилетать человеку по нажатию кнопки.
  4. Регулировать свет. Это нужно для тех, кто любит работать в темноте. Мы могли бы подключить бота к диодным лампам, и с помощью бота можно было бы регулировать их яркость. Условно, человек заранее выставляет нужно значение освещения и бот его запоминает. Потом в определенный момент, когда жить со светом уже нельзя человек нажимает кнопку и вуаля атмосфера создана.

    Остался простой вопрос как это сделать? Офис большой, можно указать крыло в котором пользователь находится больше всего, но тут есть куча сценариев, которые должны быть просчитаны. Например, что делать, если я пересел в другое место?

На самом деле не существует кейсов, которые нельзя с технической точки зрения реализовать в боте. Всегда все упирается в UX, эргономику и воображение. Телеграм позволяет сделать любую инлайн-клавиатуру с кнопками любых размеров, хоть матрицу 50 на 50. Но эти кнопки это все, что есть: никаких тапов, экранов, бургеров, чекбоксов.

При этом делать отдельных ботов еще хуже, потому что придется искать их, а это столько кликов, что зачем вообще такой бот, если быстрее сделать все вручную (даже если ты сидишь в отделе DevOps и тебе нужно встречать курьера).

Однако мечтать никто не запрещает. Расскажите о самых безумных идеях для Telegam-бота, и авторам самых крутых мы раздадим эксклюзивные майки FINCH. Отправим в любую точку мира

Спасибо!
Источник: habr.com
К списку статей
Опубликовано: 28.07.2020 16:18:22
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Diy или сделай сам

Лайфхаки для гиков

Офисы it-компаний

Программирование

Боты для мессенджеров

Telegram

Боты телеграмма

Лайфхаки

Офисная жизнь

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru