PotoP API Translator

Remplacez le système vidéo, conservez toutes les intégrations

Un PLC, un contrôleur de mur vidéo, un système de gestion technique du bâtiment ou un PSIM continue d’envoyer les commandes qu’il a toujours envoyées. L’API Translator exécute chacune d’elles sur PotoP VMS Studio et répond dans la forme qu’attend l’autre système — TKH VDG Sense, Commend ICX, Milestone XProtect et Genetec Security Center, commande par commande.

Fabriqué dans l’UE Fonctionne sur vos propres serveurs

Flux en direct : chaque commande au moment où elle est traduite

Commande par commande

Chaque commande de l’API de l’autre système, traduite en appels PotoP VMS Studio — le tableau est généré à partir du code.

Quatre connecteurs

TKH VDG Sense, Commend ICX, Milestone XProtect (MIP VMS API) et Genetec Security Center (Web SDK).

Flux en direct

Suivez chaque message de l’autre système jusqu’au VMS en passant par le traducteur, et retour, étape par étape.

Banc d’essai

Envoyez n’importe quelle commande comme le ferait l’autre système ; elle est réellement exécutée sur PotoP, avec la réponse et les appels effectués.

Jamais de faux succès

Ce que PotoP ne peut pas faire reçoit le code d’erreur propre de l’autre système : un PLC n’est jamais induit en erreur.

Le certificat du serveur VMS lui-même

Chaque port présente le certificat du serveur PotoP ; comptes, adresses autorisées, limites de débit et groupes d’autorisations par connecteur.

Une seule adresse change, rien d’autre

Réécrire une intégration est la partie coûteuse du remplacement d’un système de gestion vidéo — et souvent celle dont plus personne n’est responsable. Le PotoP API Translator la supprime. L’autre système reçoit une nouvelle adresse et continue de parler sa propre API ; le traducteur traduit chaque commande vers l’API de PotoP VMS Studio, l’exécute et traduit la réponse en retour. Rien n’est simulé : lorsque PotoP n’a pas d’équivalent, la réponse le dit dans le vocabulaire propre de l’autre système — jamais un faux succès qui ferait croire à un PLC qu’une porte s’est ouverte.

Quatre systèmes, chaque commande documentée

Les 71 commandes documentées de l’API HTTP/XML de TKH VDG Sense, les 81 familles de commandes du protocole Commend ICX, 75 ressources de la MIP VMS API de Milestone et le Web SDK de Genetec Security Center — chacune figure sur la page Commandes de la console avec l’appel PotoP qu’elle devient et ce qui diffère. Une vue de flux en direct montre chaque message au moment où il est traduit, et un banc d’essai exécute réellement n’importe quelle commande avant le basculement.

Conçu pour le remplacement par PotoP VMS Studio

Le traducteur existe pour un seul moment : le jour où un système Sense, Milestone, Genetec ou Commend est remplacé par PotoP VMS Studio et où les intégrations qui l’entourent doivent continuer à fonctionner.

PotoP VMS Studio

C’est le VMS qui fait le travail

Caméras, PTZ, enregistrements, exports, dispositions, macros, alarmes, utilisateurs et services d’interphonie sont ceux de PotoP ; le traducteur ne fait que leur parler la langue de l’autre système.

Des alarmes dans le registre de PotoP

Une alarme envoyée par Milestone ou Genetec est une vraie alarme PotoP, avec un numéro, un état et un historique — et ce que les opérateurs PotoP modifient est renvoyé.

L’interphonie sur PotoP VoIP

Un système de gestion qui pilotait un serveur d’interphonie Commend par ICX pilote PotoP VoIP de la même manière : appels, sorties, entrées, sonorisation, conférences, demandes d’appel.

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

Lié au VMS 4 écrans

Connectez-vous en tant qu’administrateur PotoP, liez d’un seul bouton et suivez chaque traduction en direct.

Flux en direct : chaque commande au moment où elle est traduite
Point fort Console API Translator

Flux en direct : chaque commande au moment où elle est traduite

La page d’accueil de la console dessine chaque message qui va de l’autre système à PotoP VMS Studio en passant par le traducteur, et retour ; elle compte les réponses, les erreurs et les refus, et liste tous les messages du plus récent au plus ancien.

Comment ça marche

La page est alimentée par un flux d’événements envoyés par le serveur (SSE) depuis le traducteur : chaque requête qui arrive sur un port de connecteur forme un enregistrement de flux — la commande, les appels REST PotoP effectués pour elle et la réponse — poussé vers le navigateur au moment même, de sorte que rien n’est interrogé par sondage et rien n’est perdu. L’animation et les compteurs sont tirés des mêmes enregistrements que le tableau, et les cinq cents derniers flux restent en mémoire pour la session. Mots de passe, clés de session, jetons et empreintes sont masqués avant qu’un flux soit conservé : la page peut rester ouverte sur un écran de salle de contrôle.

Une traduction, dépliée
Console API Translator

Une traduction, dépliée

Cliquez sur une ligne et toute la traduction se déplie : la requête telle qu’elle est arrivée, chaque appel REST PotoP effectué pour elle avec son état et sa durée, et la réponse renvoyée — secrets masqués.

Comment ça marche

Un flux s’ouvre en trois parties : la requête exactement telle que l’autre système l’a envoyée (méthode, URL, corps), les étapes PotoP — chaque appel REST avec son chemin, son code d’état et les millisecondes qu’il a pris — et la réponse renvoyée dans le format propre de l’autre système. Le résultat est l’un de ok, error, refused ou unsupported, et c’est ce que les compteurs additionnent. Ce détail est le moyen le plus rapide d’apprendre ce qu’une commande d’un fabricant fait réellement sur PotoP ; c’est pourquoi le banc d’essai ouvre la même vue pour les commandes que vous envoyez vous-même.

Paramètres : la liaison, le certificat, la console
Console API Translator

Paramètres : la liaison, le certificat, la console

Le traducteur travaille avec son propre jeton d’API, au nom de l’administrateur qui l’a lié ; la page montre le serveur, le flux d’événements, le certificat qu’il présente et les types de connecteurs prêts.

Comment ça marche

La liaison demande à PotoP VMS Studio un jeton d’API portant le nom du traducteur, avec un jeu de droits prédéfini, créé au nom de l’administrateur qui a appuyé sur le bouton ; le jeton est stocké chiffré et peut être révoqué ici ou dans le VMS. La même page montre le flux d’événements que le traducteur garde ouvert pour numéroter chaque événement PotoP, le certificat qu’il présente sur chaque port (celui du serveur VMS lui-même, suivi à travers ses renouvellements, ou un certificat provisoire qu’il a créé lui-même) et, pour chaque type de connecteur, s’il est prêt, combien sont configurés, ou qu’il n’est pas encore construit.

Connexion avec un compte administrateur PotoP
Console API Translator

Connexion avec un compte administrateur PotoP

La console vous authentifie auprès de PotoP VMS Studio lui-même, code en deux étapes compris ; seuls les administrateurs entrent, par le certificat du serveur lui-même.

Comment ça marche

Il n’y a aucune liste d’utilisateurs dans le traducteur. Le formulaire de connexion s’adresse à la connexion du VMS lui-même, respecte la connexion en deux étapes, puis vérifie que le compte est administrateur ; tout autre compte est refusé en toutes lettres. La session est un cookie strict pour ce navigateur, d’une durée glissante de trente minutes ; chaque modification porte un en-tête CSRF, et huit tentatives échouées depuis une même adresse en cinq minutes mettent cette adresse en pause. La page est servie avec le certificat du serveur PotoP, et un navigateur qui ouvre localhost est redirigé vers un nom pour lequel le certificat a été émis.

02

Connecteurs 7 écrans

Une carte par système raccordé : ports, comptes, sécurité, les numéros avec lesquels il a été programmé, comportement.

Une carte par système raccordé
Point fort Console API Translator

Une carte par système raccordé

Quatre connecteurs — un PLC qui parle VDG Sense, une gestion technique du bâtiment sur Commend ICX, un PSIM conçu pour Milestone, un autre pour Genetec — chacun avec ses ports, son état de chiffrement, son nombre de messages et un interrupteur.

Comment ça marche

Chaque carte est un autre système : son type décide du protocole parlé sur ses ports — HTTP et XML pour Sense, TCP brut pour Commend ICX, REST et WebSocket pour Milestone, REST et un flux d’événements multipart pour Genetec. Les pastilles indiquent s’il écoute, si le HTTP en clair a été autorisé, pour ICX quel client est connecté, et combien de messages il a traités. L’interrupteur démarre et arrête l’écoute sans perdre les paramètres ; un connecteur ne fonctionne jamais sans compte, et en ajouter un se fait par un bouton par type sous les cartes.

Sense : l’adresse à donner à l’autre système
Console API Translator

Sense : l’adresse à donner à l’autre système

L’onglet Général d’un connecteur : son nom, les ports sur lesquels il écoute et l’adresse exacte vers laquelle l’autre système est dirigé — la seule chose qui change de leur côté.

Comment ça marche

Le traducteur présente le certificat du serveur VMS sur chaque port de connecteur et suit ses renouvellements : l’adresse indiquée sous Général fonctionne en HTTPS dès qu’elle est saisie dans le PLC ou le système de gestion. Les ports sont des étiquettes : un second port — 443 ou 80 pour un système qui ne peut pas en recevoir d’autre — s’ajoute sans redémarrage, et les ports utilisés par le serveur PotoP lui-même sont refusés avec le motif. Supprimer ce connecteur demande une confirmation et s’inscrit dans le journal d’activité à votre nom.

Connexion et sécurité par connecteur
Console API Translator

Connexion et sécurité par connecteur

Des comptes avec un mot de passe aléatoire affiché une seule fois, le HTTP en clair uniquement après une décision consignée, des adresses autorisées, un débit par adresse, et les groupes qui disent ce que le connecteur a le droit de faire.

Comment ça marche

Ajouter un compte génère un mot de passe de dix-huit caractères affiché une seule fois ; seul un hachage scrypt est conservé, vérifié à côté de la boucle principale du service avec une courte mémorisation, de sorte qu’un système qui se connecte à chaque requête ne coûte rien de plus. Dix mots de passe erronés mettent ce nom en pause depuis cette adresse pendant cinq minutes. Autoriser le HTTP en clair ouvre un avertissement que vous devez accepter en votre nom, et le HTTPS continue de fonctionner sur le même port. Les groupes en dessous sont les autorisations par connecteur : une commande dont le groupe est désactivé est refusée dans le vocabulaire propre de l’autre système ; Modifier les paramètres est désactivé par défaut.

Leurs numéros ⇄ PotoP
Console API Translator

Leurs numéros ⇄ PotoP

Les identifiants de serveur et d’appareil de l’ancien système sont associés aux caméras PotoP ; les numéros utilisés par l’autre système qui n’ont pas de correspondance s’accumulent dans une liste munie d’un bouton Associer…, de sorte que la configuration est guidée par ce qui arrive réellement.

Comment ça marche

Une intégration Sense désigne un serveur par un long numéro et une caméra par un identifiant d’appareil, tous deux issus de l’installation remplacée. La table de correspondance donne à chaque paire sa caméra PotoP ; sans correspondance, l’identifiant d’appareil est pris comme numéro de caméra PotoP, et une caméra associée n’est joignable que sous son numéro associé. Les commandes qui ont nommé un numéro inconnu ne sont pas devinées : le numéro est collecté dans la liste en dessous, avec sa fréquence et sa dernière occurrence, et Associer… en démarre une ligne de correspondance — laissez l’autre système tourner une minute et la liste dit ce qu’il attend encore.

ICX : postes, sorties, entrées, caméras, moniteurs
Console API Translator

ICX : postes, sorties, entrées, caméras, moniteurs

Pour un connecteur Commend ICX, l’onglet de correspondance relie les numéros d’appel aux postes PotoP VoIP, les sorties aux macros, les événements PotoP aux entrées et les moniteurs aux panneaux de disposition.

Comment ça marche

