Skip to content

Releases: zhac-project/zhac-wired-core

v2026100601-rc2

v2026100601-rc2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 06 Oct 08:08

Test build, not a release. It is published for testing a fix on real hubs and will be deleted once a release includes it. Keep to the latest release unless you were asked to try this one.

The ready-made hub: Espressif ESP32-S31 Function-CoreBoard

One board, nothing to wire. From Chrome or Edge, no toolchain:
https://zhac.org/flash/ -- it writes the four parts below and keeps
your devices, rules and settings (tick "erase" on the page for a clean start).
With esptool, the same four parts:

esptool --chip esp32s31 --port /dev/ttyUSB0 write-flash \
  0x2000 zhac-wired-s31-v2026100601-rc2-bootloader.bin \
  0xC000 zhac-wired-s31-v2026100601-rc2-partition-table.bin \
  0x1D000 zhac-wired-s31-v2026100601-rc2-otadata.bin \
  0x20000 zhac-wired-s31-v2026100601-rc2-ota.bin

zhac-wired-s31-v2026100601-rc2.bin is the same image merged into one file for offset 0 -- it also erases
devices, rules and settings (it covers the NVS area). Updates from the web UI use
zhac-wired-s31-v2026100601-rc2-ota.bin and keep everything.

ESP32-P4 boards (Guition JC-ESP32P4-M3-DEV)

ZHAC on one ESP32-P4 board with Ethernet. Status per board, and what is still
open: https://github.com/zhac-project/zhac-wired-core#status

Flash it

From Chrome or Edge, no toolchain: https://zhac.org/flash/

Or with esptool — one file, written at offset 0:

esptool --chip esp32p4 --port /dev/ttyACM0 write-flash 0x0 zhac-wired-p4-rev1x-v2026100601-rc2.bin

This image targets ESP32-P4 silicon v0.x–v1.x. Check yours first with
esptool --port <PORT> flash-id; a v3.x chip will not boot it.

Then plug in Ethernet and open http://zhac.local.

