The i2s_audio media_player platform was removed; rebuild the audio
pipeline like mcu-echo.yaml with an i2s_audio speaker feeding a
mixer, so media playback, TTS announcements, and rtttl beeps all
share the one physical DAC output without conflicting. Also uses
format: NONE instead of the deprecated codec_support_enabled.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The single on_multi_click FSM mixed an unbounded "at least 1500ms"
pattern with two bounded blink patterns, which made Open detection
unreliable. Split into two binary_sensor entries sharing the same
pin: a filter-based one for steady Open/Closed, and a dedicated
on_multi_click for the Opening/Closing blink patterns.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
register_count is derived from value_type now; drop the now-redundant
register_count: 1 on the temp/humidity sensors, and replace the
Solar Pressure sensor's register_count: 2 (its device always returns
2 registers per read) with a hidden padding sensor on the next
register using reuse_previous_range: true, per the new
modbus_controller range-grouping mechanism.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
ili9xxx is being phased out in favor of the unified mipi_spi driver;
model TFT 2.4 maps to the ILI9341 chip it was already using.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Adds a UART-based Modbus link plus scripts to toggle channel 1 on the
n4dig08 relay module, and calls relay_module.setup() before each
irrigation switch action.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Move rx/tx off the shared gdo0 pin (21) onto dedicated pins, drop the
now-unneeded allow_other_uses/gdo0_pin workarounds, and align tx/rx
frequency to 433.92MHz.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Reflects what the device actually controls; renames the entity/id
(blower_auto -> aerator_auto) and display names accordingly.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
ESPHome renamed the esp32_rmt_led_strip platform's rgb_order option to
channel_colors; update all devices using it.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
ESPHome renamed the api component's services/service keys to
actions/action; update all devices using the old names.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
It's generated/local state from ESPHome Device Builder that changes
constantly and doesn't belong in version control.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Extract shared M5ATOM vehicle code (esp32, on_loop, LED effects) into
common/vehicle_base.yaml, reducing each vehicle file from ~136 to 20
lines. Remove dead commented-out code from on_loop lambda.
Gate: fix on_multi_click and select indentation, change
esp32_ble_tracker id from ${name} to ${device} (lowercase),
remove unused commented-out gate_flash GPIO sensor.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Bulk cleanup: remove trailing whitespace and ensure files end with a
newline. Structural issues (indentation, bracket spacing) left for
per-file fixes.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fix UART list indentation (yamllint error)
- Remove trailing spaces in display lambda
- Add missing newline at end of file
- Add ON/OFF to yamllint truthy allowed values
- Fix invalid comments rule option in .yamllint.yml
- Lint only changed files in CI (avoids blocking PRs with pre-existing issues)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- yamllint on all YAML files with ESPHome-friendly rules
(allows True/False, long lines for lambdas, no forced document-start)
- ESPHome config validation on changed mcu-*.yaml files per push/PR
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Remove redundant interval block overriding status_led behavior
- Add UART id and reference it explicitly in cse7766
- Replace manual power factor template with native cse7766 power_factor sensor
- Remove redundant switch_led control from bi-stable relay actions
- Fix stray quote in energy sensor name (dishwasher)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>