Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
eceba21
merge plt-1 main into beta to resync them
bharvey88 Dec 13, 2025
82b3628
[wifi_info] Add IP address text sensor
bharvey88 Feb 24, 2026
949adb3
[version] Add ESPHome and Apollo firmware version sensors
bharvey88 Feb 24, 2026
a8d2f20
[api] Rename services to actions
bharvey88 Feb 24, 2026
490ac8b
[esphome] Modernise board spec, web server v3, remove legacy platform…
bharvey88 Feb 24, 2026
df59574
fix: add entity_category diagnostic to ESPHome Version sensor
bharvey88 Feb 26, 2026
9838c0c
fix: add update_interval: never to static Apollo Firmware Version sensor
bharvey88 Feb 26, 2026
2377272
fix: remove duplicate entity_category keys in ESPHome Version sensor
bharvey88 Feb 26, 2026
e1c4693
fix: publish apollo_firmware_version in reportAllValues before deep s…
bharvey88 Feb 26, 2026
8519252
fix: publish apollo_firmware_version in reportAllValues before deep s…
bharvey88 Feb 26, 2026
8694f68
Merge pull request #55 from ApolloAutomation/esphome-modernisation
TrevorSchirmer Feb 27, 2026
013c30f
Merge pull request #53 from ApolloAutomation/version-sensors
TrevorSchirmer Feb 27, 2026
388be41
Add entity_category diagnostic to wifi IP address sensor
bharvey88 Feb 27, 2026
6774b57
Merge pull request #56 from ApolloAutomation/wifi-ip-diagnostic-category
TrevorSchirmer Feb 27, 2026
a84a9b3
Add configurable update interval for LTR390 sensor
bharvey88 Mar 1, 2026
291ed3e
Merge pull request #57 from ApolloAutomation/feature/ltr390-configura…
bharvey88 Mar 2, 2026
302a465
Bump version to 26.3.2.1
bharvey88 Mar 2, 2026
aaf41cd
Fix: restore UTF-8 special chars, keep version bump to 26.3.2.1
bharvey88 Mar 2, 2026
b34f6c1
Bump version to 26.3.2.1
bharvey88 Mar 2, 2026
df4eaca
Fix Apollo Firmware Version sensor showing unknown
bharvey88 Mar 6, 2026
e97c3f6
fix: publish firmware version once on boot instead of polling
bharvey88 Mar 6, 2026
a81a49d
fix: move firmware version publish to priority 600
bharvey88 Mar 6, 2026
5b9910f
fix: use priority 500 for firmware version publish
bharvey88 Mar 6, 2026
7884bbd
debug: add log print before firmware version publish
bharvey88 Mar 7, 2026
e8820f7
fix: add firmware version publish to all PLT-1 variants
bharvey88 Mar 7, 2026
21771d3
Fix Apollo Firmware Version sensor showing unknown
bharvey88 Mar 7, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 58 additions & 8 deletions Integrations/ESPHome/Core.yaml
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
substitutions:
version: "25.8.6.1"
version: "26.3.2.1"

esp32:
board: esp32-c3-devkitm-1
variant: esp32c3
flash_size: 4MB
framework:
type: esp-idf
advanced:
assertion_level: SILENT
enable_lwip_assert: false

api:
services:
- service: play_buzzer
actions:
- action: play_buzzer
variables:
song_str: string
then:
Expand Down Expand Up @@ -67,6 +68,10 @@ globals:
restore_value: no
type: bool
initial_value: "false"
- id: ltr390_last_update
restore_value: no
type: uint32_t
initial_value: '0'


captive_portal:
Expand Down Expand Up @@ -141,6 +146,19 @@ number:
mode: box
min_value: 0.0
max_value: 5.0
- platform: template
name: LTR390 Update Interval
id: ltr390_update_interval
restore_value: true
initial_value: 60
min_value: 1
max_value: 300
entity_category: "CONFIG"
unit_of_measurement: "s"
optimistic: true
update_interval: never
step: 1
mode: box

binary_sensor:
- platform: status
Expand Down Expand Up @@ -285,13 +303,13 @@ sensor:

- platform: ltr390
id: ltr_390
update_interval: never
light:
name: "LTR390 Light"
id: ltr390light
uv_index:
name: "LTR390 UV Index"
id: ltr390uvindex
update_interval: 60s

light:
- platform: esp32_rmt_led_strip
Expand Down Expand Up @@ -351,6 +369,22 @@ switch:
id(deep_sleep_1).allow_deep_sleep();


text_sensor:
- platform: wifi_info
ip_address:
name: "IP Address"
id: wifi_ip
entity_category: "diagnostic"
- platform: version
name: "ESPHome Version"
hide_timestamp: true
entity_category: "diagnostic"
- platform: template
name: "Apollo Firmware Version"
id: apollo_firmware_version
update_interval: never
entity_category: "diagnostic"

script:
- id: statusCheck
then:
Expand Down Expand Up @@ -473,7 +507,23 @@ script:
- light.turn_off:
id: rgb_light

interval:
- interval: 1s
then:
- lambda: |-
uint32_t current_time = millis() / 1000;
uint32_t last_update = id(ltr390_last_update);
uint32_t interval = (uint32_t)id(ltr390_update_interval).state;

// Immediate update on boot (when last_update is still 0)
if (last_update == 0 && current_time > 0) {
id(ltr_390).update();
id(ltr390_last_update) = current_time;
return;
}




// Check if enough time has passed
if (current_time - last_update >= interval) {
id(ltr_390).update();
id(ltr390_last_update) = current_time;
}
16 changes: 7 additions & 9 deletions Integrations/ESPHome/PLT-1.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@ esphome:
friendly_name: Apollo PLT-1
comment: Apollo PLT-1
name_add_mac_suffix: true
platformio_options:
board_build.flash_mode: dio

