Skip to content

Repository files navigation

Elegoo Spaghetti Detection

Home Assistant spaghetti/failure detection with an Elegoo Centauri Carbon-first setup, designed around danielcherubini/elegoo-homeassistant. Other printers or workflows can also be used when they expose a Home Assistant camera entity, optional light entity, and user-defined automations, but they are not the primary target.

Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.

Camera frame with spaghetti failure

The integration turns camera snapshots into Home Assistant entities and events. Printer actions such as pause, stop, resume, and notifications stay in your own automations, so the same detector can be used with different printer setups.

Quick Start

  1. Run the ML server. See ML server and logs.
  2. Install the custom integration through HACS or manually. See Installation.
  3. Add Elegoo Spaghetti Detection from Home Assistant integrations.
  4. Select the camera and optional print status sensor. See Configuration.
  5. Press Test Spaghetti Detection.
  6. Add one of the automation examples.
  7. Add one of the dashboard examples.

Documentation

How It Works

camera snapshot -> ML server -> confidence/result sensors -> Home Assistant events

The integration detects possible print failures and exposes Home Assistant entities/events. It does not directly control the printer.

When a print status sensor is configured, scheduled detection only runs during the configured active print states. Elegoo print_status sensors are also guarded by the companion current_status sensor when it exists, which avoids scheduled checks during homing or idle states where print_status can remain printing.

Features

  • Works with Home Assistant camera entities, including Elegoo chamber cameras.
  • Uses an Obico/TSD FDM failure model running in a local Docker/HA add-on server.
  • Validates ML server health and camera image reachability during setup.
  • Optional print status sensor gates scheduled detection to active print states.
  • Optional chamber light control can leave the light alone, turn it on and keep it on, or temporarily turn it on and restore the previous state after each snapshot.
  • Manual Test Spaghetti Detection button.
  • Confidence, raw score, detection count, status, last run, next run, and last error sensors.
  • binary_sensor.<prefix>_spaghetti_detected.
  • Events for every result and for detected failures.
  • ML server web dashboard, JSON status, recent request logs, and image debug endpoint.
  • CPU-first ML startup by default to avoid CUDA timeout failures on systems without a working GPU runtime.

Screenshots

Integration setup:

Elegoo Spaghetti Detection setup form

Enhanced dashboard in idle state:

Enhanced dashboard idle state

Enhanced dashboard after a detected failure:

Enhanced dashboard detected failure

Typical Elegoo CC2 Entities

Your entity IDs depend on the printer/device name in Home Assistant. With a default-ish Elegoo Centauri Carbon 2 setup they often look like:

camera.elegoo_centauri_carbon2_chamber_camera
sensor.elegoo_centauri_carbon2_print_status
light.elegoo_centauri_carbon2_chamber_light
button.elegoo_centauri_carbon2_pause_print
button.elegoo_centauri_carbon2_resume_print
button.elegoo_centauri_carbon2_stop_print

The integration setup uses only camera, optional print status, and optional light. Pause/stop/resume are shown only in automation examples.

Events

Every detection result fires:

elegoo_spaghetti_detection_result

Detected failures fire:

elegoo_spaghetti_detection_detected

When a print status sensor is configured, scheduled detected events are emitted once per active print window. If the printer leaves the configured active states and later returns to an active state, a new detected failure can emit one new event.

Use this event for notification, pause, and stop automations.

elegoo_spaghetti_detection_result still fires for every completed check. Use that event for logging, dashboards, or advanced automations only; notification automations based on the result event can repeat every detection interval.

Event data includes:

config_entry
detector
name
camera
manual
printer_state
confidence
raw_score
detected
detections
image_url
last_error
last_run
next_run
status

Use these fields in notifications and advanced automations.

Credits

This project started as an Elegoo-focused adaptation of nberktumer/ha-bambu-lab-p1-spaghetti-detection. The original project provided the Obico ML workflow and Home Assistant integration foundation.

About

Elegoo FDM printer spaghetti detection for Home Assistant with a local Obico ML server

Topics

Resources

Contributing

Stars

14 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages