Important: V1 and V2 use different firmware
The V1 and V2 boards use different ESP32 GPIO pinouts. You must use the correct firmware for your board revision.
- V2 board (newer): Download tekonline-8zone-controller-v2-v2026-05-17.txt (rename to .yml after download)
- V1 board (original): Download tekonline-8zone-controller-v1-v2026-05-17.txt (rename to .yml after download)
If you are unsure which board you have, check your order or contact TekOnline. Using the wrong firmware will cause incorrect zone switching.
What changed
This release adds:
- per-zone relay inversion switches for all eight zones
- a TekOnline firmware version visible in
Home Assistant - OTA update support from the ESPHome Dashboard
- V1 and V2 firmware builds kept in sync
Per-zone relay inversion
Some HVAC zone interfaces behave as active-high outputs. Others behave as active-low outputs.
If a zone behaves backwards, for example off in Home Assistant turns the HVAC output on, use the new inversion switch for that zone.
In Home Assistant, look for:
Zone 1 Relay InvertedZone 2 Relay InvertedZone 3 Relay InvertedZone 4 Relay InvertedZone 5 Relay InvertedZone 6 Relay InvertedZone 7 Relay InvertedZone 8 Relay Inverted
Turn on the inversion switch only for the zone that behaves backwards. If all zones behave backwards, turn on all eight inversion switches.
Default inversion values
The firmware ships with sensible defaults that match each board revision’s physical relay behaviour.
V2 defaults:
| Zone | GPIO | Default Inverted |
|---|---|---|
| 1 | GPIO12 | No |
| 2 | GPIO14 | Yes |
| 3 | GPIO27 | Yes |
| 4 | GPIO26 | No |
| 5 | GPIO25 | Yes |
| 6 | GPIO33 | Yes |
| 7 | GPIO32 | Yes |
| 8 | GPIO4 | No |
V1 defaults:
| Zone | GPIO | Default Inverted |
|---|---|---|
| 1 | GPIO27 | No |
| 2 | GPIO32 | Yes |
| 3 | GPIO25 | Yes |
| 4 | GPIO33 | No |
| 5 | GPIO26 | Yes |
| 6 | GPIO19 | Yes |
| 7 | GPIO18 | Yes |
| 8 | GPIO17 | Yes |
You can override any of these defaults from Home Assistant using the per-zone inversion switches.
Firmware version in Home Assistant
Each controller now exposes diagnostic entities including:
8-Zone V2 ESPHome Version(or V1)8-Zone V2 WiFi Signal8-Zone V2 Uptime Seconds8-Zone V2 IP
This makes support easier because you can confirm exactly which firmware build is installed and check network health without opening the ESPHome YAML.
OTA updates
If the controller is already online and already running ESPHome firmware, you can usually update it over the network:
- Add the correct YAML to your ESPHome Dashboard.
- Click
Install. - Choose
Wirelessly.
If ESPHome cannot find the device by hostname, find the controller’s IP address in Home Assistant or your router and temporarily add use_address to your local copy of the YAML:
wifi:
use_address: 192.168.1.123
Replace 192.168.1.123 with your controller’s actual IP address. Do not add a private IP address to the public/shared YAML file.
If OTA is not available
OTA only works if ESPHome firmware is already running on the controller and the controller is reachable on your network.
If the ESP32 flash has been wiped, or if the current firmware does not support OTA, use USB flashing first. After a successful USB flash with ESPHome firmware, future updates can usually be done wirelessly.
Need help?
Contact TekOnline and include:
- your board revision (V1 or V2)
- whether the controller is currently online
- the controller IP address, if known
- your ESPHome version
- the firmware version shown in
Home Assistant, if available - whether any zones appear inverted
Leave a Reply