Intégration domotique TP-Link Omada, gratuite et open source

Réseau Omada : présence, bornes Wi-Fi, switchs, passerelle et WAN, PoE.
Amène votre réseau TP-Link Omada dans Gladys : qui est à la maison (les téléphones sur le Wi-Fi), l'état de vos bornes Wi-Fi, switchs et passerelle, votre connexion Internet, et quelques commandes pour vos scènes.
Sans lien avec TP-Link. Développée sans le matériel : vos retours sont les bienvenus — l'intégration est testée contre un faux contrôleur construit à partir de réponses publiées de vrais contrôleurs, pas encore contre un vrai.
Présentation
- Présence : chaque téléphone, ordinateur ou appareil connecté au réseau peut devenir un capteur de présence, avec un délai de départ pour qu'un téléphone en veille ne « parte » pas toutes les cinq minutes.
- Équipements Omada : un appareil Gladys par passerelle, switch et borne : en ligne, clients connectés, temps de fonctionnement, utilisation du processeur et de la mémoire, débit des clients, puissance PoE consommée sur un switch PoE, et pour la passerelle l'état Internet et le débit de chaque port WAN.
- Déclencheurs de scène : un nouvel appareil inconnu rejoint le réseau, un équipement Omada passe hors ligne, un port WAN perd ou retrouve Internet.
- Commandes (désactivées par défaut) : activer ou couper le PoE d'un port de switch, redémarrer un équipement Omada, activer ou désactiver un SSID (le Wi-Fi invité).
- Widget de tableau de bord : clients, débit Internet, ports WAN et équipements Omada hors ligne d'un coup d'œil.
Prérequis
- Un contrôleur Omada : Software Controller, OC200 ou OC300, joignable depuis Gladys sur le réseau local. Un contrôleur cloud peut fonctionner par son adresse Open API (non testé).
- Recommandé : l'Open API (contrôleur 5.9 ou plus). Dans le contrôleur, ouvrez Vue globale → Paramètres → Intégration de plateforme → Open API, ajoutez une application en mode Client, donnez-lui le site à suivre, et notez son ID client et son secret client. Un rôle observateur suffit pour lire ; les commandes demandent un rôle autorisé à modifier le site (administrateur).
- Ou un compte administrateur local (toute version 5.x du contrôleur) : créez un compte local dédié dans le contrôleur. Dans ce mode, l'intégration ne fait que lire : aucune commande.
Configuration
Dans Gladys, Intégrations → TP-Link Omada → Configuration :
| Champ | À renseigner |
|---|---|
| Adresse du contrôleur | https://<adresse>:8043 pour le Software Controller, https://<adresse> pour un OC200 / OC300. |
| Mode de connexion | Open API (recommandé) ou compte administrateur local (lecture seule). |
| ID client / secret client de l'Open API | L'application créée ci-dessus (mode Open API). |
| Identifiant / mot de passe du compte local | Le compte dédié (mode compte local). |
| Site | Le nom du site Omada (Default par défaut). |
| Accepter un certificat auto-signé | Le contrôleur est livré avec un certificat auto-signé : activez ceci, sauf si vous en avez installé un reconnu. |
| Omada ID | Laissez vide pour un contrôleur local. Contrôleur cloud seulement : l'Omada ID affiché sur sa page Open API. |
| Proposer les clients du réseau | Affiche les clients en ligne dans l'onglet Découverte, pour ajouter ceux à suivre. |
| Délai de départ | Minutes d'absence avant qu'un client soit déclaré parti (5 par défaut). |
| Intervalle de rafraîchissement | 30 s, 1 min (par défaut), 2 min ou 5 min. |
| Autoriser le pilotage du PoE / les redémarrages / le pilotage des SSID | Chaque commande est désactivée par défaut : n'activez que ce dont vos scènes ont besoin. |
| Langue des noms de fonctionnalités | Français par défaut ; les noms sont fixés à l'ajout d'un appareil. |
Cliquez ensuite sur Tester la connexion : le message donne le site, la version du contrôleur et ce qui a été trouvé. Ouvrez l'onglet Découverte pour ajouter les équipements Omada et les clients à suivre.
Ce que l'intégration demande au contrôleur. Une lecture du site par intervalle de rafraîchissement : la liste des équipements, les clients connectés, l'état WAN de la passerelle et la consommation PoE (4 à 6 requêtes). Les contrôleurs Omada acceptent environ 10 requêtes par seconde ; l'intégration espace ses requêtes et n'en envoie jamais plus d'une à la fois. Ouvrir un tableau de bord ne coûte rien au contrôleur : le widget montre la dernière lecture. Le jeton d'accès de l'Open API ne vit qu'en mémoire et se renouvelle avec les identifiants client à son expiration (deux heures).
Appareils
Passerelle, switch, borne (un appareil Gladys chacun, nommé comme dans le contrôleur) :
| Fonctionnalité | Unité | Équipements |
|---|---|---|
| En ligne | 0 / 1 | tous |
| Clients connectés | nombre | tous (clients connectés à l'équipement) |
| Temps de fonctionnement | heures | tous |
| Utilisation du processeur, de la mémoire | % | tous |
| Débit descendant / montant des clients | Mbit/s | switch, borne |
| Puissance PoE | W | switch PoE |
| Internet, débit descendant, débit montant, par port WAN | 0 / 1, Mbit/s | passerelle |
Le débit des clients d'un switch ou d'une borne est la somme de l'activité en temps réel des clients qui y sont connectés, telle que le contrôleur la donne — pas le trafic de son lien montant.
Client du réseau (un téléphone, un ordinateur…) : une fonctionnalité Présence
(presence-sensor, oui/non). Elle vaut 1 tant que le client est connecté, et passe à 0 une fois qu'il
a disparu depuis plus longtemps que le délai de départ. Un contrôleur qui ne répond pas ne fait jamais
partir personne : la présence n'est évaluée que sur une lecture réussie. Les clients ajoutés restent
dans l'onglet Découverte même absents.
Tout est en lecture seule : les commandes sont des actions (voir plus bas), exprès jamais des interrupteurs qu'un assistant vocal ou un clic malheureux pourrait basculer.
Widget
Réseau Omada : des tuiles pour les clients (total, Wi-Fi, filaires) et le débit Internet descendant et montant, puis l'état de chaque port WAN (avec son adresse IP publique), le nombre d'équipements Omada en ligne et le nom de ceux hors ligne. Il montre la dernière lecture et se rafraîchit avec elle.
Déclencheurs de scène
| Déclencheur | Filtres | Variables |
|---|---|---|
| Nouveau client réseau inconnu | connexion (Wi-Fi / filaire), SSID, réseau invité | nom, adresse MAC, adresse IP, SSID, connexion, connecté à |
| Équipement Omada hors ligne | équipement, type (passerelle, switch, borne) | nom de l'équipement, modèle, type |
| WAN coupé ou rétabli | changement (Internet perdu / rétabli), passerelle | changement, port WAN, passerelle, adresse IP WAN |
- Nouveau client inconnu se déclenche pour une adresse MAC jamais vue sur le site. La première
lecture après l'installation ne fait qu'apprendre les clients déjà là ; les adresses MAC connues sont
gardées dans
/data(adresses MAC seulement, rien d'autre). - Équipement hors ligne couvre tous les équipements Omada du site, même ceux non ajoutés à Gladys, et donne leur nom pour la notification.
- Seules les transitions déclenchent : un redémarrage de Gladys, de l'intégration ou du contrôleur ne déclenche jamais rien.
Commandes
Mode Open API seulement, chacune activée dans la configuration. Disponibles en boutons de l'écran de configuration et en actions de scène :
- PoE d'un port de switch : choisissez le switch, le numéro de port et activé / désactivé. Le port reçoit une surcharge de profil dans le contrôleur, car le PoE d'un port qui suit son profil ne peut pas changer. Attention : couper le PoE éteint ce que le port alimente — une caméra de sécurité, une borne, un téléphone. Réservez-le à ce que vous voulez vraiment éteindre (une borne la nuit, un appareil à redémarrer), jamais à une caméra qui protège la maison.
- Redémarrer un équipement Omada : l'équipement est hors ligne quelques minutes.
- Activer ou désactiver un SSID : tapez le nom du réseau (par exemple
Invités) ; il est activé ou désactivé sur toutes les bornes qui le diffusent.
Chaque commande écrit une ligne dans les journaux de l'intégration.
Exemples de scènes
- Personne à la maison : quand la présence de tous les téléphones vaut 0, passer la maison en mode absent, éteindre les lumières, armer l'alarme.
- Wi-Fi invité à heures fixes : chaque jour à 8 h, action de scène Activer ou désactiver un SSID →
Invités, activé ; à 23 h, désactivé. - Internet coupé : déclencheur WAN coupé ou rétabli, changement Internet perdu → envoyer un message « {{triggerEvent.data.port_name}} a perdu Internet ».
- Intrus sur le Wi-Fi : déclencheur Nouveau client réseau inconnu, SSID
Maison→ envoyer un message avec {{triggerEvent.data.name}} et {{triggerEvent.data.ip}}. - Borne éteinte la nuit : à 0 h 30, PoE d'un port de switch désactivé pour le port de la borne du jardin ; à 7 h, activé.
Dépannage
- « certificat refusé » : activez Accepter un certificat auto-signé.
- « identifiants refusés » : vérifiez l'ID et le secret client (Open API) ou l'identifiant et le mot de passe (compte local). Une application Open API supprimée ou modifiée dans le contrôleur reçoit un nouveau secret.
- « site introuvable » : le message liste les sites visibles avec ces identifiants ; recopiez le nom.
- « accès refusé » : donnez à l'application Open API (ou au compte) l'accès au site ; pour les commandes, un rôle autorisé à modifier le site.
- « ne répond pas comme un contrôleur Omada » : vérifiez le port (8043 pour le Software Controller) et que l'Open API existe (contrôleur 5.9 ou plus).
- Une commande répond une erreur sur un switch : certains switchs (série Agile) refusent la commande PoE de l'Open API ; le message du contrôleur est affiché.
- Plus de détails : mettez la variable d'environnement
LOG_LEVELàdebug. Les journaux ne contiennent jamais de secret.
Limites
- Développée sans le matériel : la forme des requêtes vient du guide d'accès de l'Open API et de clients qui fonctionnent avec de vrais contrôleurs ; les retours de terrain sont les bienvenus.
- Le mode compte local ne fait que lire : les commandes demandent l'Open API.
- La présence suit le Wi-Fi : un téléphone qui quitte le Wi-Fi en veille profonde plus longtemps que le délai est déclaré parti. Augmentez le délai si besoin.
- Les téléphones avec une adresse MAC privée (aléatoire) par réseau sont un nouveau client sur chaque réseau qu'ils rejoignent.
- Le débit des clients d'un switch ou d'une borne est la somme de l'activité de ses clients, pas un compteur de port. Les débits WAN sont ceux que donne le contrôleur.
- Les noms des fonctionnalités sont figés par Gladys à l'ajout d'un appareil : changez la langue avant de les ajouter.
- Un port WAN de passerelle qui apparaît plus tard (un nouveau WAN) fait proposer « Mettre à jour » dans l'onglet Découverte.
Paramètres de configuration
Voici les paramètres demandés par TP-Link Omada dans son écran de configuration dans Gladys.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| Contrôleur Omada | section | Non | Software Controller, OC200 ou OC300. Recommandé : l'Open API (contrôleur 5.9 ou plus), avec une application créée dans Vue globale > Paramètres > Intégration de plateforme > Open API, en mode client. Le mode compte local ne fait que lire. |
| Adresse du contrôleur | string | Oui | Avec le port : 8043 pour le Software Controller, aucun pour un OC200 ou un OC300. |
| Mode de connexion | select | Oui | |
| ID client de l'Open API | string | Non | |
| Secret client de l'Open API | secret | Non | |
| Identifiant du compte local | string | Non | Mode compte local seulement : un compte administrateur dédié du contrôleur. |
| Mot de passe du compte local | secret | Non | |
| Site | string | Non | Nom du site Omada, tel qu'affiché dans le contrôleur. |
| Accepter un certificat auto-signé | boolean | Non | Le contrôleur est livré avec un certificat auto-signé : activez ceci, sauf si vous en avez installé un reconnu. |
| Omada ID (contrôleur cloud) | string | Non | Laissez vide pour un contrôleur local. Pour un contrôleur cloud : l'Omada ID de sa page Open API, avec son adresse Open API ci-dessus. |
| Présence et rafraîchissement | section | Non | Les clients en ligne apparaissent dans l'onglet Découverte : ajoutez les téléphones à suivre, chacun devient un capteur de présence. |
| Proposer les clients du réseau en Découverte | boolean | Non | |
| Délai de départ (minutes) | number | Non | Durée d'absence avant qu'un client soit déclaré parti (un téléphone en veille quitte le Wi-Fi un moment). |
| Intervalle de rafraîchissement | select | Non | |
| Commandes (désactivées par défaut) | section | Non | Mode Open API seulement, avec une application autorisée en écriture. Couper le PoE d'un port éteint ce qu'il alimente : une caméra de sécurité, une borne. N'activez que ce dont vos scènes ont besoin. |
| Autoriser le pilotage du PoE | boolean | Non | |
| Autoriser les redémarrages | boolean | Non | |
| Autoriser le pilotage des SSID | boolean | Non | |
| Langue des noms de fonctionnalités | select | Non | Sert aussi aux messages de l'intégration. Les noms sont fixés à l'ajout d'un appareil. |
Comment installer TP-Link Omada dans Gladys
- Dans Gladys, ouvrez Intégrations : TP-Link Omada apparaît dans le catalogue, aux côtés des intégrations natives, avec un badge communautaire.
- Cliquez sur Installer. Gladys télécharge l'image Docker (
ghcr.io/guim31/gladys-omada:1.0.1), la démarre dans un bac à sable isolé du cœur, et génère l'interface de l'intégration (appareils, découverte et configuration). - Ouvrez l'écran Configuration de l'intégration, remplissez les paramètres, puis enregistrez.
- Vous pouvez aussi l'installer directement depuis l'URL de son dépôt : https://github.com/guim31/gladys-omada.
TP-Link Omada nécessite Gladys >=5.1.0. Le catalogue dans Gladys se rafraîchit toutes les heures : une nouvelle version est donc disponible au plus tard une heure après sa sortie.
Vous n'utilisez pas encore Gladys ? C'est gratuit et open source : suivez le guide d'installation pour démarrer.
À propos des intégrations externes
TP-Link Omada est une intégration externe : une intégration communautaire empaquetée dans un conteneur Docker et publiée sur GitHub, que Gladys installe en un clic et exécute dans un bac à sable isolé de son cœur. Elle est publiée et maintenue par guim31, et non par l'équipe cœur de Gladys.
- Parcourir toutes les intégrations, natives et communautaires
- Créer et publier votre propre intégration externe
- Code source sur GitHub — source de cette documentation