Intégration domotique Public IP, gratuite et open source

Connecteur non officiel : IP publique, changement d'IP, coupures, mise à jour Duck DNS/Cloudflare.
Connecteur non officiel, sans lien avec ipify, icanhazip, ident.me, Duck DNS ni Cloudflare. Il donne à Gladys l'adresse publique de votre maison (IPv4, et IPv6 si disponible), prévient vos scènes quand elle change ou quand Internet est coupé, et peut garder un nom Duck DNS ou Cloudflare pointé vers votre maison. Aucun compte nécessaire pour la détection.
Ce que vous obtenez
| Surface | Contenu |
|---|---|
| L'appareil Internet | Internet connecté (oui / non), IPv4 publique, IPv6 publique |
| Déclencheurs de scène | IP publique changée (IPv4, IPv6 ou les deux ; ancienne et nouvelle adresse), Internet coupé, Internet rétabli (avec la durée de la coupure) |
| Actions de scène | lire l'IP publique (IPv4, IPv6, dernier changement, connecté), mettre à jour le DNS maintenant |
| Widget | IP publique : la connexion, les adresses, depuis quand elles n'ont pas changé, l'état de chaque fournisseur DNS, un bouton « Mettre à jour le DNS » |
| DNS dynamique (facultatif) | Duck DNS et Cloudflare, mis à jour au démarrage et à chaque changement d'adresse |
Mise en place
- Installez l'intégration. La vérification démarre aussitôt.
- Ouvrez Découverte et ajoutez l'appareil Internet pour voir la connexion et les adresses sur la page de l'appareil.
- Facultatif : ajoutez le widget IP publique à un tableau de bord.
- Facultatif : remplissez la section Duck DNS ou Cloudflare (ci-dessous), enregistrez, puis appuyez sur Tester la détection et le DNS pour tout vérifier sans rien écrire.
L'adresse est vérifiée toutes les 5 minutes (option Intervalle de vérification, de 1 à 60). Chaque vérification est une toute petite requête à l'un de trois services gratuits (ipify, icanhazip, ident.me), à tour de rôle. Une nouvelle adresse n'est retenue que lorsque deux services différents donnent la même : un service en panne ne peut pas déclencher un faux « IP publique changée ».
IPv6 : un conteneur Docker n'a généralement pas d'IPv6. L'intégration le signale alors calmement dans son statut (« IPv6 n'est pas disponible depuis le conteneur ») et réessaie toutes les 30 minutes ; rien d'anormal. Désactivez Détecter aussi l'IPv6 publique pour ne plus essayer.
DNS dynamique
Duck DNS
- Connectez-vous sur duckdns.org, créez un
sous-domaine (
mamaisondonnemamaison.duckdns.org) et copiez le jeton (token) affiché sur la page. - Dans la configuration, saisissez le ou les sous-domaines (séparés par des virgules) et collez le jeton.
- Envoyer aussi l'IPv6 est désactivé par défaut : un nom IPv6 n'aide que si votre box laisse entrer l'IPv6, sinon il peut casser l'accès en IPv4.
Duck DNS est mis à jour une fois au démarrage, puis seulement quand l'adresse change. Duck DNS n'a pas de mode test : le bouton de test vérifie seulement les champs.
Cloudflare
- Dans le tableau de bord Cloudflare, My Profile → API Tokens → Create Token, modèle Edit zone DNS, limité à votre zone. Copiez le jeton.
- Créez les enregistrements à suivre (type A, et AAAA pour l'IPv6) dans la page DNS de la zone, avec n'importe quelle adresse : l'intégration ne crée ni ne supprime jamais d'enregistrement, elle change seulement l'adresse des enregistrements existants. Le proxy (nuage orange) et le TTL sont conservés tels quels.
- Dans la configuration, collez le jeton, saisissez la zone (
exemple.fr, ou son Zone ID depuis la page Overview de la zone) et les noms des enregistrements (maison.exemple.fr, vpn— un nom court est complété par la zone,@désigne la zone elle-même). - Appuyez sur Tester la détection et le DNS : il affiche l'état du jeton et, pour chaque enregistrement, s'il est à jour ou serait mis à jour.
Une mise à jour qui échoue est retentée après 2, 4, 8… minutes, au plus toutes les heures. Un jeton refusé arrête les mises à jour jusqu'au prochain enregistrement de la configuration ; le bouton Mettre à jour le DNS essaie toujours.
Scènes
- IP publique changée : laissez la version vide pour les deux, ou
choisissez IPv4 ou IPv6. Variables :
family(ipv4ouipv6),old_ip,new_ip. Exemple : vous envoyer la nouvelle adresse, redémarrer un VPN. - Internet coupé : aucun service n'a répondu au nombre choisi de
vérifications de suite (2 par défaut ; tant que les vérifications échouent,
elles ont lieu chaque minute). Variables :
lost_at,ipv4(la dernière adresse connue). - Internet rétabli : les services répondent de nouveau. Variables :
duration_minutes,lost_at,ipv4.
L'action lire l'IP publique donne ipv4, ipv6, last_change et
online ; mettre à jour le DNS maintenant donne success, updated et
error.
La première vérification après un démarrage ne fait qu'apprendre l'adresse ; après un redémarrage, l'adresse gardée par l'appareil Internet est comparée à la nouvelle, si bien qu'un changement pendant une coupure de courant est quand même annoncé.
Dépannage
- « Les services d'IP ne sont pas d'accord » : votre connexion sort par plusieurs adresses (répartition de charge, VPN). L'adresse est conservée jusqu'à ce que deux services soient d'accord.
- « Derrière un NAT d'opérateur » : votre opérateur partage une adresse publique entre plusieurs clients. Un nom DNS ne peut pas atteindre votre maison ; demandez à votre opérateur une IPv4 dédiée (« full stack »), ou utilisez l'IPv6.
- Internet coupé alors qu'il fonctionne : un pare-feu ou un bloqueur de
publicités bloque peut-être les trois services (
api.ipify.org,ipv4.icanhazip.com,4.ident.me). - Duck DNS a répondu KO : le jeton ou un sous-domaine est faux.
- Cloudflare : zone introuvable : vérifiez le nom, ou collez plutôt le Zone ID (certains jetons ne peuvent pas lister les zones).
- Journaux : le niveau de journalisation se règle avec la variable
LOG_LEVEL. Les adresses et les jetons n'apparaissent jamais dans les journaux.
Confidentialité
Les services d'IP voient l'adresse de votre maison (c'est ce qu'ils
renvoient), rien d'autre. Duck DNS et Cloudflare reçoivent les adresses que
vous leur demandez de publier. Les jetons sont stockés par Gladys comme
secrets et envoyés seulement à leur propre service : Duck DNS dans sa requête
de mise à jour, Cloudflare dans l'en-tête Authorization.
Paramètres de configuration
Voici les paramètres demandés par Public IP dans son écran de configuration dans Gladys.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| Votre adresse IP publique dans Gladys | section | Non | Connecteur non officiel, sans lien avec ipify, icanhazip, ident.me, Duck DNS ni Cloudflare. Aucun compte nécessaire : l'adresse publique de votre maison est demandée tour à tour à trois services d'IP gratuits, et un changement n'est retenu que lorsque deux d'entre eux sont d'accord. Vous obtenez un appareil « Internet » (connecté, IPv4, IPv6) à ajouter depuis Découverte, les déclencheurs de scène « IP publique changée », « Internet coupé » et « Internet rétabli », deux actions de scène et un widget. En option, un nom Duck DNS ou Cloudflare suit l'adresse (sections ci-dessous). |
| Intervalle de vérification (minutes) | number | Non | Fréquence de vérification de l'adresse publique. Une petite requête par vérification ; chaque minute tant qu'Internet semble coupé. |
| Vérifications en échec avant « Internet coupé » | number | Non | Internet est déclaré coupé quand aucun service d'IP ne répond à autant de vérifications de suite. |
| Détecter aussi l'IPv6 publique | boolean | Non | Ne fonctionne que si le conteneur a l'IPv6 (un pont Docker ne l'a généralement pas : c'est alors signalé calmement et revérifié toutes les 30 minutes). |
| Duck DNS (facultatif) | section | Non | Garde un nom.duckdns.org pointé vers votre maison. Indiquez les sous-domaines et le jeton affiché sur duckdns.org une fois connecté ; laissez-les vides pour désactiver. Le nom est mis à jour au démarrage et à chaque changement d'adresse. |
| Sous-domaines Duck DNS | string | Non | Séparés par des virgules, avec ou sans .duckdns.org. |
| Jeton Duck DNS | secret | Non | |
| Envoyer aussi l'IPv6 à Duck DNS (AAAA) | boolean | Non | Désactivé par défaut : un nom IPv6 n'est utile que si votre box laisse entrer l'IPv6. |
| DNS Cloudflare (facultatif) | section | Non | Garde des enregistrements A / AAAA d'un domaine géré par Cloudflare pointés vers votre maison. Créez un jeton d'API à partir du modèle « Edit zone DNS », limité à cette zone. Seule l'adresse (contenu) des enregistrements existants change : leur proxy et leur TTL sont conservés, aucun enregistrement n'est jamais créé ni supprimé. Laissez les champs vides pour désactiver. |
| Jeton d'API Cloudflare | secret | Non | |
| Zone (nom de domaine ou Zone ID) | string | Non | |
| Noms des enregistrements à mettre à jour | string | Non | Séparés par des virgules : noms complets, nom relatif à la zone, ou @ pour la zone elle-même. |
Comment installer Public IP dans Gladys
- Dans Gladys, ouvrez Intégrations : Public IP 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/lm1lc3n7/gladys-public-ip:0.1.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/LM1LC3N7/gladys-public-ip.
Public IP 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
Public IP 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 LM1LC3N7, 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