PotoP VMS Studio

Système professionnel de gestion vidéo

Un seul système pour la vidéo en direct, l’enregistrement, la détection par IA, les plans d’étage et les murs vidéo des salles de contrôle — avec sa propre autorité de certification, le basculement vers un serveur de secours et un client de bureau, web et Android.

Fabriqué dans l’UE Fonctionne sur vos propres serveurs

Détections affichées sur les enregistrements

Murs vidéo

Dispositions multi-écrans, écrans identifiés et projection en un clic depuis n’importe quel client.

Une lecture qui retrouve l’essentiel

Chronologie des événements, détections sur les enregistrements, synthèse TimeFold et export chiffré et filigrané.

L’IA sur votre propre matériel

Analyse d’objets, de postures, segmentation, plaques et visages avec recherche multi-caméras — sans cloud.

Plans de site en direct

Caméras, portes, éclairages et interphones sur vos plans, avec leur état en direct et leurs cônes de vision.

Basculement & RAID

Un serveur de secours prend le relais automatiquement ; l’état et la capacité du RAID sont toujours visibles.

Sécurisé par défaut

Autorité de certification propre, HTTPS vers les caméras, autorisations fines, 2FA et piste d’audit complète.

Conçu pour les opérations vidéo exigeantes

PotoP VMS Studio pilote vos caméras depuis un seul serveur et les affiche là où vous en avez besoin : une salle de contrôle multi-écrans, un navigateur ou un téléphone. Enregistrement, lecture, analyse IA et gestion des alarmes cohabitent dans le même système : un événement sur une caméra devient un moment repéré sur la ligne de temps, une notification et — si vous le souhaitez — une macro qui y réagit.

Il est conçu pour les installateurs et les opérateurs qui doivent pouvoir compter sur lui à 3 heures du matin : un serveur de secours prend le relais en cas de défaillance du serveur principal, l’état du stockage est toujours visible, chaque action est auditée et chaque connexion est chiffrée avec des certificats émis par le système lui-même.

Encore mieux avec PotoP Enterprise Suite

PotoP VMS Studio est complet à lui seul. Les installateurs et sociétés de maintenance qui utilisent aussi PotoP Enterprise Suite mènent leurs travaux d’ingénierie et de service plus rapidement.

PotoP Enterprise Suite

Les pannes vont droit au service

Un opérateur signale une panne dans le VMS ; elle devient une intervention de service dans PES avec un compteur SLA, et l’opérateur voit quand un technicien est en route.

Programmé à partir de la conception

Caméras, enregistrement, analyse IA, plannings et mosaïques des postes de travail dessinés dans PES sont envoyés au serveur en une seule étape.

Une documentation toujours exacte

Le système installé peut être relu dans PES, si bien que plans, packages et certificats correspondent à la réalité.

Visite des fonctionnalités

Chaque écran ci-dessous est une vraie capture d'écran. Recherchez une fonctionnalité ou choisissez un chapitre ; cliquez sur une image pour l'afficher en taille réelle et parcourez-les avec les touches fléchées.

01

Moniteurs & murs vidéo 5 écrans

Placez n’importe quelle combinaison de caméras sur autant d’écrans que vous voulez, et envoyez une disposition vers un mur en un clic.

Murs vidéo multi-dispositions
Point fort Client de bureau

Murs vidéo multi-dispositions

Une multi-disposition place une disposition de caméras sur chaque écran d’une salle de contrôle, en une seule recette. Les écrans absents du poste client sont simplement ignorés : le même mur fonctionne aussi bien sur un bureau à deux écrans que dans une grande salle.

Comment ça marche

Une multi-disposition est une recette enregistrée sur le serveur : pour chaque code d’écran, elle indique quelle disposition de caméras afficher. Au lancement, le client détermine lesquels de ces codes existent sur la machine, ouvre une fenêtre plein écran sur chacun d’eux et charge la disposition correspondante avec ses flux en direct. Les codes absents sont ignorés, de sorte que la même recette fonctionne sur un bureau à deux écrans comme dans une salle plus grande. Les dispositions conservent leurs affectations de caméras, et la recette peut être attribuée à des utilisateurs ou à des groupes pour s’ouvrir automatiquement à la connexion.

Chaque écran, reconnu
Client de bureau

Chaque écran, reconnu

L’onglet Écrans liste chaque moniteur raccordé au poste client avec son port, sa résolution, sa fréquence de rafraîchissement et sa carte graphique. Chaque écran conserve un code permanent, comme M1 : un mur s’affiche ainsi toujours sur le même écran physique.

Comment ça marche

Le client interroge le système d’exploitation sur ses écrans et le pilote graphique sur leurs caractéristiques : chaque moniteur indique ainsi son fabricant, son modèle, son numéro de série, sa résolution, sa fréquence de rafraîchissement, son connecteur et le GPU qui le pilote, ainsi que la température et la VRAM lorsque le pilote les communique. Chaque écran physique est identifié par son matériel, et non par sa position, et reçoit un code permanent comme M1. Les noms et les codes sont enregistrés sur ce poste client et survivent aux redémarrages comme aux rebranchements. Un écran débranché reste dans la liste jusqu’à ce que vous le supprimiez : un mur enregistré pointe donc toujours vers le même écran.

Composez un mur dans le navigateur
Client web

Composez un mur dans le navigateur

Le client web propose le même éditeur de murs dans les paramètres d’administration. Choisissez une disposition pour chaque code d’écran, enregistrez la multi-disposition et projetez-la sur les écrans du navigateur devant lequel vous êtes assis.

Comment ça marche

L’éditeur s’exécute dans le navigateur et enregistre la multi-disposition sur le serveur : la même recette est ainsi partagée avec les clients de bureau. Le navigateur liste ses propres écrans grâce à l’API Window Management, qui exige une connexion HTTPS sécurisée et l’autorisation de l’utilisateur. Chaque entrée affiche un code d’écran, et les codes absents de ce navigateur sont signalés comme non présents. Choisir une disposition pour un code l’ajoute à la recette. La projection ouvre une fenêtre de navigateur par écran correspondant et l’y place, chacune affichant la disposition en direct.

Un clic pour projeter un mur
Client web

Un clic pour projeter un mur

Une multi-disposition enregistrée montre d’un coup d’œil ses écrans et ses dispositions, avec des boutons pour lancer la projection, la modifier ou la supprimer. Les murs peuvent aussi être attribués à des utilisateurs et à des groupes pour s’ouvrir automatiquement.

Comment ça marche

Les multi-dispositions sont enregistrées sur le serveur sous forme de liste de codes d’écran, avec la disposition associée à chacun. Cette vue d’ensemble représente chaque recette par une petite image de ses écrans et indique combien d’entre eux existent sur le navigateur que vous utilisez. Lancer la projection ouvre une fenêtre sur chaque écran correspondant et y démarre les dispositions en direct. Modifier et Supprimer changent la recette enregistrée pour tous les clients. L’accès suit les mêmes droits d’utilisateurs et de groupes que le reste du système, et un mur peut être rattaché à des utilisateurs ou à des groupes pour s’ouvrir automatiquement pour eux.

Identifiez chaque écran
Client web

Identifiez chaque écran

Dans le client web, la fonction Identifier affiche en plein écran le code et le nom de chaque écran visible par le navigateur. Dans une salle remplie d’écrans identiques, vous savez toujours quel moniteur physique est M2. Le client de bureau propose la même fonction dans son onglet Écrans.

Comment ça marche

Grâce à l’API Window Management — qui exige HTTPS et une autorisation accordée une seule fois — le navigateur sait sur quel écran physique se trouve chaque fenêtre. Identifier ouvre une fenêtre sans bordure sur chaque écran détecté, y affiche en grands caractères le code et le nom de l’écran, puis la ferme après quelques secondes. Le code provient d’un registre conservé dans ce navigateur : les noms modifiés sont conservés et un écran débranché reste dans la liste jusqu’à ce que vous le supprimiez. Le panneau de détails indique la résolution, la position, l’échelle et la profondeur de couleur telles que le navigateur les voit.

02

Lecture & enregistrement 7 écrans

Retrouvez le moment qui compte : les événements sur la chronologie, les cadres de l’IA sur la vidéo et des exports qui prouvent qu’ils sont intacts.

Relecture avec chronologie des événements
Point fort Client web

Relecture avec chronologie des événements

Choisissez une caméra et une date : la chronologie affiche les périodes enregistrées avec les marqueurs de mouvement et de détection. Le panneau des événements liste les voitures, personnes et autres objets détectés avec leurs vignettes, pour aller droit à l’essentiel.

Comment ça marche

Les enregistrements sont stockés sur le serveur sous forme de segments horodatés. Lorsque vous choisissez une caméra, un canal WebSocket unique transmet la liste des périodes enregistrées et le flux des événements de détection, si bien que la chronologie se remplit sans interrogation répétée. Les événements proviennent de la base de données d’analyse, dans laquelle le pipeline d’IA a consigné chaque détection de mouvement, de personne, de véhicule et de plaque avec une vignette. Les filtres réduisent la liste par type. Le serveur déchiffre les segments en mémoire si nécessaire et transmet la vidéo au navigateur. Un clic sur un événement déplace la tête de lecture à cet instant.

Détections affichées sur les enregistrements
Client web

Détections affichées sur les enregistrements

La vidéo enregistrée est lue avec l’objet détecté encadré, tandis que la liste latérale indique la classe et le niveau de confiance de chaque détection. Les enquêteurs retrouvent le véhicule ou la personne recherchés sans parcourir des heures d’images.

Comment ça marche

Pendant que le pipeline d’IA analysait le flux en direct, il a enregistré chaque détection — classe, niveau de confiance, cadre de délimitation et vignette — dans la base de données d’analyse. La lecture relit ces lignes pour l’instant affiché et dessine le cadre par-dessus la vidéo dans le navigateur : rien n’est incrusté dans l’enregistrement. La liste latérale s’appuie sur les mêmes lignes et affiche la classe, l’heure et le niveau de confiance. Un clic sur une entrée positionne l’enregistrement à cet instant précis. Le tracker compte aussi combien d’observations appartiennent à un même objet, ce qui permet de distinguer une voiture garée de nombreux véhicules de passage.

Identifier un objet à la tête de lecture
Client web

Identifier un objet à la tête de lecture

