Integración domótica PrusaLink, gratuita y de código abierto

Siga sus impresoras 3D Prusa en local con PrusaLink: progreso, temperaturas, alertas.
Siga sus impresoras 3D Prusa desde Gladys gracias a PrusaLink, la interfaz web local integrada en el firmware de las impresoras Prusa recientes (e instalada en una Raspberry Pi en la MK3S+). Todo se queda en su red local: Gladys habla directamente con la impresora, no hace falta ninguna cuenta de Prusa Connect.
Desarrollada sin el hardware: sus comentarios son bienvenidos. La integración se ha construido a partir de la descripción de la API de PrusaLink, de la integración de Home Assistant y de sus respuestas grabadas, y se ha probado contra un simulador que se autentica como el firmware de la impresora. Todavía no se ha probado en una impresora real: cuéntenos en el foro de Gladys cómo funciona con la suya.
Requisitos
- Gladys Assistant 5.1 o posterior.
- Una impresora Prusa con PrusaLink: MK4, MK4S, MK3.9, MK3.5, Core One, XL o MINI+ con un firmware 5.0 o posterior (se recomienda 6.x), conectada a su red por Wi-Fi o Ethernet; o una MK3S+ con PrusaLink en una Raspberry Pi.
- PrusaLink activado en la impresora: Ajustes → Red → PrusaLink. La misma
pantalla muestra la contraseña (usuario
maker). - La impresora accesible desde la máquina de Gladys (misma red, o enrutada).
Configuración
- En la impresora, abra Ajustes → Red: anote su dirección IP, active PrusaLink y anote su contraseña. Una dirección IP fija (una reserva DHCP en su router) evita perder la impresora más adelante.
- En Gladys, abra la pestaña Configuración de la integración.
- En Dirección de la impresora, introduzca la dirección IP, por ejemplo
192.168.1.60(se admite un puerto:192.168.1.60:8080). Mejor una dirección IP: los nombresprusa-mk4.localno se resuelven dentro del contenedor de la integración. - Deje Usuario vacío (el usuario de las impresoras es siempre
maker). Solo PrusaLink en una Raspberry Pi permite elegir otro en su asistente de instalación. - En Contraseña de PrusaLink, pegue la contraseña que muestra la impresora. Los firmwares muy antiguos usan una clave de API en su lugar: péguela en el mismo campo, la integración prueba las dos.
- Guarde. El estado de la pantalla Configuración pasa a conectado tras la primera respuesta de la impresora.
- Una segunda o tercera impresora: rellene Impresora 2 e Impresora 3 del mismo modo.
- Idioma fija el idioma de los nombres de funciones y de los textos que crea la integración (francés por defecto). Los nombres de las funciones se fijan al añadir el dispositivo a Gladys.
Después, añada la impresora desde la pestaña Descubrir.
El dispositivo impresora
Un dispositivo por impresora, con el nombre dado a la impresora en PrusaLink, o su nombre de host. La integración lee la impresora cada 10 segundos durante una impresión y cada 30 segundos en otro caso (Home Assistant la lee cada 30 segundos): la impresora es un pequeño servidor web, no se consulta más a menudo.
| Función | Qué muestra |
|---|---|
| Estado | En reposo, Lista, Ocupada, Imprimiendo, En pausa, Intervención necesaria, Terminada, Detenida, Error, Impresora inaccesible, Contraseña ausente o rechazada |
| Archivo | El archivo que se imprime (su nombre completo, benchy.bgcode), o «Ningún archivo» |
| Progreso | Porcentaje de la impresión (0 sin trabajo) |
| Tiempo transcurrido | En minutos |
| Tiempo restante | Estimado por la impresora, en minutos (0 cuando no imprime) |
| Boquilla, Cama | Temperaturas, en grados enteros |
| … (consigna) | Consignas, solo lectura |
| Velocidad de impresión | El factor de velocidad ajustado en la impresora, en porcentaje (100 % = normal) |
| Filamento | El tipo de filamento cargado (PLA, PETG…), cuando la impresora lo indica |
| Pausar, Reanudar | Botones pulsadores |
| Cámara | La imagen de la cámara, solo con PrusaLink en una Raspberry Pi con cámara (las cámaras de la Core One y de la MK4 envían sus imágenes solo a Prusa Connect, PrusaLink no tiene acceso) |
No hay a propósito ningún botón de cancelación en el dispositivo: una pulsación sin confirmación arruinaría una impresión. La cancelación se ofrece en el widget (con confirmación) y en las escenas. Las temperaturas y consignas son de solo lectura, y la integración no envía ninguna orden de calentamiento: un calentador de la impresora nunca puede encenderse desde Gladys, ni mediante HomeKit, Alexa o Google. Para Gladys son «temperaturas de dispositivo»: nunca cuentan en la temperatura de la habitación.
Cuando la impresora empieza a indicar su tipo de filamento, o aparece una cámara, Gladys propone actualizar el dispositivo en la pestaña Descubrir.
Widget del panel
Añada el widget Impresora 3D a un panel y elija la impresora en sus ajustes. Muestra:
- el indicador de progreso, el tiempo restante, las temperaturas de la boquilla y de la cama (en directo);
- la imagen de la cámara si la hay; si no, la miniatura del archivo que se imprime;
- el estado, el mensaje de la impresora cuando algo va mal, el archivo, el tiempo transcurrido, la hora prevista de fin, las consignas activas, la velocidad y el filamento;
- los botones útiles en cada momento: Pausar o Reanudar y Cancelar (pide confirmación) durante una impresión. Cuando la impresora requiere una intervención, solo Cancelar: la respuesta se da en la impresora.
Desencadenantes de escena
En la categoría Integraciones del editor de escenas. Cada uno puede limitarse a una impresora.
- Impresión iniciada — variables: nombre de la impresora, archivo.
- Impresión terminada — variables: nombre de la impresora, archivo,
tiempo de impresión (en texto, como
1 h 05 min, y en minutos). - Impresión fallida o cancelada — puede limitarse a un motivo (cancelada, error). Variables: nombre de la impresora, archivo, tiempo de impresión, motivo, mensaje de la impresora.
- Impresión en pausa — desde la impresora, PrusaLink, Prusa Connect o Gladys. Variables: nombre de la impresora, archivo, tiempo transcurrido.
- Intervención necesaria — la impresora espera a alguien: fin del filamento, una pregunta en su pantalla. Variables: nombre de la impresora, archivo, tiempo transcurrido, mensaje de la impresora.
- Error de la impresora — la impresora ha pasado a estado de error, durante una impresión o no (un error durante una impresión también desencadena Impresión fallida). Variables: nombre de la impresora, archivo, tiempo transcurrido, mensaje de la impresora.
Las variables se leen en las acciones siguientes con, por ejemplo,
{{triggerEvent.data.file}} y {{triggerEvent.data.duration}}.
Acciones de escena
- Pausar, reanudar o cancelar una impresión — devuelve Aplicado: falso cuando no había nada que pausar, reanudar o cancelar (la escena continúa). Una cancelación es definitiva: elíjala con conocimiento de causa.
- Leer el estado de la impresora — devuelve una Frase lista para
enviar o decir («Prusa MK4: Imprimiendo, benchy.bgcode, 37 %, quedan
1 h 05 min.»), y los valores para comprobar en las acciones siguientes:
estado (
printing,paused,finished…), estado tal como se muestra, archivo, progreso, tiempo restante en minutos.
Ejemplos de escenas
- Impresión terminada → notificación: desencadenante Impresión terminada,
acción «Enviar un mensaje»:
{{triggerEvent.data.file}} terminado en {{triggerEvent.data.duration}}. - Fin del filamento → avisar a alguien: desencadenante Intervención
necesaria, acción «Enviar un mensaje»:
La impresora le necesita: {{triggerEvent.data.message}}. - Humo detectado → detener la impresión: desencadenante en el detector de humo, acción Pausar, reanudar o cancelar una impresión (cancelar), y luego apagar el enchufe inteligente de la impresora.
- ¿Cómo va mi impresión?: una acción «Leer el estado de la impresora» y luego «Enviar un mensaje» con su frase, con un botón o cada hora durante una impresión.
Solución de problemas
- PrusaLink no responde: compruebe que PrusaLink está activado en la
impresora, y la dirección desde la máquina de Gladys
(
curl http://192.168.1.60/api/versionresponde 401 sin contraseña: la impresora es accesible). Use una dirección IP en lugar de un nombre.local. - Usuario o contraseña rechazados: vuelva a copiar la contraseña desde Ajustes → Red → PrusaLink (cambia si la regenera en la impresora). Deje Usuario vacío salvo con PrusaLink en una Raspberry Pi.
- Los valores cambian despacio: la impresora se lee cada 10 segundos durante una impresión y cada 30 segundos en otro caso. Una impresión más corta puede verse solo al terminar.
- Sin tipo de filamento: los firmwares antiguos no lo indican; la función no existe entonces.
- Sin imagen de cámara: solo PrusaLink en una Raspberry Pi da una imagen de cámara; debe ser un JPEG o PNG de unos 110 KB como máximo (un límite de Gladys).
- Registros: en la página de la integración en Gladys, o con
docker logsen la máquina.LOG_LEVEL=debugmuestra el detalle. La contraseña nunca aparece en los registros.
Límites
- Hasta tres impresoras.
- Sin envío de archivos, sin inicio de impresión desde Gladys, sin órdenes de temperatura ni de G-code, sin timelapse, sin Prusa Connect (nube).
- Una impresión que vuelve a En reposo o Lista sin pasar por Terminada o Detenida (pantalla validada mientras la impresora era inaccesible) no desencadena ningún fin.
- La impresora se lee, no avisa por sí misma: un evento de menos de 10 segundos puede pasar desapercibido.
- La XL indica una sola temperatura de boquilla.
- Desarrollada sin el hardware: sus comentarios son bienvenidos.
- Sin relación con Prusa Research. Prusa, Original Prusa y PrusaLink son marcas de Prusa Research a.s.
Parámetros de configuración
Estos son los parámetros que PrusaLink te pide en su pantalla de configuración en Gladys.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| Conecte sus impresoras Prusa | section | No | Active PrusaLink en la impresora (Ajustes > Red > PrusaLink) e introduzca su dirección IP y la contraseña que muestra. Para MK4, MK4S, MK3.9, MK3.5, Core One, XL y MINI+ (firmware 5 o posterior), y la MK3S+ con PrusaLink en una Raspberry Pi. Hasta tres impresoras. Todo se queda en su red. |
| Dirección de la impresora | string | Sí | La dirección IP que muestra la impresora (Ajustes > Red). Se admite un puerto (192.168.1.60:8080). |
| Usuario | string | No | Déjelo vacío para maker, el usuario de toda impresora con PrusaLink integrado. |
| Contraseña de PrusaLink | secret | No | En la impresora: Ajustes > Red > PrusaLink. Firmwares antiguos: la clave de API. |
| Impresora 2 (opcional) | section | No | |
| Dirección de la impresora | string | No | La dirección IP que muestra la impresora (Ajustes > Red). Se admite un puerto (192.168.1.60:8080). |
| Usuario | string | No | Déjelo vacío para maker, el usuario de toda impresora con PrusaLink integrado. |
| Contraseña de PrusaLink | secret | No | En la impresora: Ajustes > Red > PrusaLink. Firmwares antiguos: la clave de API. |
| Impresora 3 (opcional) | section | No | |
| Dirección de la impresora | string | No | La dirección IP que muestra la impresora (Ajustes > Red). Se admite un puerto (192.168.1.60:8080). |
| Usuario | string | No | Déjelo vacío para maker, el usuario de toda impresora con PrusaLink integrado. |
| Contraseña de PrusaLink | secret | No | En la impresora: Ajustes > Red > PrusaLink. Firmwares antiguos: la clave de API. |
| Opciones | section | No | Idioma de los nombres y textos que crea la integración (los nombres de las funciones se fijan al añadir el dispositivo). |
| Idioma | select | No |
Cómo instalar PrusaLink en Gladys
- En Gladys, abre Integraciones: PrusaLink aparece en el catálogo junto a las integraciones nativas, con una insignia de comunidad.
- Haz clic en Instalar. Gladys descarga la imagen Docker (
ghcr.io/guim31/gladys-prusalink:1.0.0), la ejecuta en un entorno aislado del núcleo y genera la interfaz de la integración (dispositivos, descubrimiento y configuración). - Abre la pantalla de Configuración de la integración, rellena los parámetros y guarda.
- También puedes instalarla directamente desde la URL de su repositorio: https://github.com/guim31/gladys-prusalink.
PrusaLink requiere Gladys >=5.1.0. El catálogo de Gladys se actualiza cada hora, así que una nueva versión está disponible como máximo una hora después de publicarse.
¿Todavía no usas Gladys? Es gratuito y de código abierto: sigue la guía de instalación para empezar.
Sobre las integraciones externas
PrusaLink es una integración externa: una integración comunitaria empaquetada como contenedor Docker y publicada en GitHub. Gladys la instala con un clic y la ejecuta en un entorno aislado del núcleo. La publica y mantiene guim31, no el equipo principal de Gladys.
- Explorar todas las integraciones, nativas y de la comunidad
- Crear y publicar tu propia integración externa
- Código fuente en GitHub — fuente de esta documentación