Aller au contenu principal

Intégration domotique n8n, gratuite et open source

Intégration n8n pour Gladys Assistant

Vos workflows n8n dans Gladys : lancez-les depuis une scène, réagissez quand l'un échoue.

n8n est un outil d'automatisation de workflows que l'on peut héberger soi-même : des nœuds reliés entre eux récupèrent des données, appellent des services, envoient des messages. Cette intégration amène vos workflows n8n dans Gladys : chaque workflow devient un appareil avec son état (actif ou non, dernière exécution réussie ou en échec, échecs des dernières 24 heures), les scènes peuvent lancer un workflow par son nœud Webhook et utiliser sa réponse, réagir quand n'importe quelle exécution échoue ou quand n8n ne répond plus, et un widget de tableau de bord liste d'abord les workflows en échec.

Testée contre un vrai n8n 2.43 auto-hébergé (Docker) ; pas sur n8n Cloud (même API, non testé) : vos retours sont les bienvenus sur les issues.

Ce qu'il faut​

  • Gladys Assistant 5.1.0 ou plus récent.
  • n8n 1.x ou 2.x, auto-hébergé, joignable depuis la machine de Gladys (n8n Cloud devrait fonctionner aussi : même API).
  • Une clé d'API n8n (Settings → n8n API). L'API publique ne doit pas être désactivée (N8N_PUBLIC_API_DISABLED).

À chaque actualisation (une minute par défaut), l'intégration envoie quatre requêtes à l'API de n8n, et quelques-unes de plus la première fois. n8n ne limite pas le débit de son API ; sur n8n Cloud, vérifiez les limites de votre offre.

Mise en route​

1. Créer une clé d'API​

Dans n8n, ouvrez Settings → n8n API, cliquez sur Create an API key, donnez-lui un nom (Gladys) et aucune expiration, puis copiez la clé : n8n ne l'affiche qu'une fois. Si votre n8n permet de choisir les droits (scopes) de la clé, cochez workflow:list, workflow:activate, workflow:deactivate, execution:list et execution:read. La clé voit les workflows de son propriétaire.

2. Configurer l'intégration​

Dans Gladys, ouvrez la configuration de l'intégration n8n :

  • Adresse de n8n : l'adresse avec laquelle vous ouvrez n8n, par exemple http://192.168.1.2:5678. Une adresse IP seule reçoit le port 5678. Une URL copiée depuis le navigateur convient aussi.
  • Clé d'API : la clé de l'étape 1.
  • Intervalle d'actualisation : de 30 secondes à 5 minutes.
  • Autoriser l'activation des workflows depuis Gladys : désactivé par défaut, voir plus bas.
  • Langue des noms : langue des noms des fonctionnalités, des états et des résultats de scène.

Cliquez sur Tester la connexion : elle affiche les workflows, les actifs et les échecs des dernières 24 heures.

3. Ajouter les workflows​

Ouvrez l'onglet Découverte de l'intégration et ajoutez les workflows à suivre, ainsi que l'appareil n8n si vous voulez les chiffres de toute l'instance. Rien n'est ajouté à votre place. Les déclencheurs de scène fonctionnent pour tous les workflows, ajoutés ou non.

Les appareils​

Chaque workflow (hors workflows archivés) donne un appareil :

FonctionnalitéValeur
Actifle workflow est actif (publié) ou non
Dernière exécutionRéussi, En échec, Planté, Annulé, En attente, En cours…
FonctionneNon si la dernière exécution a échoué, Oui sinon (vert / rouge)
Échecs sur 24 hexécutions en échec sur les dernières 24 heures
Dernier lancementdébut de la dernière exécution, jour/mois heures:minutes
Durée de la dernière exécutionen secondes

L'interrupteur Actif ne fait qu'afficher l'état par défaut. Avec Autoriser l'activation des workflows depuis Gladys, il active et désactive le workflow : cliquez sur Mettre à jour sur les appareils de l'onglet Découverte après avoir changé l'option.

L'appareil n8n donne les Workflows actifs, les Échecs sur 24 h et les Workflows au total.

Tableau de bord​

Le widget Workflows n8n affiche trois tuiles (workflows actifs, échecs sur 24 heures, exécutions en cours), puis une ligne par workflow : ceux en échec d'abord, puis ceux en cours, puis les autres, avec l'état de la dernière exécution, son heure de début et les échecs du jour. Par défaut, il liste les workflows actifs ; choisissez-en d'autres dans ses réglages (appareils ajoutés à Gladys). Le bouton Actualiser relit n8n.

Scènes​

Déclencheurs​

  • Une exécution de workflow échoue : une exécution se termine en erreur (ou plante). Filtre : les workflows (vide : tous). Informations transmises : nom du workflow, message d'erreur, nœud en échec, numéro de l'exécution, lien vers l'exécution dans n8n.
  • n8n est injoignable : deux lectures de suite ont échoué. Information transmise : la raison.
  • n8n répond de nouveau : après avoir été injoignable, avec la durée de la panne en minutes.

La première lecture ne fait que noter ce qui s'est déjà passé : rien n'est annoncé pour le passé. Un échec survenu pendant un redémarrage de Gladys ou de l'intégration est annoncé une fois, à la lecture suivante.