Mettez n’importe quelle image en pause et examinez l’objet sous la tête de lecture. L’assistant décrit ce qu’il voit, et un bouton recherche dans les enregistrements le même type et la même couleur.

Comment ça marche

Examiner prend l’image sous la tête de lecture et l’envoie au serveur, qui y applique le détecteur et découpe l’objet avec son masque. Le bouton Identifier transmet ce découpage à un modèle de langage visuel configuré dans les paramètres IA, exécuté localement ou chez un fournisseur de votre choix, et affiche sa description. La couleur est déduite du découpage lui-même. « Rechercher ce type et cette couleur » interroge ensuite la base de données d’analyse pour trouver les détections de même classe et de même couleur dans les enregistrements. La description est la meilleure estimation du modèle, qui le signale lorsque l’image est de mauvaise qualité.

Synthèse vidéo TimeFold
Client web

Synthèse vidéo TimeFold

TimeFold condense des heures d’enregistrement en un court extrait en superposant les objets en mouvement sur un même arrière-plan. Choisissez la plage horaire, les types d’objets et la densité, puis générez la synthèse.

Comment ça marche

Le serveur parcourt les segments enregistrés de la plage choisie, les déchiffre en mémoire et en échantillonne les images. Un filtre de soustraction d’arrière-plan ignore les images vides, de sorte que le détecteur et le suiveur d’objets ne s’exécutent que là où quelque chose bouge. Chaque objet suivi devient un « tube » d’images recadrées avec ses horodatages d’origine. Les tubes sont replanifiés pour être joués simultanément sur un même arrière-plan, et ffmpeg produit un MP4 où l’heure réelle de chaque objet est incrustée. La tâche s’exécute en arrière-plan avec suivi de progression et peut être annulée. Un clic sur un objet amène la ligne de temps à son moment d’origine.

Export chiffré et filigrané
Client web

Export chiffré et filigrané

Exportez une plage horaire vers le serveur ou vers votre propre ordinateur au format MP4, avec chiffrement AES facultatif et incrustation de l’horodatage, du nom de la caméra et d’un filigrane. Le destinataire a besoin du mot de passe : les preuves restent ainsi protégées.

Comment ça marche

Le serveur extrait la plage horaire demandée des segments enregistrés avec ffmpeg, en déchiffrant en mémoire les enregistrements chiffrés si vous le demandez. L’horodatage, le nom de la caméra et le filigrane sont incrustés dans l’image. Si vous activez le chiffrement, le MP4 est chiffré en AES-256 avec une clé dérivée de votre mot de passe par PBKDF2, et un fichier de signature est écrit à côté. Le mot de passe n’est jamais conservé : rien ne permet donc de le récupérer. Le résultat reste sur le serveur, est téléchargé sur votre ordinateur, ou les deux, selon la destination choisie.

Lecteur autonome pour les exports
Lecteur autonome

Lecteur autonome pour les exports

PotoP Player ouvre les exports chiffrés, vérifie leur signature et les déchiffre avec le mot de passe. Vous pouvez ensuite découper une sélection, prendre une photo ou exporter une copie MP4.

Comment ça marche

Le lecteur fonctionne sur n’importe quel ordinateur, sans serveur PotoP. Vous choisissez la vidéo chiffrée et son fichier de signature, puis saisissez le mot de passe. Il vérifie d’abord la signature par HMAC pour prouver que le fichier n’a pas été modifié, puis dérive la clé du mot de passe avec PBKDF2 et déchiffre en AES-256. La vidéo en clair n’existe qu’en mémoire pendant la lecture. Vous pouvez alors faire glisser les poignées vertes pour découper une sélection, enregistrer une image fixe ou exporter une copie MP4 standard. Une variante pour navigateur est fournie dans les dossiers d’export, avec des lanceurs pour Linux, Windows et macOS.

Règles d’enregistrement par caméra
Client web

Règles d’enregistrement par caméra

Définissez pour chaque caméra un enregistrement continu, planifié ou déclenché par événement, avec des options de chiffrement, de stockage et de durée de conservation. Les macros et les notifications peuvent réagir aux événements d’enregistrement.

Comment ça marche

Chaque caméra possède ses propres paramètres d’enregistrement stockés sur le serveur, et l’enregistreur les applique dès que vous enregistrez. Les déclencheurs peuvent être continus, suivre un planning hebdomadaire ou dépendre d’événements tels qu’un mouvement, une personne, une plaque, une entrée d’alarme ou une macro, avec des tampons pré- et post-événement pour conserver l’instant qui précède le déclenchement. Les segments sont découpés à une longueur définie et peuvent être chiffrés en AES-256 une fois fermés. La conservation supprime les anciens segments selon leur âge ou une taille maximale. Les événements de démarrage, d’arrêt et de détection peuvent déclencher des notifications via les événements système, l’e-mail, Telegram ou un webhook.

03

Détection IA 7 écrans

La détection tourne sur votre propre serveur et votre GPU ou accélérateur IA. Construisez la chaîne de traitement par caméra : quoi rechercher, où, et quand déclencher une alarme.

Pipeline d’IA configurable
Point fort Client web

Pipeline d’IA configurable

Chaque caméra dispose de son propre pipeline d’IA. Un détecteur principal peut alimenter des étapes en cascade pour les visages, les plaques et la posture, avec un modèle, un backend et un dispositif de calcul sélectionnables pour chaque étape.

Comment ça marche

L’IA s’exécute sur le serveur, pas dans le navigateur. Pour chaque caméra, le serveur lance un pipeline qui décode le flux et applique un détecteur principal à l’image entière. La cascade n’envoie ensuite que la zone détectée aux modèles secondaires : visages et posture pour une personne, plaques d’immatriculation pour un véhicule. Chaque étape a son propre modèle, son backend et son dispositif de calcul. Les backends disponibles incluent ONNX Runtime, OpenVINO, TensorRT et ROCm : NVIDIA, AMD, Intel et le CPU sont donc tous pris en charge. Les étapes peuvent s’exécuter sur un autre serveur du cluster. Les résultats sont écrits dans la base de données d’analyse.

Étapes en cascade et suivi
Client web

Étapes en cascade et suivi

Les seuils de détection, les filtres de classes et le suivi d’objets se règlent par caméra. Les étapes de lecture de plaques, d’estimation de posture et de segmentation ne s’exécutent que lorsque l’étape précédente trouve l’objet dont elles ont besoin.

Comment ça marche

Le détecteur principal tourne à une fréquence d’images configurée, avec ses propres seuils de confiance et de chevauchement, son nombre maximal de détections et son filtre de classes. Un tracker, ici ByteTrack, relie les détections d’une image à l’autre en identifiants d’objet stables, qui alimentent le comptage et le temps de présence. Les étapes secondaires sont conditionnées par la classe : la reconnaissance de plaques ne démarre que si une voiture, un camion, un bus ou une moto est détecté, et la posture ou la segmentation uniquement lorsque leur classe déclencheuse apparaît. La charge reste ainsi faible, car les modèles plus lourds ne voient qu’un petit recadrage et non l’image entière.

Détection de posture et de chute
Client web

Détection de posture et de chute

Les points clés du squelette sont dessinés sur l’image en direct, accompagnés d’un tableau des positions articulaires et de leur confiance. Un tableau en direct consigne les personnes et les chutes détectées par la caméra.

Comment ça marche

Un modèle de posture s’exécute sur le recadrage de la personne trouvée par le détecteur principal et renvoie les points clés du corps, chacun avec son niveau de confiance. Le serveur stocke le squelette et le navigateur le dessine sur l’image, avec le tableau des articulations à côté. La détection de chute analyse le mouvement et la disposition de ces points clés dans le temps, et un réglage de sensibilité ajuste ses seuils. Lorsqu’elle se déclenche, l’événement est enregistré et peut lever une alerte ou lancer une macro. Le tableau en direct ci-dessous interroge la base de données : vous voyez donc les mêmes lignes que celles qui parviennent au système d’alarme.

Segmentation d’instances
Client web

Segmentation d’instances

Les objets sont détourés avec des masques précis au pixel près, et le tableau en direct suit chaque objet avec son temps de présence. Les objets immobiles ou abandonnés sont surlignés en rouge.

Comment ça marche

Un modèle de segmentation s’applique aux objets trouvés par le détecteur principal et renvoie un masque au pixel près pour chacun. Le serveur les envoie au navigateur sous forme d’images de masque, et l’aperçu les peint sur l’image. Le suiveur conserve un identifiant d’objet, ce qui permet au tableau d’indiquer depuis combien de temps chaque objet est visible. Lorsqu’un objet reste immobile au-delà du seuil d’immobilité, la logique de cycle de vie le marque comme abandonné et la ligne passe au rouge. Les événements de cycle de vie, comme « apparu » ou « parti », sont journalisés pour une recherche ultérieure.

Zones et franchissement de ligne
Client web

Zones et franchissement de ligne

Dessinez des zones et des lignes directement sur l’image de la caméra pour définir des zones d’intérêt. Les événements de franchissement de ligne et de zone peuvent ensuite compter les personnes et les véhicules ou déclencher des alarmes.

Comment ça marche

Vous dessinez des polygones et des lignes directement sur une image en direct, et le serveur les enregistre dans les coordonnées normalisées de la caméra : ils restent donc justes quelle que soit la résolution. Le tracker suit les identifiants d’objet, et un franchissement est détecté lorsque la position d’un objet suivi passe d’un côté de la ligne à l’autre, ce qui donne le sens A vers B ou B vers A. Les zones génèrent des événements d’entrée et de présence. Chaque événement est inscrit dans la base de données d’analyse avec un horodatage et un identifiant de piste, où compteurs, rapports, alarmes et macros peuvent l’exploiter.

Masques de mouvement
Client web

Masques de mouvement

Peignez les zones à ignorer, comme des arbres ou une route fréquentée, pour que la détection de mouvement ne réagisse qu’à ce qui compte. L’analyse côté serveur ou la détection de mouvement propre à la caméra peut servir de source.

Comment ça marche

La détection de mouvement a deux sources. La détection propre à la caméra arrive sous forme d’événements de mouvement ONVIF, tandis que l’analyse serveur compare les images vidéo à un modèle d’arrière-plan sur le serveur, en utilisant le CPU ou le GPU. Le masque est une grille de blocs que vous peignez sur l’image ; les blocs marqués comme ignorés sont exclus de la comparaison, si bien que le feuillage ou la circulation ne déclenchent rien. Sensibilité, surface minimale, fréquence d’échantillonnage et réduction d’échelle sont réglables. Le masque est enregistré avec la caméra et appliqué par le serveur dès que vous enregistrez.

