Aqui no INdT a gente tem um sistema de ponto que usa uma etiqueta RFID que fica em nossos crachás para marcar a hora que a gente chega e sai do trabalho. O problema é que esse sistema não é muito confiável e eu também vivo esquecendo de passar o meu crachá na tal maquininha e isso fez com que eu tenha o maior banco de horas negativas aqui da empresa.
Cansado dessa história eu tentei vários métodos diferentes para marcar a minha chegada e saída aqui da empresa. Usei planilha, adaptei um sisteminha feito por um colega de trabalho, anotei em um caderno… e nada. As anotações estavam sempre inconsistentes e impediam que eu fizesse a conferência do meu relatório de horas e corrigir eventuais problemas.
Mas isso mudou quando li um artigo que falava sobre um programinha que executa tarefas quando um dispositivo Bluetooth específico se aproximava do computador. Eu pensei: “Eu tenho um celular com Bluetooth e tenho como colocar um dongle Bluetooth na minha estação de trabalho da empresa. Eu posso registrar a minha chegada/saída na empresa baseado na presença do meu celular, afinal ele me acompanha quando chego ou saio do trabalho…”
Mas o programinha do artigo não funciona com Linux e minha estação de trabalho é Linux então tive que desenvolver o meu próprio script Bluetooth Ponto.
O funcionamento dele é simples: Quando executado sem nenhum parâmetro ele faz discovery dos dispositivos Bluetooth nas redondezas e registra as entradas e saídas desses dispositivos desde o último discovery. Então é só colocar ele no seu crontab ($ crontab -e) para ser executado de 5 em 5 minutos:
$ crontab -l
# m h dom mon dow command
*/5 * * * * /path/completo/btponto.py
Esse comando irá gerar um arquivo de log para cada mês do ano dentro do diretório ~/.btponto e a partir desse arquivo a gente poderá gerar os relatórios.
Para gerar os relatórios é só criar um arquivinho de configuração com o MAC address do celular e o nome do dono:
$ cat .btponto/indt.cfg
[osantana]
bt = 00:0F:ED:ED:01:02
name = Osvaldo Santana Neto
occupation = Researcher
e roda o btponto.py da seguinte forma:
$ btponto.py -f .btponto/indt.cfg .btponto/bluetooth-200703.log
---------------------------------------------------------------
Username: osantana
Fullname: Osvaldo Santana Neto
BT Mac: 00:0F:ED:ED:01:02
Date In Out
2007-03-20 14:14:00 19:10:12
2007-03-21 09:35:12 19:20:11
2007-03-22 08:55:11
Esse programinha depende do Python BlueZ. No meu Ubuntu Edgy bastou executar: sudo apt-get install python-bluez para instalá-lo.
Para você descobrir qual o MAC address do teu celular tente:
$ hcitool scan
Scanning ...
00:0F:ED:ED:01:02 meu_celular
Ou, se o seu celular for um S60 da Nokia digite: *#2820# no teclado numérico.