From 1df3fad225cf4a5fe4a749d1fa19348c9e1e4119 Mon Sep 17 00:00:00 2001 From: Brandon Harvey Date: Tue, 24 Feb 2026 17:45:52 -0600 Subject: [PATCH 1/4] [wifi_info] Add IP address text sensor Exposes the device's current IP address as a diagnostic text sensor in Home Assistant, making it easier to identify devices on the network. --- Integrations/ESPHome/Core.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Integrations/ESPHome/Core.yaml b/Integrations/ESPHome/Core.yaml index 11df89f..ecfdf8f 100644 --- a/Integrations/ESPHome/Core.yaml +++ b/Integrations/ESPHome/Core.yaml @@ -649,6 +649,10 @@ text_sensor: - platform: ld2410 version: name: "Radar Firmware Version" + - platform: wifi_info + ip_address: + name: "IP Address" + id: wifi_ip select: - platform: ld2410 From d60ede50eba7c8769a85effa6e81be01282d68c9 Mon Sep 17 00:00:00 2001 From: Brandon Harvey Date: Tue, 24 Feb 2026 17:46:19 -0600 Subject: [PATCH 2/4] [version] Add ESPHome and Apollo firmware version sensors Exposes the running ESPHome version and the Apollo firmware version as diagnostic text sensors in Home Assistant, making it easy to verify what firmware is installed without checking the ESPHome dashboard. --- Integrations/ESPHome/Core.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Integrations/ESPHome/Core.yaml b/Integrations/ESPHome/Core.yaml index ecfdf8f..c4b83cb 100644 --- a/Integrations/ESPHome/Core.yaml +++ b/Integrations/ESPHome/Core.yaml @@ -653,6 +653,16 @@ text_sensor: ip_address: name: "IP Address" id: wifi_ip + - platform: version + name: "ESPHome Version" + hide_timestamp: true + entity_category: "diagnostic" + - platform: template + name: "Apollo Firmware Version" + id: apollo_firmware_version + lambda: |- + return {"${version}"}; + entity_category: "diagnostic" select: - platform: ld2410 From 3d76b4d85db9579075c370440ac47013f7a82635 Mon Sep 17 00:00:00 2001 From: Brandon Harvey Date: Tue, 24 Feb 2026 17:46:54 -0600 Subject: [PATCH 3/4] [api] Rename services to actions ESPHome renamed `services`/`service` to `actions`/`action` in newer versions. Updates all three API entries (play_buzzer, calibrate_co2_value, set_ld2410_bluetooth_password) to use the current syntax. BREAKING CHANGE: Any Home Assistant automations or scripts that call these as services must be updated to use the new action syntax. --- Integrations/ESPHome/Core.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Integrations/ESPHome/Core.yaml b/Integrations/ESPHome/Core.yaml index c4b83cb..86e5f06 100644 --- a/Integrations/ESPHome/Core.yaml +++ b/Integrations/ESPHome/Core.yaml @@ -16,16 +16,16 @@ api: - delay: 1s - light.turn_off: rgb_light - lambda: 'id(cycleCounter) = 30;' - services: - - service: play_buzzer + actions: + - action: play_buzzer variables: song_str: string then: - rtttl.play: rtttl: !lambda 'return song_str;' - #Co2 Calibration Service - - service: calibrate_co2_value + #Co2 Calibration Action + - action: calibrate_co2_value variables: co2_ppm: float then: @@ -34,7 +34,7 @@ api: id: scd40 #Setting HLK Password - - service: set_ld2410_bluetooth_password + - action: set_ld2410_bluetooth_password variables: password: string then: From 71e4527a609e68806936e08d69e320c6c4442ef3 Mon Sep 17 00:00:00 2001 From: Brandon Harvey Date: Tue, 24 Feb 2026 17:47:51 -0600 Subject: [PATCH 4/4] [esphome] Modernise board spec, web server v3, remove legacy platformio options MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Replace deprecated board name with explicit variant/flash_size spec (esp32c3 + 4MB) — removes need for platformio_options flash_mode override - Enable web server version 3 (modern UI) - Remove platformio_options board_build.flash_mode: dio from all device YAMLs - Remove legacy BLE on_connect/on_disconnect wifi hooks from Factory yaml --- Integrations/ESPHome/Core.yaml | 4 +++- Integrations/ESPHome/MSR-1.yaml | 4 +--- Integrations/ESPHome/MSR-1_BLE.yaml | 3 --- Integrations/ESPHome/MSR-1_Factory.yaml | 8 -------- 4 files changed, 4 insertions(+), 15 deletions(-) diff --git a/Integrations/ESPHome/Core.yaml b/Integrations/ESPHome/Core.yaml index 86e5f06..32e50a1 100644 --- a/Integrations/ESPHome/Core.yaml +++ b/Integrations/ESPHome/Core.yaml @@ -3,13 +3,15 @@ substitutions: device_description: ${name} made by Apollo Automation - version ${version}. esp32: - board: esp32-c3-devkitm-1 + variant: esp32c3 + flash_size: 4MB framework: type: esp-idf captive_portal: web_server: port: 80 + version: 3 api: on_client_connected: diff --git a/Integrations/ESPHome/MSR-1.yaml b/Integrations/ESPHome/MSR-1.yaml index 74519d0..70b1b00 100644 --- a/Integrations/ESPHome/MSR-1.yaml +++ b/Integrations/ESPHome/MSR-1.yaml @@ -3,9 +3,6 @@ esphome: friendly_name: Apollo Multisensor Mk1 (MSR-1) comment: Apollo Multisensor Mk1 (MSR-1) name_add_mac_suffix: true - platformio_options: - board_build.flash_mode: dio - on_boot: - priority: 900.0 then: @@ -35,6 +32,7 @@ captive_portal: web_server: port: 80 + version: 3 packages: core: !include Core.yaml \ No newline at end of file diff --git a/Integrations/ESPHome/MSR-1_BLE.yaml b/Integrations/ESPHome/MSR-1_BLE.yaml index eb0a071..a1c347b 100644 --- a/Integrations/ESPHome/MSR-1_BLE.yaml +++ b/Integrations/ESPHome/MSR-1_BLE.yaml @@ -3,9 +3,6 @@ esphome: friendly_name: Apollo Multisensor Mk1 (MSR-1) comment: Apollo Multisensor Mk1 (MSR-1) name_add_mac_suffix: true - platformio_options: - board_build.flash_mode: dio - on_boot: - priority: 900.0 then: diff --git a/Integrations/ESPHome/MSR-1_Factory.yaml b/Integrations/ESPHome/MSR-1_Factory.yaml index 15b9697..d48c1e6 100644 --- a/Integrations/ESPHome/MSR-1_Factory.yaml +++ b/Integrations/ESPHome/MSR-1_Factory.yaml @@ -3,9 +3,6 @@ esphome: friendly_name: Apollo Multisensor Mk1 (MSR-1) comment: Apollo Multisensor Mk1 (MSR-1) name_add_mac_suffix: true - platformio_options: - board_build.flash_mode: dio - on_boot: - priority: 900.0 then: @@ -28,11 +25,6 @@ esp32_improv: authorizer: none wifi: - on_connect: - - delay: 5s - - ble.disable: - on_disconnect: - - ble.enable: ap: ssid: "Apollo MSR1 Hotspot"