Masquage de confidentialité
Client web

Masquage de confidentialité

Dessinez des masques sur l’image de la caméra pour cacher des zones comme les fenêtres des voisins. Le masque peut s’appliquer à la vue en direct, aux instantanés et aux enregistrements.

Comment ça marche

Vous dessinez des blocs sur une image en direct, et le serveur les enregistre avec la caméra. Selon les options activées, le serveur floute ou recouvre ces zones dans le flux en direct, les instantanés et les enregistrements. Pour le direct et les enregistrements, il le fait sur le serveur, avant que la vidéo ne soit stockée ou diffusée ; pour les enregistrements, la zone masquée est définitivement perdue dans la vidéo stockée, ce dont la page vous avertit. La couleur et l’intensité du flou sont réglables. Les masques sont transmis au pipeline en cours dès l’enregistrement : la modification s’applique donc sans redémarrer la caméra.

04

Analytique 4 écrans

Recherchez tout ce que l’IA a vu, suivez une personne d’une caméra à l’autre et comptez ce qui passe.

Recherchez chaque détection
Point fort Client de bureau

Recherchez chaque détection

Recherchez les objets détectés par toutes les caméras, filtrés par caméra, classe, confiance et période. Les résultats comportent des attributs comme la couleur et les vêtements, et un double-clic ouvre la lecture à cet instant précis. Exportez la liste au format CSV pour la retravailler.

Comment ça marche

Chaque détection produite par le pipeline IA est inscrite dans la base de données d’analyse avec la caméra, la classe, la confiance, l’heure, un identifiant de piste et des attributs. L’écran de recherche exécute une requête filtrée sur cette base : il répond donc en une seule étape pour toutes les caméras. Les attributs comme la couleur, les vêtements et les cheveux sont déduits en classifiant le recadrage de l’objet au moment de la détection. Un double-clic sur une ligne ouvre la lecture sur cette caméra et à cette heure. Le bouton Exporter CSV écrit la liste de résultats actuelle dans un fichier, et l’encadré de statistiques compte les personnes, les véhicules et les pistes uniques.

Suivez une personne d’une caméra à l’autre
Client de bureau

Suivez une personne d’une caméra à l’autre

La recherche par apparence retrouve la même personne ou le même véhicule sur d’autres caméras grâce à des empreintes visuelles, sans avoir besoin d’un visage. Sélectionnez un résultat pour charger son itinéraire et son historique d’observations, puis suivez-le dans la lecture.

Comment ça marche

Chaque recadrage de personne ou de véhicule est converti en un vecteur d’apparence de 256 valeurs par un petit modèle de ré-identification fonctionnant sur OpenVINO, puis stocké dans la base de données d’analyse. La recherche transforme l’image de requête de la même manière et la compare aux vecteurs stockés par similarité cosinus, à l’aide d’un index en mémoire, si bien que le résultat est à la fois exact et rapide. Comme elle compare l’apparence globale et non un visage, elle fonctionne sur des personnes vues de dos ou en basse résolution. Sélectionner un résultat charge l’historique d’observations et l’itinéraire de cette piste, et Suivre dans la lecture ouvre les enregistrements.

Compteurs de personnes et de véhicules
Client de bureau

Compteurs de personnes et de véhicules

Les compteurs de franchissement de ligne enregistrent le nombre d’objets qui passent dans chaque sens. Le rapport d’historique regroupe les franchissements par heure avec des totaux, et s’exporte en CSV pour les études d’effectifs et d’occupation.

Comment ça marche

Lorsqu’un objet suivi franchit une ligne configurée, le serveur enregistre l’événement avec son sens, la caméra, la ligne et l’heure. Cet écran lit ces événements en direct dans la liste Récents. Le rapport d’historique les regroupe par heure ou par jour, avec des colonnes entrées, sorties et total, et peut ajouter le temps de présence et l’occupation lorsqu’ils sont configurés. Le dépassement d’une limite d’occupation déclenche une alerte. Le bouton CSV exporte le rapport vers un tableur, qui est la manière habituelle de mener les études d’effectifs et d’occupation.

Synthèse quotidienne pour les opérateurs
Client web

Synthèse quotidienne pour les opérateurs

Un compte rendu en langage clair résume la journée : personnes, véhicules et plaques détectés, correspondances avec les listes de surveillance et caméras actives. Un modèle de langage local rédige le texte, et un détecteur d’anomalies signale toute activité inhabituelle.

Comment ça marche

Le serveur compte les détections par caméra et par heure à partir des données d’analyse, y compris les plaques et les correspondances avec les listes de surveillance. Ces chiffres sont transmis à un modèle de langage — ici un petit modèle Llama servi localement par Ollama — qui rédige le compte rendu en langage clair. Si aucun modèle n’est disponible, un simple résumé statistique s’affiche à la place. Le détecteur d’anomalies n’utilise aucun modèle d’IA : il apprend un nombre typique pour chaque heure de la journée, séparément pour la semaine et le week-end, et signale toute heure qui dépasse nettement cette référence. Il reste silencieux tant que l’historique est insuffisant.

05

Visualisation 9 écrans

Dessinez votre site une fois et suivez-le en direct : caméras avec leurs cônes de vision, portes, éclairages et interphones avec leur état réel.

Caméras avec champ de vision
Point fort Client de bureau

Caméras avec champ de vision

Les icônes de caméra dessinent leur cône de vision directement sur le plan, pour que les opérateurs voient ce que couvre chaque caméra. Ce plan d’école maternelle réunit salles, espaces extérieurs, éclairages, portes et postes d’interphonie dans une vue d’ensemble du site.

Comment ça marche

Une icône de caméra possède une orientation, un angle d’ouverture, une portée et une couleur, et le plan les représente sous forme de cône translucide au sol. Le cône fait partie de l’icône enregistrée : les opérateurs voient donc la même couverture sur chaque client. Le plan combine des pièces, des espaces extérieurs dessinés avec des éléments de construction, des éclairages, des portes et des icônes d’interphone, chacun relié à son propre appareil. Un clic sur une icône de caméra peut ouvrir son aperçu en direct, et le plan devient ainsi aussi un moyen de naviguer dans la vidéo.

Plans de site en direct
Client de bureau

Plans de site en direct

Dessinez votre site sous forme de plan d’étage et placez-y caméras, portes, éclairages et interphones. Les caméras affichent leur champ de vision, et chaque icône reflète l’état réel de l’appareil auquel elle est liée. Un même plan s’affiche de façon identique sur le poste de travail, dans le navigateur et sur le téléphone.

Comment ça marche

Un plan d’étage est un canevas doté d’une image d’arrière-plan facultative, d’éléments de bâtiment dessinés et d’icônes, enregistré sur le serveur avec le reste de la configuration du système. Chaque icône est liée à un objet réel — caméra, éclairage, sortie de porte ou interphone — et le serveur transmet l’état de cet objet à tous les clients ouverts : la couleur de l’icône change donc dès que l’appareil change d’état. Les clients de bureau, navigateur et téléphone lisent tous la même définition de plan et la dessinent eux-mêmes, c’est pourquoi un plan a partout le même aspect. La modification nécessite les autorisations de visualisation.

Partir d’un modèle
Client de bureau

Partir d’un modèle

Les modèles intégrés génèrent en quelques secondes un plan complet avec murs, pièces, portes et les bonnes icônes. Le modèle d’agence bancaire, par exemple, dispose un sas DAB, un guichet, une chambre forte et une salle des coffres. Ajustez le nombre de pièces et le niveau d’équipement avant de le créer.

Comment ça marche

La page Nouveau plan regroupe un ensemble de générateurs intégrés. Vous choisissez un type de bâtiment, renseignez quelques paramètres, comme le nombre de salles de consultation et la quantité d’équipements à placer, et un aperçu est calculé sur-le-champ. Lors de la création, le générateur écrit murs, pièces, portes et icônes dans un plan ordinaire sur le serveur. Rien n’est verrouillé ensuite : le résultat est un plan normal, que vous modifiez comme un plan dessiné à la main. Un plan existant peut aussi être cloné, avec ou sans ses éléments de construction.

Des modèles pour chaque type de site
Client de bureau

Des modèles pour chaque type de site

Les modèles couvrent de nombreux types de bâtiments, des centres de données aux écoles, en passant par les hôpitaux et les entrepôts. Le plan de centre de données ajoute des rangées de serveurs, un NOC, un local onduleurs et une aire de groupes électrogènes, chacun avec des icônes prêtes à être liées aux appareils.

Comment ça marche

Les modèles sont des générateurs pilotés par code qui disposent pièces, murs et icônes à partir de quelques paramètres, ici le nombre de rangées de serveurs et le niveau d’équipement. Les icônes sont créées sans liaison, avec le bon type et le bon libellé pour chaque pièce : l’installateur n’a plus qu’à relier chacune d’elles à une caméra, un capteur ou une sortie réels. Comme le résultat est enregistré comme un plan ordinaire, il peut être renommé, déplacé, complété ou dupliqué comme n’importe quel autre. Les différents types de bâtiments utilisent simplement des générateurs différents derrière le même formulaire.

Orienter le cône de vision
Client de bureau

Orienter le cône de vision

Réglez la direction, l’angle, la portée et la couleur du cône de vision d’une caméra en le faisant glisser dans un aperçu en direct. Des préréglages pour objectifs étroits, normaux, grand-angle et fisheye accélèrent le placement de nombreuses caméras. Choisissez le flux qui s’ouvre et l’action déclenchée par un clic.

Comment ça marche

L’éditeur d’icônes comporte un onglet Caméra avec un aperçu en forme de boussole. Faites glisser une poignée pour orienter, les poignées latérales pour la largeur et une poignée carrée pour la portée, ou saisissez les valeurs et utilisez les préréglages d’objectif. L’aperçu montre exactement ce que le plan affichera après OK ; l’anneau et les lignes de repère n’existent que dans l’éditeur. Le même onglet définit la caméra et le flux (principal ou secondaire) utilisés par l’icône, ainsi que l’action d’un clic, par exemple l’ouverture d’un aperçu. Toutes les valeurs sont enregistrées avec l’icône.

Icônes d’éclairage et couleurs d’état
Client de bureau

