Skip to content

DSC-HUB 8.1.0

Latest

Choose a tag to compare

@weddas weddas released this 08 Sep 01:04
· 24 commits to master since this release

First full cut of the 8.x line after the v8.0.0-AlphaPi alpha — 102 commits.

Brain / SPA 8.1.0 · kit firmware train 8.0.0.0 (unchanged — no fleet reflash required by this release).


⚠️ Important: 8.0.0 AlphaPi cards cannot flash a kit

The 8.0.0 image shipped nine zero-byte kit firmware binaries. bake-firmware.sh falls back to writing empty placeholder .bin files when it cannot compile, and refuses to do so only under DSC_RELEASE=1 — which the 8.0.0 bake did not set. Anyone who flashed that card and ran the SPA USB-flash wizard got nothing flashable.

8.1.0 is the first image to carry real kit firmware. All eight roles are compiled from source and verified non-empty by a release guard that now aborts the bake if any binary is empty.

Role Chip Bytes
hub esp32 1,283,136
control esp32 1,381,600
pot1 esp32 1,134,704
pot2 esp32 1,134,688
heater esp8266 476,960
heatmat esp8266 476,960
humidifier esp8266 476,976
dehumidifier esp8266 476,976

Per-role sha256 provenance ships in kit-build.json on the card.


What's new

Area
Dashboard v2 Desks, zone model, icon set v5, gauge hover readout, motion + type-scale pass
3D twin Composed live scene at #/twin, 134-GLB model pipeline, twin field model
Settings & preferences Passes S1–S5 — ~190 knobs across a 12-section IA
Cameras Fixed-mount IP camera per tent, timelapse, plant regions
Light / PPFD Maker PPFD map + 3D surface, per-fixture CannaLib catalog binding
Automation Rule engine v2 — compound triggers, window/debounce/hysteresis/max-age
Zigbee UX phases 0–4, device-type catalog, every bound datapoint becomes a fleet entity
Tuya Local lane T1
ESPHome toolchain Host update helper, rollback, canary-first fleet rollout, capped below ESPHome 2026.8
HA removal Lovelace loader, HA scaffolding and Twin IIFE path deleted; SNTP-only time
Naming SPA identifiers Seat/POT → Probe/Plant
Fixes ~45 live-audit items, Sonoff relay honesty, history bucketing, calibration bounds

Build fixes behind this release

The kit firmware build had been dead for weeks — unnoticed, because the live hub firmware does not use the affected component and only the image bake exercises that path.

  • dsc_fleet_setup did not compile on ESPHome 2026.6.5wifi::ScanResultsLock was removed upstream, WiFiScanResult::get_ssid() became a StringRef, and hub_mac_str() / panel_mac_str() were defined without header declarations.
  • esp_http_client is excluded from ESP-IDF builds by default — so pure esp-idf targets (panel, probes) could not find the header while the arduino hub resolved it by accident. Now declared via include_builtin_idf_component().
  • Kit binaries were located with a find -newer probe that assumed every compile relinks; a cached build is a success that rewrites nothing, so the bake aborted on valid binaries. Now scoped to the build path ESPHome itself reports.
  • The thin-catalog cannalib service could not start on a card — neither its build context nor a prebuilt image shipped. Both now do.

Upgrade notes

  • No fleet reflash is required. Expected firmware stays 8.0.0.0; the version only moves when the ESPHome source changes and a flash happens.
  • Flash dsc-hub-8.1.0-arm64.img.xz with Raspberry Pi Imager (Use custom) for Pi 4 / Pi 5 aarch64, prefer Ethernet on first boot, then open #/setup.
  • The thin catalog is opt-in: docker compose --profile thin-catalog up -d.

Assets

dsc-hub-8.1.0-arm64.img.xz is the flashable image. The uncompressed 2.6 GB .img is not attached — it exceeds GitHub's 2 GiB per-asset limit. Decompress the .xz, or rebuild with services/dsc-hub/image/bake-on-linux.sh.

sha256  dsc-hub-8.1.0-arm64.img.xz    7eb0895b8cc5b0d85aaefce92f62c135852329036f1d8b902867d6a135f602b2
sha256  dsc-hub-8.1.0-arm64.img       62577365edf1f784aef5bf4f787ca31ad6833a1b293c196157a203cb1c1e77ae
sha256  dsc-hub-8.1.0-docker.tar.gz   0587681bf2b843667e92b5bf9a6773171ff8f99f7b0ef91e61311283d6069b53

Docker tar contains dsc-hub-brain:8.1.0, dsc-hub-cannalib:8.1.0, eclipse-mosquitto:2, koenkk/zigbee2mqtt:2.