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