New ESPHome Update - Then Cannot update devices

Did you do as the message suggests?

@waketech_03 On the ESPHome dashboard there’s a 3 dot menu, hit “Clean Build Files” (sometimes it helps clear compilation errors) and then hit “Install” which will essentially update the node.

However, there are a few breaking changes, most notably OTA that now requires you add platform: esphome for it to compile. See changelog for more information.

1 Like

Yes, you get told that when you (try to) compile from the dashboard.

5 Likes

Thank you I looked at ESPHome and see this now, to be honest I glanced over the update and missed it :frowning:

I have put this up for people who face this problem.

3 Likes

so I’ve had the same issue with my bluetooth proxy and everything presence one ever since June and changing ota platform to esphome doesn’t work.

this is my proxy code:

substitutions:
  name: esp32-bluetooth-proxy-32d60c
  friendly_name: Bluetooth Proxy 32d60c
packages:
  esphome.bluetooth-proxy: github://esphome/firmware/bluetooth-proxy/esp32-generic.yaml@main
esphome:
  name: ${name}
  name_add_mac_suffix: false
  friendly_name: ${friendly_name}
ota:
  platform: esphome


wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

and when i try to update it says this:

INFO ESPHome 2024.7.2
INFO Reading configuration /config/esphome/esp32-bluetooth-proxy-32d60c.yaml...
Failed config

update.http_request: [source /data/packages/c46f54c1/bluetooth-proxy/esp32-generic.yaml:33]
  
  Component update.http_request requires 'platform: http_request' in component 'ota'.
  platform: http_request
  id: update_http_request
  name: Firmware
  source: https://firmware.esphome.io/bluetooth-proxy/esp32-generic/manifest.json

and when i substitute esphome for http_request it says this:

INFO Successfully compiled program.
ERROR Cannot upload Over the Air as the ota configuration is not present or does not include platform: esphome

Like the source code says

ota:
  - platform: esphome
    id: ota_esphome
  - platform: http_request
    id: ota_http_request

ok, except when i copy and paste that in my device yaml, i get the message:

INFO ESPHome 2024.7.2
INFO Reading configuration /config/esphome/esp32-bluetooth-proxy-32d60c.yaml...
Failed config

ota.esphome: [source /config/esphome/esp32-bluetooth-proxy-32d60c.yaml:12]
  platform: esphome
  
  ID ota_esphome redefined! Check ota->0->id.
  id: ota_esphome
  version: 2
  port: 3232
ota.http_request: [source /config/esphome/esp32-bluetooth-proxy-32d60c.yaml:14]
  platform: http_request
  
  ID ota_http_request redefined! Check ota->1->id.
  id: ota_http_request

Perhaps a clean build?

i get the exact same message when i click “Clean Build Files” … i’ve been at this for 2 months on several different community help platforms and none of the solutions work for me lol. My BT proxy and everything presence one are the trouble makers for some reason. The EP Lite (which doesn’t even have an OTA platform in the yaml files) and ratgdo (which has the esphome platform) haven’t had any issues updating.

I am having this exact same issue. Has anyone come up with a solution to this?

What is your exact yaml and log?

Here is the log file:

INFO ESPHome 2024.7.3
INFO Reading configuration /config/esphome/esp32-bluetooth-proxy-ea394c.yaml…
Failed config

ota.esphome: [source /config/esphome/esp32-bluetooth-proxy-ea394c.yaml:37]
platform: esphome

ID ota_esphome redefined! Check ota->0->id.
id: ota_esphome
version: 2
port: 3232
ota.http_request: [source /config/esphome/esp32-bluetooth-proxy-ea394c.yaml:39]
platform: http_request

ID ota_http_request redefined! Check ota->1->id.
id: ota_http_request
update.http_request: [source /config/esphome/esp32-bluetooth-proxy-ea394c.yaml:43]
platform: http_request

ID update_http_request redefined! Check update->0->id.
id: update_http_request
name: Firmware
source: https://firmware.esphome.io/bluetooth-proxy/esp32-generic/manifest.json
disabled_by_default: False
entity_category: config
update_interval: 6h

And the yaml code:

substitutions:
name: kitchen-node
friendly_name: Kitchen Node

packages:
esphome.bluetooth-proxy: github://esphome/firmware/bluetooth-proxy/esp32-generic.yaml@main

esphome:
name: ${name}
name_add_mac_suffix: false
friendly_name: ${friendly_name}

esp32:
board: esp32dev
framework:
type: esp-idf

api:
encryption:
key: htHUm6zOF4FQoUOFLHJ9q3dq/jCKLheNtCLRhpdYnrc=

wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password

ap:
ssid: “Bluetooth-Proxy Fallback Hotspot”
password: “xxxxxxxxxx”

manual_ip:
static_ip: xxx.xxx.x.xx
gateway: xxx.xxx.x.x
subnet: yyy.yyy.yyy.y

ota:

  • platform: esphome
    id: ota_esphome
  • platform: http_request
    id: ota_http_request

update:

http_request:

dashboard_import:
package_import_url: github://esphome/firmware/bluetooth-proxy/esp32-generic.yaml@main

esp32_ble_tracker:
scan_parameters:
interval: 1100ms
window: 1100ms
active: true

bluetooth_proxy:
active: true

button:

  • platform: safe_mode
    name: Safe Mode Boot
    entity_category: diagnostic

That’s not yaml. Please read this and fix How to help us help you - or How to ask a good question

Thank so much for your help in this, but it seems that you really don’t have an answer either. I have never asked a question on one of these boards, and probably never will again. But here goes.

I am having the same issue as darthbass123. When I try to upload the new code, I am getting the same error response as he is.

I’ve double checked the code to ensure it is correct as you’ve suggested above. It still isn’t working. And I’ve tried a Clean Build with the same results.

ota:
  - platform: esphome
     id: ota_esphome
  - platform: http_request
     id: ota_http_request

If you have a solution for this, please share it as I am sure there are others out there with the same issue. If not, please point me in the right direction so I can fix it.

I think id: should not be indented.

Edit, sorry I was on an android device before, hard to type. I meant I think it should be like this

ota:
  - platform: esphome
    id: ota_esphome
  - platform: http_request
    id: ota_http_request

And when you do indent, keep the indentation consistent. Good rule of thumb, two spaces (your id: lines were indented one space).

The indents were a mistake in my typing. But I did have luck in getting one node to update. I removed the “id: ota_esphome” and it worked for that one. Still working on the Everything Presence update. I’ll post how I solved it once I get there.

Seems to me that the way these things are designed, they should update automatically.

Hi everyone, I am resuming this old post because I have the same problem as waketech_03, I have followed the advice in the post, but I keep having the same problem and cannot update my mini D1, can anyone help me? I paste below my yaml, in the hope that you will spot the error:

esphome:
  name: multipresa
  platform: ESP8266
  board: d1_mini


# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "Sawert+sfytreso9a/VTdyQoQrf3AoG2KKNk3kjcda="

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip: 
    static_ip: 192.168.178.79
    subnet: 255.255.255.0
    gateway: 192.168.178.1
    dns1: 192.168.178.1

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Wemos Fallback Hotspot"
    password: "9T6ryWzxQzsr"

captive_portal:

With this yaml I control 4 switches connected to as many relays and via Home Assistant I can switch on each of the 4 sockets, the strange thing, however, is that if I search my lan for the D1 mini (which should have an IP 192.168.178.79, there is no