Skip to content

Releases: weddas/DSC-HUB

DSC-HUB 8.1.0

Choose a tag to compare

@weddas weddas released this 08 Sep 01:04

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.

DSC-HUB 8.0.0 AlphaPi

Choose a tag to compare

@weddas weddas released this 05 Sep 17:36

DSC-HUB 8.0.0 AlphaPi

First alpha of the Pi-only kit release: factory SD image path, Setup wizard, USB-on-Pi flash APIs, Ethernet-first SoftAP policy.

Product front door: README.md

Flash

  1. Raspberry Pi Imager → Use customdsc-hub-8.0.0-arm64.img.xz
  2. Boot Pi 4/5 → SPA on LAN (dsc-brain.local:8787) or Pi SoftAP if no Ethernet
  3. Open #/setup and follow USB flash / fleet join / Zigbee

Artifacts

File Notes
dsc-hub-8.0.0-arm64.img.xz Flashable SD (~608 MB)
dsc-hub-8.0.0-docker.tar.gz Preloaded brain 8.0.0 + mosquitto + z2m
dsc-hub-8.0.0-payload.tar.gz Compose/units overlay (SPA is inside brain image)

Alpha caveats

  • Kit firmware .bin placeholders — replace with real ESPHome kit builds before production flash
  • Stock Lite may still need Docker present for first-boot image preload
  • HA lab removed from repo; brain keeps HA-shaped entity dialect

Docs

  • README — kit get-started, fleet, develop
  • Spec: docs/superpowers/specs/2026-09-06-dsc-kit-sd-installer-design.md
  • Fleet SoftAP detail: SETUP.md

DSC-HUB v5.1.0

Choose a tag to compare

@weddas weddas released this 01 Aug 09:05

DSC-HUB v5.1.0

Full-fleet force to 5.1.0: lab + kit firmwares, Sonoffs, Sync add-on,
HA packages, DSC-HUB Pro dashboard, and Learn Phase B (opt-in wait clamps).

GitHub tag v5.1.0
Hub / panel / pots / Sonoffs 5.1.0
Sync add-on 5.1.0 (sync_esphome: true default)
HA surface sensor.dsc_ha_surface_version = 5.1.0
Dashboard DSC-HUB Pro · URL dsc-hub-pro
ESP-NOW tag 54727 (0xD5C7)
Phase B Default off — wait bases only

Install: INSTALL.md · Upgrade: UPGRADE.md ·
Add-on: scripts/ADDON.md ·
QA: docs/qa/

Repo: https://github.com/weddas/DSC-HUB · branch master


What’s new in v5.1.0

Layer Change
Fleet version Force 5.1.0 on hub, panel, pots, Sonoffs, all kits, add-on, stubs
Learn Phase B Opt-in HA→hub ladder wait writes; floors/ceils; lock; never failsafe/min-off/fans
Learning UI Phase A+B status, wait entities, resets, last-sample age
Fleet chip sensor.dsc_fleet_version_status on Home + System table
Root zone sensor.dsc_coldest_root_zone_temp / hottest (voted + plausible)
Notify input_text.dsc_notify_service + script.dsc_notify
Sync Atomic stage copy, last-good rollback, version/SHA marker, broader reloads, sync_esphome default true
Door magnet Lab lock.4x8_* labeled as room door release
QoL Multi-lever sample skip, alert-count plant-spec zeros, dead-demand chip, AC/mister NO ACTUATOR cues

Not in this cut: auto-flash ESP devices; hub reconnect snapshot-restore;
remote ESP log capture; renaming dsc_v4_* filenames.


Rollout on all systems

  • Push master / tag v5.1.0
  • On each HAOS: Update DSC-HUB Sync add-on to 5.1.0 → Start/restart → wait for “Synced to …”
  • Restart HA Core once (new Learning / version helpers)
  • Confirm /dsc-hub-pro/home + fleet chip shows HA surface 5.1.0
  • ESPHome: Validate/Install each device to firmware 5.1.0 (lab + field kits)
  • Chip → ok

Firmware Install remains manual per device.


Beyond OTA

Surface Deploy
Packages / Pro dashboard / www Sync add-on on push
ESPHome stubs (ref: v5.1.0) Sync (sync_esphome: true)
Sync add-on binary Supervisor Update once per HAOS
Device firmware Manual Validate/Install
Cursor edit → push master → DSC-HUB Sync (~60s)
                          → ESPHome Install (devices, manual)

DSC-HUB v5.0.0

Choose a tag to compare

@weddas weddas released this 01 Aug 06:42

DSC-HUB v5.0.0

First major cut after the v4 alpha line. Headline: Home Assistant surfaces
ship through a first-party HAOS add-on (push master → sync to /config).
Hub firmware string matches the GitHub tag.

GitHub tag v5.0.0
Hub sensor.dsc_hub_firmware_version 5.0.0
Panel DSC-CONTROL 4.0.11 (flash with hub if ESP-NOW tag/wire changed)
Pots dsc-pot-common 4.0.1
Dashboard UX v0.2 · URL dsc-hub-v4 (YAML mode)
ESP-NOW tag 54727 (0xD5C7) on hub and panel
HA delivery DSC-HUB Sync add-on · scripts/ADDON.md

