Aller au contenu principal

Intégration domotique Discord, gratuite et open source

Intégration Discord pour Gladys Assistant

Connecteur non officiel : parlez à Gladys et recevez ses notifications via votre bot Discord.

Connecteur non officiel, sans lien avec Discord. Il fait d'un bot Discord que vous créez un canal de messagerie de Gladys, comme celui de Telegram : vous parlez à Gladys en message privé avec votre bot, et Gladys vous y répond et vous y notifie. Discord est une marque de Discord Inc.

Ce que vous obtenez​

ÉlémentContenu
Discussion avec Gladyschaque message privé envoyé au bot va à Gladys, la réponse revient dans la même conversation
Notificationsles messages que Gladys vous envoie (action de scène « Envoyer un message », images de caméra, messages système) arrivent en messages privés Discord
Déclencheur de scèneCommande Discord reçue : un message privé qui commence par !, comme !garage ouvre, lance vos scènes au lieu d'aller à l'assistant
Action de scènePublier dans un salon Discord : un texte dans un salon d'un serveur (un serveur familial, un salon de journal de la maison…)
Configurationle bouton Tester le bot vérifie le jeton, la connexion et le salon par défaut, et donne le lien d'invitation du bot

Installation​

Créer le bot​

  1. Ouvrez le Discord Developer Portal et cliquez sur New Application. Donnez-lui un nom, par exemple « Gladys ».
  2. Ouvrez la page Bot et cliquez sur Reset Token, puis copiez le jeton. C'est le mot de passe de votre bot : ne le partagez jamais. Vous pouvez aussi désactiver Public Bot, pour être seul à pouvoir l'inviter.
  3. Laissez désactivés les trois Privileged Gateway Intents : l'intégration ne lit que les messages privés, et Discord en transmet le texte à un bot sans aucun intent privilégié (l'intent « Message Content » ne sert qu'aux messages des serveurs).

Le relier à Gladys​

  1. Dans Gladys, collez le jeton dans Jeton du bot et enregistrez. Le statut affiche « Connecté en tant que … » après quelques secondes.
  2. Cliquez sur Tester le bot : le résultat se termine par le lien d'invitation de votre bot.

L'inviter sur un serveur dont vous êtes membre​

Discord ne laisse un bot et une personne échanger des messages privés que s'ils partagent un serveur.

  1. Ouvrez le lien d'invitation et choisissez un serveur dont vous êtes membre. Pas de serveur à vous ? Dans Discord, cliquez sur + puis Créer le mien : un serveur privé avec vous seul (et votre famille) convient parfaitement. Ce lien est celui que construirait la page OAuth2 → URL Generator du portail avec la portée bot et les permissions Voir les salons, Envoyer des messages et Joindre des fichiers.
  2. Vérifiez que les membres de ce serveur peuvent vous écrire en privé : nom du serveur → Paramètres de confidentialité → Messages privés activés.

