Operator ask 2026-09-10: build a CannaLib catalog of ducting fans / duct / filters. Pick your fan and its specs import and auto-apply (CFM, watts, duct size); watts feeds the brain’s energy and cost model. Calibration stays vital and encouraged because duct runs, bends and filters change real output, especially at different power. No catalog fan? Pick a common duct size or a custom diameter in mm, then calibrate. Full plan: DSC-HUB docs/design/plan-ducting-catalog-2026-09-10.md. Governing rule: THE CATALOG IS A CLAIM, THE CALIBRATION IS THE MEASUREMENT. A maker’s CFM is free-air; every real install is lower. The catalog earns two jobs only — a starting point before anyone climbs a ladder with an anemometer, and a yardstick, because once both exist the GAP is the useful number (‘your 440 CFM fan is moving 180 through this run’). DONE this pass: – D1 CannaLib schema (commit 73a91ca on feat/equipment-catalogs): added the duct category (duct_kind / duct_shape / duct_mm_out / run_length_m / insulated / material / wall_layers); added spec.speed_curve carrying CFM AND watts per step, which is what makes energy duty-aware instead of ‘nameplate x 24 h’ and gives a measured curve the same shape to compare against; added pressure_drop_pa + pressure_drop_at_cfm on filters and duct. Also fixed a drift hazard: the category list existed as both the schema enum and a literal set in build_equipment_store, so adding duct to the schema alone left the builder rejecting the new kind. Builder now reads the enum. 16 tests. – D5 manual path (DSC-HUB efc3aae): common duct sizes as chips (100/125/150/200/250/300 mm, labelled with the inch size the trade sells), custom diameter in mm (40-600), defaults moved to nominal metric so they are members of the picker’s own set. OPEN: – D2 seed real records (start with the operator’s own kit so the first import is verifiable against a live calibration, then common AU/EU/US inline fans and filters). Catalog currently holds 3 records, 1 fan. – D3 brain: /v1/catalogs/equipment/{id} detail proxy + duct-line persistence via space_device.extra.catalog_id (same pattern as the SF1000 lamp). – D4 bind + auto-apply: nameplate CFM, duct mm (only when the operator has not set one), watts. – D6 say the gap out loud on the Calibrate desk. – D7 duty-aware energy from speed_curve. NOTE: fans are absent from the energy model entirely today — space_device seeds only sf1000 and main_fixture, so every fan in the rig contributes 0 W to cost. Another session was concurrently building brain/dsc_brain/device_power.py and integrations.catalog_equipment_detail, which overlaps D3/D4 — reconcile before building those.
Journey event · 10 Sep 2026
CannaLib Ducting: fan/duct/filter catalog, import-and-auto-apply, and wattage for the energy model
Operator ask 2026-09-10: build a CannaLib catalog of ducting fans / duct / filters. Pick your fan and its specs import and auto-apply (CFM, watts, duct size); watts feeds the brain
● state copied from the tracker, never improved
● event date 2026-09-10
| Event date | 2026-09-10 |
| Version found | |
| Version fixed | |
| Expected kit firmware | |
| Release file | |
| SHA-256 | |
| Served count | |
| Source | https://app.notion.com/3d62b4cda3708178b0a2ffb35ddbe0f0 |
All events · DSC · CannaLib · Site · Firmware releases
Empty rows are honest
A blank cell means the tracker has no value for it. Nothing on this page is filled in to look complete.
