Error with Poolex ESPHome integration after converting from cloud to local

Hey guys,

I own a Poolex Silverstar FI 120 heat pump for my pool which was connected to the Tuya-cloud.

After several faults with not-working automations using the timer in the app - the heat pump didn’t turn on and off correctly - I decided to follow this guide to “convert” the cloud-system to local system controllable with ESPHome:

But it seems there are some issues, maybe because I used an ESP32 (from here: https://www.amazon.de/gp/product/B0CL9VZKMT) instead of the ESP8266 the creator used:

I tried it with another ESP32 before (ESP32-WROOM-32) also with no luck, even the actual temperature is now shown :frowning_face:

After flashing the YAML to the ESP32 I get this output in my log:

INFO OTA successful
INFO Successfully uploaded program.
INFO Starting log output from 192.168.178.180 using esphome API
INFO Successfully connected to esphome-pool-waermepumpe @ 192.168.178.180 in 5.163s
INFO Successful handshake with esphome-pool-waermepumpe @ 192.168.178.180 in 0.102s
[10:34:54][I][app:100]: ESPHome version 2024.6.6 compiled on Jul  4 2024, 10:33:54
[10:34:54][C][wifi:599]: WiFi:
[10:34:54][C][wifi:427]:   Local MAC: xx:xx:xx:xx:xx:xx
[10:34:54][C][wifi:432]:   SSID: [redacted]
[10:34:54][C][wifi:435]:   IP Address: 192.168.xx.xx
[10:34:54][C][wifi:439]:   BSSID: [redacted]
[10:34:54][C][wifi:440]:   Hostname: 'esphome-pool-waermepumpe'
[10:34:54][C][wifi:442]:   Signal strength: -64 dB ▂▄▆█
[10:34:54][C][wifi:446]:   Channel: 11
[10:34:54][C][wifi:447]:   Subnet: 255.255.255.0
[10:34:54][C][wifi:448]:   Gateway: 192.168.178.1
[10:34:54][C][wifi:449]:   DNS1: 1.1.1.1
[10:34:54][C][wifi:450]:   DNS2: 0.0.0.0
[10:34:54][C][logger:185]: Logger:
[10:34:54][C][logger:186]:   Level: DEBUG
[10:34:54][C][logger:188]:   Log Baud Rate: 0
[10:34:54][C][logger:189]:   Hardware UART: UART0
[10:34:54][C][uart.arduino_esp32:137]: UART Bus 0:
[10:34:54][C][uart.arduino_esp32:138]:   TX Pin: GPIO1
[10:34:54][C][uart.arduino_esp32:139]:   RX Pin: GPIO3
[10:34:54][C][uart.arduino_esp32:141]:   RX Buffer Size: 256
[10:34:54][C][uart.arduino_esp32:143]:   Baud Rate: 115200 baud
[10:34:54][C][uart.arduino_esp32:144]:   Data Bits: 8
[10:34:54][C][uart.arduino_esp32:145]:   Parity: NONE
[10:34:54][C][uart.arduino_esp32:146]:   Stop bits: 1
[10:34:54][C][tuya.switch:068]: Tuya Switch 'poolwaermepumpe_power'
[10:34:54][C][tuya.switch:091]:   Restore Mode: always OFF
[10:34:54][C][tuya.switch:024]:   Switch has datapoint ID 1
[10:34:54][C][tuya.number:034]: Tuya Number 'poolwaermepumpe_target_temp'
[10:34:54][C][tuya.number:034]:   Unit of Measurement: '°C'
[10:34:54][C][tuya.number:034]:   Device Class: 'temperature'
[10:34:54][C][tuya.number:035]:   Number has datapoint ID 2
[10:34:54][C][tuya.sensor:029]: Tuya Sensor 'poolwaermepumpe_current_temp'
[10:34:54][C][tuya.sensor:029]:   Device Class: 'temperature'
[10:34:54][C][tuya.sensor:029]:   State Class: ''
[10:34:54][C][tuya.sensor:029]:   Unit of Measurement: '°C'
[10:34:54][C][tuya.sensor:029]:   Accuracy Decimals: 0
[10:34:54][C][tuya.sensor:030]:   Sensor has datapoint ID 3
[10:34:54][C][tuya.select:042]: Tuya Select 'poolwaermepumpe_mode'
[10:34:54][C][tuya.select:043]:   Select has datapoint ID 4
[10:34:54][C][tuya.select:044]:   Options are:
[10:34:54][C][tuya.select:047]:     0: ECO Heat
[10:34:54][C][tuya.select:047]:     1: ECO Cool
[10:34:54][C][tuya.select:047]:     2: Automatic
[10:34:54][C][tuya.select:047]:     3: Boost Heat
[10:34:54][C][tuya.select:047]:     4: Silent Heat
[10:34:54][C][tuya.select:047]:     5: Boost Cool
[10:34:54][C][tuya.select:047]:     6: Silent Cool
[10:34:54][C][captive_portal:088]: Captive Portal:
[10:34:54][C][mdns:115]: mDNS:
[10:34:54][C][mdns:116]:   Hostname: esphome-pool-waermepumpe
[10:34:54][C][esphome.ota:073]: Over-The-Air updates:
[10:34:54][C][esphome.ota:074]:   Address: esphome-pool-waermepumpe.local:3232
[10:34:54][C][esphome.ota:075]:   Version: 2
[10:34:54][C][esphome.ota:078]:   Password configured
[10:34:54][C][safe_mode:018]: Safe Mode:
[10:34:54][C][safe_mode:020]:   Boot considered successful after 60 seconds
[10:34:54][C][safe_mode:021]:   Invoke after 10 boot attempts
[10:34:54][C][safe_mode:023]:   Remain in safe mode for 300 seconds
[10:34:54][C][api:139]: API Server:
[10:34:54][C][api:140]:   Address: esphome-pool-waermepumpe.local:6053
[10:34:54][C][api:142]:   Using noise encryption: YES
[10:34:54][C][tuya:041]: Tuya:
[10:34:54][C][tuya:047]:   Configuration will be reported when setup is complete. Current init_state: 0
[10:34:54][C][tuya:049]:   If no further output is received, confirm that this is a supported Tuya device.
[10:34:55][E][tuya:458]: Initialization failed at init_state 0
[10:35:07][E][tuya:458]: Initialization failed at init_state 0
[10:35:22][E][tuya:458]: Initialization failed at init_state 0
[10:35:37][E][tuya:458]: Initialization failed at init_state 0
[10:35:48][I][safe_mode:041]: Boot seems successful; resetting boot loop counter
[10:35:48][D][esp32.preferences:114]: Saving 1 preferences to flash...
[10:35:48][D][esp32.preferences:143]: Saving 1 preferences to flash: 0 cached, 1 written, 0 failed
[10:35:52][E][tuya:458]: Initialization failed at init_state 0
[10:36:07][E][tuya:458]: Initialization failed at init_state 0
[10:36:22][E][tuya:458]: Initialization failed at init_state 0
[10:36:37][E][tuya:458]: Initialization failed at init_state 0
[10:36:52][E][tuya:458]: Initialization failed at init_state 0
[10:37:07][E][tuya:458]: Initialization failed at init_state 0
[10:37:22][E][tuya:458]: Initialization failed at init_state 0
[10:37:37][E][tuya:458]: Initialization failed at init_state 0
[10:37:52][E][tuya:458]: Initialization failed at init_state 0
[10:38:07][E][tuya:458]: Initialization failed at init_state 0
[10:38:22][E][tuya:458]: Initialization failed at init_state 0
[10:38:37][E][tuya:458]: Initialization failed at init_state 0

And this is the YAML I used:

substitutions:
  device_id: "poolwaermepumpe"

esphome:
  name: esphome-pool-waermepumpe
  friendly_name: ESPHome Pool Waermepumpe

esp32:
  board: nodemcu-32s
  framework:
    type: arduino
    version: 2.0.0

# Enable logging
logger:
  baud_rate: 0
  
# Enable Home Assistant API
api:
  encryption:
    key: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

ota:
  - platform: esphome
    password: "xxxxxxxxxxxxxxxx"

wifi:
  ssid: "xxxxxxxxxxxxxxxxxxxxxx"
  password: "xxxxxxxxxxxxxxxxxxxxx"

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "xxxxxxxxxxxxxxxxxx"
    password: "xxxxxxxxxxxxxxxxxx"

captive_portal:

uart:
  rx_pin: GPIO3
  tx_pin: GPIO1
  baud_rate: 115200

tuya:

# On-off.
switch:
  - platform: "tuya"
    name: ${device_id}_power
    switch_datapoint: 1

# Target temperature.
number:
  - platform: "tuya"
    name: ${device_id}_target_temp
    device_class: temperature
    unit_of_measurement: "°C"
    number_datapoint: 2
    min_value: 20
    max_value: 40
    step: 1

# Current temperature.
sensor:
  - platform: "tuya"
    name: ${device_id}_current_temp
    device_class: temperature
    unit_of_measurement: "°C"
    sensor_datapoint: 3

# Current mode.
select:
  - platform: "tuya"
    name: ${device_id}_mode
    enum_datapoint: 4
    optimistic: false
    options:
      0: "ECO Heat"
      1: "ECO Cool"
      2: "Automatic"
      3: "Boost Heat"
      4: "Silent Heat"
      5: "Boost Cool"
      6: "Silent Cool"

Could you point me to where I obviously made a mistake?

Best regards and TIA
Mischa

I don’t know that have you solved this or not, but some pictures of the wiring would be helpful to understand your problem. Likely you have not connected something, so it cannot communicate with the WBR3.