Intégrer la caméra batterie - Caméra de surveillance de la faune - QNAP - Reolink - Immich

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

3 « J'aime »