project:
name: "ApolloAutomation.PLT-1"
version: "${version}"
Expand All @@ -25,7 +22,12 @@ esphome:
then:
- lambda: |-
ESP_LOGW("Apollo", "Preventing Deep Sleep Due To OTA On Boot");
id(deep_sleep_1).prevent_deep_sleep();
id(deep_sleep_1).prevent_deep_sleep();
- priority: 500
then:
- text_sensor.template.publish:
id: apollo_firmware_version
state: "${version}"
- priority: -10
then:
- if:
Expand All @@ -48,6 +50,7 @@ esp32_improv:

web_server:
port: 80
version: 3

ota:
- platform: esphome
Expand All @@ -67,11 +70,6 @@ update:
source: https://apolloautomation.github.io/PLT-1/firmware/manifest.json

wifi:
on_connect:
- delay: 5s
- ble.disable:
on_disconnect:
- ble.enable:
ap:
ssid: "Apollo PLT1 Hotspot"

Expand Down
14 changes: 6 additions & 8 deletions Integrations/ESPHome/PLT-1B.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@ esphome:
friendly_name: Apollo PLT-1B
comment: Apollo PLT-1B
name_add_mac_suffix: true
platformio_options:
board_build.flash_mode: dio

project:
name: "ApolloAutomation.PLT-1B"
version: "${version}"
Expand All @@ -26,6 +23,11 @@ esphome:
- lambda: |-
ESP_LOGW("Apollo", "Preventing Deep Sleep Due To OTA On Boot");
id(deep_sleep_1).prevent_deep_sleep();
- priority: 500
then:
- text_sensor.template.publish:
id: apollo_firmware_version
state: "${version}"
- priority: -10
then:
- if:
Expand Down Expand Up @@ -60,6 +62,7 @@ safe_mode:

web_server:
port: 80
version: 3

update:
- platform: http_request
Expand All @@ -68,11 +71,6 @@ update:
source: https://apolloautomation.github.io/PLT-1/firmware-b/manifest.json

wifi:
on_connect:
- delay: 5s
- ble.disable:
on_disconnect:
- ble.enable:
ap:
ssid: "Apollo PLT1B Hotspot"

Expand Down
6 changes: 3 additions & 3 deletions Integrations/ESPHome/PLT-1B_BLE.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@ esphome:
friendly_name: Apollo PLT-1BBLE
comment: Apollo PLT-1BBLE
name_add_mac_suffix: true
platformio_options:
board_build.flash_mode: dio

project:
name: "ApolloAutomation.PLT-1BBLE"
version: "${version}"
Expand All @@ -14,6 +11,9 @@ esphome:
on_boot:
priority: 500
then:
- text_sensor.template.publish:
id: apollo_firmware_version
state: "${version}"
- lambda: |-
id(deep_sleep_1).set_sleep_duration(id(deep_sleep_sleep_duration).state * 60 * 60 * 1000);
id(deep_sleep_1).set_run_duration(90 * 1000);
Expand Down
9 changes: 6 additions & 3 deletions Integrations/ESPHome/PLT-1B_Minimal.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@ esphome:
friendly_name: Apollo PLT-1B Minimal
comment: Apollo PLT-1B Minimal
name_add_mac_suffix: true
platformio_options:
board_build.flash_mode: dio

project:
name: "ApolloAutomation.PLT-1B_Minimal"
version: "${version}"
Expand All @@ -26,6 +23,11 @@ esphome:
- lambda: |-
ESP_LOGW("Apollo", "Preventing Deep Sleep Due To OTA On Boot");
id(deep_sleep_1).prevent_deep_sleep();
- priority: 500
then:
- text_sensor.template.publish:
id: apollo_firmware_version
state: "${version}"
- priority: -10
then:
- if:
Expand All @@ -50,6 +52,7 @@ ota:

web_server:
port: 80
version: 3

wifi:
ap:
Expand Down
6 changes: 3 additions & 3 deletions Integrations/ESPHome/PLT-1_BLE.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@ esphome:
friendly_name: Apollo PLT-1BLE
comment: Apollo PLT-1BLE
name_add_mac_suffix: true
platformio_options:
board_build.flash_mode: dio

project:
name: "ApolloAutomation.PLT-1BLE"
version: "${version}"
Expand All @@ -14,6 +11,9 @@ esphome:
on_boot:
priority: 500
then:
- text_sensor.template.publish:
id: apollo_firmware_version
state: "${version}"
- lambda: |-
id(deep_sleep_1).set_sleep_duration(id(deep_sleep_sleep_duration).state * 60 * 1000);
id(deep_sleep_1).set_run_duration(90 * 1000);
Expand Down
9 changes: 6 additions & 3 deletions Integrations/ESPHome/PLT-1_Minimal.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@ esphome:
friendly_name: Apollo PLT-1 Minimal
comment: Apollo PLT-1 Minimal
name_add_mac_suffix: true
platformio_options:
board_build.flash_mode: dio

project:
name: "ApolloAutomation.PLT-1_Minimal"
version: "${version}"
Expand All @@ -26,6 +23,11 @@ esphome:
- lambda: |-
ESP_LOGW("Apollo", "Preventing Deep Sleep Due To OTA On Boot");
id(deep_sleep_1).prevent_deep_sleep();
- priority: 500
then:
- text_sensor.template.publish:
id: apollo_firmware_version
state: "${version}"
- priority: -10
then:
- if:
Expand All @@ -49,6 +51,7 @@ ota:

web_server:
port: 80
version: 3

wifi:
ap:
Expand Down
Loading