Skip to content

CFS — Creality Filament System

Module: cfs (optional) API Endpoint: /printer/objects/query with box and filament_rack objects.

Collects metrics from the Creality Filament System (CFS) on K2-class printers. These printers do not populate Happy Hare's mmu object, so the mmu module reports nothing on them. The CFS state instead lives in native Moonraker objects:

  • box — the CFS unit(s) and per-slot state (active slot, temperature, humidity)
  • filament_rack — the filament currently loaded at the toolhead

Up to four units (T1T4) are reported. Disconnected units (those with state == "None") are skipped, so only attached units emit unit-labelled series.

Metrics

Box State

MetricTypeLabelsDescription
klipper_cfs_enabledGaugeCFS enabled state (0/1)
klipper_cfs_auto_refill_enabledGaugeAuto-refill enabled (0/1)
klipper_cfs_filament_useupGaugeFilament used-up flag (0/1)
klipper_cfs_state_infoGauge=1stateCFS connection state
klipper_cfs_active_unitGaugebox.filament value (semantics unconfirmed; likely active unit number)

Active Slot

Labels: unit

MetricTypeLabelsDescription
klipper_cfs_active_slotGaugeunitActive slot index within the unit (A=0..D=3, -1 if none)
klipper_cfs_active_slot_infoGauge=1unit, slot, material, colorActive slot details (emitted only when a slot is active)

Per-Unit Metrics

Labels: unit

MetricTypeLabelsDescription
klipper_cfs_unit_state_infoGauge=1unit, stateUnit connection state
klipper_cfs_unit_temperature_celsiusGaugeunitUnit temperature in °C
klipper_cfs_unit_humidity_percentGaugeunitUnit relative humidity (assumed %RH)
klipper_cfs_unit_infoGauge=1unit, version, sn, modeUnit hardware info

Per-Slot Metrics

Labels: unit, slot (slot letter A–D)

MetricTypeLabelsDescription
klipper_cfs_slot_infoGauge=1unit, slot, material, color, vendorSlot details (material is the raw type code)
klipper_cfs_slot_remainingGaugeunit, slotRemaining filament (units unclear: percent or mm)

Filament Rack (loaded at toolhead)

MetricTypeLabelsDescription
klipper_cfs_rack_loaded_infoGauge=1material, colorFilament currently loaded at the toolhead
klipper_cfs_rack_velocityGaugeLoaded filament velocity (units unclear, likely mm/min)

Notes & Caveats

Some fields are emitted with conservative names because their exact semantics are not yet confirmed against the printer UI:

  • klipper_cfs_active_unit (box.filament) — could be an active unit number, a count of loaded filaments, or a boolean. Indistinguishable with a single unit attached.
  • klipper_cfs_slot_remaining (remain_len) — units unknown (percent vs mm); reads 100 on a freshly loaded spool.
  • klipper_cfs_unit_humidity_percent (dry_and_humidity) — assumed %RH.
  • material labels carry the raw Creality material code (e.g. 000001), not the human-readable name (e.g. PLA).

Example PromQL

promql
# Active slot index per CFS unit (A=0..D=3)
klipper_cfs_active_slot

# Material/color of the active slot
klipper_cfs_active_slot_info

# Unit humidity (consider drying when high)
klipper_cfs_unit_humidity_percent > 40

Released under the MIT License.