Tried to OTA Update Mutliple ESPHome Devices - Seems to Have Broke Them

Like the title says, I tried to OTA update 3 different devices, which all 3 now seem to be broke. When I unplug the device from power, ESPHome shows the devices as Unavailable. When I plug the devices in, ESPHome does not have the devices highlighted a color (neither blue nor red, just the device itself. I tried to manually reinstall the ESPHome .bin file, but still the same issue. I cannot ping my devices either. Almost seems like the OTA update broke the wifi antenna or something.

There is no colour any more if it is simply working.

I tried to OTA Gosund SP112, and now cannot reconnect. I did restart the plug, and default actions are occurring locally, but it will not reconnect.

This is a sealed-plug that is super hard to access for re-flash, so I’m concerned it is kind-of “bricked.”

Very disappointing, so if anyone has techniques for getting back online, I would be grateful.

Errors were:

Compiling /data/drier-plug/.pioenvs/drier-plug/src/esphome/components/esp8266/gpio.cpp.o
src/esphome/components/esp8266/gpio.cpp: In member function 'virtual void esphome::esp8266::ESP8266GPIOPin::attach_interrupt(void (*)(void*), void*, esphome::gpio::InterruptType) const':
src/esphome/components/esp8266/gpio.cpp:43:51: error: 'attachInterruptArg' was not declared in this scope
   attachInterruptArg(pin_, func, arg, arduino_mode);
src/esphome/components/esp8266/gpio.cpp: At global scope:
src/esphome/components/esp8266/gpio.cpp:88:16: error: expected initializer before 'ISRInternalGPIOPin'
 bool IRAM_ATTR ISRInternalGPIOPin::digital_read() {
src/esphome/components/esp8266/gpio.cpp:92:16: error: expected initializer before 'ISRInternalGPIOPin'
 void IRAM_ATTR ISRInternalGPIOPin::digital_write(bool value) {
src/esphome/components/esp8266/gpio.cpp:96:16: error: expected initializer before 'ISRInternalGPIOPin'
 void IRAM_ATTR ISRInternalGPIOPin::clear_interrupt() {
*** [/data/drier-plug/.pioenvs/drier-plug/src/esphome/components/esp8266/gpio.cpp.o] Error 1
src/esphome/components/esp8266/core.cpp:11:20: error: expected initializer before 'yield'
 void IRAM_ATTR HOT yield() { ::yield(); }
src/esphome/components/esp8266/core.cpp:12:24: error: expected initializer before 'millis'
 uint32_t IRAM_ATTR HOT millis() { return ::millis(); }
src/esphome/components/esp8266/core.cpp:13:20: error: expected initializer before 'delay'
 void IRAM_ATTR HOT delay(uint32_t ms) { ::delay(ms); }
src/esphome/components/esp8266/core.cpp:14:24: error: expected initializer before 'micros'
 uint32_t IRAM_ATTR HOT micros() { return ::micros(); }
src/esphome/components/esp8266/core.cpp:15:20: error: expected initializer before 'delayMicroseconds'
 void IRAM_ATTR HOT delayMicroseconds(uint32_t us) { ::delayMicroseconds(us); }
src/esphome/components/esp8266/core.cpp:23:20: error: expected initializer before 'arch_feed_wdt'
 void IRAM_ATTR HOT arch_feed_wdt() {
*** [/data/drier-plug/.pioenvs/drier-plug/src/esphome/components/esp8266/core.cpp.o] Error 1
========================== [FAILED] Took 1.54 seconds ==========================

I am not even able to gets logs when I connect the device straight to the device I am running ESPHome on

Given that your compiling failed for you, nothing has changed on your device.

Does ping work?

Negative. I reflashed it and it said it successfully flashed, but same situation

Agree compile failed, but then device becomes offline. I will check ping.

Just double-checked, ping works. I double-checked ESPHome Config, and here is relevant section.

  ssid: !secret ssid
  password: !secret ssid_password

Strange. Any ideas on how to reconnect this smart-plug would be appreciated.


have you confirmed the address is that device still?
if using dhcp it could of changed and your pinging a different device

My router tools say yes, however I’m viewing from remote network (work), so will have to confirm.

Ping works fine. Even better webserver shows device is alive, but still offline in frontend.

Any suggestions beyond reloading .yaml?

In which front end?
home assistant?
esphome dashboard?

If you are still talking about ESPHome, and you are seeing styling that looks like the two devices that I manually marked with “OK!”, then the device is actually on line and the dashboard is connected to it:

In previous versions of ESPHome, these would have been green with a connected label. The current version of ESPHome considers the connected state as a kind of a default state and only colors and labels statuses that divert from that.

1 Like

Hi Maurice,
That explains a ton. Thank you! Basically I was looking for visual indicators which are no longer represented in the UI.

With my compile error, this got me headed into “alert mode” looking for problems, but apparently there aren’t any problems.

Thank you for the clarification, and help. Very much appreciated.

Kind Regards,

1 Like

You mean like I said here Tried to OTA Update Mutliple ESPHome Devices - Seems to Have Broke Them - #2 by nickrout

1 Like

I don’t understand why they made the change in this way - in some ways is better and clearer but why remove information and create ambiguity?
Also, the blue “UPDATE AVAILABLE” is doubly ambiguous. Is the device on or offline?

Any ideas as to why the update seems to have broken the wifi capabilities of my devices? Router says they are connected, but I am unable to ping them.

I would double-check addresses in your router to ensure they are online (in case DHCP changed them).
You can use the esphome command use_address to point to correct address.

  ssid: !secret ssid
  password: !secret ssid_password

SOLVED: Net – I solved compilation issues due to arduino_version.
My original problem emerges from some Gosund SP112 plugs. I had previous examples that I found via the community to show setup to be:

  name: ${system_name}
  platform: ESP8266
  #arduino_version: 2.5.1  <---------This was the problem
  board: esp01_1m
    priority: -10  
      - switch.turn_off: switch1
      - switch.turn_on: switchusb

Upon moving up versions 2021.10.3, my builds no longer worked, and was failing on compile errors. I had falsely kept the arduino_version from previous samples, and when I commented out that call, Esphome downloaded new version of arduino libraries (via during compile time).

Just wanted to post above in case anyone else runs into similar.