2f783dbc41
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>
52 lines
1.7 KiB
YAML
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)
|