ICX parle en numéros d’appel, numéros de sortie et d’entrée, numéros de caméra et de moniteur. Un numéro d’appel est le poste PotoP VoIP du même numéro, sauf correspondance ; une sortie devient réelle lorsqu’une macro PotoP est désignée pour la mise en marche et l’arrêt ; une entrée est impulsée par un type d’événement PotoP, éventuellement d’une seule caméra, pendant un certain nombre de secondes ; un moniteur est une disposition PotoP et le panneau où la caméra est placée. Sous les tableaux, le connecteur liste les paires tâche/type qu’il a reçues sans gestionnaire, pour qu’une fonction manquante soit vue plutôt que devinée.

Milestone : les GUID avec lesquels l’intégration a été programmée
Console API Translator

Milestone : les GUID avec lesquels l’intégration a été programmée

Une intégration qui embarque les identifiants de Milestone épingle chaque GUID à la caméra, la sortie, la macro, le type d’événement ou la disposition PotoP qui l’a remplacé ; une intégration qui cherche les objets par leur nom n’a besoin de rien ici.

Comment ça marche

Le connecteur répond à l’API de configuration de Milestone avec ses propres identifiants, stables d’un redémarrage à l’autre. Une intégration qui recherche les caméras, les sorties ou les types d’événements par leur nom fonctionne donc sans changement ; celle qui a été programmée avec les GUID de l’ancienne installation XProtect les épingle ici, chacun à l’objet PotoP qui l’a remplacé, le type d’identifiant étant choisi parmi caméras, matériel, serveurs d’enregistrement, sorties, événements d’entrée, événements définis par l’utilisateur, types d’événements, vues, utilisateurs de base et rôles. Les sorties reçoivent un numéro, un nom et une macro PotoP, pour que leur déclenchement commute réellement quelque chose.

Genetec : comment les choses sont reprises
Console API Translator

Genetec : comment les choses sont reprises

Une explication en lecture seule, par connecteur, de ce que chaque chose devient sur PotoP — alarmes, protection vidéo, enregistrement, événements — et des entités Security Center que PotoP n’a pas.

Comment ça marche

PotoP est un système vidéo, et la page le dit sans détour : les alarmes atterrissent dans le registre des alarmes de PotoP avec un identifiant d’instance égal au numéro d’alarme PotoP, la protection vidéo est une conservation d’images, l’enregistrement est l’enregistrement manuel de PotoP, les événements sont publiés sous les noms de Security Center. Le contrôle d’accès, l’intrusion, la patrouille LPR et le stationnement n’ont pas d’équivalent — leurs entités sont conservées, leurs rapports répondent Ok avec une liste vide, leurs actions répondent Fail avec un message qui en donne la raison — et rien n’est jamais présenté comme accompli alors qu’il ne l’est pas.

03

Chaque commande, traduite 4 écrans

La page Commandes : chaque commande de chaque système et l’appel PotoP qu’elle devient.

TKH VDG Sense : les 71 commandes
Point fort Console API Translator

TKH VDG Sense : les 71 commandes

La page Commandes fait autorité : chaque commande Sense documentée, dans quelle mesure PotoP la couvre, l’appel PotoP VMS Studio qu’elle devient et ce qui diffère — 71 sur 71 exécutées complètement.

Comment ça marche

Le tableau est généré à partir du registre de commandes du connecteur lui-même, celui qui sert les requêtes : la page ne peut donc jamais lister une commande que le traducteur n’a pas. Chaque ligne nomme la commande Sense, la couverture, les appels PotoP VMS Studio qu’elle devient — un mouvement PTZ est un POST vers le point de terminaison ptz de la caméra, avec des vitesses converties depuis les millièmes de Sense ; un clip est un export PotoP avec les données VCA en piste de texte horodatée — et ce qu’il faut savoir, par exemple une commande retirée de Sense depuis des années mais encore servie aux anciens appelants. Le filtre restreint la liste à complet, partiel ou non disponible.

Commend ICX : 81 familles de commandes
Console API Translator

Commend ICX : 81 familles de commandes

Chaque tâche et type du protocole ICX sous sa famille : 62 exécutées sur PotoP VoIP, les visionneuses, les caméras ou les macros, 19 conservées et rapportées comme le ferait un serveur d’interphonie.

