Files
ESP-Home-Scripts/CLAUDE.md

3.7 KiB

CLAUDE.md

Project Overview

This repository contains ESPHome configuration files for various ESP32-based home automation devices integrated with Home Assistant.

Repository Structure

  • *.yaml - ESPHome device configuration files
  • Each YAML file represents a single ESP32 device with its specific configuration
  • Configurations use secrets for sensitive data (WiFi credentials, OTA passwords)

Device Inventory

  1. ades-office-control-panel.yaml - Office control panel with LVGL display interface
  2. ades-office-resistive-control-panel.yaml - Alternative office panel with resistive touchscreen
  3. ns-panel-ground-floor.yaml - Sonoff NS Panel for ground floor controls
  4. oekoboiler-interface.yaml - Interface for Oekoboiler (eco-boiler) monitoring/control
  5. old-phone-doorbell.yaml - Repurposed old phone as doorbell system
  6. powermeter.yaml - Power meter monitoring device

Technology Stack

  • ESPHome - ESP32/ESP8266 firmware framework
  • ESP32 - Microcontroller platform (esp32dev board)
  • Home Assistant - Primary home automation platform for integration
  • LVGL - Light and Versatile Graphics Library (used in control panels)
  • OTA Updates - Over-the-air firmware updates enabled

Common Patterns

Device Structure

Each device configuration typically includes:

  • substitutions: - Device-specific variables (name, friendly_name)
  • esphome: - Core ESPHome configuration
  • esp32: - Hardware platform settings
  • wifi: - Network connectivity (uses secrets)
  • ota: - Over-the-air update configuration (password-protected)
  • logger: - Logging configuration
  • api: - Home Assistant API integration (likely present)
  • Component-specific configs (sensors, displays, switches, etc.)

Secrets Management

Sensitive data is stored in a secrets file (not in repository):

  • !secret wifi_ssid
  • !secret wifi_password
  • !secret ota_password
  • Additional device-specific secrets

Communication Protocols

  • SPI - Display communication (TFT screens)
  • I2C - Sensor communication
  • WiFi - Network connectivity and Home Assistant integration

Development Workflow

Currently, configurations are transmitted "manually" (as noted in README), suggesting:

  • Manual upload to devices via ESPHome dashboard or CLI
  • No automated CI/CD pipeline yet
  • Direct device flashing workflow

When Working on This Project

  1. Never commit secrets - Always use !secret references
  2. Test locally first - ESPHome configurations should be validated before deployment
  3. Backup configurations - These files represent physical device configurations
  4. Check git history - Recent commits show auto-sync functionality was being developed
  5. Device-specific testing - Changes to one YAML only affect that device
  6. Home Assistant integration - Changes may require Home Assistant entity updates

Recent Activity

Git history shows auto-sync functionality in development:

  • test.yaml was being used for sync testing (now archived/deleted)
  • Multiple sync test devices were created and removed
  • Suggests move toward automated synchronization workflow

Useful Commands

# Validate a configuration
esphome config device-name.yaml

# Compile firmware
esphome compile device-name.yaml

# Upload to device
esphome upload device-name.yaml

# View logs
esphome logs device-name.yaml

Notes for AI Assistance

  • Focus on ESPHome best practices and YAML syntax
  • Consider Home Assistant integration implications
  • Respect existing device pin configurations (hardware-specific)
  • Maintain consistent naming conventions across devices
  • Be cautious with GPIO pin assignments (hardware limitations)
  • LVGL configurations are complex - reference ESPHome documentation