Files
rack-fan-controller/esphome/simulation.yaml
T
jazzymc 2f783dbc41 Initial commit: ESP32-C6 rack fan controller with ESPHome
3-zone PWM fan controller (intake/central/outtake) with DS18B20 temp
sensors, RPM monitoring, ST7789 LCD display, and Home Assistant
integration via ESPHome native API. USB-C PD powered.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 16:09:00 +00:00

52 lines
1.7 KiB
YAML

# Simulation overlay for testing without physical hardware
# Usage: esphome run rack-fan-controller.yaml
# Then use HA developer tools to set simulated sensor values
#
# This file documents how to test the controller logic
# without real DS18B20 sensors or fans connected.
#
# Method 1: ESPHome dashboard
# - Flash the normal config to any ESP32-C6
# - The sensors will show "unknown" but the control loop
# handles missing sensors gracefully (defaults to 50% duty)
# - Use HA number entities to adjust target temp and duty limits
#
# Method 2: Home Assistant template sensors
# Add these to your HA configuration.yaml to simulate temps:
#
# input_number:
# sim_rack_temp_intake:
# name: "Sim Rack Temp Intake"
# min: 15
# max: 70
# step: 0.5
# initial: 25
# unit_of_measurement: "C"
# sim_rack_temp_central:
# name: "Sim Rack Temp Central"
# min: 15
# max: 70
# step: 0.5
# initial: 30
# unit_of_measurement: "C"
# sim_rack_temp_outtake:
# name: "Sim Rack Temp Outtake"
# min: 15
# max: 70
# step: 0.5
# initial: 27
# unit_of_measurement: "C"
#
# Method 3: Test the display layout
# Flash to the real Waveshare ESP32-C6 board (even without
# sensors/fans connected). The display will render with
# "--.-C" placeholders and you can verify the layout.
#
# Expected behavior matrix:
# temp < 28C -> duty = min_duty (default 20%)
# temp = 35C -> duty ~= 50% (midpoint of default ramp)
# temp = 42C -> duty ~= 80%
# temp > 43C -> duty = max_duty (default 100%)
# temp > 50C -> overheat alert triggers
# no sensors -> duty = 50% (safety fallback)