Esp32 Minikit gpio not working

I try to create a device where I switch a general relay from esp32 mini. I connected it to IO16 and also other. But no matter what I do, the lights on the relay are both on on boot. Relay is connected to a small pump and pump is connected to COM and NO. But also when I connect the pump to COM and NC it does not turn on, other pump is same.

So I am not sure what is wrong, does relay not work, are pumps defect or is the code wrong

Here is the esphome code

substitutions:
  name: plant_sensor_1
  friendly_name: Plant Sensor 1

esphome:
  name: ${name}
  friendly_name: ${friendly_name}
  name_add_mac_suffix: false
  project:
    name: esphome.web
    version: '1.0'

esp32:
  board: wemos_d1_mini32
  
# Enable logging
logger:

# Enable Home Assistant API
api:

# Allow Over-The-Air updates
ota:

# Allow provisioning Wi-Fi via serial
improv_serial:

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "${device_name}-plant-sensor-1"
    password: "Ho6iNSovLIS5"

# In combination with the `ap` this allows the user
# to provision wifi credentials to the device via WiFi AP.
captive_portal:

dashboard_import:
  package_import_url: github://esphome/example-configs/esphome-web/esp32.yaml@main
  import_full_config: true

# Sets up Bluetooth LE (Only on ESP32) to allow the user
# to provision wifi credentials to the device.
esp32_improv:
  authorizer: none

# To have a "next url" for improv serial
web_server:
    port: 80




switch:
  - platform: gpio
    name: "Pump 1"
    pin: GPIO016

Not sure if the board is a problem, I also tried with esp32dev.

Any ideas?

Do You have issue with GPIO state on boot ? After it switching or not ?

Reg. pump - You need separate power supply for pump.
Relay not providing power, just connects COM-NC or COM-NO.

GPIO016 should be GPIO16