The ESP32-C6 on the module is the Zigbee radio. On a fresh board it needs
ot_rcp installed once first: flash
zhac-c6-rcp-installer-p4-rev1x-v2026100601-rc2.bin at offset 0 (or the
browser flasher's "1. Install the Zigbee radio" button), wait ~30 s, then flash
the hub image above. Detail, and the JP1-wire fallback:
https://github.com/zhac-project/zhac-wired-core#zigbee-radio-esp32-c6

Updating a board that already runs ZHAC: the web UI's OTA page lists this
release and installs it (the -ota.bin file; keep the file name as published,
the page matches on it). It replaces the firmware and keeps devices, rules and
scripts.

What changed

See CHANGELOG.md.

Built from

sources-v2026100601-rc2.txt names the commit of this repo and of every sibling
repository the image was built against; SHA256SUMS covers every file above.

v2026100601-rc1

v2026100601-rc1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 06 Oct 06:29

Test build, not a release. It is published for testing a fix on real hubs and will be deleted once a release includes it. Keep to the latest release unless you were asked to try this one.

The ready-made hub: Espressif ESP32-S31 Function-CoreBoard

One board, nothing to wire. From Chrome or Edge, no toolchain:
https://zhac.org/flash/ -- it writes the four parts below and keeps
your devices, rules and settings (tick "erase" on the page for a clean start).
With esptool, the same four parts:

esptool --chip esp32s31 --port /dev/ttyUSB0 write-flash \
  0x2000 zhac-wired-s31-v2026100601-rc1-bootloader.bin \
  0xC000 zhac-wired-s31-v2026100601-rc1-partition-table.bin \
  0x1D000 zhac-wired-s31-v2026100601-rc1-otadata.bin \
  0x20000 zhac-wired-s31-v2026100601-rc1-ota.bin

zhac-wired-s31-v2026100601-rc1.bin is the same image merged into one file for offset 0 -- it also erases
devices, rules and settings (it covers the NVS area). Updates from the web UI use
zhac-wired-s31-v2026100601-rc1-ota.bin and keep everything.

ESP32-P4 boards (Guition JC-ESP32P4-M3-DEV)

ZHAC on one ESP32-P4 board with Ethernet. Status per board, and what is still
open: https://github.com/zhac-project/zhac-wired-core#status

Flash it

From Chrome or Edge, no toolchain: https://zhac.org/flash/

Or with esptool — one file, written at offset 0:

esptool --chip esp32p4 --port /dev/ttyACM0 write-flash 0x0 zhac-wired-p4-rev1x-v2026100601-rc1.bin

This image targets ESP32-P4 silicon v0.x–v1.x. Check yours first with
esptool --port <PORT> flash-id; a v3.x chip will not boot it.

Then plug in Ethernet and open http://zhac.local.

The ESP32-C6 on the module is the Zigbee radio. On a fresh board it needs
ot_rcp installed once first: flash
zhac-c6-rcp-installer-p4-rev1x-v2026100601-rc1.bin at offset 0 (or the
browser flasher's "1. Install the Zigbee radio" button), wait ~30 s, then flash
the hub image above. Detail, and the JP1-wire fallback:
https://github.com/zhac-project/zhac-wired-core#zigbee-radio-esp32-c6

Updating a board that already runs ZHAC: the web UI's OTA page lists this
release and installs it (the -ota.bin file; keep the file name as published,
the page matches on it). It replaces the firmware and keeps devices, rules and
scripts.

What changed

See CHANGELOG.md.

Built from

sources-v2026100601-rc1.txt names the commit of this repo and of every sibling
repository the image was built against; SHA256SUMS covers every file above.

v2026100302

Choose a tag to compare

@github-actions github-actions released this 03 Oct 18:37

The ready-made hub: Espressif ESP32-S31 Function-CoreBoard

One board, nothing to wire. From Chrome or Edge, no toolchain:
https://zhac.org/flash/ -- it writes the four parts below and keeps
your devices, rules and settings (tick "erase" on the page for a clean start).
With esptool, the same four parts:

esptool --chip esp32s31 --port /dev/ttyUSB0 write-flash \
  0x2000 zhac-wired-s31-v2026100302-bootloader.bin \
  0xC000 zhac-wired-s31-v2026100302-partition-table.bin \
  0x1D000 zhac-wired-s31-v2026100302-otadata.bin \
  0x20000 zhac-wired-s31-v2026100302-ota.bin

zhac-wired-s31-v2026100302.bin is the same image merged into one file for offset 0 -- it also erases
devices, rules and settings (it covers the NVS area). Updates from the web UI use
zhac-wired-s31-v2026100302-ota.bin and keep everything.

ESP32-P4 boards (Guition JC-ESP32P4-M3-DEV)

ZHAC on one ESP32-P4 board with Ethernet. Status per board, and what is still
open: https://github.com/zhac-project/zhac-wired-core#status

Flash it

From Chrome or Edge, no toolchain: https://zhac.org/flash/

Or with esptool — one file, written at offset 0:

esptool --chip esp32p4 --port /dev/ttyACM0 write-flash 0x0 zhac-wired-p4-rev1x-v2026100302.bin

This image targets ESP32-P4 silicon v0.x–v1.x. Check yours first with
esptool --port <PORT> flash-id; a v3.x chip will not boot it.

Then plug in Ethernet and open http://zhac.local.

The ESP32-C6 on the module is the Zigbee radio. On a fresh board it needs
ot_rcp installed once first: flash
zhac-c6-rcp-installer-p4-rev1x-v2026100302.bin at offset 0 (or the
browser flasher's "1. Install the Zigbee radio" button), wait ~30 s, then flash
the hub image above. Detail, and the JP1-wire fallback:
https://github.com/zhac-project/zhac-wired-core#zigbee-radio-esp32-c6

Updating a board that already runs ZHAC: the web UI's OTA page lists this
release and installs it (the -ota.bin file; keep the file name as published,
the page matches on it). It replaces the firmware and keeps devices, rules and
scripts.

What changed

See CHANGELOG.md.

Built from

sources-v2026100302.txt names the commit of this repo and of every sibling
repository the image was built against; SHA256SUMS covers every file above.

v2026100301

Choose a tag to compare

@github-actions github-actions released this 03 Oct 15:58

The ready-made hub: Espressif ESP32-S31 Function-CoreBoard

One board, nothing to wire. From Chrome or Edge, no toolchain:
https://zhac.org/flash/ -- it writes the four parts below and keeps
your devices, rules and settings (tick "erase" on the page for a clean start).
With esptool, the same four parts:

esptool --chip esp32s31 --port /dev/ttyUSB0 write-flash \
  0x2000 zhac-wired-s31-v2026100301-bootloader.bin \
  0xC000 zhac-wired-s31-v2026100301-partition-table.bin \
  0x1D000 zhac-wired-s31-v2026100301-otadata.bin \
  0x20000 zhac-wired-s31-v2026100301-ota.bin

zhac-wired-s31-v2026100301.bin is the same image merged into one file for offset 0 -- it also erases
devices, rules and settings (it covers the NVS area). Updates from the web UI use
zhac-wired-s31-v2026100301-ota.bin and keep everything.

ESP32-P4 boards (Guition JC-ESP32P4-M3-DEV)

ZHAC on one ESP32-P4 board with Ethernet. Status per board, and what is still
open: https://github.com/zhac-project/zhac-wired-core#status

Flash it

From Chrome or Edge, no toolchain: https://zhac.org/flash/

Or with esptool — one file, written at offset 0:

esptool --chip esp32p4 --port /dev/ttyACM0 write-flash 0x0 zhac-wired-p4-rev1x-v2026100301.bin

This image targets ESP32-P4 silicon v0.x–v1.x. Check yours first with
esptool --port <PORT> flash-id; a v3.x chip will not boot it.

Then plug in Ethernet and open http://zhac.local.

The ESP32-C6 on the module is the Zigbee radio. On a fresh board it needs
ot_rcp installed once first: flash
zhac-c6-rcp-installer-p4-rev1x-v2026100301.bin at offset 0 (or the
browser flasher's "1. Install the Zigbee radio" button), wait ~30 s, then flash
the hub image above. Detail, and the JP1-wire fallback:
https://github.com/zhac-project/zhac-wired-core#zigbee-radio-esp32-c6

Updating a board that already runs ZHAC: the web UI's OTA page lists this
release and installs it (the -ota.bin file; keep the file name as published,
the page matches on it). It replaces the firmware and keeps devices, rules and
scripts.

What changed

See CHANGELOG.md.

Built from

sources-v2026100301.txt names the commit of this repo and of every sibling
repository the image was built against; SHA256SUMS covers every file above.

v2026100201

Choose a tag to compare

@github-actions github-actions released this 02 Oct 18:21

The ready-made hub: Espressif ESP32-S31 Function-CoreBoard

One board, nothing to wire. From Chrome or Edge, no toolchain:
https://zhac.org/flash/ -- it writes the four parts below and keeps
your devices, rules and settings (tick "erase" on the page for a clean start).
With esptool, the same four parts:

esptool --chip esp32s31 --port /dev/ttyUSB0 write-flash \
  0x2000 zhac-wired-s31-v2026100201-bootloader.bin \
  0xC000 zhac-wired-s31-v2026100201-partition-table.bin \
  0x1D000 zhac-wired-s31-v2026100201-otadata.bin \
  0x20000 zhac-wired-s31-v2026100201-ota.bin

zhac-wired-s31-v2026100201.bin is the same image merged into one file for offset 0 -- it also erases
devices, rules and settings (it covers the NVS area). Updates from the web UI use
zhac-wired-s31-v2026100201-ota.bin and keep everything.

ESP32-P4 boards (Guition JC-ESP32P4-M3-DEV)

ZHAC on one ESP32-P4 board with Ethernet. Status per board, and what is still
open: https://github.com/zhac-project/zhac-wired-core#status

Flash it

From Chrome or Edge, no toolchain: https://zhac.org/flash/

Or with esptool — one file, written at offset 0:

esptool --chip esp32p4 --port /dev/ttyACM0 write-flash 0x0 zhac-wired-p4-rev1x-v2026100201.bin

This image targets ESP32-P4 silicon v0.x–v1.x. Check yours first with
esptool --port <PORT> flash-id; a v3.x chip will not boot it.

Then plug in Ethernet and open http://zhac.local.

The ESP32-C6 on the module is the Zigbee radio. On a fresh board it needs
ot_rcp installed once first: flash
zhac-c6-rcp-installer-p4-rev1x-v2026100201.bin at offset 0 (or the
browser flasher's "1. Install the Zigbee radio" button), wait ~30 s, then flash
the hub image above. Detail, and the JP1-wire fallback:
https://github.com/zhac-project/zhac-wired-core#zigbee-radio-esp32-c6

Updating a board that already runs ZHAC: the web UI's OTA page lists this
release and installs it (the -ota.bin file; keep the file name as published,
the page matches on it). It replaces the firmware and keeps devices, rules and
scripts.

What changed

See CHANGELOG.md.

Built from

sources-v2026100201.txt names the commit of this repo and of every sibling
repository the image was built against; SHA256SUMS covers every file above.

v2026093001

Choose a tag to compare

@github-actions github-actions released this 30 Sep 04:40

The ready-made hub: Espressif ESP32-S31 Function-CoreBoard

One board, nothing to wire. From Chrome or Edge, no toolchain:
https://zhac.org/flash/ -- it writes the four parts below and keeps
your devices, rules and settings (tick "erase" on the page for a clean start).
With esptool, the same four parts:

esptool --chip esp32s31 --port /dev/ttyUSB0 write-flash \
  0x2000 zhac-wired-s31-v2026093001-bootloader.bin \
  0xC000 zhac-wired-s31-v2026093001-partition-table.bin \
  0x1D000 zhac-wired-s31-v2026093001-otadata.bin \
  0x20000 zhac-wired-s31-v2026093001-ota.bin

zhac-wired-s31-v2026093001.bin is the same image merged into one file for offset 0 -- it also erases
devices, rules and settings (it covers the NVS area). Updates from the web UI use
zhac-wired-s31-v2026093001-ota.bin and keep everything.

ESP32-P4 boards (Guition JC-ESP32P4-M3-DEV)

ZHAC on one ESP32-P4 board with Ethernet. Status per board, and what is still
open: https://github.com/zhac-project/zhac-wired-core#status

Flash it

From Chrome or Edge, no toolchain: https://zhac.org/flash/

Or with esptool — one file, written at offset 0:

esptool --chip esp32p4 --port /dev/ttyACM0 write-flash 0x0 zhac-wired-p4-rev1x-v2026093001.bin

This image targets ESP32-P4 silicon v0.x–v1.x. Check yours first with
esptool --port <PORT> flash-id; a v3.x chip will not boot it.

Then plug in Ethernet and open http://zhac.local.

The ESP32-C6 on the module is the Zigbee radio. On a fresh board it needs
ot_rcp installed once first: flash
zhac-c6-rcp-installer-p4-rev1x-v2026093001.bin at offset 0 (or the
browser flasher's "1. Install the Zigbee radio" button), wait ~30 s, then flash
the hub image above. Detail, and the JP1-wire fallback:
https://github.com/zhac-project/zhac-wired-core#zigbee-radio-esp32-c6

Updating a board that already runs ZHAC: the web UI's OTA page lists this
release and installs it (the -ota.bin file; keep the file name as published,
the page matches on it). It replaces the firmware and keeps devices, rules and
scripts.

What changed

See CHANGELOG.md.

Built from

sources-v2026093001.txt names the commit of this repo and of every sibling
repository the image was built against; SHA256SUMS covers every file above.

v2026092905

Choose a tag to compare

@github-actions github-actions released this 29 Sep 19:20

The ready-made hub: Espressif ESP32-S31 Function-CoreBoard

One board, nothing to wire. From Chrome or Edge, no toolchain:
https://zhac-project.github.io/zhac-docs/flash/ -- it writes the four parts below and keeps
your devices, rules and settings (tick "erase" on the page for a clean start).
With esptool, the same four parts:

esptool --chip esp32s31 --port /dev/ttyUSB0 write-flash \
  0x2000 zhac-wired-s31-v2026092905-bootloader.bin \
  0xC000 zhac-wired-s31-v2026092905-partition-table.bin \
  0x1D000 zhac-wired-s31-v2026092905-otadata.bin \
  0x20000 zhac-wired-s31-v2026092905-ota.bin

zhac-wired-s31-v2026092905.bin is the same image merged into one file for offset 0 -- it also erases
devices, rules and settings (it covers the NVS area). Updates from the web UI use
zhac-wired-s31-v2026092905-ota.bin and keep everything.

ESP32-P4 boards (Guition JC-ESP32P4-M3-DEV)

ZHAC on one ESP32-P4 board with Ethernet. Status per board, and what is still
open: https://github.com/zhac-project/zhac-wired-core#status

Flash it

From Chrome or Edge, no toolchain: https://zhac-project.github.io/zhac-docs/flash/

Or with esptool — one file, written at offset 0:

esptool --chip esp32p4 --port /dev/ttyACM0 write-flash 0x0 zhac-wired-p4-rev1x-v2026092905.bin

This image targets ESP32-P4 silicon v0.x–v1.x. Check yours first with
esptool --port <PORT> flash-id; a v3.x chip will not boot it.

Then plug in Ethernet and open http://zhac.local.

The ESP32-C6 on the module is the Zigbee radio. On a fresh board it needs
ot_rcp installed once first: flash
zhac-c6-rcp-installer-p4-rev1x-v2026092905.bin at offset 0 (or the
browser flasher's "1. Install the Zigbee radio" button), wait ~30 s, then flash
the hub image above. Detail, and the JP1-wire fallback:
https://github.com/zhac-project/zhac-wired-core#zigbee-radio-esp32-c6

Updating a board that already runs ZHAC: the web UI's OTA page lists this
release and installs it (the -ota.bin file; keep the file name as published,
the page matches on it). It replaces the firmware and keeps devices, rules and
scripts.

What changed

See CHANGELOG.md.

Built from

sources-v2026092905.txt names the commit of this repo and of every sibling
repository the image was built against; SHA256SUMS covers every file above.

v2026092904

Choose a tag to compare

@github-actions github-actions released this 29 Sep 17:12

The ready-made hub: Espressif ESP32-S31 Function-CoreBoard

One board, nothing to wire. From Chrome or Edge, no toolchain:
https://zhac-project.github.io/zhac-docs/flash/ -- it writes the four parts below and keeps
your devices, rules and settings (tick "erase" on the page for a clean start).
With esptool, the same four parts:

esptool --chip esp32s31 --port /dev/ttyUSB0 write-flash \
  0x2000 zhac-wired-s31-v2026092904-bootloader.bin \
  0xC000 zhac-wired-s31-v2026092904-partition-table.bin \
  0x1D000 zhac-wired-s31-v2026092904-otadata.bin \
  0x20000 zhac-wired-s31-v2026092904-ota.bin

zhac-wired-s31-v2026092904.bin is the same image merged into one file for offset 0 -- it also erases
devices, rules and settings (it covers the NVS area). Updates from the web UI use
zhac-wired-s31-v2026092904-ota.bin and keep everything.

ESP32-P4 boards (Guition JC-ESP32P4-M3-DEV)

ZHAC on one ESP32-P4 board with Ethernet. Status per board, and what is still
open: https://github.com/zhac-project/zhac-wired-core#status

Flash it

From Chrome or Edge, no toolchain: https://zhac-project.github.io/zhac-docs/flash/

Or with esptool — one file, written at offset 0:

esptool --chip esp32p4 --port /dev/ttyACM0 write-flash 0x0 zhac-wired-p4-rev1x-v2026092904.bin

This image targets ESP32-P4 silicon v0.x–v1.x. Check yours first with
esptool --port <PORT> flash-id; a v3.x chip will not boot it.

Then plug in Ethernet and open http://zhac.local.

The ESP32-C6 on the module is the Zigbee radio. On a fresh board it needs
ot_rcp installed once first: flash
zhac-c6-rcp-installer-p4-rev1x-v2026092904.bin at offset 0 (or the
browser flasher's "1. Install the Zigbee radio" button), wait ~30 s, then flash
the hub image above. Detail, and the JP1-wire fallback:
https://github.com/zhac-project/zhac-wired-core#zigbee-radio-esp32-c6

Updating a board that already runs ZHAC: the web UI's OTA page lists this
release and installs it (the -ota.bin file; keep the file name as published,
the page matches on it). It replaces the firmware and keeps devices, rules and
scripts.

What changed

See CHANGELOG.md.

Built from

sources-v2026092904.txt names the commit of this repo and of every sibling
repository the image was built against; SHA256SUMS covers every file above.

v2026092903

Choose a tag to compare

@github-actions github-actions released this 29 Sep 15:39

The ready-made hub: Espressif ESP32-S31 Function-CoreBoard

One board, nothing to wire. From Chrome or Edge, no toolchain:
https://zhac-project.github.io/zhac-docs/flash/ -- it writes the four parts below and keeps
your devices, rules and settings (tick "erase" on the page for a clean start).
With esptool, the same four parts:

esptool --chip esp32s31 --port /dev/ttyUSB0 write-flash \
  0x2000 zhac-wired-s31-v2026092903-bootloader.bin \
  0xC000 zhac-wired-s31-v2026092903-partition-table.bin \
  0x1D000 zhac-wired-s31-v2026092903-otadata.bin \
  0x20000 zhac-wired-s31-v2026092903-ota.bin

zhac-wired-s31-v2026092903.bin is the same image merged into one file for offset 0 -- it also erases
devices, rules and settings (it covers the NVS area). Updates from the web UI use
zhac-wired-s31-v2026092903-ota.bin and keep everything.

ESP32-P4 boards (Guition JC-ESP32P4-M3-DEV)

ZHAC on one ESP32-P4 board with Ethernet. Status per board, and what is still
open: https://github.com/zhac-project/zhac-wired-core#status

Flash it

From Chrome or Edge, no toolchain: https://zhac-project.github.io/zhac-docs/flash/

Or with esptool — one file, written at offset 0:

esptool --chip esp32p4 --port /dev/ttyACM0 write-flash 0x0 zhac-wired-p4-rev1x-v2026092903.bin

This image targets ESP32-P4 silicon v0.x–v1.x. Check yours first with
esptool --port <PORT> flash-id; a v3.x chip will not boot it.

Then plug in Ethernet and open http://zhac.local.

The ESP32-C6 on the module is the Zigbee radio. On a fresh board it needs
ot_rcp installed once first: flash
zhac-c6-rcp-installer-p4-rev1x-v2026092903.bin at offset 0 (or the
browser flasher's "1. Install the Zigbee radio" button), wait ~30 s, then flash
the hub image above. Detail, and the JP1-wire fallback:
https://github.com/zhac-project/zhac-wired-core#zigbee-radio-esp32-c6

Updating a board that already runs ZHAC: the web UI's OTA page lists this
release and installs it (the -ota.bin file; keep the file name as published,
the page matches on it). It replaces the firmware and keeps devices, rules and
scripts.

What changed

See CHANGELOG.md.

Built from

sources-v2026092903.txt names the commit of this repo and of every sibling
repository the image was built against; SHA256SUMS covers every file above.

v2026092902

Choose a tag to compare

@github-actions github-actions released this 29 Sep 11:09

The ready-made hub: Espressif ESP32-S31 Function-CoreBoard

One board, nothing to wire. From Chrome or Edge, no toolchain:
https://zhac-project.github.io/zhac-docs/flash/ -- it writes the four parts below and keeps
your devices, rules and settings (tick "erase" on the page for a clean start).
With esptool, the same four parts:

esptool --chip esp32s31 --port /dev/ttyUSB0 write-flash \
  0x2000 zhac-wired-s31-v2026092902-bootloader.bin \
  0xC000 zhac-wired-s31-v2026092902-partition-table.bin \
  0x1D000 zhac-wired-s31-v2026092902-otadata.bin \
  0x20000 zhac-wired-s31-v2026092902-ota.bin

zhac-wired-s31-v2026092902.bin is the same image merged into one file for offset 0 -- it also erases
devices, rules and settings (it covers the NVS area). Updates from the web UI use
zhac-wired-s31-v2026092902-ota.bin and keep everything.

ESP32-P4 boards (Guition JC-ESP32P4-M3-DEV)

ZHAC on one ESP32-P4 board with Ethernet. Status per board, and what is still
open: https://github.com/zhac-project/zhac-wired-core#status

Flash it

From Chrome or Edge, no toolchain: https://zhac-project.github.io/zhac-docs/flash/

Or with esptool — one file, written at offset 0:

esptool --chip esp32p4 --port /dev/ttyACM0 write-flash 0x0 zhac-wired-p4-rev1x-v2026092902.bin

This image targets ESP32-P4 silicon v0.x–v1.x. Check yours first with
esptool --port <PORT> flash-id; a v3.x chip will not boot it.

Then plug in Ethernet and open http://zhac.local.

The ESP32-C6 on the module is the Zigbee radio. On a fresh board it needs
ot_rcp installed once first: flash
zhac-c6-rcp-installer-p4-rev1x-v2026092902.bin at offset 0 (or the
browser flasher's "1. Install the Zigbee radio" button), wait ~30 s, then flash
the hub image above. Detail, and the JP1-wire fallback:
https://github.com/zhac-project/zhac-wired-core#zigbee-radio-esp32-c6

Updating a board that already runs ZHAC: the web UI's OTA page lists this
release and installs it (the -ota.bin file; keep the file name as published,
the page matches on it). It replaces the firmware and keeps devices, rules and
scripts.

What changed

See CHANGELOG.md.

Built from

sources-v2026092902.txt names the commit of this repo and of every sibling
repository the image was built against; SHA256SUMS covers every file above.