
Rheem Econet using Waveshare ESP32-S3-Relay-1CH
I have successfully used a waveshare esp32-s3-relay-6ch to interface with my EcoNet hot water heater. I purchased a smaller waveshare esp32-s3-1ch that I would like to use permanently. I added the required EcoNet flow_control_pin definition to my code but have not had any success getting it to work. It appears from rs485 bus sniffing that the 1ch board is sending a good message (same as what the 6ch board sends) every 7.5 seconds but there is no reply from the heater. When using the 6ch board the heater correctly responds.
Waveshare ESP32-S3-Relay-6CH (hardware auto-direction, no flow_control_pin) works fine on the heater's RJ11 port. The 1CH and the RS485-CAN board, configured as documented (tx_pin: GPIO17, rx_pin: GPIO18, econet: flow_control_pin: GPIO21), receive the heater's frames but every read request goes unanswered ("No read request has ever been answered"). Same wiring, same cable. Neither board has the 120R jumper installed, and neither has a ground terminal on the isolated RS485 side. Moving flow_control_pin into the uart: block changes nothing.
A second ESP32-S3-RS485-CAN running a UART debug sniffer on the same pair shows the 1CH's requests arriving complete with correct CRCs (e.g. the 52-byte 34 request ending 18 27), byte-identical to the 6CH's. The only difference is that after each 6CH request the capture shows a run of 0 to 10 00 bytes followed by the heater's reply (80 00 03 40 00 80 00 12 ...), while after the 1CH's request nothing follows.
I have seen on the EcoNet GitHub repository that people have successfully used this board so I must be doing something wrong. Any ideas would be greatly appreciated
Here is the code:
esphome:
name: water-heater-controller-new
friendly_name: New Water Heater Controller
esp32:
board: esp32-s3-devkitc-1
variant: esp32s3
framework:
type: esp-idf
logger:
level: DEBUG
logs:
sensor: ERROR
text_sensor: ERROR
api:
encryption:
key: "Jdmxq8AYYm0ltImaId9aZvQr41s4/PpHlyEQdrSAeBk="
ota:
platform: esphome
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
substitutions:
tx_pin: GPIO17
rx_pin: GPIO18
# =====================================================
# Econet Protocol Engine
# =====================================================
econet:
flow_control_pin: GPIO21
# =====================================================
# External Econet Component
# =====================================================
packages:
econet:
url: https://github.com/esphome-econet/esphome-econet
ref: main
file: econet_electric_tank_water_heater.yaml