How to: Zeoota power strip with 3 sockets and USB charging

Buy, tuya convert, and enjoy!

https://amzn.to/2Tzmacc

single click toggles socket 1
double click toggles socket 2
tripple click toggles socket 3
single long click toggles USB power

There is one little flaw. The blue led turns on when activating any of the sockets. The red led turns on when activating USB power.
I am still looking for a solution to switch the blue_led off if ALL sockets are off.

esphome:
  ## Zeoota power strip with 3 sockets and USB charging
  name: zeoota01
  platform: ESP8266
  board: esp01_1m

wifi:
  ssid: !secret esphome_wifi_ssid
  password: !secret esphome_wifi_password
  
api:
  password: !secret esphome_api_password

ota:
  password: !secret esphome_ota_password

logger:

binary_sensor:
  - platform: gpio
    pin:
      number: 12
      mode: INPUT_PULLUP
      inverted: true
    name: "Zeoota01 button"
    on_multi_click:
    - timing:
        - ON for at most 0.4s
        - OFF for at most 0.4s
        - ON for at most 0.4s
        - OFF for at most 0.4s
        - ON for at most 0.4s
        - OFF for at least 0.2s
      then:
        - logger.log: "Tripple Click - socket 3"
        - switch.toggle: relay3
        - output.turn_on: blue_led
    - timing:
        - ON for at most 0.4s
        - OFF for at most 0.4s
        - ON for at most 0.4s
        - OFF for at least 0.2s
      then:
        - logger.log: "Double Click - socket 2"
        - switch.toggle: relay2
        - output.turn_on: blue_led
    - timing:
        - ON for at most 0.5s
        - OFF for at least 0.4s
      then:
        - logger.log: "Single Click - socket 1"
        - switch.toggle: relay1 
        - output.turn_on: blue_led
    - timing:
        - ON for 0.6s to 3s
        - OFF for at least 0.3s
      then:
        - logger.log: "Single Long Click - USB"
        - switch.toggle: relay4 
        - output.turn_on: red_led

  - platform: status
    name: "Zeoota01 Status"
    
output:
  - platform: esp8266_pwm
    id: red_led
    pin: GPIO1
    inverted: True

  - platform: esp8266_pwm
    id: blue_led
    pin: GPIO3
    inverted: True
    
switch:
  - platform: gpio
    name: "Zeoota01 socket 1"
    pin: GPIO5
    id: relay1
  - platform: gpio
    name: "Zeoota01 socket 2"
    pin: GPIO4
    id: relay2
  - platform: gpio
    name: "Zeoota01 socket 3"
    pin: GPIO13
    id: relay3
  - platform: gpio
    name: "Zeoota01 USB"
    pin: GPIO14
    id: relay4

Hi, trying to flash trhe firmware. I followed all the steps, and seems succesfully. In ESPhome I create and compiled the binary as per your example (change wifi user and pasword and put a static ip), then I put the file under

home/tuya-convert/files/zeoota1.bin 

and then

curl http://10.42.42.42/flash3?url=http://10.42.42.1/files/zeoota1.bin

now it is giving a blinking cursor, nit sure if it is flashing or not (has been 5 minutes)

It uploaded perfectly, was just idle, no message of succesful flash or not. I added the following in the esphome yaml

#################
#   Power strip 1  RESTART
#################
  - platform: restart
    name: "Power strip restart"

sensor:
  - platform: wifi_signal
    name: "Power strip WiFi Signal"
    update_interval: 60s
  - platform: uptime
    name: "Power strip  Uptime"
    
text_sensor:
  - platform: version
    name: "Power strip ESPHome Version"

For the LED I copy what I have with the Sonoff POW maybe can be of help

output:
  - platform: esp8266_pwm
    id: ac_power_plug_blue_led
    pin:
      number: GPIO15
#      inverted: True

light:
  - platform: monochromatic
    name: "AC power plug Blue LED"
    output: ac_power_plug_blue_led
    id: led

I do understand how to turn the led on, I just don’t know how to check of ALL sockets are off so I can turn the led off to indicate there are no active sockets.

maybe with an automation?

Do you know if its possible to have power consumption reading?

Copied from somewhere else

