Wohnmobil Kühlschrank Lüfter mit dem ESP

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.