Saltar al contenido principal

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

Integración PrusaLink para Gladys Assistant

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​

  1. 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.
  2. En Gladys, abra la pestaña Configuración de la integración.
  3. 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 nombres prusa-mk4.local no se resuelven dentro del contenedor de la integración.
  4. 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.
  5. 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.
  6. Guarde. El estado de la pantalla Configuración pasa a conectado tras la primera respuesta de la impresora.
  7. Una segunda o tercera impresora: rellene Impresora 2 e Impresora 3 del mismo modo.
  8. 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ónQué muestra
EstadoEn reposo, Lista, Ocupada, Imprimiendo, En pausa, Intervención necesaria, Terminada, Detenida, Error, Impresora inaccesible, Contraseña ausente o rechazada
ArchivoEl archivo que se imprime (su nombre completo, benchy.bgcode), o «Ningún archivo»
ProgresoPorcentaje de la impresión (0 sin trabajo)
Tiempo transcurridoEn minutos
Tiempo restanteEstimado por la impresora, en minutos (0 cuando no imprime)
Boquilla, CamaTemperaturas, en grados enteros
… (consigna)Consignas, solo lectura
Velocidad de impresiónEl factor de velocidad ajustado en la impresora, en porcentaje (100 % = normal)
FilamentoEl tipo de filamento cargado (PLA, PETG…), cuando la impresora lo indica
Pausar, ReanudarBotones pulsadores
CámaraLa 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/version responde 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 logs en la máquina. LOG_LEVEL=debug muestra 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ámetroTipoObligatorioDescripción
Conecte sus impresoras PrusasectionNoActive 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 impresorastringSíLa dirección IP que muestra la impresora (Ajustes > Red). Se admite un puerto (192.168.1.60:8080).
UsuariostringNoDéjelo vacío para maker, el usuario de toda impresora con PrusaLink integrado.
Contraseña de PrusaLinksecretNoEn la impresora: Ajustes > Red > PrusaLink. Firmwares antiguos: la clave de API.
Impresora 2 (opcional)sectionNo
Dirección de la impresorastringNoLa dirección IP que muestra la impresora (Ajustes > Red). Se admite un puerto (192.168.1.60:8080).
UsuariostringNoDéjelo vacío para maker, el usuario de toda impresora con PrusaLink integrado.
Contraseña de PrusaLinksecretNoEn la impresora: Ajustes > Red > PrusaLink. Firmwares antiguos: la clave de API.
Impresora 3 (opcional)sectionNo
Dirección de la impresorastringNoLa dirección IP que muestra la impresora (Ajustes > Red). Se admite un puerto (192.168.1.60:8080).
UsuariostringNoDéjelo vacío para maker, el usuario de toda impresora con PrusaLink integrado.
Contraseña de PrusaLinksecretNoEn la impresora: Ajustes > Red > PrusaLink. Firmwares antiguos: la clave de API.
OpcionessectionNoIdioma de los nombres y textos que crea la integración (los nombres de las funciones se fijan al añadir el dispositivo).
IdiomaselectNo
  1. En Gladys, abre Integraciones: PrusaLink aparece en el catálogo junto a las integraciones nativas, con una insignia de comunidad.
  2. 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).
  3. Abre la pantalla de Configuración de la integración, rellena los parámetros y guarda.
  4. 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.

Suscríbete a la newsletter de Gladys Assistant

Unos pocos correos al mes sobre nuevas versiones y novedades del proyecto. Enviados por Pierre-Gilles Leymarie, fundador del proyecto. Puedes darte de baja cuando quieras 🙂