sensor:
  

      - platform: hlw8012
        sel_pin:
          number: GPIO12
          inverted: True
        cf_pin: GPIO04
        cf1_pin: GPIO05
        # Higher value gives lower watt readout
        current_resistor: 0.00221
        # Lower value gives lower voltage readout
        voltage_divider: 871
        current:
          name: "energy_temp_Amperage"
          unit_of_measurement: A
        voltage:
          name: "energy_temp_Voltage"
          unit_of_measurement: V
        power:
          name: "energy_temp_Wattage"
          unit_of_measurement: W
          id: "energy_temp_Wattage"
        change_mode_every: 8
        update_interval: 10s
      - platform: total_daily_energy
        name: "energy_temp_Total Daily Energy"
        power_id: "energy_temp_Wattage"
        filters:
            # Multiplication factor from W to kW is 0.001
            - multiply: 0.001
        unit_of_measurement: kWh

No, I’m sorry. I have no idea on what GPIO’s to use for power metering.

As I know, Zeoota power has no powermeter chips.

Hi, is your working well?

Mine works for the USB and the last socket, not the other 2 socket (does not turn on/off). Today I wanted to have a look and now I can’t even upload the code, I receive this error (had to cut some lines, since could not fit all log here)


Linking /data/power_strip_guest_room/.pioenvs/power_strip_guest_room/firmware.elf
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::_s_recv(void*, tcp_pcb*, pbuf*, long)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient7_s_recvEPvP7tcp_pcbP4pbufl+0x4): multiple definition of `AsyncClient::_s_recv(void*, tcp_pcb*, pbuf*, long)'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient7_s_recvEPvP7tcp_pcbP4pbufl+0x10): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::_s_sent(void*, tcp_pcb*, unsigned short)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient7_s_sentEPvP7tcp_pcbt+0x4): multiple definition of `AsyncClient::_s_sent(void*, tcp_pcb*, unsigned short)'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient7_s_sentEPvP7tcp_pcbt+0x10): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::_s_error(void*, long)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient8_s_errorEPvl+0x4): multiple definition of `AsyncClient::_s_error(void*, long)'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient8_s_errorEPvl+0xc): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::_s_poll(void*, tcp_pcb*)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient7_s_pollEPvP7tcp_pcb+0x4): multiple definition of `AsyncClient::_s_poll(void*, tcp_pcb*)'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient7_s_pollEPvP7tcp_pcb+0x10): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::AsyncClient(tcp_pcb*)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClientC2EP7tcp_pcb+0x30): multiple definition of `AsyncClient::AsyncClient(tcp_pcb*)'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClientC2EP7tcp_pcb+0x48): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::AsyncClient(tcp_pcb*)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClientC2EP7tcp_pcb+0x30): multiple definition of `AsyncClient::AsyncClient(tcp_pcb*)'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClientC2EP7tcp_pcb+0x48): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::_s_connected(void*, void*, long)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12_s_connectedEPvS0_l+0x4): multiple definition of `AsyncClient::_s_connected(void*, void*, long)'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12_s_connectedEPvS0_l+0x10): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::connect(IPAddress, unsigned short)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient7connectE9IPAddresst+0x18): multiple definition of `AsyncClient::connect(IPAddress, unsigned short)'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient7connectE9IPAddresst+0x1c): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::_s_dns_found(char const*, ip_addr const*, void*)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12_s_dns_foundEPKcPK7ip_addrPv+0x4): multiple definition of `AsyncClient::_s_dns_found(char const*, ip_addr const*, void*)'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12_s_dns_foundEPKcPK7ip_addrPv+0x4): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::connect(char const*, unsigned short)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient7connectEPKct+0x10): multiple definition of `AsyncClient::connect(char const*, unsigned short)'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient7connectEPKct+0x10): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::operator==(AsyncClient const&)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClienteqERKS_+0x0): multiple definition of `AsyncClient::operator==(AsyncClient const&)'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClienteqERKS_+0x0): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::abort()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient5abortEv+0x4): multiple definition of `AsyncClient::abort()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient5abortEv+0x4): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::free()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient4freeEv+0x4): multiple definition of `AsyncClient::free()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient4freeEv+0x4): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::send()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient4sendEv+0x8): multiple definition of `AsyncClient::send()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient4sendEv+0x8): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::ack(unsigned int)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient3ackEj+0x4): multiple definition of `AsyncClient::ack(unsigned int)'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient3ackEj+0x4): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::operator+=(AsyncClient const&)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClientpLERKS_+0x0): multiple definition of `AsyncClient::operator+=(AsyncClient const&)'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClientpLERKS_+0x0): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::setRxTimeout(unsigned int)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12setRxTimeoutEj+0x0): multiple definition of `AsyncClient::setRxTimeout(unsigned int)'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12setRxTimeoutEj+0x0): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::getRxTimeout()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12getRxTimeoutEv+0x0): multiple definition of `AsyncClient::getRxTimeout()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12getRxTimeoutEv+0x0): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::getAckTimeout()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient13getAckTimeoutEv+0x0): multiple definition of `AsyncClient::getAckTimeout()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient13getAckTimeoutEv+0x0): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::setAckTimeout(unsigned int)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient13setAckTimeoutEj+0x0): multiple definition of `AsyncClient::setAckTimeout(unsigned int)'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient13setAckTimeoutEj+0x0): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::setNoDelay(bool)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient10setNoDelayEb+0x0): multiple definition of `AsyncClient::setNoDelay(bool)'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient10setNoDelayEb+0x0): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::getNoDelay()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient10getNoDelayEv+0x0): multiple definition of `AsyncClient::getNoDelay()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient10getNoDelayEv+0x0): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::getMss()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient6getMssEv+0x0): multiple definition of `AsyncClient::getMss()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient6getMssEv+0x0): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::getRemoteAddress()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient16getRemoteAddressEv+0x0): multiple definition of `AsyncClient::getRemoteAddress()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient16getRemoteAddressEv+0x0): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::getRemotePort()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient13getRemotePortEv+0x0): multiple definition of `AsyncClient::getRemotePort()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient13getRemotePortEv+0x0): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::getLocalAddress()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient15getLocalAddressEv+0x0): multiple definition of `AsyncClient::getLocalAddress()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient15getLocalAddressEv+0x0): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::getLocalPort()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12getLocalPortEv+0x0): multiple definition of `AsyncClient::getLocalPort()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12getLocalPortEv+0x0): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::remoteIP()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient8remoteIPEv+0x8): multiple definition of `AsyncClient::remoteIP()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient8remoteIPEv+0x8): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::remotePort()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient10remotePortEv+0x4): multiple definition of `AsyncClient::remotePort()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient10remotePortEv+0x4): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::localIP()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient7localIPEv+0x8): multiple definition of `AsyncClient::localIP()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient7localIPEv+0x8): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::localPort()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient9localPortEv+0x4): multiple definition of `AsyncClient::localPort()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient9localPortEv+0x4): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::state()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient5stateEv+0x0): multiple definition of `AsyncClient::state()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient5stateEv+0x0): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::connected()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient9connectedEv+0x0): multiple definition of `AsyncClient::connected()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient9connectedEv+0x0): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::connecting()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient10connectingEv+0x0): multiple definition of `AsyncClient::connecting()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient10connectingEv+0x0): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::disconnecting()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient13disconnectingEv+0x0): multiple definition of `AsyncClient::disconnecting()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient13disconnectingEv+0x0): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::disconnected()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12disconnectedEv+0x0): multiple definition of `AsyncClient::disconnected()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12disconnectedEv+0x0): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::freeable()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient8freeableEv+0x4): multiple definition of `AsyncClient::freeable()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient8freeableEv+0x4): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::space()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient5spaceEv+0x0): multiple definition of `AsyncClient::space()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient5spaceEv+0x0): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::add(char const*, unsigned int, unsigned char)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient3addEPKcjh+0x8): multiple definition of `AsyncClient::add(char const*, unsigned int, unsigned char)'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient3addEPKcjh+0x8): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::write(char const*, unsigned int, unsigned char)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient5writeEPKcjh+0x8): multiple definition of `AsyncClient::write(char const*, unsigned int, unsigned char)'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient5writeEPKcjh+0x8): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::write(char const*)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient5writeEPKc+0x8): multiple definition of `AsyncClient::write(char const*)'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient5writeEPKc+0x8): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::canSend()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient7canSendEv+0x4): multiple definition of `AsyncClient::canSend()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient7canSendEv+0x4): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::ackPacket(pbuf*)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient9ackPacketEP4pbuf+0x8): multiple definition of `AsyncClient::ackPacket(pbuf*)'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient9ackPacketEP4pbuf+0x8): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::stateToString()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient13stateToStringEv+0xc): multiple definition of `AsyncClient::stateToString()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient13stateToStringEv+0xc): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncServer::AsyncServer(IPAddress, unsigned short)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncServerC2E9IPAddresst+0x4): multiple definition of `AsyncServer::AsyncServer(IPAddress, unsigned short)'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncServerC2E9IPAddresst+0x4): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncServer::AsyncServer(IPAddress, unsigned short)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncServerC2E9IPAddresst+0x4): multiple definition of `AsyncServer::AsyncServer(IPAddress, unsigned short)'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncServerC2E9IPAddresst+0x4): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncServer::AsyncServer(unsigned short)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncServerC2Et+0x4): multiple definition of `AsyncServer::AsyncServer(unsigned short)'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncServerC2Et+0x4): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncServer::AsyncServer(unsigned short)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncServerC2Et+0x4): multiple definition of `AsyncServer::AsyncServer(unsigned short)'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncServerC2Et+0x4): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncServer::_s_accept(void*, tcp_pcb*, long)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncServer9_s_acceptEPvP7tcp_pcbl+0x4): multiple definition of `AsyncServer::_s_accept(void*, tcp_pcb*, long)'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncServer9_s_acceptEPvP7tcp_pcbl+0x4): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncServer::begin()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncServer5beginEv+0x1c): multiple definition of `AsyncServer::begin()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncServer5beginEv+0x20): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncServer::end()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncServer3endEv+0x10): multiple definition of `AsyncServer::end()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncServer3endEv+0x10): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncServer::~AsyncServer()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncServerD2Ev+0x8): multiple definition of `AsyncServer::~AsyncServer()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncServerD2Ev+0x8): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncServer::~AsyncServer()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncServerD2Ev+0x8): multiple definition of `AsyncServer::~AsyncServer()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncServerD2Ev+0x8): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncServer::setNoDelay(bool)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncServer10setNoDelayEb+0x0): multiple definition of `AsyncServer::setNoDelay(bool)'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncServer10setNoDelayEb+0x0): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncServer::getNoDelay()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncServer10getNoDelayEv+0x0): multiple definition of `AsyncServer::getNoDelay()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncServer10getNoDelayEv+0x0): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncServer::status()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncServer6statusEv+0x0): multiple definition of `AsyncServer::status()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncServer6statusEv+0x0): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::_close()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient6_closeEv+0x20): multiple definition of `AsyncClient::_close()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient6_closeEv+0x10): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::~AsyncClient()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClientD2Ev+0x24): multiple definition of `AsyncClient::~AsyncClient()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClientD2Ev+0x28): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::~AsyncClient()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClientD2Ev+0x24): multiple definition of `AsyncClient::~AsyncClient()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClientD2Ev+0x28): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::operator=(AsyncClient const&)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClientaSERKS_+0x30): multiple definition of `AsyncClient::operator=(AsyncClient const&)'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClientaSERKS_+0x34): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::close(bool)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient5closeEb+0x8): multiple definition of `AsyncClient::close(bool)'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient5closeEb+0x8): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::stop()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient4stopEv+0x4): multiple definition of `AsyncClient::stop()'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient4stopEv+0x4): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncServer::_accept(tcp_pcb*, long)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncServer7_acceptEP7tcp_pcbl+0x14): multiple definition of `AsyncServer::_accept(tcp_pcb*, long)'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncServer7_acceptEP7tcp_pcbl+0x24): first defined here
/dam/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::onDisconnect(std::function<void (void*, AsyncClient*)>, void*)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12onDisconnectESt8functionIFvPvPS_EES1_+0x4): multiple definition of `AsyncClient::onDisconnect(std::function<void (void*, AsyncClient*)>, void*)'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12onDisconnectESt8functionIFvPvPS_EES1_+0x4): first defined here
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::onPoll(std::function<void (void*, AsyncClient*)>, void*)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient6onPollESt8functionIFvPvPS_EES1_+0x4): multiple definition of `AsyncClient::onPoll(std::function<void (void*, AsyncClient*)>, void*)'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient6onPollESt8functionIFvPvPS_EES1_+0x4): first defined here
est_room/lib70a/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::onData(std::function<void (void*, AsyncClient*, void*, unsigned int)>, void*)':
 
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient9onTimeoutESt8functionIFvPvPS_jEES1_+0x8): multiple definition of `AsyncClient::onTimeout(std::function<void (void*, AsyncClient*, unsigned int)>, void*)'
/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/lib824/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient9onTimeoutESt8functionIFvPvPS_jEES1_+0x8): first defined here
collect2: error: ld returned 1 exit status
*** [/data/power_strip_guest_room/.pioenvs/power_strip_guest_room/firmware.elf] Error 1
========================== [ERROR] Took 5.81 seconds ========================

==

This might be a stupid question but is there a guide to how to flash ESPHome on this?