Goldair GPOC2415 Platinum 2400W Smart Wi-Fi Oil Column Heater

General Notes
I actually broke my WBR3 Chip during dissassembly so the following config is going to be based on using an ESP8266 Chip.
To get at the chip you will need to pry the front faceplate off using a spudger or screwdriver. Then remove all of the screws and pull off the whole faceplate, the chip is located on the back of the mainboard. You will then need to desolder it to flash it.

Flashing Instuctions
This device is based on the WBR3 Tuya Module, you can check for flashing setup on the Elektroda forum. With the WBR3 removed and with the probe pins soldered you can use ltchiptool to flash it via UART. We strongly recommend using an external power source for the 3v3 power supply. Make sure to connect the GND of the supply and the serial converter together, so they share the same GND reference.
GPIO Pinout
| Pin | Function |
|---|---|
| GPIO1 | UART TX (Connects to TuyaMCU RX) |
| GPIO3 | UART RX (Connects to TuyaMCU TX) |
TuyaMCU DP IDs
| DP ID | Function | Type | Values / Notes |
|---|---|---|---|
1 | Power | Boolean | 0: Off, 1: On |
2 | Target Temperature | Value | Integer, 5-30°C |
3 | Current Temperature | Value | Integer, °C |
5 | Power/Mode | Enum | 0: ECO, 1: LOW, 2: MED, 3: HIGH |
7 | Child Lock | Boolean | 0: Off, 1: On |
11 | Work State | Enum | 0: Heating, 1: Warm |
20 | AUTO-OFF Time Remaining | Value | Integer, minutes |
21 | Unknown | Raw | 8-byte hex value, function unknown |
101 | Disable Beeping | Boolean | 0: Beeping enabled, 1: Disabled |
102 | AUTO-ON Timer | Value | Integer, 0-24 hours |
103 | AUTO-OFF Timer | Value | Integer, 0-24 hours |
Features
Climate Entity
Unified climate control interface exposing:
- Power control
- Target temperature (5-30°C, 1°C steps)
- Current temperature reading
- Fan modes mapped to heating power levels (ECO/LOW/MED/HIGH)
- Work state monitoring (Heating/Warm)
Scheduling
- AUTO-ON: Automatically power on after specified hours (0-24h)
- AUTO-OFF: Automatically power off after specified hours (0-24h)
- Real-time countdown display for AUTO-OFF
Safety Features
- Child lock to prevent accidental changes
- Optional beep disable for quiet operation
- Temperature limits enforced (5-30°C)
Example ESPHome Configuration
The below configuration is for an ESP8226, not the original WBR3 Board, sorry.
esphome: name: smart-heater friendly_name: Smart-Heater
esp8266: board: esp12e
logger: baud_rate: 0
uart: tx_pin: GPIO1 rx_pin: GPIO3 baud_rate: 9600
# Enable Home Assistant APIapi: encryption: key: "encryption_key"
ota: - platform: esphome password: "ota_password"
wifi: ssid: !secret wifi_ssid password: !secret wifi_password
captive_portal:web_server:
text_sensor: - platform: template id: tuya_work_state name: Work State filters: - map: - 0 -> Heating - 1 -> Warm
tuya: on_datapoint_update: - sensor_datapoint: 11 datapoint_type: enum then: - text_sensor.template.publish: id: tuya_work_state state: !lambda "return std::to_string(x);"
switch: - platform: tuya switch_datapoint: 1 name: Power - platform: tuya switch_datapoint: 7 name: Child Lock - platform: tuya switch_datapoint: 101 name: Disable Beeping
number: - platform: tuya number_datapoint: 2 name: Temperature unit_of_measurement: "°C" min_value: 5 max_value: 30 step: 1
- platform: tuya number_datapoint: 102 name: AUTO-ON unit_of_measurement: Hours min_value: 0 max_value: 24 step: 1
- platform: tuya number_datapoint: 103 name: AUTO-OFF unit_of_measurement: Hours min_value: 0 max_value: 24 step: 1
sensor: - platform: tuya sensor_datapoint: 3 name: Current Temperature unit_of_measurement: "°C" - platform: tuya sensor_datapoint: 20 name: AUTO-OFF Time Remaining unit_of_measurement: min
select: - platform: tuya enum_datapoint: 5 name: Power/Mode optimistic: true options: 0: ECO 1: LOW 2: MED 3: HIGH
climate: - platform: tuya name: "Smart Heater" switch_datapoint: 1 # Power target_temperature_datapoint: 2 # Set temperature current_temperature_datapoint: 3 # Current temperature
active_state: datapoint: 11
fan_mode: datapoint: 5 auto_value: 0 low_value: 1 medium_value: 2 high_value: 3
visual: min_temperature: 5 max_temperature: 30 temperature_step: 1