Icônes d’éclairage et couleurs d’état

Associez une icône d’éclairage à un appareil Philips Hue ou à un autre appareil pris en charge, puis choisissez l’apparence de chaque état sur le plan : éteint, allumé, tamisé, en défaut et hors ligne, ainsi que des pastilles d’état d’entrée et de sortie. Les entrées de capteurs ou d’interphones peuvent commuter l’éclairage automatiquement grâce aux macros.

Comment ça marche

La boîte de dialogue présentée est l’éditeur d’icône d’éclairage : chaque état (éteint, allumé, tamisé, en défaut, hors ligne) y reçoit sa propre couleur, avec des pastilles d’état d’entrée et de sortie en option. Une icône d’éclairage est liée via un plugin d’appareil, comme l’intégration Philips Hue ou les E/S génériques, et le serveur maintient son état synchronisé avec le luminaire réel. La commutation automatique à partir des entrées d’interphone ou de capteur est assurée par le moteur de macros côté serveur, et non par le plan lui-même. Les problèmes signalés par le plugin, comme une absence de connexion, ont leur propre couleur sur l’icône.

Icônes d’interphone avec états en direct
Client de bureau

Icônes d’interphone avec états en direct

Les postes d’interphone affichent directement sur le plan les états repos, sonnerie, en communication, en attente, urgence et défaut de ligne. Les opérateurs peuvent lancer un appel ou ouvrir une porte d’un seul clic, à l’endroit même où se trouve le poste.

Comment ça marche

Une icône d’interphone est liée à un plugin d’interphone — dans la boîte de dialogue, l’intégration Commend ICX — et le serveur écoute les événements d’appel de ce poste. Chaque événement correspond à un état de l’icône, comme repos, appel sortant, sonnerie, en communication, en attente, urgence ou défaut de ligne, et chaque état possède sa propre couleur, prévisualisée dans l’éditeur. L’état est transmis à tous les clients connectés, de sorte que le plan reflète le poste réel en quelques instants. Les actions sur l’icône, comme appeler ou ouvrir une porte, sont renvoyées à l’appareil par ce même plugin.

Icônes protégées par code PIN
Client de bureau

Icônes protégées par code PIN

Les icônes sensibles peuvent exiger un code PIN avant d’agir, afin qu’une porte ou une sortie ne puisse pas être actionnée par accident. Les verrous PIN permanents et temporaires se définissent icône par icône dans l’éditeur.

Comment ça marche

Chaque action d’icône peut être verrouillée par un code PIN. Lorsqu’un opérateur clique sur une telle icône, le client demande le code PIN avant d’envoyer la commande au serveur, de sorte qu’un clic malencontreux ne peut ni commuter une sortie ni ouvrir une porte. Les codes PIN peuvent être permanents ou temporaires et se définissent icône par icône dans l’éditeur. Ce verrou constitue une protection supplémentaire, en plus des contrôles d’autorisation habituels que le serveur continue d’appliquer à l’utilisateur connecté.

Boîte à outils d’éléments de construction
Client de bureau

Boîte à outils d’éléments de construction

Dessinez vos propres plans avec quinze types d’éléments de construction, comme des murs, des portes, des fenêtres, des escaliers, des routes et des plantes. Les éléments côtoient les icônes d’appareils : un plan peut ainsi être créé sans aucun logiciel de dessin.

Comment ça marche

Le panneau Éléments de construction répertorie les objets que l’on peut dessiner — murs, portes, fenêtres, escaliers, ascenseurs, routes, plantes, clôtures, piscines, panneaux — et vous pouvez ajouter les vôtres. Les éléments sont des formes vectorielles enregistrées dans le même plan que les icônes d’appareils, avec leur position, leur taille et leur ordre de calque : ils restent nets à tous les niveaux de zoom. Un plan peut donc être dessiné entièrement dans le produit, ou par-dessus un arrière-plan PNG, JPG, BMP ou GIF importé, comme un plan d’architecte.

06

Joysticks & pupitres de commande 2 écrans

Joysticks USB et pupitres de commande pilotent les caméras PTZ et les dispositions, avec une affectation bouton par bouton.

Affectation des boutons du joystick
Point fort Client de bureau

Affectation des boutons du joystick

Chaque bouton d’un joystick réseau peut recevoir une action à partir d’un schéma visuel de la manette. Les opérateurs pilotent les caméras PTZ et déclenchent des macros sans toucher la souris, et chaque affectation est enregistrée sur le serveur.

Comment ça marche

Un joystick, qu’il soit USB sur le PC de l’opérateur ou réseau ailleurs, transmet ses axes et ses boutons sous forme de petites trames. Les appareils réseau les envoient au serveur via UDP ou HTTP, et le serveur les relaie par WebSocket à chaque client ayant sélectionné ce joystick. Le client interprète les axes comme panoramique, inclinaison et zoom, et recherche chaque bouton dans une table d’affectation. La boîte de dialogue du schéma modifie cette table : choisissez un bouton, sélectionnez une action telle qu’un raccourci, une macro ou un préréglage, puis cliquez sur Affecter. La table est enregistrée sur le serveur sous l’identité du joystick, de sorte que chaque client qui l’utilise obtient les mêmes affectations.

Clients et joysticks connectés
Client web

Clients et joysticks connectés

La page Clients répertorie chaque client de bureau et navigateur avec son état, et permet à un administrateur d’affecter un joystick à chacun. Les joysticks réseau et les contrôleurs joystick IP se gèrent au même endroit.

Comment ça marche

Chaque client de bureau et navigateur s’enregistre auprès du serveur sous un identifiant unique et continue de se signaler, si bien que la page peut afficher ce qui est en ligne, son utilisateur, son GPU, son nombre d’écrans et l’heure de dernière activité. Un administrateur peut préenregistrer un client par son identifiant ou en supprimer un. Affecter un joystick lie un enregistrement d’appareil à ce client. Les joysticks réseau envoient de petites trames UDP ou HTTP et restent désactivés lors de leur première détection, afin que personne sur le réseau local ne puisse piloter les caméras tant qu’un administrateur ne les a pas activés. Les contrôleurs joystick IP se connectent en VISCA over IP : le serveur écoute sur un port, se comporte comme une caméra et transmet les commandes à l’interface PTZ de la caméra réelle.

07

Appareils 3 écrans

Chaque caméra, encodeur et appareil dans une seule liste, regroupés pour le contrôle des accès.

Toutes les caméras dans une seule liste
Point fort Client de bureau

Toutes les caméras dans une seule liste

Toutes les caméras d’un serveur apparaissent dans un seul tableau avec leur adresse IP, leur pilote et leur état en direct. La sélection d’une ligne affiche un aperçu en direct, le fabricant, le modèle, le firmware, la résolution, la fréquence d’images et la bande passante, à côté des derniers événements de l’appareil. Copier, déplacer, exporter et importer : les grandes installations restent faciles à gérer.

Comment ça marche

L’onglet Appareils lit la table des caméras du serveur sélectionné et affiche pour chaque ligne le pilote, l’adresse et l’état en direct. L’ajout d’une caméra passe par la découverte ONVIF ou par un pilote constructeur, et les flux sont récupérés en RTSP. La sélection d’une ligne ouvre un aperçu en direct sur le client, tandis que le fabricant, le modèle, le firmware, le numéro de série, la résolution, la fréquence d’images et la bande passante proviennent de la caméra et du flux en cours. La liste d’événements en dessous est alimentée par les propres événements ONVIF de la caméra. Copie, déplacement, export et import s’exécutent comme des opérations groupées sur le serveur.

Groupes d’appareils pour le contrôle d’accès
Client de bureau

Groupes d’appareils pour le contrôle d’accès

Les caméras sont réunies en groupes d’appareils nommés, chacun indiquant son nombre de caméras et les groupes d’utilisateurs autorisés à le voir. Les statistiques et les groupes d’utilisateurs liés figurent à côté de la liste des membres. L’accès suit le groupe : les nouvelles caméras héritent automatiquement de la bonne visibilité.

Comment ça marche

Un groupe d’appareils est un ensemble nommé de caméras sur un serveur. Les groupes d’utilisateurs sont liés aux groupes d’appareils et, lorsqu’un utilisateur demande des caméras, le serveur ne renvoie que celles qui appartiennent à un groupe d’appareils lié à l’un de ses groupes. Les statistiques indiquent le nombre de caméras ainsi que le nombre de groupes d’utilisateurs et d’utilisateurs ayant accès. Comme la règle est évaluée par le serveur et non par le client, une caméra ajoutée à un groupe est immédiatement visible par les bonnes personnes, et l’administrateur intégré voit toujours tout.

Lier des groupes d’utilisateurs aux caméras
Client de bureau

Lier des groupes d’utilisateurs aux caméras

Un groupe d’appareils est lié à un ou plusieurs groupes d’utilisateurs à partir d’une liste avec recherche qui indique ce que chaque groupe peut faire. Les membres de ces groupes voient les caméras du groupe d’appareils, et rien d’autre. Les règles d’accès restent ainsi lisibles.

Comment ça marche

Le sélecteur répertorie tous les groupes d’utilisateurs avec une courte description de leurs droits, et un champ de recherche affine la liste. L’ajout d’un groupe enregistre sur le serveur un lien entre ce groupe d’utilisateurs et le groupe d’appareils. Dès lors, chaque membre de ce groupe obtient les caméras du groupe en vue en direct, en lecture et dans les mosaïques, et aucune autre par ce lien. Lier ou délier se fait en une seule étape et prend effet pour les utilisateurs connectés sans redémarrage.

08

Rapports & événements 5 écrans

Tout ce qui se passe est journalisé, exportable en rapport PDF à vos couleurs, et peut lancer une macro ou envoyer une alerte.

Chaque action est enregistrée
Point fort Client de bureau

Chaque action est enregistrée

La piste d’audit consigne qui a fait quoi, quand et avec quel résultat, avec catégories, niveau de gravité et détail complet de chaque entrée. La recherche, les filtres et l’export facilitent les contrôles de conformité et le suivi des incidents.

Comment ça marche

