Aller au contenu principal

Intégration domotique PrusaLink, gratuite et open source

Intégration PrusaLink pour Gladys Assistant

Suivez vos imprimantes 3D Prusa en local par PrusaLink : progression, températures, alertes.

Suivez vos imprimantes 3D Prusa depuis Gladys grâce à PrusaLink, l'interface web locale intégrée au firmware des imprimantes Prusa récentes (et installée sur un Raspberry Pi pour la MK3S+). Tout reste sur votre réseau local : Gladys parle directement à l'imprimante, aucun compte Prusa Connect n'est nécessaire.

Développée sans le matériel : vos retours sont les bienvenus. L'intégration a été construite à partir de la description de l'API PrusaLink, de l'intégration Home Assistant et de ses réponses enregistrées, et testée contre un simulateur qui s'authentifie comme le firmware de l'imprimante. Elle n'a pas encore été essayée sur une vraie imprimante : dites-nous sur le forum Gladys comment elle se comporte avec la vôtre.

Prérequis​

  • Gladys Assistant 5.1 ou plus récent.
  • Une imprimante Prusa avec PrusaLink : MK4, MK4S, MK3.9, MK3.5, Core One, XL ou MINI+ avec un firmware 5.0 ou plus (6.x conseillé), reliée à votre réseau en Wi-Fi ou Ethernet ; ou une MK3S+ avec PrusaLink sur un Raspberry Pi.
  • PrusaLink activé sur l'imprimante : Réglages → Réseau → PrusaLink. Le même écran affiche le mot de passe (utilisateur maker).
  • L'imprimante joignable depuis la machine Gladys (même réseau, ou routé).

Configuration​

  1. Sur l'imprimante, ouvrez Réglages → Réseau : notez son adresse IP, activez PrusaLink et notez son mot de passe. Une adresse IP fixe (une réservation DHCP dans votre box) évite de perdre l'imprimante plus tard.
  2. Dans Gladys, ouvrez l'onglet Configuration de l'intégration.
  3. Dans Adresse de l'imprimante, saisissez l'adresse IP, par exemple 192.168.1.60 (un port est accepté : 192.168.1.60:8080). Préférez une adresse IP : les noms prusa-mk4.local ne se résolvent pas dans le conteneur de l'intégration.
  4. Laissez Utilisateur vide (l'utilisateur des imprimantes est toujours maker). Seul PrusaLink sur Raspberry Pi permet d'en choisir un autre dans son assistant d'installation.
  5. Dans Mot de passe PrusaLink, collez le mot de passe affiché par l'imprimante. Les très anciens firmwares utilisent une clé d'API à la place : collez-la dans le même champ, l'intégration essaie les deux.
  6. Enregistrez. Le statut de l'écran Configuration passe à connecté après la première réponse de l'imprimante.
  7. Une deuxième ou troisième imprimante : remplissez Imprimante 2 et Imprimante 3 de la même façon.
  8. Langue fixe la langue des noms de fonctionnalités et des textes créés par l'intégration (français par défaut). Les noms des fonctionnalités sont fixés à l'ajout de l'appareil dans Gladys.

Ajoutez ensuite l'imprimante depuis l'onglet Découverte.

L'appareil imprimante​

Un appareil par imprimante, nommé d'après le nom donné à l'imprimante dans PrusaLink, ou son nom d'hôte. L'intégration lit l'imprimante toutes les 10 secondes pendant une impression et toutes les 30 secondes sinon (Home Assistant la lit toutes les 30 secondes) : l'imprimante est un petit serveur web, elle n'est pas interrogée plus souvent.

FonctionnalitéCe qu'elle affiche
ÉtatAu repos, Prête, Occupée, Impression, En pause, Intervention requise, Terminée, Arrêtée, Erreur, Imprimante injoignable, Mot de passe absent ou refusé
FichierLe fichier en cours d'impression (son nom complet, benchy.bgcode), ou « Aucun fichier »
ProgressionPourcentage de l'impression (0 sans travail)
Temps écouléEn minutes
Temps restantEstimé par l'imprimante, en minutes (0 hors impression)
Buse, PlateauTempératures, en degrés entiers
… (consigne)Consignes, en lecture seule
Vitesse d'impressionLe facteur de vitesse réglé sur l'imprimante, en pourcentage (100 % = normal)
FilamentLe type de filament chargé (PLA, PETG…), quand l'imprimante l'indique
Pause, RepriseBoutons poussoirs
CaméraL'image de la caméra, seulement pour PrusaLink sur Raspberry Pi avec une caméra (les caméras de la Core One et de la MK4 envoient leurs images à Prusa Connect seulement, PrusaLink n'y a pas accès)

