Wir betreiben einen Dometic-Kühlschrank, der bauartbedingt, sowohl im Gas- als auch im Strombetrieb – bei hohen Außentemperaturen an Effizienz verliert. In verschiedenen Fachbeiträgen und Erfahrungsberichten wird darauf hingewiesen, dass sich insbesondere im Kaminbereich hinter dem Kühlschrank Hitze staut, die nicht ausreichend und schnell genug abgeführt wird. Diese Stauhitze beeinträchtigt die Kühlleistung deutlich.
Um diesem Problem entgegenzuwirken und die Kühlleistung nachhaltig zu verbessern, habe ich zwei zusätzliche Lüfter installiert, die den Luftaustausch aktiv unterstützen. Gesteuert wird das System automatisch über eine ESP-basierte Regelung, welche temperaturabhängig arbeitet.
Die Lösung basiert auf einem ESP32 in Kombination mit einem DS18B20-Temperatursensor und zwei hochwertigen Arctic-Lüftern. Dadurch wird die warme Luft gezielt abgeführt und eine bessere Wärmeableitung gewährleistet. Zusätzlich lässt sich die Steuerung problemlos in Home Assistant integrieren, sodass der Betrieb über Automationen individuell angepasst und überwacht werden kann.
Teileliste:
Lüfter: https://www.amazon.de/dp/B00KF7Q4WG
Kabel: https://www.amazon.de/dp/B0C4T6QQM3
Gehäuse: https://www.amazon.de/dp/B09YRDR4CR
Prozessor: https://www.amazon.de/gp/product/B0BN1NY2KJ
Step-Down: https://www.amazon.de/gp/product/B0CGVMRQXB
Silikon Kabel: https://www.amazon.de/dp/B07TT52X28

Hier der ESPHome Code der innerhalb Homeassistant mit ESPHome auf einen ESP32 gebracht werden kann. Speichere Dir die Seite als Bookmark, Updates des Codes werde ich hier anpassen.
###
# Version 20260113-2027
esphome:
name: esp32-s2-pwm-fan
friendly_name: Womo Kamin Lüftung
esp32:
#board: esp32-s2-saola-1
board: lolin_s2_mini
variant: ESP32S2
framework:
type: esp-idf
version: recommended
sdkconfig_options:
CONFIG_ESP_TASK_WDT_TIMEOUT_S: "10" # verhindert Watchdog-Resets bei hoher Sensorlast (du hast sehr viele Sensoren).
#preferences:
# flash_write_interval: 60min
globals:
- id: SKWifireconnect
type: uint32_t
restore_value: no
initial_value: '-1'
logger:
level: INFO
baud_rate: 0
api:
encryption:
key: "YOUR_API_KEY"
ota:
- platform: esphome
password: "YOUR_OTA_PASSWORD"
wifi:
ssid: !secret womo_wifi_ssid
password: !secret womo_wifi_password
min_auth_mode: WPA2
fast_connect: true
output_power: 15db
on_connect:
- logger.log: "Wifi connect ..."
- lambda: id(SKWifireconnect)+=1;
ap:
ssid: "ESP-KAMIN-LUEFTER"
password: !secret ap_fallback_password
captive_portal:
web_server:
port: 80
include_internal: true
version: 3
auth:
username: !secret web_server_username
password: !secret web_server_password
status_led:
pin:
number: GPIO15
inverted: false
time:
- platform: homeassistant
id: homeassistant_time
timezone: Europe/Berlin
on_time_sync:
then:
- logger.log: "##### synchronized system clock with HA!"
one_wire:
- platform: gpio
pin: GPIO14
sensor:
- platform: internal_temperature
id: esp_internal_temperatur
name: "ESP Temperatur"
- platform: uptime
name: "ESP Uptime"
id: uptime_sensor
update_interval: 60s
- platform: dallas_temp
id: kamin_temp_id
address: 0x77639c411f64ff28. # an die adresse des angeschlossenen DS18B20
name: "Kamin Temperatur"
update_interval: 5s
accuracy_decimals: 2
filters:
- median:
window_size: 5
send_every: 1
on_raw_value:
then:
- if:
condition:
- switch.is_on: auto_mode_sw
then:
- fan.turn_on:
id: fan_pwm_sw
speed: !lambda |-
int fanvalue = ((4) * id(kamin_temp_id).raw_state) - 160;
return fanvalue;
- platform: pulse_counter
pin: GPIO11
name: Ventilator 1
id: fan_pulse_1
unit_of_measurement: 'RPM'
filters:
- multiply: 0.5
- median:
window_size: 5
send_every: 1
count_mode:
rising_edge: INCREMENT
falling_edge: DISABLE
update_interval: 1s
accuracy_decimals: 0
- platform: pulse_counter
pin: GPIO12
name: Ventilator 2
id: fan_pulse_2
unit_of_measurement: 'RPM'
filters:
- multiply: 0.5
- median:
window_size: 5
send_every: 1
count_mode:
rising_edge: INCREMENT
falling_edge: DISABLE
update_interval: 1s
accuracy_decimals: 0
- platform: template
id: Anzahl_Wifi_reconnect
name: "ESP Wifi reconnect"
accuracy_decimals: 0
icon: mdi:wifi-sync
entity_category: "diagnostic"
update_interval: 10s
lambda: return (int) id(SKWifireconnect);
- platform: wifi_signal
name: "WiFi Signal dB"
id: wifi_signal_db
update_interval: 60s
entity_category: "diagnostic"
disabled_by_default: false
- platform: copy
source_id: wifi_signal_db
name: "WiFi Signal Percent"
filters:
- lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
unit_of_measurement: "%"
entity_category: "diagnostic"
device_class: ""
disabled_by_default: false
- platform: template
id: temp_sensor_raw
name: "Fan Raw Value"
unit_of_measurement: 'RPM'
accuracy_decimals: 0
update_interval: 10s
lambda: |-
int fanvalue = ((4) * id(kamin_temp_id).raw_state) - 160;
return (int)fanvalue;
output:
- platform: ledc
pin: GPIO13
frequency: 25000 Hz
id: fan_pwm
min_power: 0%
max_power: 100%
fan:
- platform: speed
output: fan_pwm
id: fan_pwm_sw
name: Ventilatoren
restore_mode: RESTORE_DEFAULT_ON
switch:
- platform: template
id: auto_mode_sw
name: "Auto Mode"
icon: "mdi:thermometer"
optimistic: true
restore_mode: RESTORE_DEFAULT_ON
button:
- platform: restart
name: "ESP Restart"
disabled_by_default: False
text_sensor:
- platform: version
hide_timestamp: true
name: "ESP Version"
disabled_by_default: False
Du möchtest einen fertig vorbereiteten ESP32 mit Anschlussplan haben, dann sprich uns über das Kontaktformular an. Solltest Du den Lötkolben nicht schwingen wollen, frag nach einem fertigen Bausatz, wir lassen uns etwas einfallen. Eine Teileliste können wir Dir ebenfalls zukommen lassen, alles kein Hexenwerk.
