Published Nov 9, 2026, 3:30 PM EST Ayush Pande is a PC hardware and gaming writer. When he's not working on a new article, you can find him with his head stuck inside a PC or tinkering with a server operating system. Besides computing, his interests include spending hours in long RPGs, yelling at his friends in co-op games, and practicing guitar. Home Assistant may be a killer smart home management platform, but once you load it with the right set of integrations and apps, it can even accommodate non-IoT paraphernalia. On the self-hosted front, it can pair with everything from Jellyfin, Nextcloud, and llama.cpp to entire home lab platforms like Proxmox and TrueNAS. But if you’re as much of a 3D printing enthusiast as I am, you’ll find a bunch of cool first- and third-party integrations for your model-making companion. In fact, I’ve got my Elegoo Centauri Carbon 1 and 2 hooked up to HASS, and it makes managing their prints quite easy with its neat dashboards and trigger-action automations. But since I also use a self-hosted Spoolman container to maintain an inventory of all the filament spools in my 3D printing arsenal, I figured I could use its Home Assistant integration to track filament usage on my smart home platform. If that sounds intriguing, then here’s my log of configuring all the integrations and automations needed for this filament tracking pipeline. Filament tracking on Home Assistant required a couple of integrations The Elegoo and Spoolman integrations work well right off the bat Seeing as how we’ve got multiple services relying on Home Assistant, this setup needs a bunch of integrations to run. For the 3D printers, I needed to get the elegoo-homeassistant integration by developer danielcherubini up and running, and with HASS moving the Home Assistant Community Store (and its offerings) to the built-in Marketplace, configuring this integration is even simpler now. For my CC1, I simply tossed the 3D printer’s IP address into the integration configuration page, and Home Assistant was able to track its filament sensors, webcam, and other aspects on a custom dashboard. However, I had to enable LAN-only mode on my Centauri Carbon 2 and use its IP address and access code to pair the 3D printer with the integration, as the cloud mode would cause issues due to the fact that it uses Elegoo’s server for authentication. Spoolman also needs a third-party integration in the form of spoolman-homeassistant by developer Disane87. Installing it is just as simple as the Elegoo integration, and I was able to see my spools as soon as I added my Spoolman’s IP address to Home Assistant. By now, I was done setting up my integration arsenal, and if I were to rely on the OpenCentauri firmware on my CC1, I’d be able to configure the filament tracker automation chains without any issues. However, the Centauri Carbon 2 is what I rely on the most for my DIY shenanigans, and this printer needed another tool before I could start messing around with templates and automation rules. I also had to deploy a printer proxy server for my CC2 So far, my game plan was to send filament consumption details from my Centauri Carbon 2 to Spoolman. But the biggest issue with such a setup is that my CC2 could only report total filament used statistics, which can mess up my Spoolman records every time I switch to a different feeding tube on its AMS-like CANVAS system. Since the elegoo-homeassistant can’t check the filament consumption metrics for each CANVAS tube on its own, I had to bring the elegoo-printer-proxy package by lantern-eight into the equation. This containerized tool captures the G-code details, including the filament consumption stats and sends them to Home Assistant (and by extension Spoolman), thereby helping HASS get an estimation of the amount of filament my 3D printing siphons when turning STL files into tangible models. Deploying this proxy server was fairly simple, too. First, I ran the git clone https://github.com/lantern-eight/elegoo-printer-proxy command to pull the package on a local VM. Then, I opened the compose.yml file using the nano editor and changed the subnets on all the IP address fields to match the one used by my home network. For the printers, I opened the .env.cc1 and .env.cc2 files and changed the IP address fields to match the network details of my Centauri Carbon 1 and 2, respectively. I also had to assign the IP addresses of the proxy servers to my VM's Ethernet adapter, so I executed sudo ip addr add IP_address dev ens18. Then I ran sudo docker compose up -d --build to finally deploy the proxy server. If you’re wondering why my security-conscious self had to resort to a rootful Docker setup, it’s because the rootless mode results in networking errors when Docker sets up access to all the proxy server ports under 1024. But since I’m using an isolated virtual machine just to host the proxy server, I don’t need to worry too much about the security implications of running Docker with full admin privileges. Finally, I added the proxy server’s URL to the elegoo-homeassistant integration before using it to replace the CC2’s IP address in my Elegoo Slicer. But the automations themselves were fairly easy to configure I had to keep the filament names consistent though With the proxy server and integrations in tip-top shape, it was time to turn my attention to the trigger-action rules I’d need for this setup. Since the elegoo-homeassistant integration has detailed documentation on filament tracking, I had no issues replicating the templates and automation workflows on my setup. First, I pasted the rest_command and helper template into the configuration.yaml file of my Home Assistant hub using the File Editor app. I also added the per-slot Spoolman weight template for each feeding tube before reloading my HASS setup. Then, I configured the Update Spoolman From Filament Name script, which is responsible for deducting the filament used from my Spoolman hub. As for the automations, I added the YAML code for Cache CC2 Slot Data to Home Assistant before editing the IDs of the sensor.centauri_carbon_2_a1_grams and other filament tracker entities to match the names on my setup. I also entered the code for the Reset CC2 Slot Cache automation to clear the cache after each print, while the CC2 Spoolman Update automation calls the Update Spoolman From Filament Name script every time a print is complete. However, it took me a few failed attempts to realize that the trigger-action pipeline only works when the filament name on Spoolman matches the one on my Elegoo Slicer. So, after ensuring my naming scheme remains consistent throughout the automation workflow, I quickly created a benchy model to test the pipeline. And sure enough, Home Assistant was able to notify Spoolman about the filament utilization metrics after successful prints. Considering that my Home Assistant + Spoolman combo not only tracks my filament stats in real time, but it even displays my spool inventory in custom dashboards, I’m satisfied with this automation pipeline. It may seem a bit convoluted on paper, but the overall process is fairly simple if you’ve ever tinkered with Docker containers and HASS integrations.
I connected my 3D printer to Home Assistant and Spoolman, and my self-hosted apps now track every gram of filament I use
Full Article
Original Source
Read the full article at Xda-developers →KhanList aggregates and links to publicly available news content. We do not host full articles from third-party sources. Always verify important information with original sources.