Il n'y a volontairement pas de bouton d'annulation sur l'appareil : un appui sans confirmation ruinerait une impression. L'annulation passe par le widget (avec confirmation) et par les scènes. Les températures et consignes sont en lecture seule, et l'intégration n'envoie aucune commande de chauffe : une chauffe de l'imprimante ne peut jamais être allumée depuis Gladys, ni par HomeKit, Alexa ou Google. Ce sont des « températures d'appareil » pour Gladys : elles ne comptent jamais dans la température de la pièce.

Quand l'imprimante se met à indiquer son type de filament, ou qu'une caméra apparaît, Gladys propose de mettre à jour l'appareil dans l'onglet Découverte.

Widget de tableau de bord​

Ajoutez le widget Imprimante 3D à un tableau de bord et choisissez l'imprimante dans ses réglages. Il affiche :

  • la jauge de progression, le temps restant, les températures de la buse et du plateau (en direct) ;
  • l'image de la caméra s'il y en a une, sinon la vignette du fichier en cours d'impression ;
  • l'état, le message de l'imprimante quand quelque chose ne va pas, le fichier, le temps écoulé, l'heure de fin prévue, les consignes actives, la vitesse et le filament ;
  • les boutons utiles au moment : Pause ou Reprendre et Annuler (demande confirmation) pendant une impression. Quand l'imprimante demande une intervention, seulement Annuler : la réponse se donne sur l'imprimante.

Déclencheurs de scène​

Dans la catégorie Intégrations de l'éditeur de scènes. Chacun peut être limité à une imprimante.

  • Impression démarrée — variables : nom de l'imprimante, fichier.
  • Impression terminée — variables : nom de l'imprimante, fichier, durée d'impression (en texte, comme 1 h 05 min, et en minutes).
  • Impression échouée ou annulée — peut être limité à une raison (annulée, erreur). Variables : nom de l'imprimante, fichier, durée d'impression, raison, message de l'imprimante.
  • Impression en pause — depuis l'imprimante, PrusaLink, Prusa Connect ou Gladys. Variables : nom de l'imprimante, fichier, temps écoulé.
  • Intervention requise — l'imprimante attend quelqu'un : fin de filament, question sur son écran. Variables : nom de l'imprimante, fichier, temps écoulé, message de l'imprimante.
  • Erreur de l'imprimante — l'imprimante est passée en erreur, pendant une impression ou non (une erreur pendant une impression déclenche aussi Impression échouée). Variables : nom de l'imprimante, fichier, temps écoulé, message de l'imprimante.

Les variables se lisent dans les actions suivantes avec, par exemple, {{triggerEvent.data.file}} et {{triggerEvent.data.duration}}.

Actions de scène​

  • Mettre en pause, reprendre ou annuler une impression — renvoie Appliqué : faux quand il n'y avait rien à mettre en pause, reprendre ou annuler (la scène continue). Une annulation est définitive : choisissez-la en connaissance de cause.
  • Lire l'état de l'imprimante — renvoie une Phrase toute prête à envoyer ou à dire (« Prusa MK4 : Impression, benchy.bgcode, 37 %, encore 1 h 05 min. »), et les valeurs à tester dans les actions suivantes : état (printing, paused, finished…), état tel qu'affiché, fichier, progression, temps restant en minutes.

Exemples de scènes​

  • Impression terminée → notification : déclencheur Impression terminée, action « Envoyer un message » : {{triggerEvent.data.file}} terminé en {{triggerEvent.data.duration}}.
  • Fin de filament → appeler quelqu'un : déclencheur Intervention requise, action « Envoyer un message » : L'imprimante a besoin de vous : {{triggerEvent.data.message}}.
  • Fumée détectée → arrêter l'impression : déclencheur sur le détecteur de fumée, action Mettre en pause, reprendre ou annuler une impression (annuler), puis éteindre la prise connectée de l'imprimante.
  • Où en est mon impression ? : une action « Lire l'état de l'imprimante », puis « Envoyer un message » avec sa phrase, sur un bouton ou toutes les heures pendant une impression.