Install from scratch: INSTALL.md · add-on: scripts/ADDON.md
Kit SoftAP (no HA): SETUP.md

Repo: https://github.com/weddas/DSC-HUB · branch master


What’s new in v5.0.0

Layer Change
HAOS Sync add-on Custom add-on repo = this GitHub URL; polls master, copies packages / dashboard / www, reloads HA
Automations package packages/dsc_v4_automations.yaml (no more merge into live automations.yaml)
YAML Lovelace configuration.snippet.yaml — dashboard file under /config/dashboards/
HACS (optional) SYSTEM MAP card via Dashboard custom repo (dist/ + hacs.json)
Kit SoftAP setup Optional factory path without HA (SETUP.md, *-kit.yaml, dsc_fleet_setup)
Hub firmware 5.0.0 — WiFi moved to lab/kit packages; SoftAP provisioning path

Still true from v4 alpha: ESP-NOW-primary panel↔hub, climate ladder on hub,
Phase A learn gauges, SYSTEM MAP card.


From-scratch file map (summary)

Repo HA destination
homeassistant/packages/dsc_v4_*.yaml /config/packages/ (helpers + automations + learn)
homeassistant/dashboards/dsc-hub-v4-dashboard.yaml /config/dashboards/ (YAML-mode URL dsc-hub-v4)
homeassistant/esphome/dsc-*.yaml /config/esphome/
homeassistant/www/dsc-system-map.* /config/www/ (or HACS)
firmware/v4/secrets.yaml.template /config/esphome/secrets.yaml

Prefer the DSC-HUB Sync add-on over hand-copy after the first boot:
scripts/ADDON.md.

Full steps: INSTALL.md.


Beyond OTA — HA surfaces vs firmware

ESPHome Install only updates device firmware (still manual per device).

Primary HA delivery: DSC-HUB Sync add-on
(dsc-hub-sync/ · scripts/ADDON.md).

Surface Path Deploy
Packages + automations homeassistant/packages/dsc_v4_*.yaml HAOS add-on
Lovelace dashboard YAML homeassistant/dashboards/dsc-hub-v4-dashboard.yaml HAOS add-on
www SYSTEM MAP assets homeassistant/www/dsc-system-map.* HAOS add-on (optional)
SYSTEM MAP card (alt) dist/DSC-HUB.js HACS Dashboard (optional)
ESPHome stubs homeassistant/esphome/dsc-*.yaml Add-on option / manual · ref: v5.0.0
Device firmware firmware/v4/ via stubs Manual Validate/Install
Cursor edit → commit/push master → DSC-HUB Sync add-on (~60s)
                                → ESPHome Validate/Install (devices)

Hub + panel: flash together when tag, MAC, or 0xD* wire contract changes.


Flash order (first bring-up / hub major bump)

  1. Hub (dsc-hub.yaml or dsc-hub-kit.yaml) → expect firmware 5.0.0
  2. Panel (dsc-control.yaml) → 4.0.11 (USB if heap-sensitive)
  3. Pots → Sonoffs

Not in this cut (backlog)

  • AC / clone-mister followers (hardware)
  • Auto-flash fleet on git push (intentionally never)
  • Bidirectional HA→git sync

Previous cut

v4.0.0-alpha.1 — first published ESP-NOW-primary alpha (hub string matched tag).

v4.0.0-alpha.1

v4.0.0-alpha.1 Pre-release
Pre-release

Choose a tag to compare

@weddas weddas released this 31 Jul 09:15

DSC-HUB 4.0.0-alpha.1 (hub primary brain)

First published alpha of the v4 ESP-NOW-primary fleet. Tag matches sensor.dsc_hub_firmware_version.

Pairing

Piece Version
Hub 4.0.0-alpha.1
Panel DSC-CONTROL 4.0.11
Pots dsc-pot-common 4.0.1
Dashboard UX v0.2 · URL dsc-hub-v4
ESP-NOW tag 54727 (0xD5C7)

From-scratch install

Follow INSTALL.md — copy map:

Repo HA destination
homeassistant/packages/dsc_v4_*.yaml /config/packages/
homeassistant/automations.yaml merge / include
homeassistant/dashboards/dsc-hub-v4-dashboard.yaml Lovelace URL dsc-hub-v4
homeassistant/esphome/dsc-*.yaml /config/esphome/ (stubs pin ref: v4.0.0-alpha.1)
homeassistant/www/dsc-system-map.* /config/www/ + Lovelace resource
firmware/v4/secrets.yaml.template /config/esphome/secrets.yaml

Notes

  • Pot/tank push notifiers removed (bad notify service); alert binary sensors remain.
  • Climate/safety automations now target notify.mobile_app_chriss_iphone_max (edit to match your devices).
  • Backlog / Beyond OTA: see RELEASE.md.

Flash order: hub → panel → pots → Sonoffs. Expect hub firmware string 4.0.0-alpha.1 after Install.