Chaque action d’un client et chaque modification côté serveur sont écrites sous la forme d’une ligne dans un journal d’audit en ajout seul, conservé dans une base de données de rapports dédiée, distincte de la configuration principale : une journalisation intensive ne peut donc pas ralentir le système vidéo. Une ligne contient l’heure, l’utilisateur, la catégorie, la gravité, l’action, la cible, le résultat, l’adresse IP et le client à l’origine de l’appel. L’onglet Rapports l’interroge avec pagination, recherche, filtres, rapports enregistrés et export, et le volet de détail affiche l’entrée complète. Rien dans l’interface ne permet de modifier ou de supprimer une entrée.

Réglages de la piste d’audit
Client de bureau

Réglages de la piste d’audit

Choisissez ce qui est enregistré, fixez la durée de conservation en jours et archivez une copie au format CSV ou PDF. Un rapport planifié peut être envoyé automatiquement par e-mail aux destinataires choisis.

Comment ça marche

Les administrateurs choisissent si les actions des clients et les modifications côté serveur sont enregistrées, la gravité minimale, les catégories à conserver et le nombre de jours de conservation. Une purge en arrière-plan supprime régulièrement les lignes plus anciennes, et « Appliquer la conservation maintenant » la lance à la demande. Les événements d’authentification et de sécurité sont toujours conservés à leur propre niveau de gravité. La piste peut être téléchargée en CSV ou en PDF, et une tâche planifiée peut envoyer le rapport par e-mail chaque semaine ou selon la fréquence choisie, via le serveur de messagerie configuré dans les paramètres d’événements.

Rapports PDF à vos couleurs
Rapport PDF

Rapports PDF à vos couleurs

Les rapports s’exportent en PDF imprimables, avec l’identité visuelle du produit, les filtres appliqués et les détails de génération. Partagez-les avec les auditeurs ou la direction sans mise en forme supplémentaire.

Comment ça marche

Le PDF est généré sur le serveur à partir des mêmes lignes d’audit que celles affichées dans l’onglet Rapports, à l’aide d’une bibliothèque PDF Python standard, et non d’une capture d’écran. Il contient l’en-tête et le logo du produit, l’auteur et la date du rapport, les filtres actifs, un tableau paginé dont l’en-tête se répète sur chaque page, et un pied de page. Les très gros volumes de résultats sont plafonnés, et le rapport l’indique explicitement, par exemple « 5000 sur le total ». Le rapport planifié envoyé par e-mail joint ce même fichier.

Des événements qui déclenchent des macros
Client de bureau

Des événements qui déclenchent des macros

Des événements système comme l’expiration d’un certificat, l’occupation du disque ou la batterie faible d’un appareil peuvent lancer un flux de macro. Ici, quatre événements alimentent un nœud d’envoi de message Telegram, le tout construit visuellement, sans code.

Comment ça marche

L’éditeur de macros est un graphe de nœuds visuel qui s’exécute sur le serveur. Un nœud Événement système se déclenche lorsque le moniteur de santé émet un événement correspondant — un certificat sur le point d’expirer, une forte occupation du disque ou du GPU, la batterie faible d’un appareil — et transmet le texte et la valeur de l’événement sur ses ports de sortie. Relié à un nœud Envoi Telegram, il publie un message via l’API des bots Telegram. Le graphe se vérifie avec Valider, peut être simulé et, lorsqu’il est actif, l’éditeur affiche les valeurs qui transitent par chaque nœud.

Alertes Telegram depuis une macro
Client de bureau

Alertes Telegram depuis une macro

Un nœud Telegram Send publie un message dans une conversation ou un canal lorsqu’un événement lui parvient. Le jeton du bot, l’identifiant de la conversation et le modèle de message avec ses variables se règlent dans le nœud ; un bouton Test vérifie la remise, et un intervalle minimal entre deux envois évite les alertes répétées.

Comment ça marche

L’écran montre le nœud Telegram Send de l’éditeur de macros : jeton du bot, identifiant de conversation, modèle de message avec variables pour l’heure et la valeur, bouton Test et intervalle minimal entre deux envois afin que des événements répétés n’inondent pas la conversation. Le serveur publie via l’API des bots Telegram lorsque le nœud reçoit un front montant. Les alertes par e-mail utilisent le serveur SMTP configuré dans les paramètres d’événements. Les événements eux-mêmes proviennent du moniteur de santé du serveur et des flux d’événements des caméras.

09

Utilisateurs & autorisations 8 écrans

Groupes, rôles et une matrice d’autorisations décident qui voit quelle caméra et qui peut modifier quoi.

Utilisateurs, groupes et autorisations
Point fort Client de bureau

Utilisateurs, groupes et autorisations

La gestion des utilisateurs liste les comptes, leur état de connexion et les groupes auxquels ils appartiennent. Pour le groupe sélectionné, elle affiche ses dispositions, ses serveurs, ses membres, les groupes d’appareils attribués et les autorisations qu’il accorde. Un seul écran pour savoir précisément qui peut faire quoi.

Comment ça marche

La gestion des utilisateurs s’appuie sur des comptes, des groupes et des liens. La sélection d’un groupe affiche ses dispositions, ses serveurs, ses membres, ses groupes d’appareils et les autorisations qu’il active, le tout lu depuis le serveur. Les utilisateurs obtiennent leurs droits par les groupes auxquels ils appartiennent, et le serveur vérifie les autorisations à chaque requête — il ne se contente pas de masquer des boutons dans le client. Les pastilles de connexion reflètent les sessions actives. Une trentaine de groupes sont fournis prêts à l’emploi et couvrent les rôles courants d’opérateur et d’éditeur.

Matrice d’autorisations détaillée
Client de bureau

Matrice d’autorisations détaillée

Les autorisations sont réparties par module et par action — utiliser, modifier ou supprimer, par exemple — et peuvent être filtrées par nom ou appliquées à partir d’un préréglage. Vue en direct, PTZ, enregistrement, VoIP, visualisation et analyse IA sont accordés séparément. Les opérateurs reçoivent exactement les droits dont leur fonction a besoin.

Comment ça marche

Le serveur définit environ 144 autorisations, chacune associée à un module et à un niveau d’action, comme utiliser ou modifier. La boîte de dialogue du groupe les présente par sections, avec un champ de filtre, des raccourcis tout/utiliser/modifier et des préréglages qui cochent un ensemble type. Le serveur vérifie l’autorisation concernée à chaque appel d’API et sur chaque canal en direct : un utilisateur sans droits PTZ ou d’enregistrement est refusé, même s’il appelle l’API directement. Les tentatives refusées sont inscrites dans la piste d’audit avec le nom de l’autorisation.

Groupes basés sur les rôles
Client de bureau

Groupes basés sur les rôles

Les utilisateurs sont affectés à des groupes prédéfinis comme Opérateurs, Observateurs et éditeurs spécialisés pour les mosaïques, macros, plans ou PTZ. L’appartenance à un groupe détermine les autorisations de base, les mosaïques et l’accès aux appareils. Les rôles restent cohérents pour de nombreux utilisateurs.

Comment ça marche

Au lieu d’accorder des droits utilisateur par utilisateur, l’administrateur répartit les utilisateurs dans des groupes prédéfinis comme Opérateurs, Observateurs et des paires éditeur/utilisateur pour les mosaïques, macros, plans, PTZ, appareils et plus encore. Les droits effectifs d’un utilisateur correspondent à l’union des droits de tous ses groupes, plus leurs mosaïques et les caméras des groupes d’appareils liés à ces groupes. Modifier un groupe modifie tous ses membres à la fois, ce qui garantit des rôles cohérents sur de nombreux comptes.

Limites par groupe
Client de bureau

Limites par groupe

Chaque groupe peut être plafonné en flux simultanés, durée et volume d’export, nombre de mosaïques, macros et signets, et débit d’API. Ces limites protègent la capacité du serveur et rendent les installations partagées prévisibles.

Comment ça marche

L’onglet Ressources d’un groupe fixe des plafonds numériques, zéro signifiant illimité : caméras et flux simultanés qu’un membre peut ouvrir, durée, taille et nombre d’exports par jour, nombre de mosaïques, macros et signets qu’il peut créer, requêtes API par heure et jetons. Le serveur les applique au moment de la requête, par exemple en refusant un flux au-delà du plafond. Les réglages individuels d’un utilisateur peuvent remplacer la valeur du groupe, de sorte qu’une installation partagée reste prévisible sous charge.

Politique de mots de passe et de connexion
Client de bureau

Politique de mots de passe et de connexion

Les paramètres de sécurité définissent les sessions simultanées, le délai d’expiration de session, l’obligation de double authentification, la longueur et l’expiration des mots de passe, le verrouillage après échecs et la conservation du journal d’audit. La politique se définit une fois par groupe et s’applique à tous ses membres.

Comment ça marche

L’onglet Sécurité d’un groupe définit les sessions simultanées, le délai d’expiration de session, l’authentification à deux facteurs obligatoire, la longueur minimale, la complexité et l’expiration des mots de passe, l’interdiction de réutilisation, le verrouillage après échecs et sa durée, ainsi que le niveau d’audit et la conservation des journaux. Le serveur applique la politique à la connexion et lors des changements de mot de passe ; les mots de passe sont stockés sous forme de hachages bcrypt salés, jamais en clair. La durée de connexion est égalisée, de sorte qu’on ne peut pas distinguer un nom d’utilisateur inconnu d’un mauvais mot de passe.

Autorisations directes d’un utilisateur
Client de bureau

Autorisations directes d’un utilisateur

Au-delà des droits de groupe, un utilisateur peut recevoir des autorisations directes supplémentaires. Autorisations héritées du groupe et autorisations directes sont distinguées par des couleurs : l’administrateur voit d’un coup d’œil d’où provient chaque droit.

Comment ça marche

L’onglet Autorisations de l’utilisateur affiche la même matrice que celle d’un groupe, en deux couleurs : les cases bleues sont des autorisations directes modifiables ici, les violettes proviennent des groupes de l’utilisateur et sont en lecture seule dans cette vue. Le serveur combine les deux ensembles lorsqu’il contrôle une requête. Les autorisations directes sont utiles pour des exceptions ponctuelles ; le compteur indique combien sont actives sur le total et combien proviennent des groupes. « Tout effacer (direct) » supprime les exceptions sans toucher aux droits de groupe.

Double authentification, sessions et jetons d’API
Client de bureau

Double authentification, sessions et jetons d’API

Pour chaque utilisateur, les administrateurs gèrent la double authentification et les codes de secours, déverrouillent les comptes, et consultent ou ferment les sessions actives. Les jetons d’API peuvent être créés et révoqués ici, ce qui permet des intégrations sans partager de mots de passe.