Lier votre compte Discord​

  1. Dans Gladys, sur la page de l'intégration, cliquez sur Générer un code de liaison dans le bloc Lier mon compte : un code de 8 caractères s'affiche (il ne sert qu'une fois, pendant 15 minutes).
  2. Dans Discord, ouvrez une conversation privée avec le bot (cliquez sur son nom dans la liste des membres du serveur, puis Message) et envoyez le code. Le bot répond « Compte lié ! Bonjour … ».

Chaque utilisateur de Gladys qui veut Discord fait de même avec son propre compte Discord. Un utilisateur peut délier son compte depuis le même bloc à tout moment.

Parler à Gladys​

  • Chaque message privé d'un compte lié va à Gladys, avec l'autorité de l'utilisateur Gladys lié, exactement comme le chat de Gladys. Comme le chat de Gladys, l'assistant a besoin de Gladys Plus : sans lui, Gladys répond que Gladys Plus est requis (les commandes ! ci-dessous fonctionnent sans).
  • Les réponses et les notifications arrivent dans la même conversation. Un texte plus long que les 2 000 caractères d'un message Discord est découpé, et une image de caméra arrive en image.
  • Un compte non lié reçoit les instructions de liaison, rien d'autre.

Commandes de scène avec !​

Un message privé qui commence par ! n'est pas envoyé à l'assistant : il déclenche le déclencheur de scène Commande Discord reçue, et le bot confirme « Commande « garage » transmise à vos scènes ». Seuls les comptes liés peuvent le faire.

  • Le filtre Commande est le mot juste après le !. Gladys le compare exactement : saisissez-le donc en minuscules et sans accents. L'intégration met en minuscules et retire les accents de ce que vous envoyez, si bien que !Garage, !garage et !GARAGE correspondent tous au filtre garage. Laissez le filtre vide pour réagir à toutes les commandes.
  • La scène peut utiliser les détails du message : la commande, le texte qui la suit (!garage ouvre donne ouvre), le message complet, l'utilisateur Gladys (prénom et sélecteur) et l'utilisateur Discord (identifiant et nom).

Par exemple : déclencheur Commande Discord reçue avec la commande garage, puis l'action qui ouvre la porte du garage ; vous l'ouvrez en envoyant !garage au bot.

Publier dans un salon de serveur​

L'action de scène Publier dans un salon Discord publie un texte dans un salon d'un serveur dont le bot est membre. Donnez-lui l'identifiant du salon, ou remplissez Identifiant du salon par défaut dans la configuration et laissez le champ vide. Pour copier un identifiant, activez le Mode développeur (paramètres Discord → Avancés), puis clic droit sur le salon → Copier l'identifiant du salon. Le bot a besoin des permissions Voir le salon et Envoyer des messages dans ce salon. L'action renvoie l'identifiant du message publié.

Options​

  • Identifiants Discord autorisés : une liste de sécurité. Si elle est remplie, le bot ignore les messages privés de toute autre personne, codes de liaison compris, sans répondre. Clic droit sur un utilisateur → Copier l'identifiant de l'utilisateur (Mode développeur).
  • Identifiant du salon par défaut : le salon de l'action Publier dans un salon Discord quand l'action n'en précise aucun.

En cas de problème​

  • « Discord a refusé le jeton du bot » : le jeton a été régénéré ou mal copié. Cliquez sur Reset Token dans le portail, collez le nouveau et enregistrez.
  • Le bot ne répond pas : vérifiez le statut de l'intégration, la liste des identifiants autorisés, et que le bot est sur un serveur que vous partagez. Un message d'un compte non lié reçoit les instructions de liaison.
  • « Discord refuses to deliver a direct message » : la personne ne partage plus de serveur avec le bot, ou bloque les messages privés des membres de ce serveur.
  • « Ce code est invalide ou expiré » : un code ne sert qu'une fois, pendant 15 minutes ; générez-en un nouveau.
  • Une courte perte de connexion à Discord est normale : l'intégration reprend la session d'elle-même, et ne la signale qu'au bout de 30 secondes.
  • Journaux : le niveau de journalisation de l'intégration se règle avec la variable LOG_LEVEL.

Confidentialité​

Le jeton du bot est stocké chiffré par Gladys et n'est envoyé qu'à Discord. Vos messages transitent par Discord comme tout message Discord. L'intégration n'écrit rien sur le disque : Gladys ne garde que le lien entre un identifiant Discord et un utilisateur Gladys, que vous pouvez supprimer depuis le bloc Lier mon compte.

Paramètres de configuration​

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

ParamètreTypeObligatoireDescription
Discord dans GladyssectionNonConnecteur non officiel, sans lien avec Discord. Un bot Discord que vous créez devient un canal de discussion de Gladys : chaque utilisateur de Gladys lie son compte Discord une fois, puis parle à Gladys en message privé avec le bot et y reçoit ses réponses et notifications. Créez le bot sur le Discord Developer Portal (New Application, puis Bot, puis Reset Token), collez son jeton ci-dessous, enregistrez, et utilisez le lien d'invitation donné par le bouton « Tester le bot » pour l'ajouter à un serveur dont vous êtes membre.
Jeton du botsecretOuiDeveloper Portal → votre application → Bot → Reset Token. Stocké chiffré par Gladys ; ne le partagez jamais.
Lier votre compte DiscordsectionNonChaque utilisateur de Gladys clique sur « Générer un code de liaison » dans le bloc « Lier mon compte » et envoie le code de 8 caractères au bot en message privé Discord (un code ne sert qu'une fois, pendant 15 minutes). Ensuite, les messages envoyés au bot vont à Gladys, qui y répond. Un message qui commence par ! (comme « !garage ouvre ») n'est pas envoyé à l'assistant : il déclenche à la place le déclencheur de scène « Commande Discord reçue ».
Identifiants Discord autorisés (facultatif)stringNonListe de sécurité : si elle est remplie, le bot ignore les messages privés de toute autre personne, codes de liaison compris. Identifiants séparés par des virgules (Discord : Paramètres → Avancés → Mode développeur, puis clic droit sur un utilisateur → Copier l'identifiant).
Identifiant du salon par défaut (facultatif)stringNonSalon utilisé par l'action de scène « Publier dans un salon Discord » quand elle n'en précise pas (clic droit sur le salon → Copier l'identifiant). Le bot doit être membre de ce serveur.

Comment installer Discord dans Gladys​

  1. Dans Gladys, ouvrez Intégrations : Discord 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/lm1lc3n7/gladys-discord: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).
  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/LM1LC3N7/gladys-discord.

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

Discord 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.

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 🙂