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

The IP is the same in both ESPHome and my Router. I also dont have the arduino_version in any of my ESPHome yaml files.

The router says it is connected, but I just get “Request timeout for icmp_seq” when I try to ping the device.

Hmmm…I’m at a bit of a loss to point you in right direction.

  1. Can you restart either add-on/docker image where esphome is running? If running HassOS, restart add-on or restart host where Homeassistant is running.
  2. I noticed your network name of Skynet_NoT – I’m not sure if that is vlan or not. If so, has anything in that configuration changed recently preventing ICMP flowing through?

It is a VLAN but absolutely nothing has changed network wise. The only change was that I clicked “update” on the ESPHome addon.

I am running HassOS, and have done more restarts than I can count. I even restored an old instance of ESPHome, downloaded the old (not updated) .bin file, flashed it and still no go. It is like the update literally broke the wifi capabilities of the device. I have absolutely no idea.

I’m at a loss to help point you in the right direction. Sorry.

I’m not a deep network person, but perhaps it is arp cache that may need clearing.

https://thedarksource.com/how-to-clear-arp-cache-in-linux-windows-and-macos/#:~:text=arp%20is%20a%20command-line%20utility%20available%20in%20Linux,flush%20the%20shown%20entries%20%24%20arp%20-d%20192.168.1.240

Additionally, if you want to walk down this path, and not sure if your setup will support, but another test that I just did was to bring up another instance of esphome.

I have docker running on a Synology NAS instance. I downloaded two images 10.2, and 9.3.