Comment ça marche

L’onglet Sécurité gère le second facteur d’un utilisateur, un mot de passe à usage unique basé sur le temps (TOTP) compatible avec les applications d’authentification courantes, ainsi que des codes de secours à usage unique. Il affiche aussi l’état du compte — verrouillage, tentatives échouées, dernière connexion — et permet à un administrateur de déverrouiller ou de réinitialiser. Les sessions actives sont listées avec l’adresse IP et le navigateur, et peuvent être fermées une à une ou toutes ensemble. Les jetons d’API sont des identifiants distincts, avec un nom et une date d’expiration : scripts et intégrations n’ont pas besoin du mot de passe de l’utilisateur, et ils peuvent être révoqués à tout moment.

Piste d’audit des utilisateurs
Client de bureau

Piste d’audit des utilisateurs

L’onglet Activité répertorie les sessions actives avec le client et l’adresse IP, suivies des événements de sécurité récents tels que les autorisations refusées. Chaque action est attribuable, ce qui facilite les audits et l’analyse des incidents.

Comment ça marche

L’onglet Activité lit deux informations sur le serveur pour un utilisateur : les sessions actives, avec adresse IP, identifiant du client et dernière activité, et les derniers événements de sécurité de la piste d’audit. Les actions refusées, comme une autorisation rejetée ou une caméra que l’utilisateur n’a pas le droit de voir, sont journalisées au moment où le serveur rejette la requête, avec le nom de l’autorisation ou de la ressource. Les sessions indiquent le type de client, par exemple un navigateur ou un script utilisant l’API, ce qui aide à distinguer l’usage normal d’un accès inattendu.

10

Certificats & sécurité 7 écrans

PotoP gère sa propre autorité de certification : caméras, serveurs, navigateurs et téléphones communiquent en HTTPS vérifié.

L’état TLS en un coup d’œil
Point fort Client web

L’état TLS en un coup d’œil

Le panneau d’administration web affiche le transport, la validité du certificat serveur, la clé du serveur et le certificat du client web chargé, avec son empreinte. Les opérateurs vérifient en quelques secondes que le système est chiffré et savent quand un certificat expire.

Comment ça marche

Le panneau d’administration web interroge le serveur sur son état TLS actuel et affiche quatre cartes : le transport utilisé (HTTPS avec TLS 1.2 ou 1.3), le certificat serveur et sa date d’expiration, le type et la taille de la clé du serveur, ainsi que le certificat chargé pour les navigateurs avec son empreinte SHA-256. Ces mêmes données d’expiration alimentent un service de surveillance en arrière-plan qui génère des événements pour le serveur, l’autorité de certification, les serveurs pairs et les caméras avant toute expiration ; les alertes peuvent ainsi être transmises à des macros, par e-mail ou sur Telegram.

Votre propre autorité de certification
Client web

Votre propre autorité de certification

Le système peut créer ou importer une autorité de certification, télécharger son certificat, la sauvegarder et révoquer des certificats via une CRL. La clé privée de l’AC reste sur le serveur. Appareils et clients font alors confiance à une seule racine, que vous maîtrisez.

Comment ça marche

Le serveur peut générer une autorité de certification ou en importer une existante. Le certificat de l’AC et sa clé privée sont stockés sur le serveur ; le fichier de clé n’est lisible que par le compte de service et peut être protégé par un mot de passe, et seuls les certificats signés quittent la machine. L’onglet permet aussi de télécharger le certificat de l’AC, de le sauvegarder et de le restaurer, de l’installer dans le magasin de confiance du système, de révoquer des certificats par numéro de série et de générer une liste de révocation (CRL). Un certificat de serveur RADIUS pour le 802.1X peut être émis par cette même AC.

Émettre des certificats d’appareil
Client web

Émettre des certificats d’appareil

Un certificat d’appareil est généré et signé par l’AC enregistrée pour un nom et une adresse IP, avec une durée de validité et le choix du format de sortie. Il peut aussi être installé comme certificat du serveur, ce qui supprime les avertissements du navigateur.

Comment ça marche

Une nouvelle paire de clés est générée et un certificat est signé par l’AC enregistrée pour le nom et les entrées DNS et IP indiqués, avec la validité et le type de clé choisis. Le résultat est proposé au format PEM (certificat, clé et AC) ou sous forme de paquet PKCS#12. En cochant l’option serveur, le certificat est installé comme certificat propre du serveur, l’AC est approuvée pour le client de bureau, l’ancien certificat auto-signé est retiré et le service redémarre : les navigateurs cessent d’afficher des avertissements dès qu’ils font confiance à l’AC.

HTTPS en masse pour les caméras
Client web

HTTPS en masse pour les caméras

Les caméras sont saisies ou importées depuis un fichier CSV, puis les certificats sont déployés et HTTPS est activé sur toutes en une seule opération. Les API des fabricants sont utilisées : personne n’a besoin de se connecter à chaque caméra séparément.

Comment ça marche

Vous saisissez les caméras à la main ou importez un CSV avec adresse, fabricant, identifiants et ports. Pour chaque ligne, le serveur émet un certificat d’appareil depuis l’autorité de certification (CA), transmet le certificat et la CA à la caméra via l’API web propre au fabricant, puis active HTTPS. Des actions permettent aussi de désactiver HTTPS et de le tester. Le serveur doit pouvoir joindre les caméras sur le réseau, et les identifiants ne servent que le temps de l’opération. Résultat : un seul passage au lieu de se connecter à chaque caméra.

Déployer des certificats sur les caméras
Client web

Déployer des certificats sur les caméras

Un certificat signé peut être déployé sur une seule caméra, avec des options pour transmettre la CA, activer HTTPS, désactiver le HTTP non chiffré et tester la connexion. En dessous, une seconde section déploie des certificats sur un autre hôte PotoP via SSH.

Comment ça marche

Pour une caméra, le serveur signe un certificat d’appareil, le téléverse via l’API du fabricant et peut transmettre la CA, activer HTTPS, désactiver le HTTP non chiffré et tester la connexion sécurisée. La seconde section se connecte à un autre hôte PotoP via SSH, copie le certificat, la clé et le fichier CA dans le répertoire de destination et peut redémarrer un service. Les deux opérations s’exécutent sur le serveur : celui-ci doit pouvoir joindre la cible, et elles nécessitent des droits d’administrateur.

Confiance sur les navigateurs et les téléphones
Client web

Confiance sur les navigateurs et les téléphones

Le certificat actif du client web s’affiche avec son sujet, sa validité, la taille de sa clé et son empreinte. Un téléchargement et un QR code permettent aux téléphones et tablettes de faire confiance au serveur, tandis qu’un script d’installation fait de même pour Linux, macOS et Windows.

Comment ça marche

Le panneau affiche le certificat actuellement chargé pour le client web, avec son sujet, son émetteur, sa validité, le type et la taille de sa clé, l’algorithme de signature et l’empreinte SHA-256, et peut l’exporter au format PEM. La section mobile met le certificat de l’AC à disposition en téléchargement, ou sous forme de QR code qu’un téléphone ou une tablette peut scanner : l’appareil fait ainsi confiance au serveur une fois pour toutes et cesse d’afficher des avertissements. Des instructions et des scripts d’installation sont fournis pour Linux, macOS et Windows.

Connexion vérifiée à l’ouverture de session
Client web

Connexion vérifiée à l’ouverture de session

L’écran de connexion confirme par un message vert que la connexion est sûre et que le certificat est vérifié avant l’envoi des identifiants. Les utilisateurs peuvent faire confiance au serveur auquel ils se connectent.

Comment ça marche

Avant l’envoi du mot de passe, la page de connexion contacte le serveur choisi en HTTPS et vérifie le certificat auprès du magasin de confiance du navigateur. Si la chaîne est valide et correspond, le message vert « Connexion sécurisée » apparaît ; sinon, l’utilisateur voit un avertissement. Cette vérification est effectuée par la pile TLS du navigateur lui-même : la page ne peut donc pas la falsifier. Les identifiants sont ensuite envoyés au serveur vérifié par la connexion chiffrée.

11

Stockage & RAID 5 écrans

Créez et entretenez des grappes RAID depuis le client et sachez toujours dans quel état se trouve votre stockage.

L’état du stockage dans l’état du système
Point fort Client de bureau

L’état du stockage dans l’état du système

La surveillance RAID côtoie la bande passante en direct, les caméras actives et le débit d’enregistrement. Un calculateur de durée d’enregistrement intégré convertit la capacité des disques en heures et en jours de vidéo, pour dimensionner la conservation avec des chiffres réels.

Comment ça marche

L’état du système interroge le serveur sélectionné pour obtenir des chiffres en direct : bande passante entrante et sortante, caméras actives, volume d’enregistrement, lectures et écritures disque, ainsi que CPU, mémoire et stockage par caméra. L’état RAID provient des contrôleurs de grappe de ce serveur ; cette capture montre une grappe simulée. Le calculateur de durée d’enregistrement divise l’espace d’enregistrement libre — ou une taille hypothétique réglée avec le curseur — par le débit mesuré des caméras. Il donne la durée de conservation en heures et en jours à partir des données réelles des flux, et non d’une estimation saisie à la main.

Des configurations RAID que vous pouvez voir
Administration web du serveur

Des configurations RAID que vous pouvez voir

Le panneau RAID des paramètres d’administration dessine chaque disque et chaque bande, avec les blocs de données et les deux positions de parité distingués par des couleurs. Cet exemple de RAID 6 simulé montre d’un coup d’œil la tolérance à la panne de deux disques et la capacité utile : les installateurs peuvent planifier le stockage avant de toucher à une grappe réelle.

Comment ça marche

Le panneau RAID des paramètres d’administration du serveur est un moteur de dessin qui représente les disques, les bandes et la parité pour le niveau choisi. En mode simulation, vous choisissez un niveau et un nombre de disques, et il affiche une grappe synthétique, sans rien toucher de réel. Sur un serveur en production, la même vue est alimentée par le contrôleur effectif : RAID logiciel via mdadm, ou contrôleurs matériels via les outils en ligne de commande de leur fabricant. La tolérance aux pannes et la capacité utile sont calculées à partir du niveau et du nombre de disques, et le schéma montre comment la parité tourne entre les membres, pour que les installateurs puissent planifier avant de construire une grappe.

RAID 60 imbriqué sur plusieurs groupes
Client de bureau

