Contrôlez Raspberry Pi via Telegram Messenger

Ce didacticiel montre comment exécuter automatiquement des scripts pour des commandes de texte via Telegram après que l’installation sur le Raspberry a été traitée dans le didacticiel précédent. Cela vous permet, par exemple, d’interroger facilement l’état de vos Pi en déplacement ou simplement d’effectuer des actions à distance via votre messager.

Les préparatifs

Je crée d’abord un script qui exécute mes actions, par exemple, je veux arrêter mon Pi, redémarrer et voir la disponibilité. Je préfère Python, mais bien sûr, tout autre script est également possible (par exemple, bash).
Je nomme mon script tg_actions.py.

sudo nano /home/pi/tg/tg_actions.py

Afin de pouvoir exécuter différentes actions avec un script, j’utilise des arguments de ligne de commande, de sorte que par ex. sudo python /home/pi/tg/tg_actions.py argument est reconnu.

La liste peut être étendue comme vous le souhaitez, par exemple, les broches GPIO peuvent également être lues

Configurer le télégramme

Pour que Telegram puisse réagir automatiquement à diverses interactions (réception de textes / images / etc.), on peut créer un script Lua. Un exemple de script est disponible dans le répertoire Telegram sous test.lua. Je vais modifier ce fichier car il a déjà des fonctions prêtes à l’emploi pour la réception, etc.

sudo nano /home/pi/tg/test.lua

Étant donné que je souhaite répondre uniquement aux messages texte, la fonction est pour le moment on_msg_receive (msg) à éditer:

Aux lignes 15, 22, 30, 36 et 39, j’appelle un autre script. Ce n’est pas absolument nécessaire; J’ai écrit la commande alternative à la ligne 14. Quiconque souhaite toujours envoyer une réponse via un script supplémentaire peut en créer une:

sudo nano ~/tg/send_script

Le contenu est:

Pour que les deux scripts aient les droits correspondants, nous leur attribuons:

sudo chmod +x ~/tg/send_script
sudo chmod +x ~/tg/tg_actions.py

Si ce script ne fonctionne pas pour quelqu’un, tazzie a montez avec une alternative.

Attention: Il est important que le (s) numéro (s) de l’expéditeur aient été enregistrés au moyen de ajouter le contact, sinon aucune réponse automatique ne peut être effectuée.

Certains utilisateurs signalent que le script lua affiche l’erreur suivante: lua: /usr/share/lua/5.2/lgi/namespace.lua:149: Typelib file for namespace 'Notify' (any version) not found
Si tel est le cas, la partie intérieure de

-- Notification code {{{
...
-- }}}

doit être supprimé du test.lua.

Lancer le télégramme

Le script créé doit maintenant être démarré avec le messager pour qu’il puisse réagir aux messages. Pour qu’il fonctionne en arrière-plan, vous pouvez le démarrer comme ceci:

screen -dmS TelegramCLI ~/tg/bin/telegram-cli -s ~/tg/test.lua -k ~/tg/tg-server.pub

Si une erreur se produit, vous devez toujours installer l’écran, si ce n’est déjà fait:

sudo apt-get install screen

Voici un processus avec mon Raspberry Pi.

blank

Pour le démarrer automatiquement, suivez ce tutoriel ou utilisez crontab:

crontab -e

À la fin du fichier, écrivez la ligne suivante:

@reboot sleep 60 && screen -dmS TelegramCLI /home/pi/tg/bin/telegram-cli -s /home/pi/tg/test.lua -k /home/pi/tg/tg-server.pub

Pour ceux qui veulent tout faire dans le script Lua, il y a une belle Extension Lua GPIO.

Articles similaires

Bouton retour en haut de la page
Fermer