Le script de numérisation
Maintenant que notre "Aspirateur de documents" est prêt sur le NAS et sur Paperless-ngx, il faut que notre CasaOS sache comment attraper la feuille de papier et l'envoyer dans les tuyaux. C'est ici que l'on entre en salle des machines.
Dompter le matériel avec SANE
Pour piloter un scanner en ligne de commande Linux, on utilise l'outil SANE (Scanner Access Now Easy). C'est lui qui va faire le pont entre le logiciel et le scanner
D'abord, on va installer les utilitaires de base :
sudo apt update && sudo apt install sane-utils
Ensuite, on vérifie que le serveur "voit" bien le scanner (ici, il est en réseau) avec la commande scanimage -L
renard@casaos:~$ scanimage -L
device `escl:https://10.x.x.x:443' is a Canon TS3300 series platen scanner
Le script magique
J'ai écrit un petit script Bash très simple. Son rôle ? Réveiller le scanner, scanner le document posé sur la vitre et l'envoyer fissa dans notre dossier monté sur le NAS.
Voici à quoi il ressemble :
#!/bin/bash
# On définit le nom du fichier avec la date
DATE=$(date +%Y%m%d_%H%M%S)
FILENAME="scan_$DATE.pdf"
# On lance le scan
scanimage -d "airscan:e0:Canon TS3300 series" --format=pdf --resolution 300 > /tmp/$FILENAME
# On envoie le fichier vers le dossier consume du NAS
cp /tmp/$FILENAME /mnt/aspirateur_de_documents
# On nettoie le fichier temporaire
rm /tmp/$FILENAME
Ensuite, j'ai rendu le script exécutable avec un petit chmod +x scan_vers_paperless.sh
Le chef d'orchestre (Home Assistant & SSH)
C'est ici, sur mon Home Assistant que la magie se déclenche. Home assistant doit pouvoir dire, quand j'appuie sur la télécommande au serveur CasaOS : "Hey, lance le scan maintenant !".
Le "badge d'accès" (La Clé SSH)
Pour que Home Assistant puisse commander CasaOS sans me demander mon mot de passe à chaque fois, j'ai créé un pont sécurisé avec une clé SSH.
Depuis le terminal de Home Assistant, on génère une clé et on l'envoie sur CasaOS
shell_command:
declencher_scan_paperless: "ssh -i /config/.ssh/id_rsa -o StrictHostKeyChecking=no renard@casaos 'bash /home/renard/scan_vers_paperless.sh'"
ssh-copy-id -i /config/.ssh/id_rsa.pub renard@casaos
Désormais, Home Assistant peut se connecter sur le CasaOS sans souci
Déclarer la commande dans HA
Dans mon fichier configuration.yaml, j'ai ajouté cette ligne pour transformer mon script en une action utilisable par Home Assistant :
L'automatision : La télécommande magique
Enfin, la touche finale. J'ai créé une automation toute simple avec ma télécommande Philips Hue déjà reliée a mon Home Assistant :
- Déclencheur : Un appui long sur la touche du bas de la télécommande
- Action : Appeler le service
shell_command.declencher_scan_paperless.
Conclusion
Maintenant quand je reçois un document que je dois scanner, j'ai juste à poser la feuille sur la vitre du scanner, j'appuie longuement sur la télécommande qui est à côté contre le mur, et je continue ma journée.
Je sais que quelques minutes plus tard, je retrouverai mon document parfaitement nommé et tagué dans Paperless-ngx.
C'est ça, la magie de l'auto-hébergement : faire travailler nos machines ensemble pour nous libérer l'esprit.
