- common/wifi.yaml: the network gets id wifi_iot, so devices can
override it with '!extend wifi_iot'
- common/ipv6_only.yaml: add-on package next to any common package;
switches to the IPv6-only SSID, wifi ipv6_only (SLAAC, no DHCPv4,
esphome/esphome#19750 as external component until merged) and
min_ipv6_addr_count: 1
- mcu-lvgl-trainer, mcu-nspanel-dev, mcu-rfid-reader, mcu-stackchan,
mcu-tft moved to the IPv6-only network
- status screen logo replaced by the official "Made for ESPHome" badge,
the plain ESPHome logo is not meant for third-party devices
- status screen shows one global IPv6 and one IPv4 address (link-local
skipped) instead of the IPv4 sensor value
Move the homeassistant time platform (id ha_time) into all common
packages. Devices with custom triggers now use '!extend ha_time';
plain duplicate time blocks are removed. mcu-lvgl's unused time_comp
is unified to ha_time.
- Winamp style spectrum analyzer instead of the face while music plays,
using audio_spectrum from randybb/esphome-components
- head touch: tap starts the assistant, stroking shows an in-love face;
SI12T sensitivity raised so the pads actually trigger
- battery (AXP2101) and wifi indicators, ear icon while listening
Voice assistant satellite with animated face on the CoreS3 display:
- power rails, IO expander resets and servo power as in the M5 BSP
- mic and speaker share one I2S bus, so the mic is released before playback
- AW88298 volume limited to the audible range (0.5-1.0)
- partial display redraws, status screen until Home Assistant connects
- battery and wifi indicators, listening icon
- camera converted to JPEG on demand, no periodic frames