Flashing QIACHIP Wifi Wireless 433Mhz RF with esp8266-s3 (Sonoff RF clone)

QIACHIP Wifi Wireless 433Mhz RF with esp8266-s3

image

Description of problem:

I’m having hard time flashing this sonoff rf clone which has a little but important (I think) difference to the ‘original’. The button on the device is connected directly to the 433 rf module to pair remotes (the sonoff rf instead connects it to the esp if I’m right to toggle the realy). Therefor I have the hope to flash this device with esphome and still being able to control it in parallel with the rf module which is integrated in the device. After flashing esphome the rf function should work as normal including pairing new remotes (with the button). The device state should always be visible in esphome even if toggled via the rf function.

Problem for now is that I’m not able flash this esp8266-s3 thing despite having even the data sheet (https://fccid.io/2AKBPESP8266-S3/User-Manual/User-Manual-3594791).

image
image
image
image

I tried with the usual combination (with my usb ttl adapter which flashed already a dozens of different esps) hooking up V, GND, RX, TX and pull GPIO 0 to ground to get in flash mode. Problem is that serial connection to the device always fails. Weird is also that I don’t get the led (I think I see one right under the metal cap but not 100% as it is so tiny) on the esp8266-s3 to light up - if one exists! It makes me wonder a little bit… usually this is always a great indicator that the board has power and from the type of blinking it’s normally even possible to see if it booted successfully in the flash mode. I’m confused and not amused. :unamused:

If any one could give some advise I would be glad

Ok, now I get a light. It was insufficient power supply because the board powers the another things like the 433mhz rf module which is finally (and for the first time) to much for my usb ttl thingy.

Still I’m not able to get into flash mode and the serial output is just garbage.

Can somebody interpret what would be necessary to flash this esp board?
It think it’s somehow encrypted in these lines:



any ideas? I’m used to just put gpio 0 to ground while booting (put power) and then release ground again from gpio 0. Here it doesn’t seem to have any impact on the boot mode? :tired_face:

Try keeping gpio0 low while you flash.

Thank’s for the tip @nickrout
I tried - but still no luck :pensive:

I have one of these. I used tuya_convert to flash OTA tasmota on it. Probably works for Esphome too.

Edit: I can’t get the switch to work with tasmota. The rf part works, but the light does not turn on using WiFi. If you get it to work with esphome, please leave feedback in this thread.

1 Like

Did you tried all possible gpio pins? Could be 0,1,2,3,4,5 or 12,13,14,15 as all these ones available on the esp8266 s3.

I will try with tuya_convert soon.

I tried all. The only thing I manage is to turn the blue led on or off

Maybe the relay is switched over a UART connection with the RF module?

Does the original Software/Firmware give some information how the relay is switched?

Which esp gpio pin is the led?

And the button on the device? I guess it’s directly linked to the rf module and not connected to the esp at all… with the relay it could be the same :roll_eyes: It get’s really useless…

@francisp what if the relay is controlled by uart? :thinking:

Hello @orange-assistant
do you have solved your problem ?
I want to do the same with the QIACHIP wifi rf module…
Best regards
Laurent

Sadly no. I was hoping @francisp has the same.

For now this device stays in the drawer as it isn’t useful at all. Next time I will better investigate before it the device I will buy will run esphome successful :zipper_mouth_face:

For me, it is not totally useless. Since the RF part works independant, and can act as a momentary switch, I paired my doorbell button with it and attached a 220volt doorbell to it. However, I could have done this with a 433Mhz relay for half the price. The place I was going to use it is now equipped with a Sonoff RF.

Hi, I know this may be a dumb question, but does your Qiachip WiFi controller have Alexa integration?
Reason I ask is I really want to buy a ceiling fan and it’s some crazy brand called Parrot Uncle and was thinking about using a Qiachip RF controller to link it to HA. I saw it had Alexa integration and thought I would be able to use that through HA or Node-Red or with my Nabu Casa subscription.
Is the reason you wanted to flash it was for local control and no cloud integration?
Thanks

Hi all, I have seemingly the same qiachip RF modules. I just got this working, so let me know if you have any issues. It is indeed connected over UART and the RF module controls the relay. You’ll need both these files.

qiachip.yaml:

substitutions:
  device_name: qiachip_test
  friendly_name: QIACHIP Test

esphome:
  name: ${device_name}
  platform: ESP8266
  board: esp01_1m
  on_boot:
    then:
    - uart.write: [0x3C, 0x59, 0x97, 0x8E, 0x03, 0xFE, 0x19, 0x82, 0x9A, 0x87, 0x0C, 0x87, 0x16, 0x87, 0x82, 0x86, 0x7E, 0x04, 0x87, 0x1E, 0x87, 0x8E, 0x86, 0x3E, 0x1A, 0x16, 0x16, 0x94, 0x16, 0x16, 0x8F, 0x87, 0x02, 0x4C, 0x12, 0x50, 0x88, 0x8E, 0x87, 0x15, 0x3A, 0x86, 0x82, 0xFE, 0x8F, 0x16, 0x0F, 0x07, 0x09, 0x9B, 0xFE, 0x96, 0x8B, 0x96, 0x1B, 0x08, 0x87, 0x07, 0x96, 0x82, 0xC6, 0xD5, 0x0A, 0xD2, 0x82, 0x92, 0x0E, 0xFF]
  includes:
    - qiachip-uart.h


wifi:
  ssid: [hidden]
  password: [hidden]
  fast_connect: on #we only have one WiFi AP so just use the first one that matches
  ap: #since we listed an SSID above, this AP mode will only enable if no WiFi connection could be made
    ssid: ${friendly_name}_AP
    password: recoverypassword

# Enable logging
logger:
  hardware_uart: UART1 # move logging to UART 1 since RF module is on UART 0
#  baud_rate: 0 #disable UART logging

# Enable Home Assistant API
api:

# Enable OTA updates
ota:
  safe_mode: True

# Enable web server
web_server:
  port: 80

uart:
  baud_rate: 9600
  tx_pin: GPIO1
  rx_pin: GPIO3
  
#status_led:
#  pin:
#    number: GPIO04
#    inverted: true

binary_sensor:
  - platform: custom
    lambda: |-
      auto qiachip_uart = new QiachipUART();
      App.register_component(qiachip_uart);
      return {qiachip_uart};

    binary_sensors:
      name: "RFModule"
      on_press:
        switch.turn_on: relay
      on_release:
        switch.turn_off: relay
      internal: true

switch:
  - platform: gpio
    name: "${friendly_name}"
    id: "relay"

    pin: GPIO4 # using ESP status light
    inverted: true
    on_turn_on:
      - uart.write: [0xAC, 0x28, 0x00, 0x21]
    on_turn_off:
      - uart.write: [0xAC, 0x20, 0x00, 0x29]


qiachip-uart.h:

#include "esphome.h"

class QiachipUART : public PollingComponent, public BinarySensor{
 public:
  // constructor
  QiachipUART() : PollingComponent(100) {}

  void setup() override {
  }
  void update() override {
    if (Serial.available() == 4) {
      char buffer[4];
      Serial.readBytes(buffer, 4);
      if (buffer[3] == 0xF7) {
        publish_state(true);
      } else if (buffer[3] == 0xF6) {
        publish_state(false);
      }
    } else if (Serial.available() > 4) {
      while (Serial.available()) {
        Serial.read();
      }
    }
  }
};
2 Likes

Thanks. I will try it out.

Wow this looks awesome :star2: @nickyivyca! My device actually is still some where deep in the drawer but I will do a search and try out your code.

If I remember right the button on the device didn’t trigger/switch the relay but was used to pair a new 433 remote. Is their any chance to get the button press into esphome to trigger the relay?

I don’t know what I’m doing wrong. Just changed qiachip_test to qia, and ssid/password to my own.

INFO Reading configuration...
INFO Generating C++ source...
INFO Compiling app...
INFO Running:  platformio run -d /config/esphome/qia
Processing qia (framework: arduino; platform: [email protected]; board: esp01_1m)
--------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/esp01_1m.html
PLATFORM: Espressif 8266 > Espressif Generic ESP8266 ESP-01 1M
HARDWARE: ESP8266 80MHz 80KB RAM (1MB Flash)
Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF MODES: FINDER(chain) COMPATIBILITY(soft)
Collected 30 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <ArduinoJson-esphomelib> 5.13.3
|-- <ESP Async WebServer> 1.1.1
|   |-- <ESPAsyncTCP> 1.2.2
|   |   |-- <ESP8266WiFi> 1.0
|   |-- <Hash> 1.0
|   |-- <ESP8266WiFi> 1.0
|   |-- <ArduinoJson-esphomelib> 5.13.3
|-- <ESP8266WiFi> 1.0
|-- <ESP8266mDNS>
|   |-- <ESP8266WiFi> 1.0
|-- <ESPAsyncTCP> 1.2.0
|   |-- <ESP8266WiFi> 1.0
|-- <ESPAsyncTCP> 1.2.2
|   |-- <ESP8266WiFi> 1.0
Compiling /data/qia/.pioenvs/qia/src/esphome/components/api/api_message.cpp.o
Compiling /data/qia/.pioenvs/qia/src/esphome/components/api/api_server.cpp.o
Compiling /data/qia/.pioenvs/qia/src/esphome/components/api/basic_messages.cpp.o
Compiling /data/qia/.pioenvs/qia/src/esphome/components/api/command_messages.cpp.o
Compiling /data/qia/.pioenvs/qia/src/esphome/components/api/list_entities.cpp.o
Compiling /data/qia/.pioenvs/qia/src/esphome/components/api/service_call_message.cpp.o
Compiling /data/qia/.pioenvs/qia/src/esphome/components/api/subscribe_logs.cpp.o
Compiling /data/qia/.pioenvs/qia/src/esphome/components/api/subscribe_state.cpp.o
Compiling /data/qia/.pioenvs/qia/src/esphome/components/api/user_services.cpp.o
Compiling /data/qia/.pioenvs/qia/src/esphome/components/api/util.cpp.o
Compiling /data/qia/.pioenvs/qia/src/esphome/components/binary_sensor/automation.cpp.o
Compiling /data/qia/.pioenvs/qia/src/esphome/components/binary_sensor/binary_sensor.cpp.o
Compiling /data/qia/.pioenvs/qia/src/esphome/components/binary_sensor/filter.cpp.o
Compiling /data/qia/.pioenvs/qia/src/esphome/components/custom/binary_sensor/custom_binary_sensor.cpp.o
Compiling /data/qia/.pioenvs/qia/src/esphome/components/gpio/switch/gpio_switch.cpp.o
Compiling /data/qia/.pioenvs/qia/src/esphome/components/json/json_util.cpp.o
Compiling /data/qia/.pioenvs/qia/src/esphome/components/logger/logger.cpp.o
Compiling /data/qia/.pioenvs/qia/src/esphome/components/ota/ota_component.cpp.o
Compiling /data/qia/.pioenvs/qia/src/esphome/components/switch/automation.cpp.o
Compiling /data/qia/.pioenvs/qia/src/esphome/components/switch/switch.cpp.o
Compiling /data/qia/.pioenvs/qia/src/esphome/components/uart/uart.cpp.o
Compiling /data/qia/.pioenvs/qia/src/esphome/components/web_server/web_server.cpp.o
Compiling /data/qia/.pioenvs/qia/src/esphome/components/wifi/wifi_component.cpp.o
Compiling /data/qia/.pioenvs/qia/src/esphome/components/wifi/wifi_component_esp32.cpp.o
Compiling /data/qia/.pioenvs/qia/src/esphome/components/wifi/wifi_component_esp8266.cpp.o
Compiling /data/qia/.pioenvs/qia/src/esphome/core/application.cpp.o
Compiling /data/qia/.pioenvs/qia/src/esphome/core/component.cpp.o
Compiling /data/qia/.pioenvs/qia/src/esphome/core/controller.cpp.o
Compiling /data/qia/.pioenvs/qia/src/esphome/core/esphal.cpp.o
Compiling /data/qia/.pioenvs/qia/src/esphome/core/helpers.cpp.o
Compiling /data/qia/.pioenvs/qia/src/esphome/core/log.cpp.o
Compiling /data/qia/.pioenvs/qia/src/esphome/core/preferences.cpp.o
Compiling /data/qia/.pioenvs/qia/src/esphome/core/util.cpp.o
Compiling /data/qia/.pioenvs/qia/src/main.cpp.o
Generating LD script /data/qia/.pioenvs/qia/ld/eagle.app.v6.common.ld
Archiving /data/qia/.pioenvs/qia/lib520/libArduinoJson-esphomelib_ID3837.a
Compiling /data/qia/.pioenvs/qia/libd05/ESP8266WiFi/BearSSLHelpers.cpp.o
Compiling /data/qia/.pioenvs/qia/libd05/ESP8266WiFi/CertStoreBearSSL.cpp.o
Compiling /data/qia/.pioenvs/qia/libd05/ESP8266WiFi/ESP8266WiFi.cpp.o
Compiling /data/qia/.pioenvs/qia/libd05/ESP8266WiFi/ESP8266WiFiAP.cpp.o
Compiling /data/qia/.pioenvs/qia/libd05/ESP8266WiFi/ESP8266WiFiGeneric.cpp.o
Compiling /data/qia/.pioenvs/qia/libd05/ESP8266WiFi/ESP8266WiFiMulti.cpp.o
Compiling /data/qia/.pioenvs/qia/libd05/ESP8266WiFi/ESP8266WiFiSTA.cpp.o
Compiling /data/qia/.pioenvs/qia/libd05/ESP8266WiFi/ESP8266WiFiScan.cpp.o
Compiling /data/qia/.pioenvs/qia/libd05/ESP8266WiFi/WiFiClient.cpp.o
Compiling /data/qia/.pioenvs/qia/libd05/ESP8266WiFi/WiFiClientSecureAxTLS.cpp.o
Compiling /data/qia/.pioenvs/qia/libd05/ESP8266WiFi/WiFiClientSecureBearSSL.cpp.o
Compiling /data/qia/.pioenvs/qia/libd05/ESP8266WiFi/WiFiServer.cpp.o
Compiling /data/qia/.pioenvs/qia/libd05/ESP8266WiFi/WiFiServerSecureAxTLS.cpp.o
Compiling /data/qia/.pioenvs/qia/libd05/ESP8266WiFi/WiFiServerSecureBearSSL.cpp.o
Compiling /data/qia/.pioenvs/qia/libd05/ESP8266WiFi/WiFiUdp.cpp.o
Archiving /data/qia/.pioenvs/qia/libd05/libESP8266WiFi.a
Compiling /data/qia/.pioenvs/qia/lib05a/ESPAsyncTCP_ID305/AsyncPrinter.cpp.o
Compiling /data/qia/.pioenvs/qia/lib05a/ESPAsyncTCP_ID305/ESPAsyncTCP.cpp.o
Compiling /data/qia/.pioenvs/qia/lib05a/ESPAsyncTCP_ID305/ESPAsyncTCPbuffer.cpp.o
Compiling /data/qia/.pioenvs/qia/lib05a/ESPAsyncTCP_ID305/SyncClient.cpp.o
Compiling /data/qia/.pioenvs/qia/lib05a/ESPAsyncTCP_ID305/tcp_axtls.c.o
Archiving /data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a
Compiling /data/qia/.pioenvs/qia/libb36/Hash/Hash.cpp.o
Compiling /data/qia/.pioenvs/qia/libb36/Hash/sha1/sha1.c.o
Archiving /data/qia/.pioenvs/qia/libb36/libHash.a
Compiling /data/qia/.pioenvs/qia/lib6c2/ESP Async WebServer_ID306/AsyncEventSource.cpp.o
Compiling /data/qia/.pioenvs/qia/lib6c2/ESP Async WebServer_ID306/AsyncWebSocket.cpp.o
Compiling /data/qia/.pioenvs/qia/lib6c2/ESP Async WebServer_ID306/SPIFFSEditor.cpp.o
Compiling /data/qia/.pioenvs/qia/lib6c2/ESP Async WebServer_ID306/WebAuthentication.cpp.o
Compiling /data/qia/.pioenvs/qia/lib6c2/ESP Async WebServer_ID306/WebHandlers.cpp.o
Compiling /data/qia/.pioenvs/qia/lib6c2/ESP Async WebServer_ID306/WebRequest.cpp.o
Compiling /data/qia/.pioenvs/qia/lib6c2/ESP Async WebServer_ID306/WebResponses.cpp.o
Compiling /data/qia/.pioenvs/qia/lib6c2/ESP Async WebServer_ID306/WebServer.cpp.o
Archiving /data/qia/.pioenvs/qia/lib6c2/libESP Async WebServer_ID306.a
Compiling /data/qia/.pioenvs/qia/lib3f7/ESP8266mDNS/ESP8266mDNS.cpp.o
Archiving /data/qia/.pioenvs/qia/lib3f7/libESP8266mDNS.a
Compiling /data/qia/.pioenvs/qia/libfe4/[email protected]/AsyncPrinter.cpp.o
Compiling /data/qia/.pioenvs/qia/libfe4/[email protected]/ESPAsyncTCP.cpp.o
Compiling /data/qia/.pioenvs/qia/libfe4/[email protected]/ESPAsyncTCPbuffer.cpp.o
Compiling /data/qia/.pioenvs/qia/libfe4/[email protected]/SyncClient.cpp.o
Compiling /data/qia/.pioenvs/qia/libfe4/[email protected]/tcp_axtls.c.o
Archiving /data/qia/.pioenvs/qia/libfe4/[email protected]
Archiving /data/qia/.pioenvs/qia/libFrameworkArduinoVariant.a
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/Esp-version.cpp.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/Esp.cpp.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/FS.cpp.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/FunctionalInterrupt.cpp.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/HardwareSerial.cpp.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/IPAddress.cpp.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/MD5Builder.cpp.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/Print.cpp.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/Schedule.cpp.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/ScheduledFunctions.cpp.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/Stream.cpp.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/StreamString.cpp.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/Tone.cpp.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/Updater.cpp.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/WMath.cpp.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/WString.cpp.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/abi.cpp.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/base64.cpp.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/cbuf.cpp.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/cont.S.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/cont_util.c.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/core_esp8266_eboot_command.c.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/core_esp8266_flash_utils.c.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/core_esp8266_i2s.c.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/core_esp8266_main.cpp.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/core_esp8266_noniso.c.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/core_esp8266_phy.c.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/core_esp8266_postmortem.c.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/core_esp8266_si2c.c.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/core_esp8266_sigma_delta.c.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/core_esp8266_timer.c.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/core_esp8266_waveform.c.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/core_esp8266_wiring.c.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/core_esp8266_wiring_analog.c.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/core_esp8266_wiring_digital.c.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/core_esp8266_wiring_pulse.c.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/core_esp8266_wiring_pwm.c.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/core_esp8266_wiring_shift.c.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/debug.cpp.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/gdb_hooks.c.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/heap.c.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/libb64/cdecode.c.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/libb64/cencode.c.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/libc_replacements.c.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/pgmspace.cpp.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/sntp-lwip2.c.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/spiffs/spiffs_cache.c.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/spiffs/spiffs_check.c.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/spiffs/spiffs_gc.c.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/spiffs/spiffs_hydrogen.c.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/spiffs/spiffs_nucleus.c.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/spiffs_api.cpp.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/spiffs_hal.cpp.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/time.c.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/uart.c.o
Compiling /data/qia/.pioenvs/qia/FrameworkArduino/umm_malloc/umm_malloc.c.o
Archiving /data/qia/.pioenvs/qia/libFrameworkArduino.a

part 2 next

part 2 :


Linking /data/qia/.pioenvs/qia/firmware.elf
/data/qia/.pioenvs/qia/libfe4/[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/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient7_s_recvEPvP7tcp_pcbP4pbufl+0x10): first defined here
/data/qia/.pioenvs/qia/libfe4/[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/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient7_s_sentEPvP7tcp_pcbt+0x10): first defined here
/data/qia/.pioenvs/qia/libfe4/[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/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient8_s_errorEPvl+0xc): first defined here
/data/qia/.pioenvs/qia/libfe4/[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/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient7_s_pollEPvP7tcp_pcb+0x10): first defined here
/data/qia/.pioenvs/qia/libfe4/[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/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClientC2EP7tcp_pcb+0x48): first defined here
/data/qia/.pioenvs/qia/libfe4/[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/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClientC2EP7tcp_pcb+0x48): first defined here
/data/qia/.pioenvs/qia/libfe4/[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/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12_s_connectedEPvS0_l+0x10): first defined here
/data/qia/.pioenvs/qia/libfe4/[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/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient7connectE9IPAddresst+0x1c): first defined here
/data/qia/.pioenvs/qia/libfe4/[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/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12_s_dns_foundEPKcPK7ip_addrPv+0x4): first defined here
/data/qia/.pioenvs/qia/libfe4/[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/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient7connectEPKct+0x10): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::operator==(AsyncClient const&)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClienteqERKS_+0x0): multiple definition of `AsyncClient::operator==(AsyncClient const&)'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClienteqERKS_+0x0): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::abort()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient5abortEv+0x4): multiple definition of `AsyncClient::abort()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient5abortEv+0x4): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::free()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient4freeEv+0x4): multiple definition of `AsyncClient::free()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient4freeEv+0x4): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::send()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient4sendEv+0x8): multiple definition of `AsyncClient::send()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient4sendEv+0x8): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::ack(unsigned int)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient3ackEj+0x4): multiple definition of `AsyncClient::ack(unsigned int)'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient3ackEj+0x4): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::operator+=(AsyncClient const&)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClientpLERKS_+0x0): multiple definition of `AsyncClient::operator+=(AsyncClient const&)'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClientpLERKS_+0x0): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::setRxTimeout(unsigned int)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12setRxTimeoutEj+0x0): multiple definition of `AsyncClient::setRxTimeout(unsigned int)'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12setRxTimeoutEj+0x0): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::getRxTimeout()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12getRxTimeoutEv+0x0): multiple definition of `AsyncClient::getRxTimeout()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12getRxTimeoutEv+0x0): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::getAckTimeout()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient13getAckTimeoutEv+0x0): multiple definition of `AsyncClient::getAckTimeout()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient13getAckTimeoutEv+0x0): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::setAckTimeout(unsigned int)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient13setAckTimeoutEj+0x0): multiple definition of `AsyncClient::setAckTimeout(unsigned int)'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient13setAckTimeoutEj+0x0): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::setNoDelay(bool)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient10setNoDelayEb+0x0): multiple definition of `AsyncClient::setNoDelay(bool)'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient10setNoDelayEb+0x0): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::getNoDelay()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient10getNoDelayEv+0x0): multiple definition of `AsyncClient::getNoDelay()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient10getNoDelayEv+0x0): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::getMss()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient6getMssEv+0x0): multiple definition of `AsyncClient::getMss()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient6getMssEv+0x0): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::getRemoteAddress()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient16getRemoteAddressEv+0x0): multiple definition of `AsyncClient::getRemoteAddress()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient16getRemoteAddressEv+0x0): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::getRemotePort()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient13getRemotePortEv+0x0): multiple definition of `AsyncClient::getRemotePort()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient13getRemotePortEv+0x0): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::getLocalAddress()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient15getLocalAddressEv+0x0): multiple definition of `AsyncClient::getLocalAddress()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient15getLocalAddressEv+0x0): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::getLocalPort()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12getLocalPortEv+0x0): multiple definition of `AsyncClient::getLocalPort()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12getLocalPortEv+0x0): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::remoteIP()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient8remoteIPEv+0x8): multiple definition of `AsyncClient::remoteIP()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient8remoteIPEv+0x8): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::remotePort()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient10remotePortEv+0x4): multiple definition of `AsyncClient::remotePort()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient10remotePortEv+0x4): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::localIP()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient7localIPEv+0x8): multiple definition of `AsyncClient::localIP()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient7localIPEv+0x8): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::localPort()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient9localPortEv+0x4): multiple definition of `AsyncClient::localPort()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient9localPortEv+0x4): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::state()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient5stateEv+0x0): multiple definition of `AsyncClient::state()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient5stateEv+0x0): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::connected()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient9connectedEv+0x0): multiple definition of `AsyncClient::connected()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient9connectedEv+0x0): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::connecting()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient10connectingEv+0x0): multiple definition of `AsyncClient::connecting()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient10connectingEv+0x0): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::disconnecting()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient13disconnectingEv+0x0): multiple definition of `AsyncClient::disconnecting()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient13disconnectingEv+0x0): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::disconnected()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12disconnectedEv+0x0): multiple definition of `AsyncClient::disconnected()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12disconnectedEv+0x0): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::freeable()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient8freeableEv+0x4): multiple definition of `AsyncClient::freeable()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient8freeableEv+0x4): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::space()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient5spaceEv+0x0): multiple definition of `AsyncClient::space()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient5spaceEv+0x0): first defined here
/data/qia/.pioenvs/qia/libfe4/[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/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient3addEPKcjh+0x8): first defined here
/data/qia/.pioenvs/qia/libfe4/[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/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient5writeEPKcjh+0x8): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::write(char const*)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient5writeEPKc+0x8): multiple definition of `AsyncClient::write(char const*)'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient5writeEPKc+0x8): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::canSend()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient7canSendEv+0x4): multiple definition of `AsyncClient::canSend()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient7canSendEv+0x4): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::ackPacket(pbuf*)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient9ackPacketEP4pbuf+0x8): multiple definition of `AsyncClient::ackPacket(pbuf*)'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient9ackPacketEP4pbuf+0x8): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::stateToString()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient13stateToStringEv+0xc): multiple definition of `AsyncClient::stateToString()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient13stateToStringEv+0xc): first defined here
/data/qia/.pioenvs/qia/libfe4/[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/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncServerC2E9IPAddresst+0x4): first defined here
/data/qia/.pioenvs/qia/libfe4/[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/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncServerC2E9IPAddresst+0x4): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncServer::AsyncServer(unsigned short)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncServerC2Et+0x4): multiple definition of `AsyncServer::AsyncServer(unsigned short)'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncServerC2Et+0x4): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncServer::AsyncServer(unsigned short)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncServerC2Et+0x4): multiple definition of `AsyncServer::AsyncServer(unsigned short)'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncServerC2Et+0x4): first defined here
/data/qia/.pioenvs/qia/libfe4/[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/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncServer9_s_acceptEPvP7tcp_pcbl+0x4): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncServer::begin()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncServer5beginEv+0x1c): multiple definition of `AsyncServer::begin()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncServer5beginEv+0x20): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncServer::end()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncServer3endEv+0x10): multiple definition of `AsyncServer::end()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncServer3endEv+0x10): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncServer::~AsyncServer()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncServerD2Ev+0x8): multiple definition of `AsyncServer::~AsyncServer()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncServerD2Ev+0x8): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncServer::~AsyncServer()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncServerD2Ev+0x8): multiple definition of `AsyncServer::~AsyncServer()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncServerD2Ev+0x8): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncServer::setNoDelay(bool)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncServer10setNoDelayEb+0x0): multiple definition of `AsyncServer::setNoDelay(bool)'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncServer10setNoDelayEb+0x0): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncServer::getNoDelay()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncServer10getNoDelayEv+0x0): multiple definition of `AsyncServer::getNoDelay()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncServer10getNoDelayEv+0x0): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncServer::status()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncServer6statusEv+0x0): multiple definition of `AsyncServer::status()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncServer6statusEv+0x0): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::_close()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient6_closeEv+0x20): multiple definition of `AsyncClient::_close()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient6_closeEv+0x10): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::~AsyncClient()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClientD2Ev+0x24): multiple definition of `AsyncClient::~AsyncClient()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClientD2Ev+0x28): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::~AsyncClient()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClientD2Ev+0x24): multiple definition of `AsyncClient::~AsyncClient()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClientD2Ev+0x28): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::operator=(AsyncClient const&)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClientaSERKS_+0x30): multiple definition of `AsyncClient::operator=(AsyncClient const&)'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClientaSERKS_+0x34): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::close(bool)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient5closeEb+0x8): multiple definition of `AsyncClient::close(bool)'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient5closeEb+0x8): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::stop()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient4stopEv+0x4): multiple definition of `AsyncClient::stop()'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient4stopEv+0x4): first defined here
/data/qia/.pioenvs/qia/libfe4/[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/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncServer7_acceptEP7tcp_pcbl+0x24): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::_error(long)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient6_errorEl+0x18): multiple definition of `AsyncClient::_error(long)'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient6_errorEl+0x4): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::_dns_found(ip_addr const*)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient10_dns_foundEPK7ip_addr+0xc): multiple definition of `AsyncClient::_dns_found(ip_addr const*)'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient10_dns_foundEPK7ip_addr+0xc): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::onConnect(std::function<void (void*, AsyncClient*)>, void*)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient9onConnectESt8functionIFvPvPS_EES1_+0x4): multiple definition of `AsyncClient::onConnect(std::function<void (void*, AsyncClient*)>, void*)'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient9onConnectESt8functionIFvPvPS_EES1_+0x4): first defined here
/data/qia/.pioenvs/qia/libfe4/[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/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12onDisconnectESt8functionIFvPvPS_EES1_+0x4): first defined here
/data/qia/.pioenvs/qia/libfe4/[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/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient6onPollESt8functionIFvPvPS_EES1_+0x4): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncServer::onClient(std::function<void (void*, AsyncClient*)>, void*)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncServer8onClientESt8functionIFvPvP11AsyncClientEES1_+0x4): multiple definition of `AsyncServer::onClient(std::function<void (void*, AsyncClient*)>, void*)'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncServer8onClientESt8functionIFvPvP11AsyncClientEES1_+0x4): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::onAck(std::function<void (void*, AsyncClient*, unsigned int, unsigned int)>, void*)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient5onAckESt8functionIFvPvPS_jjEES1_+0x8): multiple definition of `AsyncClient::onAck(std::function<void (void*, AsyncClient*, unsigned int, unsigned int)>, void*)'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient5onAckESt8functionIFvPvPS_jjEES1_+0x8): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::onData(std::function<void (void*, AsyncClient*, void*, unsigned int)>, void*)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient6onDataESt8functionIFvPvPS_S1_jEES1_+0x8): multiple definition of `AsyncClient::onData(std::function<void (void*, AsyncClient*, void*, unsigned int)>, void*)'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient6onDataESt8functionIFvPvPS_S1_jEES1_+0x8): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::onPacket(std::function<void (void*, AsyncClient*, pbuf*)>, void*)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient8onPacketESt8functionIFvPvPS_P4pbufEES1_+0x8): multiple definition of `AsyncClient::onPacket(std::function<void (void*, AsyncClient*, pbuf*)>, void*)'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient8onPacketESt8functionIFvPvPS_P4pbufEES1_+0x8): first defined here
/data/qia/.pioenvs/qia/libfe4/[email protected](ESPAsyncTCP.cpp.o): In function `AsyncClient::onTimeout(std::function<void (void*, AsyncClient*, unsigned int)>, void*)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient9onTimeoutESt8functionIFvPvPS_jEES1_+0x8): multiple definition of `AsyncClient::onTimeout(std::function<void (void*, AsyncClient*, unsigned int)>, void*)'
/data/qia/.pioenvs/qia/lib05a/libESPAsyncTCP_ID305.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient9onTimeoutESt8functionIFvPvPS_jEES1_+0x8): first defined here
collect2: error: ld returned 1 exit status
*** [/data/qia/.pioenvs/qia/firmware.elf] Error 1
========================= [ERROR] Took 137.31 seconds =========================



@orange-assistant Unfortunately no, it looks like nothing is written to the UART when that button is pressed. I also have some KTNNKG Wifi-KG2201-W relays, which work with the same 433mhz buttons as the QIACHIP does, but the RF codes are sent to the ESP from the RF chip instead of the RF chip doing everything. On those the button and relay are connected to the ESP so I’ve set up the button to toggle the relay. (I’ll be uploading both these esphome device configs to esphome-configs soon)

@francisp try updating your esphome installation. I’m on 1.14.4, I can’t see what version you’re on, but some of your dependencies show as older versions than mine.

1 Like