Comment ça marche

Chaque famille porte ses codes de tâche et de type ICX sous son nom, pour qu’un ingénieur protocole puisse chercher directement 40/80 ou 80/AC. Presque chaque famille devient une opération du point de terminaison de commande d’interphonie du VMS — call, hangup, dtmf, busy, privacy, page, conference, output, input, door code, request, desk — et la note dit ce qui diffère : confidentialité respectée par appel, mode simplex rapporté mais non imposé, un canal radio comme salle de conférence. Les familles conservées sont les parties que seul un poste Commend possède, que PotoP stocke par poste et rapporte comme un événement.

Milestone MIP VMS API : 75 ressources
Console API Translator

Milestone MIP VMS API : 75 ressources

Connexion, événements, alarmes, signets, verrous de preuve, WebRTC et tous les types de ressources de configuration, chacun marqué complet, partiel ou conservé — et les tâches que PotoP ne peut pas faire, répondues par une erreur, jamais par un faux succès.

Comment ça marche

Les 75 lignes couvrent les points de terminaison de connexion, les WebSockets d’événements et de messagerie, les alarmes, les signets, les verrous de preuve, WebRTC et chaque type de ressource de configuration de la MIP VMS API publiée. Les lignes complètes s’appuient sur PotoP (caméras, serveurs d’enregistrement, sorties, événements définis par l’utilisateur en tant que macros, vues en tant que dispositions, utilisateurs de base et rôles en tant que vrais utilisateurs et groupes) ; les lignes conservées stockent ce que l’autre système crée et le lui rendent avec leurs propres identifiants ; et chaque tâche que PotoP ne peut pas accomplir — tronquer le stockage, changer le mot de passe d’un appareil, remplacer du matériel — est indiquée comme répondue par une erreur plutôt que par un faux succès.

Genetec Web SDK : entités, actions, alarmes, événements
Console API Translator

Genetec Web SDK : entités, actions, alarmes, événements

Les entités du Web SDK, les méthodes caméra, le PTZ, les sorties, les tuiles, les alarmes, le flux d’événements et les rapports avec leurs équivalents PotoP — et les parties contrôle d’accès et intrusion qui répondent Fail en toute honnêteté.

Comment ça marche

Le Web SDK reçoit ses réponses dans sa propre syntaxe d’appel de méthode q=, en JSON ou en XML, sous la forme moderne ou héritée selon l’en-tête Accept. Les entités proviennent des caméras, serveurs, utilisateurs, groupes, macros et de l’état d’interphonie de PotoP, avec un identifiant logique égal au numéro PotoP ; les méthodes caméra, le PTZ, les sorties, les tuiles et les alarmes correspondent aux appels affichés ; le flux d’événements transporte le flux de PotoP sous 37 noms d’événements Security Center. Les lignes du contrôle d’accès, de l’intrusion, du LPR et du stationnement sont les lignes honnêtes : entités conservées, rapports vides et actions qui échouent avec un motif.

04

Banc d’essai et journal 3 écrans

Exécutez réellement une commande avant le basculement, puis relisez la trace ensuite.

Banc d’essai : une commande Sense, réellement exécutée
Point fort Console API Translator

Banc d’essai : une commande Sense, réellement exécutée

Envoyez n’importe quelle commande comme le ferait l’autre système et lisez la réponse, images comprises ; le traducteur se connecte pour vous et la commande est réellement exécutée sur PotoP VMS Studio.

Comment ça marche

Le banc se connecte avec une clé valable pour une seule commande : aucun compte de l’autre système n’est nécessaire pour essayer quelque chose, et la requête suit le même chemin que celle d’un PLC — le connecteur l’analyse, fait correspondre les numéros, effectue les appels PotoP et met en forme la réponse XML. Les images reviennent en ligne — une image en direct, l’image d’une position prédéfinie, un état d’export — et le flux apparaît au même instant dans Flux en direct, avec chaque étape. C’est l’ordre de travail recommandé : lier, ajouter le connecteur et un compte, envoyer une commande ici, l’observer, puis basculer l’autre système.

Banc d’essai ICX avec des exemples prêts à l’emploi
Console API Translator

