На моем рабочем месте время входа и выхода в офисе контролируется с помощью биометрической аутентификации. В тот момент, когда кто-то входит в офис, он должен войти, а уходя в течение дня, должен выйти, довольно стандартная установка. Мы также получаем текстовые сообщения с датой и временем, когда произошло включение/выключение.
Хотя это и не обязательно, я стараюсь придерживаться 40-часовой рабочей недели (5 дней), что составляет в среднем 8 часов в день. Одна из проблем, с которой я столкнулся, заключалась в том, что мне приходилось вручную отслеживать, сколько часов я провожу в офисе и каков общий недельный подсчет. В один из выходных я искал побочный проект, чтобы убить время, и решил автоматизировать грязный ручной труд.
В этом посте я расскажу о том, как я его настроил. У проблемы было два аспекта: один заключался в том, что мне нужен был способ узнать, что я провел в офисе 8 часов в день, а другой заключался в том, чтобы вести исторический учет ежедневного времени прихода и ухода, чтобы иметь возможность отслеживать свои еженедельные и также неделя за неделей.
IFTTT приходит на помощь
Одним из первых действий было чтение текстовых сообщений посещаемости, чтобы отправить их для дальнейшей обработки. Поскольку я пользователь Android, я понял, что могу использовать для этого надежное приложение IFTTT (If This Then That). Поэтому я настраиваю две задачи IFTTT: одну для отправки текстового сообщения в Google Sheet только для добавления (для исторических целей) и одну для вызова веб-перехватчика в облачную функцию (для отправки мне уведомления за 8 часов), работающего в моей личной учетной записи GCP. .
Апплет для отправки вызова веб-хука
Апплет для записи только Google Sheet
Облачная функция в работе
Я написал облачную функцию для получения запроса веб-хука, анализа текстового сообщения и отправки задачи в очередь задач Облачные задачи. Время выполнения задачи составляет 8 часов с момента ввода (время выполнения зависит от содержимого сообщения). Задача представляет собой целевую задачу HTTP, которая выполняет POST-запрос к серверу Pushbullet.
Pushbullet, соединяющий петлю
Для тех из вас, кто не знает, что такое Pushbullet, это сервис, который позволяет вам легко обмениваться данными между вашими смартфонами и настольными компьютерами, используя двусторонний канал. У него так много функций, но для этого варианта использования мне нужна была только функция отправить уведомление из Интернета на мой смартфон.
curl --header 'Access-Token: <your_access_token_here>' --header 'Content-Type: application/json' --data-binary '{"body":"You have completed 8 hours in the office. You must leave now.","title":"Time to leave from office","type":"note"}' --request POST https://api.pushbullet.com/v2/pushes
Исторические данные в BigQuery
Из-за ежедневных уведомлений мне понадобился способ запрашивать данные, хранящиеся в Google Sheet. Именно тогда я наткнулся на возможность BigQuery создавать таблицы в Google Sheet и выполнять запросы с панели инструментов.
Поскольку на листе только 1 столбец, я сопоставил его с необработанным полем, а затем создал поверх него расширенное представление.
Представление добавляет несколько вспомогательных полей, что делает данные более удобоваримыми.
И это все. Вот так я автоматизировал тайм-менеджмент с помощью Google Cloud, IFTTT и Pushbullet :)