My scenario were compilation issues, not networking. Steps I followed:

  1. Downloaded docker image ( Docker Hub)
  2. Created container using a mount point within the container i.e:
    /volume1/data/docker/esphome_config pointing to /config
  3. Attached container to my local network adapter (default port is 6052)
  4. Copied config from my local esphome directory to the /volume1/data/docker/esphome_config
  5. Ensure to copy secrets.yaml to /volume1/data/docker/esphome_config
  6. Fired up the container, and now had another test version of esphome that can point to your devices (http://<ip_add_where_docker_running>:6052).

This was convenient for me because I had docker available, but may be a lot of work if you don’t have similar setup. Just an idea for you.

One additional thought – since you are flashing .bin files proves you are adept at those types of things.
Could you build a new stripped down .bin file, create a new esphome device, build that .bin file, and flash that onto your device.

If flashing via serial, you could monitor serial traffic to view logs.
I have had success flashing esphome devices via COM ports from Windows machines, and using ESPHome-Flasher-1.2.0-windows-x64. Might be at least a way of troubleshooting.

I am currently unable spin up a new ESPHome instance unfortunately.

I did try completely recreating a stripped down .bin file, but unfortunately, it didnt seem to do anything at all. Router shows it is connected, but I cannot ping it. ESPHome shows it is connected to power, but no logs show up. I think I am just SOL.

Oh, we’ll find root cause here…

I remembered that you can try to diagnose networking from the command-line of your HA instance. My thought is to see if the docker image can ping your device. It should be able to.

Here are the steps that I just did via my own HA instance. I run Proxmox on an Intel NUC, so I looked directly at the command-line of the HA VM that I’m running. You can do similar via the following.

  1. putty into HA instance . You may have to add SSH add-on.
  2. At console, type login to get to # prompt. You are now at linux prompt and can view docker info. Be careful here.
  3. list docker containers via command “docker container ls | more” find container name for esphome. Mine was container ID 1c40f7bbe743 for example.
  4. Docker will allow first characters to identify containers, so we don’t need whole container id.
  5. Run ping from esphome container “docker exec 1c40 ping your device ip”. Note: I shortened the container 1c40.

Found this thread that may be another test…

SONOFF BASIC - Not stable above core 2.3.0 Will not connect to WiFi · Issue #2625 · esphome/issues (github.com)

First off, thank you for all of your help.

I tried changing the ESPHome yaml file like the link you posted said to, but same situation.

So then I managed to get my way into the command line of HA, and using the command "docker exec 1c40 ping 192.168.20.12”, nothing happened. nothing popped up or anything. So then I tried just “ping 192.168.20.12” and it returned “No response from 192.168.20.12”

I just re-confirmed that the device itsself is working, as I can turn it on and everything with the included IR remote, but still no wifi connectivity. Very weird.

Edit: When I connect the device straight to the rpi and try to read logs, this is what shows up


and it just stays like that.

Don’t overlook that docker container names will be different on your HA instance.

So, the command to get the docker container names is critical:

  1. “docker container ls | more” This show you the container names. Find the one that says esphome.
  2. Write down the big long ID – let’s say it begins with “ab123”
  3. Then the command to execute a ping from within the container would be:
  4. docker exec ab123 ping 192.168.20.12

ooh sorry, I did ensure that was correct, my apologies.

I used to use underscore in my esphome yaml names. And then I learn it collides with mDNS things.
You can convert. But I don’t think that will fix your networking things.

OLD Version

substitutions:
  system_name: esph_drier_plug
  friendly_name: Esph Drier Plug
  restore_mode: ALWAYS_ON

esphome:
  name: ${system_name}
  platform: ESP8266
  board: esp01_1m

NEW Version

substitutions:
  system_name: drier plug
  friendly_name: Drier Plug
  restore_mode: ALWAYS_ON

esphome:
  name: ${system_name}
  platform: ESP8266
  board: esp01_1m

I’m not sure if you have done this, but two more things to look at:

  1. From Supervisor | Click esphome Add-on | Check top right Log file – anything special there?
  2. You can remove the add-on, which will remove the docker container under the covers and re-add the add-on. You should not lose any reference to your esphome entities. I have just done similar on my own instance.
2021-11-10 10:46:02,417 INFO 200 GET /static/css/vendor/materialize/materialize.min.css?hash=ec1df3ba (0.0.0.0) 4.06ms
2021-11-10 10:46:02,436 INFO 200 GET /static/css/esphome-2.css?hash=95c08d5a (0.0.0.0) 3.58ms
2021-11-10 10:46:02,441 INFO 200 GET /static/js/vendor/jquery/jquery.min.js?hash=12108007 (0.0.0.0) 3.27ms
2021-11-10 10:46:02,458 INFO 200 GET /static/js/vendor/materialize/materialize.min.js?hash=4be20daf (0.0.0.0) 4.38ms
2021-11-10 10:46:02,469 INFO 200 GET /static/js/vendor/jquery-ui/jquery-ui.min.js?hash=cab3392d (0.0.0.0) 5.10ms
2021-11-10 10:46:02,476 INFO 200 GET /static/js/vendor/jquery-validate/jquery.validate.min.js?hash=aad785d4 (0.0.0.0) 3.78ms
2021-11-10 10:46:02,691 INFO 200 GET /static/js/vendor/ace/ace.js?hash=65322f49 (0.0.0.0) 7.94ms
2021-11-10 10:46:02,769 INFO 200 GET /static/js/esphome/index-e0440f6f.js (0.0.0.0) 4.18ms
2021-11-10 10:46:02,832 INFO 200 GET /static/fonts/material-icons/MaterialIcons-Regular.woff2 (0.0.0.0) 3.01ms
2021-11-10 10:46:02,994 INFO 200 GET /static/js/vendor/ace/theme-dreamweaver.js (0.0.0.0) 2.90ms
2021-11-10 10:46:03,003 INFO 200 GET /static/js/vendor/ace/mode-yaml.js (0.0.0.0) 3.13ms
2021-11-10 10:46:03,024 INFO 200 GET /devices (0.0.0.0) 5.34ms
2021-11-10 10:46:03,079 INFO 101 GET /ace (0.0.0.0) 1.68ms
2021-11-10 10:46:03,127 INFO Running command 'esphome --dashboard -q vscode --ace /config/esphome'
2021-11-10 10:46:04,894 INFO 200 GET /edit?configuration=led_controller.yaml (0.0.0.0) 3.23ms
2021-11-10 10:46:08,026 INFO 304 GET /devices (0.0.0.0) 3.73ms
2021-11-10 10:46:12,755 INFO 200 GET /static/js/esphome/c.86557d2d.js (0.0.0.0) 8.23ms
2021-11-10 10:46:12,798 INFO 200 GET /static/js/esphome/c.42357ee2.js (0.0.0.0) 2.53ms
2021-11-10 10:46:12,819 INFO 200 GET /static/js/esphome/c.9fbc2162.js (0.0.0.0) 2.96ms
2021-11-10 10:46:12,835 INFO 200 GET /static/js/esphome/c.849528ae.js (0.0.0.0) 13.82ms
2021-11-10 10:46:12,838 INFO 200 GET /static/js/esphome/c.82ae9110.js (0.0.0.0) 14.89ms
2021-11-10 10:46:12,845 INFO 200 GET /static/js/esphome/c.989b6db0.js (0.0.0.0) 3.65ms
2021-11-10 10:46:13,031 INFO 304 GET /devices (0.0.0.0) 4.67ms
2021-11-10 10:46:15,339 INFO 200 POST /edit?configuration=led_controller.yaml (0.0.0.0) 3.02ms
2021-11-10 10:46:16,971 INFO 200 POST /edit?configuration=led_controller.yaml (0.0.0.0) 2.81ms
2021-11-10 10:46:18,037 INFO 304 GET /devices (0.0.0.0) 4.15ms
2021-11-10 10:46:23,033 INFO 304 GET /devices (0.0.0.0) 3.13ms
2021-11-10 10:46:23,564 INFO 200 GET /static/js/esphome/c.177725c5.js (0.0.0.0) 5.29ms
2021-11-10 10:46:23,602 INFO 200 GET /static/js/esphome/c.2cdbdbed.js (0.0.0.0) 2.05ms
2021-11-10 10:46:23,697 INFO 101 GET /upload (0.0.0.0) 1.48ms
2021-11-10 10:46:23,700 INFO Running command 'esphome --dashboard run /config/esphome/led_controller.yaml --device /dev/ttyUSB0'
2021-11-10 10:46:28,045 INFO 200 GET /devices (0.0.0.0) 4.58ms
2021-11-10 10:46:33,066 INFO 304 GET /devices (0.0.0.0) 9.74ms
2021-11-10 10:46:38,048 INFO 304 GET /devices (0.0.0.0) 5.35ms
2021-11-10 10:46:43,053 INFO 304 GET /devices (0.0.0.0) 6.64ms
2021-11-10 10:46:48,055 INFO 304 GET /devices (0.0.0.0) 5.33ms
2021-11-10 10:46:53,056 INFO 304 GET /devices (0.0.0.0) 4.74ms
2021-11-10 10:46:58,074 INFO 304 GET /devices (0.0.0.0) 9.11ms
2021-11-10 10:47:03,126 INFO 304 GET /devices (0.0.0.0) 5.55ms
2021-11-10 10:47:08,066 INFO 304 GET /devices (0.0.0.0) 5.39ms
2021-11-10 10:47:13,113 INFO 304 GET /devices (0.0.0.0) 5.44ms
2021-11-10 10:47:18,073 INFO 304 GET /devices (0.0.0.0) 6.56ms
2021-11-10 10:47:23,081 INFO 304 GET /devices (0.0.0.0) 5.21ms
2021-11-10 10:47:28,079 INFO 304 GET /devices (0.0.0.0) 8.83ms
2021-11-10 10:47:33,078 INFO 304 GET /devices (0.0.0.0) 8.54ms
2021-11-10 10:47:38,073 INFO 304 GET /devices (0.0.0.0) 4.45ms
2021-11-10 10:47:43,087 INFO 304 GET /devices (0.0.0.0) 5.35ms
2021-11-10 10:47:49,200 INFO 304 GET /devices (0.0.0.0) 8.01ms
2021-11-10 10:47:55,166 INFO 304 GET /devices (0.0.0.0) 6.44ms
2021-11-10 10:48:01,183 INFO 304 GET /devices (0.0.0.0) 21.31ms
2021-11-10 10:48:07,034 INFO 304 GET /devices (0.0.0.0) 5.01ms
2021-11-10 10:48:13,231 INFO 304 GET /devices (0.0.0.0) 6.64ms
2021-11-10 10:48:19,098 INFO 304 GET /devices (0.0.0.0) 6.83ms
2021-11-10 10:48:25,216 INFO 304 GET /devices (0.0.0.0) 8.22ms
2021-11-10 10:48:31,360 INFO 304 GET /devices (0.0.0.0) 11.56ms
2021-11-10 10:48:37,355 INFO 304 GET /devices (0.0.0.0) 3.15ms
2021-11-10 10:48:43,256 INFO 304 GET /devices (0.0.0.0) 8.87ms
2021-11-10 10:48:49,190 INFO 304 GET /devices (0.0.0.0) 3.45ms
2021-11-10 10:48:55,058 INFO 304 GET /devices (0.0.0.0) 3.94ms
2021-11-10 10:49:01,276 INFO 304 GET /devices (0.0.0.0) 5.13ms
2021-11-10 10:49:07,353 INFO 304 GET /devices (0.0.0.0) 4.75ms
2021-11-10 10:49:13,393 INFO 304 GET /devices (0.0.0.0) 4.67ms
2021-11-10 10:49:19,325 INFO 304 GET /devices (0.0.0.0) 3.90ms
2021-11-10 10:49:25,347 INFO 304 GET /devices (0.0.0.0) 3.99ms
2021-11-10 10:49:31,120 INFO 304 GET /devices (0.0.0.0) 13.67ms
2021-11-10 10:49:37,293 INFO 304 GET /devices (0.0.0.0) 4.32ms
2021-11-10 10:49:43,304 INFO 304 GET /devices (0.0.0.0) 3.93ms
2021-11-10 10:49:49,486 INFO 304 GET /devices (0.0.0.0) 3.89ms
2021-11-10 10:49:55,125 INFO 304 GET /devices (0.0.0.0) 3.44ms
2021-11-10 10:50:01,203 INFO 304 GET /devices (0.0.0.0) 8.07ms
2021-11-10 10:50:07,601 INFO 304 GET /devices (0.0.0.0) 4.50ms
2021-11-10 10:50:13,357 INFO 304 GET /devices (0.0.0.0) 11.49ms
2021-11-10 10:50:19,483 INFO 304 GET /devices (0.0.0.0) 5.66ms
2021-11-10 10:50:25,620 INFO 304 GET /devices (0.0.0.0) 3.24ms
2021-11-10 10:50:31,369 INFO 304 GET /devices (0.0.0.0) 10.09ms
2021-11-10 10:50:37,384 INFO 304 GET /devices (0.0.0.0) 11.35ms
2021-11-10 10:50:43,295 INFO 304 GET /devices (0.0.0.0) 4.39ms
2021-11-10 10:50:49,398 INFO 304 GET /devices (0.0.0.0) 3.07ms
2021-11-10 10:50:55,487 INFO 304 GET /devices (0.0.0.0) 3.27ms
2021-11-10 10:51:01,403 INFO 304 GET /devices (0.0.0.0) 3.74ms
2021-11-10 10:51:07,280 INFO 304 GET /devices (0.0.0.0) 4.12ms
2021-11-10 10:51:12,363 INFO 304 GET /devices (0.0.0.0) 11.13ms
2021-11-10 10:51:18,125 INFO 304 GET /devices (0.0.0.0) 3.44ms
2021-11-10 10:51:24,025 INFO 304 GET /devices (0.0.0.0) 3.76ms
2021-11-10 10:51:29,371 INFO 304 GET /devices (0.0.0.0) 5.22ms
2021-11-10 10:51:35,398 INFO 304 GET /devices (0.0.0.0) 7.00ms
2021-11-10 10:51:41,598 INFO 304 GET /devices (0.0.0.0) 8.14ms
2021-11-10 10:51:47,442 INFO 304 GET /devices (0.0.0.0) 7.36ms
2021-11-10 10:51:52,343 INFO 304 GET /devices (0.0.0.0) 3.68ms
2021-11-10 10:51:57,333 INFO 304 GET /devices (0.0.0.0) 4.30ms
2021-11-10 10:52:00,839 INFO 200 GET /static/js/esphome/c.82e709d2.js (0.0.0.0) 11.19ms
2021-11-10 10:52:02,333 INFO 304 GET /devices (0.0.0.0) 3.14ms
2021-11-10 10:52:03,937 INFO 200 GET /static/js/esphome/c.8c24b434.js (0.0.0.0) 2.13ms
2021-11-10 10:52:05,337 INFO 200 GET /static/js/esphome/c.ae5497fd.js (0.0.0.0) 2.32ms
2021-11-10 10:52:05,525 INFO 101 GET /logs (0.0.0.0) 1.48ms
2021-11-10 10:52:05,567 INFO Running command 'esphome --dashboard logs /config/esphome/led_controller.yaml --device /dev/ttyUSB0'
2021-11-10 10:52:07,342 INFO 304 GET /devices (0.0.0.0) 5.54ms
2021-11-10 10:52:12,342 INFO 304 GET /devices (0.0.0.0) 4.36ms
2021-11-10 10:52:17,347 INFO 304 GET /devices (0.0.0.0) 5.64ms
2021-11-10 10:52:22,352 INFO 304 GET /devices (0.0.0.0) 3.85ms

all in green text.

Does that mean anything to you? the (0.0.0.0) is interesting, as it almost tells me its not getting an IP address? Maybe? I dont know what I am talking about.

And the logs straight from ESPHome with the device connected via FTDI

and no logs ever come out

A few more thoughts:

  1. This one will sound stupid – doublecheck your host IP address on the pi. Supervisor | System – check IP address is correct. Just in case. Check Gateway there as well.
  2. Maybe add a manual ip address to the esphome yaml build. Here is syntax:
wifi:
  ssid: $wifi_ssid
  password: $wifi_password
  #  manual_ip:
  #    static_ip: 192.168.178.230
  #    gateway: 192.168.178.1
  #    subnet: 255.255.255.0
  #    dns1: 8.8.8.8
  #    dns2: 4.4.4.4
  #----------------------------------------------------

Here is my log from esphome:

[17:48:10] INFO: Waiting for dashboard to come up...
[services.d] done.
[17:48:10] INFO: Starting ESPHome dashboard...
2021-11-10 17:48:11,198 INFO Starting dashboard web server on unix socket /var/run/esphome.sock and configuration dir /config/esphome...
[17:48:11] INFO: Starting NGINX...
2021-11-10 17:48:14,028 INFO 200 GET / (0.0.0.0) 5.40ms
2021-11-10 17:48:14,078 INFO 200 GET /static/fonts/material-icons/material-icons.css?hash=ead4c276 (0.0.0.0) 4.84ms
2021-11-10 17:48:14,088 INFO 200 GET /static/css/vendor/materialize/materialize.min.css?hash=ec1df3ba (0.0.0.0) 4.43ms
2021-11-10 17:48:14,098 INFO 200 GET /static/css/esphome-2.css?hash=95c08d5a (0.0.0.0) 2.64ms
2021-11-10 17:48:14,104 INFO 200 GET /static/js/vendor/jquery/jquery.min.js?hash=12108007 (0.0.0.0) 1.84ms
2021-11-10 17:48:14,105 INFO 200 GET /static/js/vendor/jquery-validate/jquery.validate.min.js?hash=aad785d4 (0.0.0.0) 2.28ms
2021-11-10 17:48:14,109 INFO 200 GET /static/js/vendor/materialize/materialize.min.js?hash=4be20daf (0.0.0.0) 1.52ms
2021-11-10 17:48:14,111 INFO 200 GET /static/js/vendor/jquery-ui/jquery-ui.min.js?hash=cab3392d (0.0.0.0) 2.67ms
2021-11-10 17:48:14,260 INFO 200 GET /static/js/esphome/index-e0440f6f.js (0.0.0.0) 1.56ms
2021-11-10 17:48:14,260 INFO 200 GET /static/js/vendor/ace/ace.js?hash=65322f49 (0.0.0.0) 4.42ms
2021-11-10 17:48:14,307 INFO 200 GET /static/fonts/material-icons/MaterialIcons-Regular.woff2 (0.0.0.0) 0.79ms
2021-11-10 17:48:14,362 INFO 200 GET /static/js/vendor/ace/theme-dreamweaver.js (0.0.0.0) 0.71ms
2021-11-10 17:48:14,364 INFO 200 GET /static/js/vendor/ace/mode-yaml.js (0.0.0.0) 0.83ms
2021-11-10 17:48:14,391 INFO 200 GET /devices (0.0.0.0) 1.83ms
2021-11-10 17:48:14,417 INFO 101 GET /ace (0.0.0.0) 0.98ms
2021-11-10 17:48:14,505 INFO Running command 'esphome --dashboard -q vscode --ace /config/esphome'
2021-11-10 17:48:19,398 INFO 304 GET /devices (0.0.0.0) 2.55ms
2021-11-10 17:48:24,398 INFO 304 GET /devices (0.0.0.0) 1.52ms
2021-11-10 17:48:29,403 INFO 304 GET /devices (0.0.0.0) 1.67ms
2021-11-10 17:48:34,414 INFO 304 GET /devices (0.0.0.0) 1.61ms
2021-11-10 17:48:39,422 INFO 304 GET /devices (0.0.0.0) 1.63ms
2021-11-10 17:48:44,434 INFO 304 GET /devices (0.0.0.0) 1.54ms
2021-11-10 17:48:49,441 INFO 304 GET /devices (0.0.0.0) 2.30ms
2021-11-10 17:48:54,449 INFO 304 GET /devices (0.0.0.0) 1.48ms
2021-11-10 17:48:59,450 INFO 304 GET /devices (0.0.0.0) 1.47ms
2021-11-10 17:49:04,594 INFO 304 GET /devices (0.0.0.0) 1.50ms
2021-11-10 17:49:09,471 INFO 304 GET /devices (0.0.0.0) 1.59ms
2021-11-10 17:49:14,475 INFO 304 GET /devices (0.0.0.0) 1.56ms
2021-11-10 17:49:19,479 INFO 304 GET /devices (0.0.0.0) 1.55ms
2021-11-10 17:49:24,492 INFO 304 GET /devices (0.0.0.0) 1.55ms
2021-11-10 17:49:29,505 INFO 304 GET /devices (0.0.0.0) 1.71ms
2021-11-10 17:49:34,524 INFO 304 GET /devices (0.0.0.0) 1.74ms
2021-11-10 17:49:39,520 INFO 304 GET /devices (0.0.0.0) 1.58ms
2021-11-10 18:01:14,576 INFO 304 GET / (0.0.0.0) 0.82ms
2021-11-10 18:01:14,597 INFO 200 GET /static/fonts/material-icons/material-icons.css?hash=ead4c276 (0.0.0.0) 0.93ms
2021-11-10 18:01:14,601 INFO 200 GET /static/css/vendor/materialize/materialize.min.css?hash=ec1df3ba (0.0.0.0) 1.06ms
2021-11-10 18:01:14,606 INFO 200 GET /static/js/vendor/jquery/jquery.min.js?hash=12108007 (0.0.0.0) 0.99ms
2021-11-10 18:01:14,612 INFO 200 GET /static/css/esphome-2.css?hash=95c08d5a (0.0.0.0) 0.95ms
2021-11-10 18:01:14,615 INFO 200 GET /static/js/vendor/materialize/materialize.min.js?hash=4be20daf (0.0.0.0) 2.15ms
2021-11-10 18:01:14,617 INFO 200 GET /static/js/vendor/jquery-ui/jquery-ui.min.js?hash=cab3392d (0.0.0.0) 3.18ms
2021-11-10 18:01:14,617 INFO 200 GET /static/js/vendor/jquery-validate/jquery.validate.min.js?hash=aad785d4 (0.0.0.0) 3.73ms
2021-11-10 18:01:14,704 INFO 200 GET /static/js/vendor/ace/ace.js?hash=65322f49 (0.0.0.0) 2.04ms
2021-11-10 18:01:14,706 INFO 200 GET /static/js/esphome/index-e0440f6f.js (0.0.0.0) 1.56ms
2021-11-10 18:01:14,743 INFO 200 GET /static/fonts/material-icons/MaterialIcons-Regular.woff2 (0.0.0.0) 2.04ms
2021-11-10 18:01:14,792 INFO 200 GET /static/js/vendor/ace/theme-dreamweaver.js (0.0.0.0) 1.01ms
2021-11-10 18:01:14,793 INFO 200 GET /static/js/vendor/ace/mode-yaml.js (0.0.0.0) 1.34ms
2021-11-10 18:01:16,013 INFO 304 GET /devices (0.0.0.0) 2.55ms
2021-11-10 18:01:16,016 INFO 101 GET /ace (0.0.0.0) 4.26ms
2021-11-10 18:01:16,018 INFO Running command 'esphome --dashboard -q vscode --ace /config/esphome'

Host IP is correct.

I also have this in my yaml file, and everthing in the secrets file as well in my router lines up

  manual_ip:
    static_ip: !secret led_controller_ip
    gateway: !secret network_gateway
    subnet: !secret network_subnet

Thinking outloud:

I thought I saw a reference to minimum password lengths (at github.com/esphome issues repository), but of course, I cannot find it any longer. I remember seeing passwords had to be 10 characters or more for wifi credentials which I use.

Perhaps your host HA instance + esphome is newer, yet you are using an older wifi-password.
Of course, that would mean no other devices could join…

Is this the only device not working?

Nice job on secrets. Everything should line up with that. Compile would complain if it couldn’t find the secrets.yaml.

Wait – I believe newer versions of esphome require ssid and password in wifi section.
My compiles complain without it.

wifi:
  ssid: !secret ssid
  password: !secret ssid_password
  manual_ip: 
    static_ip: 192.168.178.16
    gateway: 192.168.178.199
    subnet: 255.255.255.0

Interesting. My password is 18 characters long though.

And no, I have 3 ESPHome devices, and all 3 of them are down after the OTA update. I have tried all of these steps on two different devices, the third device isnt super easy to get to.

esphome:
  name: led-controller
  platform: ESP8266
  board: esp8285

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  fast_connect: true
  output_power: 17db
  domain: ""
  power_save_mode: none
  manual_ip:
    static_ip: !secret led_controller_ip
    gateway: !secret network_gateway
    subnet: !secret network_subnet

  ap:
    ssid: "LED Controller Hotspot"
    password: !secret ap_password

logger:

api:

ota:
  password: !secret ap_password