Bonjour à tous,
Je souhaite vous présenter ici ma solution pour intégrer automatiquement une caméra pour la faune sauvage alimentée par batterie dans Gladys, en utilisant uniquement les « outils de bord ».
Prérequis :
La caméra doit fournir ses images et vidéos dans votre réseau domestique. Par exemple, via WiFi dans le jardin ou GSM depuis la forêt. Peu importe, la caméra doit vous envoyer les images/vidéos automatiquement.
Un modèle de ce type est la Reolink Argus Solar. Elle dispose de WiFi et de FTP. Idéale pour le jardin domestique.
Voici la procédure générale :
La première étape est réalisée via l’application du fabricant. Vous y configurez le FTP et indiquez votre NAS comme destination.
Sur le NAS, le FTP doit être activé au préalable, et éventuellement un partage avec un utilisateur FTP et un mot de passe FTP doit être créé.
Résultat : la Reolink Argus Solar (ici à titre d’exemple, sans publicité) transfère alors immédiatement les enregistrements sur votre NAS.
Ensuite, vous avez besoin d’un serveur Immich sur le NAS. Vous pouvez l’installer avec le YAML suivant en tant que Docker.
À l’avance : vous liez via le YAML le répertoire FTP / répertoire de partage et surtout : pour que tout fonctionne, il est impératif sous QNAP que le serveur Immich se trouve dans le même commutateur virtuel que Gladys. Sinon, la diapositive Immich suivante ne fonctionnera jamais.
Le YAML pour le Docker du serveur Immich :
********************************************************************************************
services:
redis:
container_name: immich_redis
image: redis:7-alpine
restart: unless-stopped
networks:
- internal
db:
container_name: immich_db
image: Package postgres · GitHub
restart: unless-stopped
networks:
- internal
volumes: - /share/Container/immich/pgdata:/var/lib/postgresql/data
environment:
POSTGRES_DB: immich
POSTGRES_USER: immich
POSTGRES_PASSWORD: Passwort
POSTGRES_INITDB_ARGS: ‹ –data-checksums ›
DB_STORAGE_TYPE: ‹ SSD ›
command: [« postgres », « -c », « shared_preload_libraries=vectors.so,vchord.so »]
db_backup:
container_name: immich_db_backup
image: prodrigestivill/postgres-backup-local:16
restart: unless-stopped
depends_on:
- db
networks: - internal
environment:
POSTGRES_HOST: db
POSTGRES_CLUSTER: ‹ TRUE ›
POSTGRES_USER: immich
POSTGRES_PASSWORD: Passwort
POSTGRES_DB: immich
SCHEDULE: « @daily »
POSTGRES_EXTRA_OPTS: ‹ –clean --if-exists ›
TZ: Europe/Berlin
volumes: - /share/Container/immich/pgdata-backup:/backups
immich:
container_name: immich
image: ghcr.io/immich-app/immich-server:release
restart: unless-stopped
depends_on:
- db
- redis
networks: - internal
- immichframe-private-net
ports: - 2283:2283
volumes: - /etc/localtime:/etc/localtime:ro
- /share/dockerdaten/immich/library:/usr/src/app/upload
- /share/my_bilder/reolink:/mnt/medien/reolink:rw
- /share/dockerdaten/immich/cache:/tmp # Schützt vor dem « No Space Left »-Fehler
environment:
DB_HOSTNAME: db
DB_USERNAME: immich
DB_DATABASE_NAME: immich
DB_PASSWORD: Passwort
IMMICH_MACHINE_LEARNING_URL: http://immich-machine-learning:3003
TZ: Europe/Berlin
immich-machine-learning:
container_name: immich_machine_learning
image: ghcr.io/immich-app/immich-machine-learning:release
restart: unless-stopped
networks:
- internal
volumes: - model-cache:/cache
environment:
TZ: Europe/Berlin
networks:
immichframe-private-net:
name: my_immich_frame_immichframe-private-net
external: true
internal:
volumes:
model-cache:
************************************************************************************************
Voici à nouveau les lignes décisives du YAML :
volumes:
- /etc/localtime:/etc/localtime:ro
- /share/dockerdaten/immich/library:/usr/src/app/upload
- /share/my_bilder/reolink:/mnt/medien/reolink:rw
- /share/dockerdaten/immich/cache:/tmp # Schützt vor dem « No Space Left »-Fehler
environment:
L’intégration du répertoire my_bilder/reolink dans le serveur Immich en tant que medien/reolink.
Remarque : Pour le flux de travail dans le serveur Immich, veuillez noter que le chemin ne doit pas aller directement jusqu’au répertoire direct des vidéos, donc pas : my_bilder/reolink/data/2016/10… mais se terminer déjà un niveau avant. Nous avons besoin d’un chemin clairement vérifiable, donc my_bilder/reolink.
Étape 2 :
Dans le serveur Immich, nous créons d’abord un album. Cet album est lié à une bibliothèque externe et enfin, cette bibliothèque externe est surveillée et un flux de travail interne met à jour automatiquement l’album :
Nous nommons l’album « reolink » dans notre exemple.
Puis nous passons en haut à droite dans l’administration du serveur Immich :
Dans l’administration, nous créons d’abord une bibliothèque externe. Dans cette bibliothèque externe, nous intégrons ensuite le répertoire « /mnt/medien/reolink » mentionné dans le YAML sous « Dossier » :
État intermédiaire : Toutes les images/vidéos du répertoire FTP sont ainsi disponibles dans le serveur Immich. Maintenant, nous automatisons les modifications dans le répertoire et transférons les modifications automatiquement dans l’album :
Sous Paramètres - Bibliothèque externe, nous activons la surveillance et le balayage du répertoire à 09h00 :
Grâce à cette surveillance, le serveur Immich traite automatiquement les nouvelles images/vidéos. Il crée des vues miniatures, lit les données EXIF, lance l’apprentissage automatique. C’est exactement le moment pour notre flux de travail.
Le serveur Immich n’offre pas beaucoup de déclencheurs pour un flux de travail. L’un d’eux est la lecture des données. Nous réagissons à cela. Dès qu’une image/vidéo est lue, nous la poussons dans l’album « reolink » créé ci-dessus… et pour que toutes les nouvelles images n’apparaissent pas là, nous nous limitons encore via un test du répertoire et ne réagissons qu’aux modifications dans un chemin qui contient le terme « reolink » (… c’est pourquoi les remarques ci-dessus sur le chemin…):
Ensuite, créez un nouveau flux de travail et il est possible de le configurer « visuellement » ou via « JSON ».
Voici mon JSON à ce sujet :
************************************************************************************************
{
« name »: « Reolink Kamera-Bilder in Album sortieren »,
« description »: « Fügt neu erkannte Bilder aus der externen Reolink-Bibliothek automatisch per ID dem Album hinzu »,
« enabled »: true,
« trigger »: « AssetMetadataExtraction »,
« steps »: [
{
"method": "immich-plugin-core#assetFileFilter",
"config": {
"pattern": "reolink",
"usePath": true,
"matchType": "contains",
"caseSensitive": false
},
"enabled": true
},
{
"method": "immich-plugin-core#assetAddToAlbums",
"config": {
"albumIds": \[
"b421a01b-0b71-4b6b-8ad3-83cf79ea06f7"
\],
"albumName": "reolink"
},
"enabled": true
}
]
}
***********************************************************************************
Visuellement, le résultat ressemble à ceci :
ou :
État intermédiaire :
Le serveur Immich traite donc constamment, au plus tard à 09h00, la bibliothèque externe et le flux de travail met à jour l’album. Dans le serveur Immich, le résultat ressemble à ceci :
Nous avons maintenant créé toutes les conditions préalables et nous nous tournons vers Gladys.
Nous allons nous rendre dans les intégrations et installer la diapositive Immich :
Dans le menu de configuration, nous accédons ensuite via l’intégration au serveur Immich et nous intégrons l’album « reolink » qui s’y trouve.
L’URL du serveur Immich affichée ci-dessus : http://imich:2283 ne fonctionne sur QNAP que si Gladys et le serveur Immich se trouvent dans le même commutateur virtuel !!! Les tentatives via 127.0.0.1 ou http://192.168.0.240 (adresse IP locale du NAS avec les conteneurs Docker de Gladys et du serveur Immich) ne fonctionneront définitivement pas. Il faut donc observer attentivement le YAML du serveur Immich ci-dessus avec ses paramètres réseau et l’adapter si nécessaire.
Vous obtenez la clé API Immich requise dans le serveur Immich sous les paramètres de compte de l’utilisateur.
Si vous faites défiler vers le bas dans l’intégration de la diapositive Immich, des boutons de test vous sont proposés. Utilisez-les absolument et transférez les sorties affichées dans la zone de configuration supérieure si nécessaire :
Si vous obtenez donc trois fois du vert … super, c’est terminé, nous avons terminé, car la diapositive Immich vous propose un appareil approprié en résultat :
Il ne reste plus qu’à afficher cet appareil comme d’habitude quelque part dans Gladys :
Dans mon exemple, j’ai configuré l’appareil de telle sorte qu’il ne soit pas trié (ainsi, la dernière date, c’est-à-dire la dernière prise de vue, se trouve en première position), et pour des raisons de charge réseau, je n’affiche que les cinq dernières images pendant une minute chacune.
Merci à tous les lecteurs d’être allés jusqu’au bout.
Cordialement
Tom