Dépannage​

  • PrusaLink ne répond pas : vérifiez que PrusaLink est activé sur l'imprimante, et l'adresse depuis la machine Gladys (curl http://192.168.1.60/api/version répond 401 sans mot de passe : l'imprimante est joignable). Utilisez une adresse IP plutôt qu'un nom .local.
  • Utilisateur ou mot de passe refusé : recopiez le mot de passe depuis Réglages → Réseau → PrusaLink (il change si vous le régénérez sur l'imprimante). Laissez Utilisateur vide, sauf pour PrusaLink sur Raspberry Pi.
  • Les valeurs bougent lentement : l'imprimante est lue toutes les 10 secondes pendant une impression, toutes les 30 secondes sinon. Une impression plus courte peut n'être vue qu'à sa fin.
  • Pas de type de filament : les anciens firmwares ne l'indiquent pas ; la fonctionnalité n'existe alors pas.
  • Pas d'image de caméra : seul PrusaLink sur Raspberry Pi donne une image de caméra ; elle doit être un JPEG ou un PNG d'environ 110 Ko au plus (une limite de Gladys).
  • Journaux : dans la page de l'intégration dans Gladys, ou docker logs sur la machine. LOG_LEVEL=debug donne le détail. Le mot de passe n'apparaît jamais dans les journaux.

Limites​

  • Jusqu'à trois imprimantes.
  • Pas d'envoi de fichier, pas de lancement d'impression depuis Gladys, aucune commande de température ni de G-code, pas de timelapse, pas de Prusa Connect (cloud).
  • Une impression qui revient à Au repos ou Prête sans passer par Terminée ou Arrêtée (écran validé pendant que l'imprimante était injoignable) ne déclenche aucune fin.
  • L'imprimante est lue, elle ne pousse rien : un évènement de moins de 10 secondes peut passer inaperçu.
  • La XL n'indique qu'une seule température de buse.
  • Développée sans le matériel : vos retours sont les bienvenus.
  • Sans lien avec Prusa Research. Prusa, Original Prusa et PrusaLink sont des marques de Prusa Research a.s.

Paramètres de configuration​

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

ParamètreTypeObligatoireDescription
Connecter vos imprimantes PrusasectionNonActivez PrusaLink sur l'imprimante (Réglages > Réseau > PrusaLink), puis saisissez son adresse IP et le mot de passe qu'elle affiche. Pour les MK4, MK4S, MK3.9, MK3.5, Core One, XL et MINI+ (firmware 5 ou plus), et la MK3S+ avec PrusaLink sur Raspberry Pi. Jusqu'à trois imprimantes. Tout reste sur votre réseau.
Adresse de l'imprimantestringOuiL'adresse IP affichée par l'imprimante (Réglages > Réseau). Un port est accepté (192.168.1.60:8080).
UtilisateurstringNonLaissez vide pour maker, l'utilisateur de toute imprimante à PrusaLink intégré.
Mot de passe PrusaLinksecretNonSur l'imprimante : Réglages > Réseau > PrusaLink. Anciens firmwares : la clé d'API.
Imprimante 2 (facultatif)sectionNon
Adresse de l'imprimantestringNonL'adresse IP affichée par l'imprimante (Réglages > Réseau). Un port est accepté (192.168.1.60:8080).
UtilisateurstringNonLaissez vide pour maker, l'utilisateur de toute imprimante à PrusaLink intégré.
Mot de passe PrusaLinksecretNonSur l'imprimante : Réglages > Réseau > PrusaLink. Anciens firmwares : la clé d'API.
Imprimante 3 (facultatif)sectionNon
Adresse de l'imprimantestringNonL'adresse IP affichée par l'imprimante (Réglages > Réseau). Un port est accepté (192.168.1.60:8080).
UtilisateurstringNonLaissez vide pour maker, l'utilisateur de toute imprimante à PrusaLink intégré.
Mot de passe PrusaLinksecretNonSur l'imprimante : Réglages > Réseau > PrusaLink. Anciens firmwares : la clé d'API.
OptionssectionNonLangue des noms et textes créés par l'intégration (les noms des fonctionnalités sont fixés à l'ajout de l'appareil).
LangueselectNon
  1. Dans Gladys, ouvrez Intégrations : PrusaLink 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-prusalink: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-prusalink.

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

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