Agora aprendendo Python, estou que nem criança no dia 25 de dezembro!
Estou fazendo ensaios para modificar alguns sistemas automatizados, tanto industrial quanto residencial. Estamos testando uma solução empregando o WhatsApp, onde o cliente recebe alertas em seu smartphone e através do próprio instant messenger, envia comandos a um sistema implementado com Raspberry Pi, para obter status de diversos dispositivos e comandá-los.
No caso específico, são bombas d'água de um sistema de drenagem.
Entendam que isso é só um teste e ainda não decidi se essa solução será posta em produção, sua finalidade é apenas didática.
Para quem não conhece o
Yowsup, é um cliente WhatsApp para Shell escrito em Python. O objetivo não é fazer um tutorial dele, que pode ser encontrado facilmente.
Segue uns dois, para o leitor "sair do chão":
Depois dele devidamente configurado, vamos fazer uma pequena modificação no código do programa para que ele possa interagir com o Shell do
Linux. No arquivo
foo/yousup/yowsup-master/src/Examples/ListenerClient.py, busque a seguinte linha:
print("%s [%s]:%s"%(jid, formattedDate, messageContent))
Transforme o comando em uma variável e comente esta linha, ela será chamada pela variável que criaremos:
variavel=("%s [%s]:%s"%(jid, formattedDate, messageContent))
print variavel
Imediatamente abaixo, vamos fazer uma operação de abertura, escrita e fechamento de um arquivo, este sim é de onde extrairemos o comando do Shell. Claro que isso pode ser feito de outras formas, como por exemplo, com a dica que postei a alguns dias aqui no
VOL, mas gostaria de dar ênfase à abertura e escrita de arquivos no Python.
#Notem o parâmetro "w"... se quiserem aditar o arquivo usem o parâmetro "a"
arquivo=open("testecmdshell.txt", "w")
#Nesta linha o Python irá escrever no arquivo a saída do comando print("%s [%s]:%s"%(jid, formattedDate, messageContent)) que foi anteriormente declarado na variável "variavel"
arquivo.write(variavel)
#E finalmente... Fechamos o arquivo.
arquivo.close()
Pronto! Agora vamos colocar o programa
yousup-cli em modo
listen para receber mensagens:
foo/yowsup/yowsup-master/src/yowsup-cli -l -w -c config.5521987654321
Agora, tudo é muito simples. É só Shell.
Exemplo:
while true; do $(cat <(cut -f 3 -d":" foo/yowsup/yowsup-master/src/testecmd.txt; cat /dev/null > /root/yowsup/yowsup-master/src/testecmd.txt)); done
Envie o comando
ifconfig pelo cliente WhatsApp do seu telefone e veja o resultado!
É claro que essa gambiarra não faz parte de nada, é apenas um "Protoboard" para mostrar que o limite do software livre é a criatividade de desenvolvedor.
Bom trabalho a todos!