Intégration domotique Keenetic, gratuite et open source

Routeurs Keenetic : présence des appareils, santé du routeur, Internet et secours 4G, Wi-Fi invité.
Suivez votre routeur Keenetic depuis Gladys Assistant : qui est à la maison, la santé du routeur, l'état de votre connexion Internet et de son secours 4G / 5G, le Wi-Fi invité. Tout reste sur votre réseau local : l'intégration parle au routeur par RCI, l'interface JSON de son interface web, sans aucun cloud.
Développée sans le matériel : vos retours sont les bienvenus, sur les issues du projet. Cette intégration n'est pas affiliée à Keenetic Ltd.
Présentation
- Présence : chaque appareil choisi (un téléphone, un portable, un NAS filaire) devient un capteur de présence, présent tant que le routeur le voit en ligne, sur son Wi-Fi, sur un câble ou sur un répéteur mesh.
- Routeur : charge du processeur, mémoire, temps de fonctionnement, version de KeeneticOS, appareils connectés et clients Wi-Fi.
- Internet : si le routeur atteint Internet, la connexion utilisée avec ses débits descendant et montant, et, si le routeur a plusieurs connexions, si celle de secours (modem 4G / 5G, second opérateur) est établie et utilisée.
- Scènes : un appareil inconnu connecté, Internet coupé et rétabli, la bascule sur la connexion de secours et le retour sur la principale.
- Commandes, désactivées par défaut : Wi-Fi invité allumé et éteint, blocage de l'accès Internet d'un appareil (contrôle parental), redémarrage du routeur.
- Widgets : la santé du routeur, et les appareils présents.
Prérequis
- Un routeur Keenetic (Giga, Ultra, Hopper, Viva, Peak, Titan, Hero, Speedster…) sous KeeneticOS 3 ou plus récent. L'intégration a été écrite pour KeeneticOS 4 et 5.
- Gladys Assistant 5.1 ou plus récent, sur le même réseau local que le routeur.
- L'adresse locale du routeur (ex.
192.168.1.1). Une adresse KeenDNS ne fonctionne pas : l'accès à distance ne propose pas la connexion de l'interface web locale.
Créer un utilisateur dédié
Ne donnez pas le compte admin à Gladys. Dans l'interface web du routeur, ouvrez Utilisateurs et
accès (Users and access, menu Gestion), ajoutez un utilisateur, par exemple gladys, avec un mot
de passe solide, et ne cochez que Interface web (Web interface : ni CLI, ni FTP, ni VPN).
-
Lecture seule (recommandé si vous n'utilisez pas les commandes) : dans la ligne de commande du routeur (Telnet / SSH, ou la CLI web à
http://<routeur>/a), ajoutez l'étiquette de lecture seule :user gladys tag readonlysystem configuration saveLa présence, les mesures et les déclencheurs de scène fonctionnent ; le routeur refuse les commandes.
-
Avec les commandes : gardez l'utilisateur sans
readonly, puis cochez Autoriser les commandes dans la configuration de l'intégration.
Configuration
Dans Gladys : Intégrations → Keenetic → Configuration.
| Champ | À saisir |
|---|---|
| Adresse du routeur | L'adresse IP locale du routeur, avec :port si son interface web n'utilise pas le port 80. |
| Nom d'utilisateur | L'utilisateur dédié, ex. gladys. |
| Mot de passe | Son mot de passe. Il ne quitte jamais Gladys : seule une réponse à usage unique au défi du routeur circule. |
| Intervalle de rafraîchissement | 10 s, 15 s, 30 s (par défaut) ou 1 minute. Les débits sont des moyennes sur cet intervalle. |
| Délai de départ (minutes) | Un appareil qui n'est plus vu compte comme absent après ce délai (5 minutes par défaut, 0 à 60). |
| Segment invité | Vide (par défaut) : le réseau invité du routeur, trouvé automatiquement. Sinon un identifiant de segment comme Bridge1. |
| Autoriser les commandes | Désactivé par défaut. Permet aux scènes et au widget de piloter le Wi-Fi invité, de bloquer un appareil et de redémarrer le routeur. |
| Langue des noms | La langue des noms d'appareils et de fonctionnalités, fixée quand un appareil est ajouté (français par défaut). |
Cliquez ensuite sur Tester la connexion : le rapport donne le modèle, la version de KeeneticOS, les connexions Internet par priorité, les segments avec leur identifiant, l'état du Wi-Fi invité et ce que l'utilisateur ne peut pas lire.
Appareils
Ouvrez l'onglet Découverte de l'intégration : le routeur vient en premier, puis les appareils de sa table des hôtes (les enregistrés d'abord). Ajoutez ceux que vous voulez suivre.
Le routeur
| Fonctionnalité | Valeurs |
|---|---|
| Charge du processeur | % du processeur. |
| Mémoire utilisée | %, comme l'interface web la compte. |
| Temps de fonctionnement | Heures depuis le dernier démarrage. |
| Version de KeeneticOS | ex. 4.1.7. |
| Internet disponible | 1 quand le routeur atteint Internet, 0 sinon. |
| Connexion utilisée | Le nom de la connexion qui porte Internet (sa description dans le routeur), Aucune en cas de coupure. |
| Débit descendant | Mbit/s sur la connexion utilisée, en moyenne sur l'intervalle de rafraîchissement. |
| Débit montant | Mbit/s sur la connexion utilisée. |
| Connexion de secours utilisée | 1 quand Internet passe par une connexion de secours (seulement avec plusieurs connexions). |
| Connexion de secours établie | 1 quand la première connexion de secours est établie, prête à prendre le relais. |
| Clients Wi-Fi | Stations sur le Wi-Fi du routeur lui-même (pas sur les répéteurs mesh). |
| Appareils connectés | Appareils que le routeur voit en ligne. |
| Wi-Fi invité activé | 1 quand le Wi-Fi du segment invité est allumé (seulement avec un segment invité). |
Les connexions Internet sont les interfaces que le routeur utilise pour Internet, selon leur priorité dans Internet → Priorités des connexions (Connection priorities). Un tunnel VPN utilisé pour Internet (WireGuard, OpenVPN, IPsec…) n'est pas une connexion Internet à lui seul, ni un secours.
Rien n'est un interrupteur : l'état du Wi-Fi invité est en lecture seule, pour qu'un assistant vocal ou un appui malencontreux sur le tableau de bord ne coupe jamais un réseau. Les commandes passent par les actions de scène et le widget.
Appareils du réseau (présence)
Chaque appareil ajouté est un capteur de Présence : 1 présent, 0 absent. Il est présent tant que le routeur le voit en ligne (le « En ligne » de sa liste d'appareils), ou tant qu'il est associé à un point d'accès du routeur. Il devient absent une fois le délai de départ écoulé depuis la dernière fois qu'il a été vu : un téléphone en veille quitte le Wi-Fi quelques minutes sans quitter la maison. Quand le routeur ne peut pas être lu, personne n'est déclaré absent.
Widgets
- Routeur Keenetic : processeur, mémoire, débits descendant et montant, appareils connectés ; Internet avec la connexion utilisée, la connexion de secours (prête, utilisée, coupée), le Wi-Fi invité, le temps de fonctionnement et la version. Avec Autoriser les commandes, un bouton Wi-Fi invité (son icône montre l'état actuel) et un bouton Redémarrer, tous deux avec confirmation.
- Appareils présents : les appareils suivis, présents d'abord, avec le temps depuis leur départ et ceux dont l'accès Internet est bloqué. Son réglage les montre tous ou seulement les présents.
Déclencheurs de scène
| Déclencheur | Quand | Filtres et variables |
|---|---|---|
| Appareil inconnu connecté | Une adresse MAC jamais vue est en ligne. La première lecture apprend le réseau. | Filtres : réseau (domestique, invité, autre), connecté par (Wi-Fi, câble). Variables : adresse MAC, adresse IP, nom d'hôte, réseau Wi-Fi (SSID). |
| Internet coupé | Le routeur n'atteint plus Internet, par aucune connexion. | Dernière connexion utilisée. |
| Internet rétabli | Internet revient. | Connexion, durée de la coupure (minutes). |
| Bascule sur la connexion de secours | La connexion principale a lâché, Internet passe par une connexion de secours. | Connexion de secours, connexion principale. |
| Retour sur la connexion principale | Le routeur utilise de nouveau sa connexion principale. | Connexion principale, temps sur le secours (minutes). |
Une bascule sur le secours n'est pas une coupure d'Internet : « Internet coupé » ne se déclenche que quand aucune connexion ne fonctionne.
Actions de scène
Toutes nécessitent Autoriser les commandes et un utilisateur sans readonly.
- Allumer le Wi-Fi invité / Éteindre le Wi-Fi invité : tous les points d'accès du segment invité (2,4 et 5 GHz). Sortie : Wi-Fi invité activé.
- Bloquer l'Internet d'un appareil / Autoriser l'Internet d'un appareil : choisissez un appareil du réseau suivi par l'intégration. Le routeur ne peut bloquer qu'un appareil enregistré dans sa liste d'appareils : enregistrez-le d'abord dans Listes des appareils (Device lists) de l'interface web du routeur. Sortie : accès Internet bloqué.
- Redémarrer le routeur Keenetic : le réseau est coupé deux à trois minutes.
Chaque commande est relue auprès du routeur, et enregistrée dans sa configuration pour survivre à un redémarrage.
Actions de configuration
- Tester la connexion : se reconnecte et lit tout, puis donne le rapport décrit dans la section Configuration.
Exemples de scènes
- Invités : quand le mode « Invités » démarre, allumer le Wi-Fi invité ; à 23 h, l'éteindre.
- Devoirs : chaque jour d'école à 21 h, bloquer l'Internet de la tablette des enfants ; à 7 h, l'autoriser de nouveau.
- Panne : sur « Bascule sur la connexion de secours », envoyer un message « Fibre coupée, en 4G pour l'instant » et suspendre les sauvegardes cloud du NAS ; sur « Retour sur la connexion principale », les reprendre.
- Intrus : sur « Appareil inconnu connecté » avec le filtre réseau = domestique, envoyer une notification avec l'adresse MAC et le nom d'hôte.
- Personne à la maison : quand tous les téléphones suivis sont absents, éteindre les lumières et armer l'alarme par une scène de Gladys.
Usage du réseau
- Une requête groupée vers le routeur par intervalle de rafraîchissement (la charge, les interfaces, la table des hôtes, les associations Wi-Fi, l'état d'Internet et les compteurs des connexions), sur son interface web locale. Aucun quota, aucun cloud, aucune donnée envoyée hors de votre réseau.
- Une connexion par session : le routeur termine une session après quelques minutes sans usage, l'intégration se reconnecte d'elle-même.
- L'intégration ne retient sous
/dataque les adresses MAC déjà vues, pour le déclencheur « Appareil inconnu connecté ».
Dépannage
- « le routeur ne répond pas à cette adresse » : vérifiez l'adresse IP locale, et que Gladys est sur le même réseau.
- « pas d'interface web Keenetic ici » : l'adresse désigne un autre appareil, ou KeenDNS : utilisez l'adresse locale.
- « nom d'utilisateur ou mot de passe refusé par le routeur » : vérifiez-les dans Utilisateurs et accès ; l'intégration réessaie toutes les cinq minutes pour ne pas remplir le journal du routeur.
- « refusé par le routeur : l'utilisateur n'a pas ce droit » : l'utilisateur n'a pas le droit sur l'interface web, ou il est en lecture seule et une commande a été demandée.
- Enregistrez d'abord cet appareil : pour bloquer un appareil, enregistrez-le dans les listes d'appareils du routeur.
- Un téléphone apparaît absent alors qu'il est à la maison : augmentez le délai de départ ; certains téléphones endorment leur Wi-Fi longtemps.
- Plus de détails dans les logs de l'intégration avec
LOG_LEVEL=debug.
Limites
- Développée sans le matériel : testée sur de vraies réponses d'un Keenetic Ultra (KeeneticOS 5.1) et sur des réponses reconstruites d'après la documentation de KeeneticOS, pas encore sur un vrai routeur.
- KeeneticOS 5.2 ajoute des jetons d'accès pour les scripts du routeur ; l'intégration utilise la connexion de l'interface web, pas encore vérifiée sous KeeneticOS 5.2.
- HTTP simple sur le réseau local (l'interface web du routeur n'a pas de HTTPS local) ; le mot de passe ne circule jamais, mais les lectures oui.
- Les clients Wi-Fi ne comptent que les stations du routeur lui-même, pas celles des répéteurs mesh (elles sont en ligne dans les appareils connectés).
- Pas de trafic par appareil, pas de signal du modem 4G / 5G, pas de pilotage des VPN : l'intégration ne change que le Wi-Fi invité, l'accès Internet d'un appareil choisi, et redémarre le routeur.
Retours
Questions, un modèle qui répond autrement, une idée : github.com/guim31/gladys-keenetic/issues.
Paramètres de configuration
Voici les paramètres demandés par Keenetic dans son écran de configuration dans Gladys.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| Votre routeur Keenetic | section | Non | Tout Keenetic sous KeeneticOS 3 ou plus récent, par son adresse locale. Créez un utilisateur dédié avec le seul droit sur l'interface web, en lecture seule si vous n'utilisez pas les commandes (voir la documentation). |
| Adresse du routeur | string | Oui | Adresse IP locale du routeur, avec :port si son interface web n'utilise pas le port 80. Pas une adresse KeenDNS. |
| Nom d'utilisateur | string | Oui | Un utilisateur de Utilisateurs et accès, idéalement un utilisateur dédié (voir la documentation). |
| Mot de passe | secret | Non | |
| Intervalle de rafraîchissement | select | Non | Fréquence de lecture du routeur (une requête). Les débits sont des moyennes sur cet intervalle. |
| Présence | section | Non | Ajoutez les appareils à suivre depuis l'onglet Découverte : chacun devient un capteur de présence, présent tant que le routeur le voit en ligne (Wi-Fi, câble ou répéteur mesh). |
| Délai de départ (minutes) | number | Non | Un appareil qui n'est plus vu ne compte comme absent qu'après ce délai : un téléphone en veille quitte le Wi-Fi quelques minutes. |
| Commandes | section | Non | Lecture seule par défaut. Les commandes allument ou éteignent le Wi-Fi invité, bloquent ou autorisent l'accès Internet d'un appareil et redémarrent le routeur, depuis une scène ou un widget. Rien d'autre n'est jamais modifié. |
| Segment invité | string | Non | Vide : le réseau invité du routeur, trouvé automatiquement. Sinon l'identifiant d'un segment, tel que « Tester la connexion » les liste. |
| Autoriser les commandes | boolean | Non | Permet aux scènes et aux widgets d'utiliser les commandes. L'utilisateur Keenetic ne doit pas être en lecture seule. |
| Langue des noms | select | Non | Langue des noms d'appareils et de fonctionnalités, fixés quand un appareil est ajouté à Gladys. |
Comment installer Keenetic dans Gladys
- Dans Gladys, ouvrez Intégrations : Keenetic 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-keenetic: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-keenetic.
Keenetic 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
Keenetic 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