RAID 60 imbriqué sur plusieurs groupes

Le RAID 60 répartit les données sur plusieurs groupes RAID 6, et le schéma montre comment chaque groupe tolère ses propres pannes de disques. Le calculateur en dessous convertit la capacité obtenue en durée d’enregistrement.

Comment ça marche

Le même moniteur RAID sait représenter les niveaux imbriqués. Ici, un RAID 60 simulé de seize disques apparaît sous forme de quatre groupes RAID 6, avec la répartition entre les groupes au-dessus. Le panneau calcule la tolérance aux pannes par groupe — chaque groupe survit à la perte de deux disques — et la capacité utile, soit huit disques sur seize. Le curseur de simulation en dessous transmet cette capacité au calculateur de durée d’enregistrement, qui la divise par le débit mesuré des caméras. La planification se fait sur les données du serveur, sans modifier aucun disque.

Créer des grappes depuis le client
Client de bureau

Créer des grappes depuis le client

Construisez une grappe RAID logicielle en choisissant le périphérique, le niveau, la taille de bloc et les membres parmi les disques détectés. Chaque étape est d’abord planifiée et présentée sous forme d’aperçu de commande : rien ne change tant que vous n’avez pas confirmé.

Comment ça marche

La boîte de dialogue Gestion RAID s’exécute dans le client de bureau mais agit sur le serveur auquel vous êtes connecté. L’administrateur saisit de nouveau son mot de passe pour obtenir un jeton d’administration de courte durée. Créer une grappe produit un plan : le serveur liste les disques détectés, prépare la commande exacte sous forme de liste d’arguments — jamais de chaîne shell — et l’affiche en aperçu. Rien ne s’exécute au stade du plan. « Appliquer » exécute uniquement ce plan enregistré, via une liste fixe d’outils RAID autorisés, et les actions dangereuses vous demandent d’abord de saisir l’identité de la cible. Le RAID logiciel utilise mdadm.

Agrandir, remodeler et entretenir
Client de bureau

Agrandir, remodeler et entretenir

Ajoutez des disques, étendez une grappe, changez la taille de bloc ou convertissez le niveau, et lancez des vérifications et réparations (scrub). Les limites de vitesse de resynchronisation vous permettent d’équilibrer la maintenance et la charge d’enregistrement.

Comment ça marche

Les actions d’agrandissement et de maintenance suivent le même processus « planifier puis appliquer » que la création de grappes. Le client envoie la demande ; le serveur valide chaque nom de périphérique, construit la commande mdadm exacte pour ajouter des disques, étendre la grappe, changer la taille de bloc ou convertir le niveau, puis la renvoie pour vérification. La vérification et la réparation (scrub) lancent l’analyse de cohérence du noyau sur la grappe. Les vitesses de resynchronisation minimale et maximale sont les limites standard du RAID logiciel Linux : une reconstruction peut ainsi être ralentie pendant que les caméras enregistrent. L’application exige le jeton d’administration et, pour les étapes risquées, une confirmation d’identité.

12

Basculement & redondance 5 écrans

Un serveur de secours réplique le serveur principal et prend le relais de lui-même si celui-ci tombe.

Serveur actif et serveur de secours, côte à côte
Point fort Client de bureau

Serveur actif et serveur de secours, côte à côte

L’onglet Redondance affiche le serveur actif et son nœud de basculement avec leur état, leur latence, leur CPU et leur mémoire. L’état de synchronisation de la base de données et de la configuration est indiqué par serveur, et les sessions utilisateur sont répliquées pour que les clients restent connectés. La reprise forcée est disponible depuis le même onglet.

Comment ça marche

L’onglet Redondance présente un serveur de gestion et un nœud de basculement surveillés par un signal de présence (heartbeat). L’état, la latence, le CPU et la mémoire proviennent de sondes envoyées à l’API de chaque serveur, et l’état du pipeline vidéo est également contrôlé. Un agent de réplication sur le nœud de basculement récupère périodiquement un export complet de la base de données et de la configuration depuis le serveur actif. Seuls les fichiers dont la somme de contrôle a changé transitent par le réseau. Les utilisateurs et les sessions sont répliqués dans la base de données du serveur de secours : les jetons de connexion existants y restent valides et les clients demeurent connectés après une reprise.

Régler la détection et les sauvegardes
Client de bureau

Régler la détection et les sauvegardes

Définissez l’intervalle de sondage, le délai d’attente et le seuil de défaillance, et choisissez les services surveillés. Sauvegardes automatiques, conservation des instantanés et plafond de bande passante déterminent comment le nœud de secours reste synchronisé, avec des alertes facultatives par e-mail, Telegram et notification sur le bureau.

Comment ça marche

L’onglet Configuration détermine comment une défaillance est détectée et comment le serveur de secours reste à jour. Le moniteur sonde chaque serveur à l’intervalle défini, et un serveur n’est déclaré défaillant qu’après le nombre configuré d’échecs consécutifs. Les services requis sont toujours surveillés, tandis que les services facultatifs, comme la VoIP ou l’analyse, ne comptent que s’ils sont cochés. L’intervalle de sauvegarde, le nombre d’instantanés conservés et un plafond de bande passante pilotent l’agent de réplication du nœud de basculement. Les alertes peuvent être envoyées par e-mail (SMTP), Telegram ou notification sur le bureau.

Réplication en cours
Client de bureau

Réplication en cours

Un cycle de sauvegarde indique les fichiers et mégaoctets transférés, tandis que le serveur de secours affiche sa base de données en cours de synchronisation. Vous voyez à tout moment à quel point le nœud de basculement est proche du serveur en production.

Comment ça marche

Pendant un cycle de sauvegarde, le nœud de basculement demande un manifeste des fichiers et bases de données du serveur en production, puis ne récupère que ce qui a changé depuis l’instantané précédent. Les fichiers inchangés sont liés à partir de la copie précédente : c’est pourquoi le panneau peut afficher des milliers de fichiers dont seule une poignée a été récupérée. La progression, en fichiers et en mégaoctets, est écrite dans un enregistrement d’état que le client affiche en direct. L’export terminé est déplacé par rotation dans un dossier d’instantanés, et la ligne de base de données du serveur de secours indique « Synchronisation » pendant l’application des données.

Basculement actif, retour en un clic
Client de bureau

Basculement actif, retour en un clic

Lorsqu’un serveur est repris, le bandeau passe au rouge, le serveur en production est marqué hors ligne et ses caméras sont servies par le nœud de basculement. Un seul bouton, Retour, rend le travail au serveur d’origine dès qu’il est de nouveau opérationnel.

Comment ça marche

Une reprise a lieu automatiquement lorsque le seuil de défaillance est atteint, ou manuellement avec « Forcer la reprise ». Le serveur de secours sert alors les caméras du serveur défaillant, celui-ci est marqué hors ligne, et le bandeau ainsi que la ligne d’état supérieure passent au rouge. Lorsque le serveur d’origine répond de nouveau aux sondages, « Retour » ramène les caméras chez lui. L’onglet Configuration peut aussi le faire automatiquement après que le serveur a été opérationnel pendant un nombre de minutes défini. Les clients continuent de fonctionner, car les utilisateurs et les sessions étaient déjà répliqués sur le serveur de secours.

Un journal de basculement clair
Client de bureau

Un journal de basculement clair

Chaque étape d’une reprise est journalisée et horodatée : réplication, migration des caméras, flux arrêtés et résultat final. Cet historique aide les opérateurs à vérifier ce qui s’est passé et à le documenter ensuite.

Comment ça marche

L’onglet Journal des événements enregistre en temps réel chaque étape du processus de redondance, avec un horodatage local : un cycle de réplication forcé, la demande de reprise, le démarrage du processus de reprise, la migration des caméras, le nombre de flux arrêtés sur le serveur défaillant et le résultat final. Les entrées proviennent de la séquence de reprise du serveur et sont conservées pendant la session, avec un bouton Effacer. Comme chaque transition est écrite dans l’ordre, un opérateur peut vérifier après coup ce que le système a fait et le reprendre dans un rapport d’incident.

13

Studio d’entraînement IA 5 écrans

Apprenez au système vos propres objets : annotez, entraînez, convertissez et déployez des modèles sans quitter PotoP.

Entraînez vos propres modèles de détection
Point fort Studio d'entraînement

Entraînez vos propres modèles de détection

Choisissez une famille de modèles, une tâche et une taille, puis réglez le nombre d’époques, la taille des images et les hyperparamètres. Le studio détecte le matériel d’entraînement disponible et affiche la progression, des échantillons et un journal en direct pendant l’entraînement d’un modèle.

Comment ça marche

Le Training Studio est une fenêtre distincte du client de bureau. Il recherche sur la machine le matériel d’entraînement, comme les GPU NVIDIA CUDA ou AMD ROCm et le CPU, et signale les puces dédiées à l’inférence, comme Hailo-8, en tant que cibles de conversion. Vous choisissez une famille de modèles, une tâche et une taille, puis les hyperparamètres. L’entraînement s’exécute en tâche de fond avec des entraîneurs basés sur PyTorch sur le dispositif choisi, et transmet en continu l’époque, la perte, le mAP et un journal en direct dans la fenêtre. Les familles de modèles sous licence permissive sont signalées, ce qui compte pour un usage commercial.

Jeux de données et augmentation pour l’entraînement
Studio d'entraînement

Jeux de données et augmentation pour l’entraînement

Sous les hyperparamètres, l’onglet Entraînement rassemble des images issues d’imports, d’une webcam, d’une vidéo ou d’un flux RTSP, et applique des augmentations comme la mosaïque, les retournements, la mise à l’échelle et les variations de couleur. Un jeu de données doit être sélectionné avant de pouvoir lancer l’entraînement.

Comment ça marche

L’onglet Entraînement regroupe les réglages de jeu de données, d’augmentation et de source d’images qui alimentent un entraînement. Un jeu de données est un dossier d’images annotées, alimenté par des fichiers importés, une webcam, un fichier vidéo ou un flux RTSP. Les augmentations — mosaïque, retournements, mise à l’échelle, rotation, variations de couleur — sont appliquées à la volée pendant l’entraînement. La part de validation et la graine aléatoire rendent les entraînements reproductibles. La boîte de dialogue présentée s’affiche lorsqu’on clique sur « Démarrer l’entraînement » sans jeu de données sélectionné. La conversion vers ONNX et les formats d’accélérateurs se fait dans un onglet distinct.

