Hi,
Thought I would add my setup to the discussion. I also went the route of removing the WBR and soldered a ESP32-C3 in its place. Thanks Jack for the pics showing which pins go where, it was a big help!
But instead pf going the custom firmware route I installed ESP Home and used the tuya component to get the board working. For those who are interested here is my complete ESP Home configuration file.
esphome:
name: geyserwise
friendly_name: GeyserWise
esp32:
board: esp32-c3-devkitm-1
variant: esp32c3
# Disable serial logging
logger:
baud_rate: 0
# Enable Home Assistant API
api:
encryption:
key: ***
ota:
password: ***
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Geyserwise Fallback Hotspot"
password: ***
captive_portal:
uart:
rx_pin: GPIO21
tx_pin: GPIO20
baud_rate: 9600
tuya:
sensor:
- platform: "tuya"
name: "Collector Temp"
sensor_datapoint: 108
unit_of_measurement: '°C'
- platform: "tuya"
name: "Geyser Temperature"
sensor_datapoint: 10
unit_of_measurement: '°C'
- platform: "tuya"
name: "Element Runtime"
sensor_datapoint: 109
unit_of_measurement: 'hrs'
- platform: "tuya"
name: "Error Code"
sensor_datapoint: 20
- platform: "tuya"
name: "Element Status"
sensor_datapoint: 13
- platform: "tuya"
name: "Pump Status"
sensor_datapoint: 101
number:
- platform: "tuya"
name: "Geyser Block 1 - Max Temp"
number_datapoint: 103
min_value: 30
max_value: 65
step: 1
unit_of_measurement: '°C'
- platform: "tuya"
name: "Geyser Block 2 - Max Temp"
number_datapoint: 104
min_value: 30
max_value: 65
step: 1
unit_of_measurement: '°C'
- platform: "tuya"
name: " Geyser Block 3 - Max Temp"
number_datapoint: 105
min_value: 30
max_value: 65
step: 1
unit_of_measurement: '°C'
- platform: "tuya"
name: "Geyser Block 4 - Max Temp"
number_datapoint: 106
min_value: 30
max_value: 65
step: 1
unit_of_measurement: '°C'
- platform: "tuya"
name: "Geyser Antifreeze Temp"
number_datapoint: 107
min_value: 0
max_value: 10
step: 1
unit_of_measurement: '°C'
- platform: "tuya"
name: "Geyser Solar Diff Temp"
number_datapoint: 102
min_value: 7
max_value: 15
step: 1
unit_of_measurement: '°C'
switch:
- platform: "tuya"
name: "Geyser"
switch_datapoint: 1
select:
- platform: "tuya"
name: "Mode"
enum_datapoint: 2
optimistic: False
options:
0: "Holiday"
1: "Normal"
The baud rate needs to be set at 9600. I tried other values but the component stopped working.
Also if you use the marked UART (RX/TX) pins, these are the same pins that ESP Home uses for its serial logger so you need to disable the logger in the configuration.
This has worked very well for me and I am happy with the results.