Aller au contenu principal

Intégration domotique Keenetic, gratuite et open source

Intégration Keenetic pour Gladys Assistant

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 readonly
    system configuration save

    La 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 routeurL'adresse IP locale du routeur, avec :port si son interface web n'utilise pas le port 80.
Nom d'utilisateurL'utilisateur dédié, ex. gladys.
Mot de passeSon mot de passe. Il ne quitte jamais Gladys : seule une réponse à usage unique au défi du routeur circule.
Intervalle de rafraîchissement10 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 commandesDé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 nomsLa 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 fonctionnementHeures depuis le dernier démarrage.
Version de KeeneticOSex. 4.1.7.
Internet disponible1 quand le routeur atteint Internet, 0 sinon.
Connexion utiliséeLe nom de la connexion qui porte Internet (sa description dans le routeur), Aucune en cas de coupure.
Débit descendantMbit/s sur la connexion utilisée, en moyenne sur l'intervalle de rafraîchissement.
Débit montantMbit/s sur la connexion utilisée.
Connexion de secours utilisée1 quand Internet passe par une connexion de secours (seulement avec plusieurs connexions).
Connexion de secours établie1 quand la première connexion de secours est établie, prête à prendre le relais.
Clients Wi-FiStations sur le Wi-Fi du routeur lui-même (pas sur les répéteurs mesh).
Appareils connectésAppareils 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éclencheurQuandFiltres 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établiInternet revient.Connexion, durée de la coupure (minutes).
Bascule sur la connexion de secoursLa connexion principale a lâché, Internet passe par une connexion de secours.Connexion de secours, connexion principale.
Retour sur la connexion principaleLe 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 /data que 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ètreTypeObligatoireDescription
Votre routeur KeeneticsectionNonTout 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 routeurstringOuiAdresse IP locale du routeur, avec :port si son interface web n'utilise pas le port 80. Pas une adresse KeenDNS.
Nom d'utilisateurstringOuiUn utilisateur de Utilisateurs et accès, idéalement un utilisateur dédié (voir la documentation).
Mot de passesecretNon
Intervalle de rafraîchissementselectNonFréquence de lecture du routeur (une requête). Les débits sont des moyennes sur cet intervalle.
PrésencesectionNonAjoutez 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)numberNonUn 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.
CommandessectionNonLecture 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éstringNonVide : le réseau invité du routeur, trouvé automatiquement. Sinon l'identifiant d'un segment, tel que « Tester la connexion » les liste.
Autoriser les commandesbooleanNonPermet aux scènes et aux widgets d'utiliser les commandes. L'utilisateur Keenetic ne doit pas être en lecture seule.
Langue des nomsselectNonLangue des noms d'appareils et de fonctionnalités, fixés quand un appareil est ajouté à Gladys.

Comment installer Keenetic dans Gladys​

  1. Dans Gladys, ouvrez Intégrations : Keenetic apparaît dans le catalogue, aux côtés des intégrations natives, avec un badge communautaire.
  2. 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).
  3. Ouvrez l'écran Configuration de l'intégration, remplissez les paramètres, puis enregistrez.
  4. 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.

Inscrivez-vous à la newsletter Gladys Assistant

Quelques emails par mois sur les nouveautés et l'actualité du projet. Envoyés par Pierre-Gilles Leymarie, le fondateur du projet. Désinscription possible à tout moment 🙂