diff --git a/src/components/widgets/runout-sensors/RunoutSensorsCard.vue b/src/components/widgets/runout-sensors/RunoutSensorsCard.vue
index abc9a39093..0e7be2c215 100644
--- a/src/components/widgets/runout-sensors/RunoutSensorsCard.vue
+++ b/src/components/widgets/runout-sensors/RunoutSensorsCard.vue
@@ -25,6 +25,9 @@
>
{{ item.prettyName }}
+
+ {{ item.diameter.toFixed(2) }} mm
+
{
return Object.keys(state.printer)
.filter(key => (
+ key === 'hall_filament_width_sensor' ||
key.startsWith('filament_switch_sensor ') ||
key.startsWith('filament_motion_sensor ')
))
- .map(key => {
+ .map((key): RunoutSensor | null => {
+ const sensor = state.printer[key]
+
+ if (sensor?.filament_detected == null) {
+ return null
+ }
+
const name = key.trim().split(/\s+/).pop() || ''
+ const diameter = (
+ 'is_active' in sensor &&
+ sensor.is_active &&
+ 'Diameter' in sensor
+ )
+ ? sensor.Diameter
+ : undefined
+
return {
- ...state.printer[key],
+ ...sensor,
name,
prettyName: Vue.$filters.prettyCase(name),
+ diameter
}
})
+ .filter(sensor => sensor !== null)
},
getEndstops: (state): Endstop[] => {
diff --git a/src/store/printer/types.ts b/src/store/printer/types.ts
index 29418b252e..4e3cd361d4 100644
--- a/src/store/printer/types.ts
+++ b/src/store/printer/types.ts
@@ -114,6 +114,7 @@ export interface Sensor extends Partial, Partial
export interface RunoutSensor extends Partial, Partial {
name: string;
prettyName: string;
+ diameter?: number;
}
export interface Endstop {
diff --git a/src/typings/klipper.d.ts b/src/typings/klipper.d.ts
index 333f8cf7bc..75ad05d1b7 100644
--- a/src/typings/klipper.d.ts
+++ b/src/typings/klipper.d.ts
@@ -345,6 +345,9 @@ declare namespace Klipper {
is_active: boolean;
Diameter: number;
Raw: number;
+ enabled?: boolean;
+ filament_detected?: boolean;
+ flow_compensation_enabled?: boolean;
}
export interface ExtruderState {