Primo Studios Web Blog

Home Assistant · 3 min

Bobinas sin chip en el AMS: cómo llevar en Home Assistant el filamento que queda con Spoolman

Mi impresora 3D lleva un AMS, el cargador de cuatro bobinas de Bambu Lab. Sobre el papel te dice cuánto filamento queda en cada una. En la práctica solo lo sabe con las bobinas de la marca, que llevan un chip con el tipo, el color y el peso. Yo tengo las cuatro bandejas con PLA de otras marcas, sin chip, así que el AMS sabe qué color hay pero no si queda medio kilo o diez gramos. Y eso lo descubres cuando la impresión se para a mitad de la noche.

La solución que he montado se llama Spoolman: un inventario de bobinas que lleva la cuenta por gramos y que se conecta a Home Assistant.

Qué es Spoolman y por qué por gramos

Spoolman es una aplicación web pequeña y de código abierto. Das de alta cada bobina con su material, color, fabricante y peso, y la aplicación va restando lo que gastas. No mide nada: hace cuentas. Parece poco fiable, pero el programa de laminado ya sabe cuántos gramos lleva cada impresión, así que basta con restarlos de la bobina de la bandeja que se ha usado. El error es de pocos gramos por bobina, mucho menos que mirarla a ojo.

Se instala con Docker en un rato. Un contenedor, una carpeta de datos y el puerto 7912, que es el que trae por defecto. Además, hace copias de su base de datos él solo, y eso se agradece en un inventario que vas rellenando a mano.

Trampa 1: Home Assistant no llegaba

En mi casa la domótica va en una red separada del resto, y Home Assistant no puede hablar con cualquier máquina. Es lo correcto, pero Spoolman lo monté en otro sitio, como prueba, y desde Home Assistant no se veía.

Para no abrir el router solo para una prueba, puse un puente: una máquina que ya llega a las dos redes escucha en el puerto 7912 y reenvía lo que le llega a Spoolman. Con socat es una sola línea, metida en un servicio de systemd para que arranque sola:

socat TCP-LISTEN:7912,bind=<ip-del-puente>,fork,reuseaddr TCP:spoolman:7912

Fíjate en el bind: así solo escucha por la red por la que entra Home Assistant y no queda abierto a todo. Si la prueba convence, lo limpio es mover Spoolman junto a Home Assistant y abrir en el router solo ese puerto entre esas dos máquinas. El puente es para probar, no para siempre.

Trampa 2: HACS ya no se llama HACS

La integración de Spoolman para Home Assistant no es oficial: es la de Disane87, y siempre se ha instalado desde HACS, la tienda de integraciones de la comunidad. Fui a buscarla y en mi Home Assistant había una aplicación «Get HACS» parada, que parecía rota.

No lo estaba. En las versiones recientes esa tienda viene integrada y se llama Marketplace. «Get HACS» es solo el instalador antiguo, y que esté parado no importa. La integración se busca en Marketplace, se instala, se reinicia y se añade en Ajustes → Dispositivos y servicios con la dirección y el puerto de Spoolman (en mi caso, los del puente). Te crea un sensor por bobina con los gramos que quedan y el porcentaje.

Trampa 3: «BLOCKED BY CLOUDFLARE», y da igual

Revisando la integración de Bambu Lab, me encontré con que pedía volver a iniciar sesión en la nube de Bambu y fallaba con un «BLOCKED BY CLOUDFLARE». Lo primero que piensas es que algo se ha roto.

Si la tienes en modo local (conexión directa con la impresora por la red de casa), puedes ignorarlo. Los datos de la impresora y del AMS siguen llegando igual, porque no pasan por la nube. Ese aviso solo afecta a lo que sí necesita la cuenta, y para esto no hace falta nada de eso. No pierdas una tarde peleándote con un captcha que no necesitas.

Cómo queda y qué falta

Ahora mismo tengo Spoolman funcionando y conectado a Home Assistant, con un acceso en la barra lateral para abrirlo sin salir del panel. Lo que queda es trabajo de hormiga más que técnico:

  • Meter las bobinas con su peso. El truco es pesar una bobina vacía de cada marca, porque el carrete pesa distinto según el fabricante.
  • Relacionar cada bandeja del AMS con su bobina, para saber de cuál restar.
  • Una automatización que, al terminar cada impresión, reste los gramos usados de la bobina de esa bandeja usando la API de Spoolman.
  • Un panel con las cuatro bandejas y lo que le queda a cada una.

Cuando tenga la automatización afinada lo contaré en otro artículo, porque restar sin equivocarse de bandeja tiene su miga. Pero si tienes un AMS lleno de bobinas sin chip, empezar con Spoolman ya te quita la duda de si te llegará el filamento para la impresión larga de esta noche.