Comment Stratorama se connecte
Pourquoi Stratorama ne se connecte jamais à votre Home Assistant
Dernière mise à jour : 13 octobre 2026
Dans Stratorama, chaque connexion va dans un seul sens : de chez vous vers l’extérieur, jamais l’inverse. Cette page suit un geste sur le plan à chaque étape de son trajet, dit ce que chaque étape peut voir et indique où le vérifier par vous-même.
Votre navigateur
Où que vous soyez. Un cookie de connexion, aucun jeton Home Assistant.
Relais Stratorama
Notre serveur, en France. Il relaie les états, en mémoire seulement.
Application Home Assistant
La nôtre, dans votre Home Assistant. Elle se connecte vers l’extérieur et n’ouvre aucun port.
Home Assistant
Le vôtre, chez vous. Joint par l’API locale du Supervisor.
Pourquoi pas la solution habituelle
Un plan sur une tablette murale, c’est facile tant que la tablette est sur le même réseau que Home Assistant. Cela ne l’est plus dès que vous voulez le même plan sur un téléphone, dans un train. Les réponses habituelles sont d’exposer Home Assistant sur Internet (une redirection de port ou un proxy inverse, un nom de domaine, un certificat et un jeton d’accès longue durée sur chaque appareil qui s’y connecte) ou de s’abonner à Home Assistant Cloud. Les deux fonctionnent, et ce sont des choix raisonnables. Nous en voulions un troisième, pour un produit qui vit sur une tablette dans l’entrée et dans la poche des personnes qui habitent là : rien de votre Home Assistant joignable depuis l’extérieur, et aucun jeton Home Assistant dans aucun navigateur.
Étape par étape
Votre navigateur et le relais
Stratorama est une page web servie par notre relais, sur stratorama.app. Une personne s’y connecte avec un cookie de session httpOnly (email et mot de passe, ou Google, GitHub ou Discord) ; une tablette murale, avec son propre cookie d’identification httpOnly, déposé une seule fois grâce à un code à usage unique saisi sur la tablette. La page lit votre plan en HTTPS et écoute les changements d’état sur un flux d’événements envoyés par le serveur. Le navigateur ne connaît jamais d’adresse Home Assistant, ne détient jamais de jeton Home Assistant et ne nomme jamais d’entité ni de service quand il agit : il nomme un élément de votre plan et ce qu’il veut (allumé, éteint, ouvert à 40 %). Le relais fait le reste, et c’est l’objet des sections suivantes.
L’agent et le relais
L’agent, l’application Stratorama - Agent installée dans votre Home Assistant, ouvre une seule connexion WebSocket sortante vers wss://stratorama.app/agent et la garde ouverte. Rien n’écoute de votre côté : il déclare homeassistant_api: true et rien d’autre (ni réseau de l’hôte, ni ingress, ni dossier monté, ni port). L’appairage se fait avec un code de 8 caractères que le propriétaire de la maison génère dans Stratorama ; ce code est valable dix minutes, à usage unique, et l’agent l’échange une fois pour toutes contre un identifiant de connexion qui lui est propre, conservé dans son dossier /data et présenté à chaque reconnexion. Le relais envoie un ping toutes les 30 secondes ; s’il se tait pendant 90 secondes, l’agent raccroche et rappelle de lui-même. Le déconnecter depuis Stratorama révoque aussitôt cet identifiant, et la ligne tombe en moins d’une seconde ; désinstaller l’agent supprime le dossier, identifiant compris.
L’agent et Home Assistant
De votre côté, l’agent dialogue avec Home Assistant par l’API locale du Supervisor, avec le jeton que le Supervisor lui remet au démarrage. Ce jeton reste dans l’agent : il ne nous est pas envoyé, et Stratorama n’a nulle part de champ pour un jeton ou une adresse Home Assistant, parce que nous n’en avons jamais besoin.
Home Assistant Container ne peut pas exécuter d’applications Home Assistant : le même agent y tourne donc sous la forme d’un conteneur Docker, que vous lancez à côté de Home Assistant. Sans Supervisor pour lui remettre un jeton, il utilise celui que vous créez pour lui dans Home Assistant, et un utilisateur sans droits d’administrateur suffit. Ce jeton reste lui aussi sur votre réseau : l’agent ne le présente qu’à Home Assistant, et il ne nous est jamais envoyé.
Neuf appels, et un refus pour tout le reste
L’agent relaie exactement neuf appels vers Home Assistant et refuse tous les autres, quel que soit le demandeur :
GET /api/states: l’instantané des entités, quand un plan se charge ou que le sélecteur d’entités s’ouvrelight.turn_on,light.turn_offswitch.turn_on,switch.turn_offcover.open_cover,cover.close_cover,cover.stop_cover,cover.set_cover_position
C’est une liste fermée plutôt qu’une règle sur la forme des appels, et elle vit dans l’agent, chez vous, pas sur notre serveur : un bug ou une intrusion de notre côté ne peut pas devenir une requête que votre agent exécutera. Pas d’historique, pas de journal d’activité, pas d’automatisations, pas de configuration, aucun autre domaine. Le fichier se lit en une minute : ha-allowlist.ts.
Dans l’autre sens, l’agent transmet les événements state_changed de Home Assistant et, depuis la version 1.4.0, seulement ceux des entités de votre plan (ses appareils, leurs relevés, les capteurs de vos portes, votre bibliothèque d’appareils), que le relais lui désigne après chaque connexion et à chaque changement de liaison ; tant qu’il ne l’a pas fait, l’agent ne transmet rien. Chaque réponse à une demande d’instantané est réduite à ce que nomme la requête du relais : pour l’affichage du plan, à ce que la personne ou la tablette qui demande a le droit de voir ; pour le sélecteur, aux noms, types et unités de ce qui n’est pas sur votre plan ; et à une seule valeur quand une personne autorisée à modifier le plan en demande une. Et depuis la version 1.3.0, quel que soit le chemin, il ne sort de chez vous que des lumières, des interrupteurs, des volets et des capteurs : les personnes et les traceurs d’appareils, les caméras et les lecteurs multimédias, jamais. Un agent qui n’a pas encore été mis à jour en envoie davantage ; le relais écarte dès son arrivée ce qui n’est pas sur votre plan, si bien que rien de tout cela n’atteint un navigateur.
Home Assistant place aussi ses propres identifiants dans certains états : une caméra porte un access_token, et le lien de son image contient un ?token= qui ouvre son flux en direct, sans authentification, à quiconque peut joindre votre Home Assistant. L’un d’eux peut se retrouver dans un état qui, lui, sort (par exemple un capteur basé sur un modèle, dont la valeur est ce lien) : depuis la version 1.3.0, l’agent les retire donc, sous les formes qu’écrit Home Assistant (un jeton d’accès, le jeton d’un lien, le chemin d’un flux), de tout ce qu’il envoie, et le relais les retire une seconde fois de tout ce qui lui parvient. Stratorama n’en a jamais eu besoin. Le code : ha-domains.ts et ha-redact.ts.
Ce que le relais vérifie avant de transmettre
Chaque commande nomme un élément du plan, pas une entité. Le relais retrouve l’entité qui se trouve derrière, vérifie que la personne ou la tablette murale qui la demande a le droit d’agir sur cet élément (un membre de la maison ne voit et ne commande que les étages et les appareils que le propriétaire lui a accordés), puis, alors seulement, s’adresse à l’agent. Les états passent par le même filtre : l’instantané est réduit à ce que le demandeur a le droit de voir, et le flux en direct ne remet à chaque navigateur ou tablette que les entités couvertes par ses droits ; les autres sont écartées dès leur arrivée. Un seul flux est plus large, et c’est voulu. Quand une personne qui a l’accès « Modifier » ouvre le sélecteur d’entités, son navigateur reçoit les noms, types et unités de vos autres lumières, interrupteurs, volets et capteurs, sans aucune valeur (le sélecteur sert à montrer ce qui n’est pas encore sur le plan), et la valeur actuelle d’une entité quand elle appuie sur « Voir la valeur ». Ce flux va à ce navigateur et n’est conservé nulle part. Les appareils de votre bibliothèque qui ne sont placés à aucun étage parviennent aux mêmes personnes, avec leurs noms et leurs états, pour la même raison ; toutes les autres ne reçoivent que les noms des appareils qu’elles peuvent voir.
Commander un appareil que nous classons comme critique (aujourd’hui les électrovannes, parce que l’eau se met à couler) laisse une trace indiquant qui, quel appareil et quand, lisible par le seul propriétaire de la maison et supprimée au bout de 90 jours. Une lumière ou un volet ne laisse aucune trace.
Ce que le relais conserve, et ce qu’il n’a jamais
Conservé, sur notre serveur en France
- Votre compte : une adresse email, un mot de passe haché ou l’identité que nous transmet votre fournisseur de connexion, et votre langue.
- Vos étages, pièces, murs, ouvertures et appareils, avec l’identifiant de l’entité Home Assistant à laquelle chaque appareil est lié.
- L’état allumé ou éteint, le niveau, la couleur ou la position que vous réglez depuis le plan pour un appareil qui n’est pas lié à Home Assistant.
- Les membres de la maison, les tablettes murales (chacune avec un nom, l’empreinte de son identifiant de connexion et sa dernière activité) et leurs autorisations.
- L’identifiant de connexion de l’agent, jusqu’à ce que vous le déconnectiez.
- Les traces des actions critiques, pendant 90 jours.
- Les journaux d’accès HTTPS (adresse IP, chemin, heure, et les en-têtes qu’envoie votre navigateur, comme son agent utilisateur, sa langue préférée ou la page d’où vous venez, jamais ses cookies), pendant 12 mois au plus, comme le permet la loi française. La connexion de l’agent y figure avec l’adresse IP publique de votre maison, comme toute autre requête.
- Les sauvegardes nocturnes de cette base de données, chiffrées avant de quitter le serveur, avec une copie chez Scaleway, à Paris.
Jamais sur notre serveur
- Les états que transmet Home Assistant. Ils ne font que passer en mémoire : rien n’est écrit sur disque, rien n’est mis en cache pour être montré plus tard.
- L’adresse de votre Home Assistant, ses jetons ou ses identifiants de connexion.
- Votre historique, votre journal d’activité, vos automatisations, votre configuration ou vos utilisateurs.
- Une entité que vous n’avez pas liée, au-delà de l’instant où elle transite. Demander sa valeur dans le sélecteur d’entités ne laisse que son identifiant, dans le journal d’accès, au sein d’un chemin.
La politique de confidentialité dit tout : chaque sous-traitant, chaque base légale, chaque durée de conservation.
En cas de panne
Si votre connexion Internet tombe, Stratorama tombe avec elle, même depuis le canapé : le navigateur passe toujours par le relais, et c’est le prix à payer pour n’ouvrir aucun port. Home Assistant, vos automatisations et vos appareils continuent comme si de rien n’était, et l’agent se reconnecte de lui-même quand la ligne revient. Si notre relais est en panne, Stratorama l’est aussi, et rien ne prétend le contraire : le relais ne met aucun état de Home Assistant en cache, il n’a donc rien de périmé à vous servir. La page de statut montre ce que nous voyons.
En toute honnêteté
Le relais est un point de confiance unique. Qui le contrôle peut envoyer ces neuf appels à n’importe quelle maison appairée et voit passer les identifiants et les états des entités : depuis la version 1.3.0 de l’agent, seulement ceux des lumières, des interrupteurs, des volets et des capteurs, même quand le relais demande lui-même l’instantané, parce que l’agent filtre ses propres réponses. Depuis la version 1.4.0, c’est au relais de dire lesquelles lui parviennent : l’agent transmet les entités que le relais lui désigne comme étant sur votre plan, si bien que la promesse que rien d’autre ne passe est la nôtre, tandis que les quatre types (lumières, interrupteurs, volets et capteurs) sont la règle de l’agent lui-même depuis la version 1.3.0. Ce tiers de confiance, c’est nous, et c’est le compromis que nous vous demandons d’accepter, plutôt qu’un jeton sur chaque appareil ou un port ouvert sur votre routeur. Ce qui borne les dégâts que pourrait causer un relais compromis se trouve de votre côté, dans un code que vous pouvez lire : l’agent refuse tout ce qui sort des neuf appels, un appairage se révoque depuis Stratorama en un clic et la liaison tombe en moins d’une seconde, désinstaller l’agent (ou supprimer le volume de son conteneur Docker) efface son identifiant de connexion, et chaque action critique laisse une trace que le propriétaire peut lire. Le relais est un seul serveur, chez OVH à Gravelines, en France, avec sa base de données à côté. Et avec Home Assistant Container, vous gardez un secret de plus qu’avec Home Assistant OS : le jeton d’accès que vous avez créé pour l’agent, qui se trouve dans votre fichier compose.
Vérifiez par vous-même
- L’agent est open source, sous licence MIT : le dépôt, la liste des appels autorisés et le manifeste, avec son unique autorisation.
- Votre maison part avec vous : Compte > Vos données > Exporter en JSON vous donne tout le plan en un seul fichier, à tout moment.
- Le plan de la page d’accueil, c’est le vrai Stratorama, qui tourne sur une maison fictive, sans créer de compte.
Si une phrase de cette page n’est pas étayée par le code, écrivez à contact@stratorama.app. Nous préférons corriger la page plutôt que la défendre.