Actions​

  • Lancer un workflow n8n : l'API de n8n ne sait pas lancer un workflow, son nœud Webhook si. Dans n8n, ajoutez un nœud déclencheur Webhook, réglez sa HTTP Method sur POST, donnez-lui un Path (gladys-bonjour) et activez le workflow. Dans la scène, indiquez ce chemin (ou l'URL de production entière du nœud) et un corps : du JSON comme {"piece": "salon"}, ou un texte envoyé sous la forme {"text": "…"} ; les valeurs de la scène peuvent y être insérées. Résultats : réponse réussie, statut HTTP (0 sans réponse sous 25 secondes), message répondu (le champ message ou text de la réponse), réponse complète. Pour obtenir une réponse, réglez Respond sur « When Last Node Finishes » ou utilisez un nœud « Respond to Webhook » ; un workflow de plus de 25 secondes doit répondre tout de suite.
  • État d'un workflow : actif ou non, dernière exécution en échec ou non, état, échecs sur 24 h, dernier lancement, durée, dernière erreur et une phrase toute faite, pour les actions suivantes (un message, une condition).
  • Activer un workflow / Désactiver un workflow : par exemple un workflow qui ne doit tourner que pendant les vacances. Ces actions fonctionnent quelle que soit l'option de l'interrupteur.

Idées de scènes​

  • Une exécution de workflow échoue → envoyer un message : « n8n : {workflow} a échoué dans {nœud} : {erreur} » avec le lien vers l'exécution.
  • Un bouton du tableau de bord ou « Je pars » → Lancer un workflow n8n gladys-depart avec {"utilisateur": "…"}, puis envoyer le Message répondu par le workflow.
  • n8n est injoignable → envoyer un message et allumer une lumière du bureau.
  • Chaque matin → État d'un workflow « Sauvegarde de nuit » → continuer seulement si « Dernière exécution en échec » est vrai → envoyer la Phrase.

Dépannage​

  • Clé d'API refusée : la clé a été supprimée, a expiré ou a été copiée incomplètement. Créez-en une nouvelle.
  • Refusé par n8n : il manque un droit à la clé d'API : donnez à la clé les droits de l'étape 1, ou utilisez une clé du propriétaire du workflow.
  • Aucune API n8n à cette adresse : vérifiez l'adresse (port 5678 par défaut) et que l'API publique est activée. Derrière un proxy inverse avec un sous-chemin, mettez le sous-chemin dans l'adresse.
  • L'adresse redirige : saisissez l'adresse en https://.
  • Certificat refusé : un certificat auto-signé n'est pas accepté ; utilisez l'adresse en http:// sur le réseau local.
  • Le webhook répond 404 « not registered » : le workflow n'est pas actif, le chemin est faux, ou le nœud Webhook n'accepte pas POST. Une URL de test (/webhook-test/) ne marche que pendant que l'éditeur écoute.
  • Aucun échec n'est vu : n8n doit enregistrer les exécutions en échec (EXECUTIONS_DATA_SAVE_ON_ERROR, activé par défaut). Des exécutions réussies non enregistrées (EXECUTIONS_DATA_SAVE_ON_SUCCESS=none) laissent « Dernière exécution » sur le dernier échec.
  • Logs : dans Gladys, la page de l'intégration montre les logs de son conteneur ; LOG_LEVEL=debug détaille chaque lecture.

Limites​

  • Une instance n8n par configuration ; la clé voit les workflows de son propriétaire.
  • Les workflows ne sont ni créés ni modifiés depuis Gladys.
  • La première lecture compte au plus 500 exécutions en échec des dernières 24 heures, et au plus 10 échecs sont annoncés par lecture.
  • Le corps du webhook est en JSON seulement ; les webhooks protégés par en-tête ou par authentification basique ne sont pas pris en charge (utilisez un chemin difficile à deviner).
  • n8n Cloud n'est pas testé.

Paramètres de configuration​

Voici les paramètres demandés par n8n dans son écran de configuration dans Gladys.

ParamètreTypeObligatoireDescription
Votre n8nsectionNonDans n8n, ouvrez Settings → n8n API, créez une clé d'API et collez-la ci-dessous avec l'adresse de n8n. Ajoutez ensuite les workflows à suivre depuis l'onglet Découverte.
Adresse de n8nstringNonL'adresse avec laquelle vous ouvrez n8n. Le port 5678 est ajouté à une adresse IP seule.
Clé d'APIsecretNonCréée dans Settings → n8n API. Elle voit les workflows de son propriétaire.
OptionssectionNon
Intervalle d'actualisationselectNonLa fréquence de lecture de n8n : au moins quatre requêtes d'API à chaque fois.
Autoriser l'activation des workflows depuis GladysbooleanNonDésactivé : l'interrupteur Actif ne fait qu'afficher l'état. Activé : il active et désactive le workflow (cliquez ensuite sur Mettre à jour dans l'onglet Découverte).
Langue des nomsselectNonLangue des noms des fonctionnalités (fixés à l'ajout d'un appareil), des états et des résultats de scène.

Comment installer n8n dans Gladys​

  1. Dans Gladys, ouvrez Intégrations : n8n 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-n8n:1.0.0), 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-n8n.

n8n 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​

n8n 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 🙂