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

Хотя это и не обязательно, я стараюсь придерживаться 40-часовой рабочей недели (5 дней), что составляет в среднем 8 часов в день. Одна из проблем, с которой я столкнулся, заключалась в том, что мне приходилось вручную отслеживать, сколько часов я провожу в офисе и каков общий недельный подсчет. В один из выходных я искал побочный проект, чтобы убить время, и решил автоматизировать грязный ручной труд.

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

IFTTT приходит на помощь

Одним из первых действий было чтение текстовых сообщений посещаемости, чтобы отправить их для дальнейшей обработки. Поскольку я пользователь Android, я понял, что могу использовать для этого надежное приложение IFTTT (If This Then That). Поэтому я настраиваю две задачи IFTTT: одну для отправки текстового сообщения в Google Sheet только для добавления (для исторических целей) и одну для вызова веб-перехватчика в облачную функцию (для отправки мне уведомления за 8 часов), работающего в моей личной учетной записи GCP. .

Апплет для отправки вызова веб-хука

https://ifttt.com/applets/109284167d-if-new-sms-received-matches-sushil-kumar-then-make-a-web-request

Апплет для записи только Google Sheet

https://ifttt.com/applets/109270787d-if-new-sms-received-matches-sushil-kumar-then-add-row-to-sushil-kumar-s-google-drive-spreadsheet

Облачная функция в работе

Я написал облачную функцию для получения запроса веб-хука, анализа текстового сообщения и отправки задачи в очередь задач Облачные задачи. Время выполнения задачи составляет 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 :)