Story
# ASCII Aquarium for ESPHome (CrowPanel 7") An ESPHome external component that renders an ASCII aquarium on a display: swimming fish, bubbles, a seabed and clocks. It started on a CYD (ESP32, 320x240) and was ported to the **Elecrow CrowPanel 7" (ESP32-S3, 800x480)with a voice assistant.
## Features
- Fish swim forward and also up/down, each with a random color -
- A temperature fish showing a live value from a sensor
- A "text" fish -
- Feeding: falling flakes that the fish chase (triggered from Home Assistant) -
- Header with a small clock and date, a big ASCII clock, and a boxed clock with a transparent background (each can be toggled with a switch in HA)
- Adjustable number of fish and speed -
- Halloween mode:**
- MDI icons swim instead of fish (pumpkins, ghosts, skulls, spiders, spider web)
- Scare effect:** a blinking ghost/skull image on the display and a spooky sound played by a Home Assistant automation
- Voice assistant The panel doubles as a voice satellite for Home Assistant: -
- Wake word (`micro_wake_word`) and `voice_assistant` talk to HA - Microphone: I2S (PDM), speaker: I2S, sounds are played through a `speaker` `media_player` -
- The assistant state is shown under the header on the display: `LISTENING` → `THINKING` → `SPEAKING` (driven by the `va_state` variable) -
- The speaker is shared by the assistant and the spooky sounds from Home Assistant (`media_player.play_media` with `announce: true`)
- Backlight and amplifier are controlled over I2C (address 0x30), touch is a GT911 (0x5D) > Pins and audio settings were taken from my own working configs > (`asistent_test`, `asistent1`).
-Adjust them if you use different hardware. ##
Structure
``` my_components/ascii_aquarium/ __init__.py
config schema (width, height, char_width, line_height) ascii_aquarium.h
logic, fish physics, clock drawing crowpanel-aquarium.yaml ```
- Space mod