Reconnaissance d’actions à partir des poses
Studio d'entraînement

Reconnaissance d’actions à partir des poses

Extrayez des poses de vidéos, étiquetez-les avec des classes d’actions comme debout, marche, chute ou bagarre, et entraînez un classificateur. Précision, rappel et F1 par classe sont indiqués après l’entraînement.

Comment ça marche

La reconnaissance d’actions se fait en deux étapes. D’abord, un modèle de pose analyse vos vidéos ou images et extrait les points clés du corps de chaque personne, enregistrés avec l’étiquette choisie, comme marche ou chute. Ensuite, un petit classificateur de séquences — un LSTM par défaut — est entraîné sur des fenêtres d’images consécutives de ces points clés, avec PyTorch sur le périphérique sélectionné. Après l’entraînement, la précision, le rappel et le F1 sont calculés par classe sur des données de validation mises de côté. Le résultat peut être exporté avec un extrait de code d’inférence pour être utilisé dans l’analyse.

Entraînement à la reconnaissance de plaques d’immatriculation
Studio d'entraînement

Entraînement à la reconnaissance de plaques d’immatriculation

Entraînez un lecteur de plaques pour le jeu de caractères d’un pays donné, à partir d’enregistrements en direct, de dossiers d’images ou de jeux de données publics. Un éditeur d’étiquettes de plaques, un outil de test sur image et l’export vers des paquets pour accélérateurs complètent le processus.

Comment ça marche

L’onglet Plaques entraîne un réseau de reconnaissance de séquences de caractères de type LPRNet, qui lit une image de plaque recadrée et décode les caractères par CTC. Vous choisissez le jeu de caractères d’un pays et la taille d’entrée, puis collectez des recadrages de plaques à partir d’enregistrements, de dossiers d’images, de listes d’URL ou de jeux de données publics. L’éditeur d’étiquettes permet de corriger les plaques non étiquetées, avec des suggestions OCR en option. « Tester sur une image » exécute le modèle actuel sur une seule image. Les modèles terminés sont exportés et peuvent être compilés en paquet pour les accélérateurs Axelera Metis, puis installés dans la cascade de reconnaissance en production.

Annoter des jeux de données dans le client
Studio d'entraînement

Annoter des jeux de données dans le client

Tracez des cadres ou des polygones sur vos propres images, gérez les classes d’objets et laissez l’annotation automatique proposer des étiquettes. Les statistiques d’annotation montrent dans quelle mesure chaque classe est couverte.

Comment ça marche

L’onglet Annotation est un outil d’étiquetage intégré au Training Studio. Vous définissez des classes d’objets, parcourez les images du jeu de données et tracez à la souris des cadres englobants ou des polygones. Chaque annotation est enregistrée avec sa classe et ses coordonnées dans le dossier du jeu de données, au format lu par les outils d’entraînement. L’annotation automatique exécute un modèle de détection existant sur l’image et vous propose des étiquettes à accepter ou à corriger. Le panneau de statistiques compte le total des annotations et les cadres par classe, pour repérer les classes qui manquent d’exemples.

14

Assistant IA 5 écrans

Posez vos questions d’installation en langage courant et laissez l’assistant préparer la modification pour vous.

Interrogez votre système en langage courant
Point fort Client web

Interrogez votre système en langage courant

Le chat IA propose des actions guidées pour les dispositions, les caméras, les serveurs, les certificats, le pare-feu, les utilisateurs et les macros. Cliquez sur un exemple ou saisissez votre propre demande : les résultats s’affichent sur un tableau de résultats distinct.

Comment ça marche

Le chat IA est intégré au client web et au client de bureau. La plupart des demandes sont comprises par un moteur de commandes à base de règles sur le serveur — signalées comme directes dans le chat — qui associe des formulations comme « lister les dispositions » aux mêmes fonctions que celles appelées par l’interface utilisateur. Le panneau d’aide liste des exemples de formulations par thème. Les actions qui modifient quelque chose, comme créer une autorité de certification ou déployer des certificats, posent leurs questions étape par étape et ne changent rien tant que vous n’avez pas confirmé. Les réponses volumineuses sont envoyées sur le tableau de résultats pour que la conversation reste lisible.

Des réponses instantanées sur votre parc
Client web

Des réponses instantanées sur votre parc

Tapez « list cameras » et l’assistant renvoie un tableau avec les noms, adresses, marques et états d’enregistrement. Il en va de même pour les plans, serveurs, dispositions et macros, sans naviguer dans les menus.

Comment ça marche

Les questions d’inventaire reçoivent une réponse directement depuis la base de données du serveur, sans modèle de langage. Taper « list cameras » lance une recherche sur le serveur et renvoie les noms, adresses IP, fabricants et l’état de chaque caméra (active, en enregistrement), présentés sous forme de tableau texte dans le Result Board. Le même moteur couvre les plans, serveurs, dispositions et macros. Le chat ne fait qu’afficher le résultat : la réponse reflète donc la configuration en production et respecte les autorisations de l’utilisateur connecté.

Des questions de suivi guidées
Client de bureau

Des questions de suivi guidées

Lorsqu’une demande nécessite plus de précisions, l’assistant présente les choix sous forme de liste à lettres, par exemple la caméra à examiner. Vous pouvez répondre par la lettre, le nom ou l’adresse IP, et les commandes Retour et Annuler gardent la conversation sous contrôle.

Comment ça marche

Les demandes auxquelles il manque un détail, comme une requête avancée sur une caméra, ouvrent un court dialogue sur le serveur. L’assistant liste les choix valides tirés de la configuration actuelle — ici, chaque caméra avec son adresse — et attend la réponse. Vous pouvez répondre par la lettre, le nom ou l’adresse IP. Retour revient à la question précédente et Annuler met fin au dialogue. Le sélecteur est généré à partir des données en direct : il ne propose donc que des caméras qui existent.

Diagnostics et sauvegardes dans le chat
Client de bureau

Diagnostics et sauvegardes dans le chat

Demandez l’état de la base de données ou les sauvegardes, et obtenez la santé du serveur, sa version et les sauvegardes de configuration avec leurs dates et tailles. La prise en charge d’un modèle de langage local s’active d’un simple interrupteur.

Comment ça marche

Les questions sur la base de données et les sauvegardes sont traitées par des fonctions directes du serveur. La commande « db status » lit la connexion PostgreSQL en production et indique le type, la version, la taille, le nombre de tables, le pool de connexions et l’hôte, avec le mot de passe masqué. La commande « backups » liste les sauvegardes de configuration stockées sur le serveur, avec leur date et leur taille. L’interrupteur LLM active un modèle de langage facultatif qui tourne localement via Ollama : les questions libres peuvent ainsi être traitées sans envoyer de données à un service cloud.

Choisissez le niveau de détail
Client de bureau

Choisissez le niveau de détail

La verbosité des réponses va du simple décompte à la sortie de débogage complète. Horodatages, icônes, tableaux ASCII et limites de liste peuvent être ajustés pour une salle de contrôle comme pour un installateur sur son ordinateur portable.

Comment ça marche

La boîte de dialogue de verbosité change la manière dont le chat met en forme les réponses du serveur. Les quatre niveaux vont du décompte sur une seule ligne à la sortie complète, valeurs brutes comprises. Horodatages, icônes d’état et tableaux ASCII peuvent être activés ou désactivés, tout comme un mode d’espacement compact et une limite du nombre d’éléments affichés dans les listes. Les réglages s’appliquent côté client lors de l’affichage des réponses : différents opérateurs peuvent donc utiliser différents niveaux avec le même serveur. Le panneau derrière la boîte de dialogue est la liste d’aide des exemples de commandes, classés par catégorie.

Sous le capot

Comment PotoP VMS Studio est construit, où il s'exécute et comment il protège vos données.

01

Serveur Python, pile ouverte

Le serveur est une application Python FastAPI qui tourne sur PotoP OS (Linux). Il gère caméras, utilisateurs, enregistrements et paramètres via une API REST et WebSocket. Les paramètres sont stockés dans PostgreSQL, ou SQLite pour les petits sites.

02

De la caméra à l’écran

Les caméras se connectent via ONVIF et RTSP, avec des pilotes pour de nombreuses marques. Janus et GStreamer convertissent les flux en WebRTC pour les navigateurs, tandis que FFmpeg se charge du transcodage et de l’export. Le client de bureau décode avec GStreamer, en utilisant le GPU lorsqu’il est disponible.

03

Inférence IA multi-fabricants

L’IA s’exécute côté serveur dans des processus de travail, sous forme de cascade de détecteurs, de suiveurs et de classificateurs. Les moteurs pris en charge incluent ONNX Runtime, OpenVINO, TensorRT et ROCm, ainsi que des accélérateurs embarqués comme Hailo et Coral. Les étapes peuvent être réparties sur différents serveurs.

04

Bureau, web et téléphone

Le client de bureau est développé en Qt avec PySide6. Le client web fonctionne dans tout navigateur moderne, sans installation. L’application Android intègre le client web avec connexion par empreinte digitale. Tous utilisent la même API serveur et les mêmes autorisations.

05

Enregistrement et stockage

La vidéo est écrite en segments horodatés, selon des règles continues, planifiées ou déclenchées par événement, avec des tampons de pré-événement. Les segments peuvent être chiffrés en AES-256 et sont purgés selon leur ancienneté ou leur taille. Les détections et miniatures sont stockées dans une base de données d’analyse distincte.

06

La sécurité par défaut

L’accès repose sur des jetons signés avec des droits par utilisateur et par groupe, et une connexion à deux facteurs en option. Le serveur dispose de sa propre autorité de certification pour HTTPS, d’une page de pare-feu intégrée et d’une piste d’audit. Les mots de passe des caméras sont stockés chiffrés, et les exports sont protégés par mot de passe.

07

Redondance et basculement

Un serveur de basculement récupère régulièrement les sauvegardes du serveur principal et réplique ses utilisateurs, de sorte que les sessions existantes continuent de fonctionner après une reprise. Les tâches d’arrière-plan reposent sur l’élection d’un leader en base de données : une seule instance les exécute. PostgreSQL prend en charge plusieurs instances.

Vous voulez voir PotoP VMS Studio sur votre propre site ?

Parlez-nous de votre installation — nous serons heureux de vous faire une démonstration ou de mettre en place un essai.