Banc d’essai ICX avec des exemples prêts à l’emploi

Chaque famille de commandes ICX avec des messages d’exemple, la réponse message par message avec sa signification, les appels PotoP effectués — et un simulateur de messages d’état pour ce que PotoP VoIP rapporterait.

Comment ça marche

ICX est binaire : le banc propose donc chaque famille de commandes avec des exemples travaillés dont vous remplacez les numéros par les vôtres, affiche le message hexadécimal qu’il va envoyer et décode chaque trame de réponse en mots clairs, à côté des appels PotoP qui l’ont produite. La deuxième partie simule ce qui se passe dans PotoP VoIP — un appel sonne, est pris, se termine, un poste se déconnecte, une sortie commute, une demande d’appel est émise — et affiche les messages d’état ICX que le connecteur émettrait ; ils n’atteignent le système raccordé que si la case est cochée, et cela s’inscrit dans le journal d’activité. La troisième partie est le fil en direct, chaque trame entrante et sortante.

Journal d’activité
Console API Translator

Journal d’activité

Qui s’est connecté, chaque modification d’un connecteur, chaque connexion refusée d’un autre système et chaque message envoyé par le banc à un système raccordé — la trace qu’un auditeur consulte.

Comment ça marche

Le journal est la table d’audit propre au traducteur, conservée à côté du journal des événements dans son fichier SQLite : connexions à la console avec leur adresse, chaque modification de connecteur avec le champ et la personne, connexions refusées d’autres systèmes une fois par adresse, nom et motif en cinq minutes, clients ICX refoulés, et chaque message d’état que le banc a poussé vers un système en production. Ce que le jeton du traducteur a fait sur le VMS est consigné là aussi, dans la piste d’audit de PotoP sous le nom du jeton : les deux registres ensemble disent qui a fait quoi, de quel côté.

Sous le capot

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

01

Un service à part, à côté du VMS

Le traducteur est un service distinct sur le serveur PotoP, comme Cockpit, jamais intégré au processus du VMS. Il écoute sur les ports attribués aux autres systèmes — par défaut 8471 pour Sense, 18000 pour ICX, 8472 pour Milestone, 4590 pour Genetec, 443 ou 80 lorsqu’un système ne peut pas en recevoir d’autre — et dialogue avec le VMS par l’API REST ordinaire de PotoP.

02

Un jeton d’API, pas un mot de passe

La liaison crée un jeton d’API au nom de l’administrateur qui l’a établie, avec un jeu de droits prédéfini et rien de plus ; il est stocké chiffré et peut être révoqué de chaque côté. Le traducteur ne détient jamais de mot de passe du VMS, et les mots de passe des connecteurs sont conservés sous forme de hachages scrypt.

03

Le certificat du serveur sur chaque port

Chaque port de connecteur présente le certificat du serveur PotoP VMS Studio et suit ses renouvellements ; TLS 1.2 est le minimum. Le HTTP en clair n’est servi qu’après qu’un administrateur l’a activé pour un connecteur et accepté l’avertissement, consigné à son nom.

04

Leurs numéros, mis en correspondance

Les identifiants de serveur, identifiants d’appareil, GUID et numéros d’appel de l’ancienne installation sont associés aux caméras, sorties, macros, dispositions et postes PotoP ; sans correspondance, un numéro est pris tel quel comme numéro PotoP. Les numéros utilisés par l’autre système qui n’ont pas de correspondance sont collectés, jamais devinés.

05

Des événements numérotés à leur arrivée

Le traducteur garde ouvert le flux d’événements du VMS et numérote chaque événement dans son propre journal ; l’interrogation d’événements de Sense, les sessions d’événements de Milestone et le flux d’événements de Genetec reçoivent ainsi les réponses que ces systèmes attendent, avec les types d’événements PotoP sous les noms propres à chaque système.

06

Sous licence par serveur

L’API Translator est le module sous licence api_translator de PotoP VMS Studio, disponible en complément pour tous les types de licence. Sans lui, le service n’ouvre aucun port et la barre d’état système n’en montre rien.

Vous voulez voir PotoP API Translator 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.