TekOnline

ESPHome 8-Zone HVAC Controller V2 Setup Guide

Thanks for purchasing the ESPHome 8-Zone HVAC Controller V2.

This guide shows you how to:

  • connect the board by USB
  • flash it in ESPHome
  • add it to Home Assistant
  • check the logs to confirm the board is responding
  • then connect 24V AC so the relays can operate

Important Power Note

USB only powers the ESP32. USB does not power the relay side of the board. 24V AC is required for the relays to work.

The normal process is:

  1. Connect by USB.
  2. Flash and configure the ESP32.
  3. Add it to Home Assistant.
  4. Check the logs show it is online and responding.
  5. Connect 24V AC.
  6. Test the relays and zone outputs.

You can do the software setup first, but you will need 24V AC connected before you can test actual relay switching.

What You Need

  • the ESPHome 8-Zone HVAC Controller V2
  • a USB C cable
  • Home Assistant running on your network
  • the ESPHome add-on installed in Home Assistant
  • your Wi-Fi name and password
  • a 24V AC supply for the board when you are ready to test the relays

Step 1: Connect The Board By USB

Plug the board into your computer or into the machine you are using for setup via USB.

The ESP32 side should power up, but the relays will not operate yet on USB alone.

Step 2: Open ESPHome In Home Assistant

In Home Assistant:

  1. Open Home Assistant.
  2. Click Settings.
  3. Click Add-ons.
  4. Click ESPHome.

If you do not already have ESPHome installed, install the ESPHome add-on first.

Step 3: Create A New Device In ESPHome

In the ESPHome dashboard:

  1. Click New Device.
  2. Give it a name such as zone-control.
  3. Enter your Wi-Fi details when prompted.
  4. Choose ESP32.
  5. Finish the wizard.

ESPHome will generate a basic config for you.

Step 4: Replace The Generated Config

Open the device you just created, click Edit, and replace the generated YAML with the following V2 config.

Do not use this V2 config on the original V1 board. V1 and V2 use different GPIO pinouts.

esphome:
  name: esphome-8zone-v2
  friendly_name: ESPHome 8-Zone Controller V2
  compile_process_limit: 1
  on_boot:
    priority: 100
    then:
      - switch.turn_on: switch1
      - switch.turn_on: switch2
      - switch.turn_on: switch3
      - switch.turn_on: switch4
      - switch.turn_on: switch5
      - switch.turn_on: switch6
      - switch.turn_on: switch7
      - switch.turn_on: switch8

esp32:
  board: esp32dev
  framework:
    type: arduino

logger:

api:

ota:
  - platform: esphome

web_server:
  port: 80

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  output_power: 20.0
  fast_connect: true
  power_save_mode: none
  ap:
    ssid: "TekOnline 8 Zone V2"
    password: "REPLACE_WITH_YOUR_OWN_PASSWORD"

captive_portal:

switch:
  - platform: gpio
    name: "Zone 1"
    pin: GPIO12
    id: switch1
    inverted: false
    restore_mode: ALWAYS_ON

  - platform: gpio
    name: "Zone 2"
    pin: GPIO14
    id: switch2
    inverted: true
    restore_mode: ALWAYS_ON

  - platform: gpio
    name: "Zone 3"
    pin: GPIO27
    id: switch3
    inverted: true
    restore_mode: ALWAYS_ON

  - platform: gpio
    name: "Zone 4"
    pin: GPIO26
    id: switch4
    inverted: false
    restore_mode: ALWAYS_ON

  - platform: gpio
    name: "Zone 5"
    pin: GPIO25
    id: switch5
    inverted: true
    restore_mode: ALWAYS_ON

  - platform: gpio
    name: "Zone 6"
    pin: GPIO33
    id: switch6
    inverted: true
    restore_mode: ALWAYS_ON

  - platform: gpio
    name: "Zone 7"
    pin: GPIO32
    id: switch7
    inverted: true
    restore_mode: ALWAYS_ON

  - platform: gpio
    name: "Zone 8"
    pin: GPIO4
    id: switch8
    inverted: false
    restore_mode: ALWAYS_ON

sensor:
  - platform: internal_temperature
    name: "Internal Temperature"

  - platform: wifi_signal
    name: "8-Zone V2 WiFi Signal"
    update_interval: 600s

  - platform: uptime
    name: "8-Zone V2 Uptime Seconds"
    update_interval: 60s

text_sensor:
  - platform: version
    name: "8-Zone V2 ESPHome Version"

  - platform: wifi_info
    ip_address:
      name: "8-Zone V2 IP"
    bssid:
      name: "8-Zone V2 BSSID"

  - platform: uptime
    name: "8-Zone V2 Uptime"

V2 Pinout Reference

Zone ESP32 GPIO Inverted
1 GPIO12 false
2 GPIO14 true
3 GPIO27 true
4 GPIO26 false
5 GPIO25 true
6 GPIO33 true
7 GPIO32 true
8 GPIO4 false

 

Step 5: Save And Install

After pasting in the config:

  1. Click Save.
  2. Click Install.
  3. Choose Plug into this computer if you are flashing from the same machine.
  4. Follow the prompts.

ESPHome will build the firmware and flash it to the board over USB.

Step 6: Let It Join Wi-Fi

After flashing, the board should reboot and try to connect to your Wi-Fi.

If it cannot join Wi-Fi, it may create a fallback hotspot using the ap: section in the config.

Step 7: Add It Into Home Assistant

Once the board is online:

  1. Go to Home Assistant.
  2. Click Settings.
  3. Click Devices & Services.
  4. Look for the discovered ESPHome device.
  5. Click Add.

Step 8: Check The Logs

Before wiring the relay side, first confirm the ESP32 side is healthy.

In Home Assistant:

  1. Click Settings.
  2. Click Add-ons.
  3. Open ESPHome.
  4. Find your device in the ESPHome dashboard.
  5. Click the device name.
  6. Click Logs.

You are mainly checking that the device has booted, connected to Wi-Fi, connected to Home Assistant via the API, and is staying online without obvious repeated errors.

Step 9: Connect 24V AC

Once the board is flashed, online, and the logs look healthy, connect 24V AC.

Without 24V AC, the ESP32 can still appear online, but the relays will not function.

Step 10: Test The Zones

After 24V AC is connected:

  1. Open Home Assistant.
  2. Open the controller device.
  3. Toggle one zone switch at a time.
  4. Confirm the correct relay activates.
  5. Confirm the correct zone or damper responds.

Common Questions

Can I Do The Setup With Only USB Connected?

Yes, for flashing, Wi-Fi setup, Home Assistant adoption, and log checking.

No, for relay operation. USB only powers the ESP32. 24V AC is required for the relays.

Which Config Should I Use For The Original V1 Board?

Use firmware/esphome/8zone_controller_v1.yml from the project repo. The original V1 board uses a different pinout:

Zone ESP32 GPIO
1 GPIO27
2 GPIO32
3 GPIO25
4 GPIO33
5 GPIO26
6 GPIO19
7 GPIO18
8 GPIO17

Troubleshooting

I Can See The Device In Home Assistant, But The Relays Do Not Work

Most likely cause: 24V AC is not connected.

USB alone will not power the relays.

The Wrong Zone Toggles

Confirm you are using the correct config for your board revision. V1 and V2 use different GPIO pinouts.

The Config Will Not Validate

Check for typos, wrong indentation, copied quotes or hidden characters from a rich text editor, and old passwords or keys copied incorrectly.


Posted

in

by

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *