Bonjour,
Présentation
un tuto, pour être alerté (ici, telegram), de la présence de nx fichier sur votre NAS et l’envoi du/des fichiers dans le cloud pour consultation/sauvegarde.
Dans l’exemple ci dessous, c’est la création d’une nouvelle video (.mp4) sur mon NAS qui est poussée sur mon googleDrive et je reçois une notification par Telegram. Cela, via un scénario et des variables.
Prérequis
Il vous faut:
- plugin: Script, Telegram, CloudSync Pro
- un NAS (ou un répertoire visible depuis Jeedom).
- un script (dans mon cas, un shell, très simple)
plugin script
Le script webcam.sh
#!/bin/sh
# Search new file(s) in a recursive directory since previous execution. return all path list in stdout
# 1.0 11/15/2020 CDM creation
#################################### Variables ##########################################
# Directoy to search files
SEARCH_DIR='/mount/private/xiaomi_camera_videos'
# file to search
FILTER_NAME='*.mp4'
# Timestamp file updated every search execution
TIMESTAMP=/var/tmp/webcam.tmp
# Output file for error command (to display in this case)
OUTPUT_ERROR=/var/tmp/webcam_error
ERROR=0
#################################### Functions ##########################################
SearchNewFile()
{
ERROR=0
cd $SEARCH_DIR
FOUND_LIST=$(find . -name $FILTER_NAME -type f -newer $TIMESTAMP 2> $OUTPUT_ERROR)
if [ $? -ne 0 ]; then
echo "ERROR: Error during find: $(cat $OUTPUT_ERROR)"
ERROR=1
fi
if [ -n "$FOUND_LIST" ]; then
echo "$FOUND_LIST"
else
echo "None"
fi
touch $TIMESTAMP
return $ERROR
}
######################################## Main ###########################################
case $1 in
'init')
# Initialisation - create timestamp
touch $TIMESTAMP $OUTPUT_ERROR
if [ "$?" -ne 0 ]; then
ERROR=1
echo "ERROR: create $TIMESTAMP or $OUTPUT_ERROR failed"
fi
;;
'search')
SearchNewFile
;;
'refresh')
if [ ! -d $SEARCH_DIR ]; then
ERROR=1
echo "ERROR: $SEARCH_DIR not found!" >> $OUTPUT_ERROR
fi
;;
esac
if [ $ERROR -ne 0 ]; then
exit 1
fi
plugin CloudSync Pro
3 actions dans mon cas, la synchro Daily (syncronise le NAS vers mon google drive), et 2 autres que je pilote manuellement (syncronise tout) et une action de nettoyage de mon google drive.
Scénario
Rien de bien compliqué. Le scénario est provoqué dans mon cas, en cas d’intrusion chez moi.
Explication
Le script initialise un fichier timestamp (action init du script)
Recherche pendant 3 semaines (j’ai vu large!!), et tt les 10 secondes, si une nouvelle vidéo est présente (depuis la précédente exécution) dans mon répertoire SEARCH_DIR (action search du script).
Si oui, j’enregistre le chemin dans une variable Jeedom pour l’envoyer via Telegram.
Le scénario s’arrête après 3 semaines (durée de la boucle) ou si je désactive mon alarme chez moi.
Je n’ai plus qu’a consulter ma video dans mon google drive.
Amélioration
Je constate que je peux recevoir 2 messages Telegram pour un même fichier si la copie par la webcam est tjs en cours (> 10s). Il faudrait que j’historise la détection des nx fichiers par le script pour alerter que les nx et pas ceux qui ont déjà été affichés.
Ajouter le lien de la vidéo Google Drive dans Telegram.