Trying to recover 'bricked' device

I made the mistake of trying to upload a new .bin file to a Brilliant garden light controller which included the web_server: parameter… turns out it can’t handle that and as such has since been unavailable.

The situation:

  1. I can’t ping the IP address
  2. ESPhome show’s it as ‘offline’
  3. The device does show up in both my UniFi dashboard, AND when doing a scan in Fing, both with the correct IP address as per the ESPhome config

So… WTF???

well only option is to connect to it in physical traditional way with USB adapter to reflash it with correct firmware :wink: Are you sure it’s only thing you changed ? as if you see it with a scan of local network (don’t know what is Fing that you mention) (Unifi dashboard is totally irrelevant as it’s absolutely not reliable…) it should be reachable…

Unfortunately the controller is a sealed unit (to make it weatherproof).

The web_server was the only change. I have 3of these devices, the other 2 are fine with the only exception being that they don’t have web_server in the code that was uploaded.

Fing is a network scanning app.

And if web_server: is the problem, it makes kind of sense that Unifi and Fing see it. The unit is probably booting normally and requesting an IP. The will cause a registration in Unifi and the ARP table. It then crashes or runs out of resources later.

Have you checked that the device doesn’t enter fallback mode after a while? (Could be more than 10 mins). Depending on your config it could start its own access point then.

Can you check with Fing if it sees any open port on the ESP ? Did you have OTA activated in firmware loaded in it ?
As suggested by @lancer73 perhaps check if it shows up in AP mode after a while ?
Can you share your sketch to see size of it ?

Unfortunately it’s now showing as offline in Fing…

Yep, that’s in there.

It’s not producing an AP…

esphome:
  name: garden_lights_front_1
  platform: ESP8266
  board: esp01_1m

wifi:
  ssid: !secret wifi_ssid_not_1
  password: !secret wifi_password_not_1
  manual_ip:
    static_ip: 192.168.30.121
    gateway: 192.168.30.1
    subnet: 255.255.255.0
  use_address: 192.168.30.121
  ap:
    ssid: front_garden_lights_1
    password: !secret wifi_fallback_ap_password


logger:

api:

ota:

output:
  - platform: esp8266_pwm
    id: output_red
    pin: GPIO4
  - platform: esp8266_pwm
    id: output_green
    pin: GPIO12
  - platform: esp8266_pwm
    id: output_blue
    pin: GPIO14


light:
  - platform: rgb
    name: "Front Garden Spotlights 1"
    id: glight
    red: output_red
    green: output_green
    blue: output_blue

    effects:
      - random:
      - strobe:
          name: alarm
          colors:
            - state: True
              brightness: 100%
              red: 100%
              green: 0%
              blue: 0%
              duration: 500ms
            - state: False
              duration: 250ms
            - state: True
              brightness: 100%
              red: 0%
              green: 0%
              blue: 100%
              duration: 500ms
      - lambda:
         name: Red Breathing
         update_interval: 1s
         lambda: |-
          static bool state = true;
          static int color = 1;
          auto call = id(glight).turn_on(); //the id of your light
          call.set_transition_length(1000);
          call.set_rgb(1.0, 0.0, 0.0); // color, 1.0 is fully lit
          if (state) 
          {
              call.set_brightness(1.0);
          }
          else
          {
              call.set_brightness(0.20);
          }
          call.perform();
          state = !state;  

binary_sensor:
  - platform: status
    name: "Front Garden Spotlights 1 Status"
    
sensor:
  - platform: wifi_signal
    name: "Front Garden Spotlights 1 WiFi Signal"
    update_interval: 60s

I just had an idea of taking the device away from my house so it can’t possibly connect to my wifi (since UniFi is still considering it connected) and seeing if it set’s up the AP in that instance…

EDIT: this wasn’t the issue as this works fine in an identical device. Either way, I can’t seem to connect to the device.

An update on this, but still no joy as yet.

I’ve taken the device away from my house (it was better than dropping my wifi) and it does in fact start up it’s wifi AP mode. The device has the correct IP as per it’s config but once again I can’t seem to connect to it.

Any ideas?

Which IP should that be? Afaik in AP mode the esphome node will spawn a DHCP server for the connected clients and will be accessible at 192.168.4.1.

When I connect my laptop to the ESP’s AP, I see that the ESP has an IP of 192.168.30.122 which is just off what it’s supposed to be as per it’s config…

Go to “settings / addons / EspHome / configuration”
then click on “Show unused optional configuration options”
Enable “status_use_ping”
restart the esphome addon and the device should now show as online :crossed_fingers:

Hope this helps you :grinning:

I already have that set because my ESPhome devices are on a different VLAN. All my other ‘good’ devices talk to HA fine.

As I mentioned at the start, this one won’t respond to pings.

:pensive: that sucks… not another trip to Bunnings.

Out of interest what Brilliant garden light controller are you using?

The problem is the later versions will not be tuya-convertable and it’s a sealed unit.

https://brilliantlighting.com.au/product/smart-wifi-rgb-garden-light-kit-b70c75

EDIT: the ESP has the correct IP address and does give my laptop an appropriate one also.

With my laptop connected to the ESP’s AP I can ping the ESP but every time I get 25% packet loss.

It doesn’t seem to be creating the web server as I can’t access anything on its IP address.

What is the “correct” IP address? I (still) would expect it to be

beside serving connected clients (your laptop) with something like 192.168.4.x

Did you yet try to activate the "OTA safe mode”? Should be as “easy” as interrupting the boot 10 times in a row

I see from your YAML above you didn’t include your web sever config. Did you leave it out for security when posting? Was looking to see if you had added a URL for it rather than just ip address. Have in past been unable to connect to things by ip but got in through host name. I have read before that recommended not to add webserver by OTA due to resizing of partitions.

Also just checking that the ip address has been reserved and your not trying to connect to address the DHCP has handed out again.

I think at this stage I wouldn’t be able to stop myself cutting open that case, reflashing and rehousing in case with suitable IP rating.

As ota is included it should be no problem to recover the device using the “safe mode” (described in my last post). The web server isn’t needed for this to work. :bulb:

Cutting the thing open might be a choice (often only a destructible one :hammer:) but I doubt it’s a smart one at this stage were ota recovery should be doable :ok_hand:

When I connect to the device’s AP, the device has an IP address of 192.168.30.121 and it’s allocating 192.168.30.122 to my laptop.

I didn’t know about this, I’ll have to give it a try.

Hmmm. I totally missed that this was missing… that would explain why I can’t connect via a browser! I must have accidentally removed it or something as it is present in an identical device that is currently online.

I’ve just read through the docs about this and I’m a little confused as to how I can trigger the device to enter this mode given that it doesn’t have any physical button and is completely sealed. Based on your previous comment, would I just power cycle the device quickly 10 times and hope that it is before the ESP fully boots?