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>
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
# 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)
|
||||
Reference in New Issue
Block a user