Klappen und Steuerung
Wie bereits beschrieben will ich mehrere Wärmequellen für die BWWP nutzen, sowie die trockene und kühle Abluft nutzen.
Um das Vorhaben umzusetzen brauche ich die Möglichkeit den Zu- und Abluftstrom zu steuern.
Da ich nichts kaufbares finden konnte, bzw. nur sau teure Module theoretisch kaufbar waren, muss der Konstrukteur und der 3D-Drucker wieder herhalten um die passende Lösung herzustellen.
Nach zwei Prototypen kristallisierte sich heraus wie die Klappen aussehen werden, welche Materialien benötigt werden und welche Features mehr oder weniger notwendig sein könnten.
Der Rahmen (dunkelgrau) hat an der Oberseite eine Möglichkeit zur Aufhängung mit den üblichen Gewindestangen welche für Rohrschellen verwendet werden. Von innen kann eine U-Scheibe + Mutter auf die von oben eingeschobene Gewindestange geschraubt werden.
An den Verstärkungen der Struktur können Kabelbinder eingeschoben werden um die Verkabelung der Elektronik ordentlich zu verlegen.
An der Front findet der Servo und die Kopfzahnräder Platz.
Eine Gewindestange als Achse verbindet das Kopfzahnrad mit der zweiteiligen Klappe (orange). Geführt wird die Achse in zwei Kugellagern welche im Rahmen von Aussen eingeschoben werden.
Für den Deckel habe ich Einschmelzgewindeeinsätze verwendet.
Im Rahmen sind rundherum Anschläge für die Klappe ausgebildet. An dieser Stelle werden gewöhnliche selbstklebende Fenster/Türdichtungen (z. B. W-Profil) angebracht. Damit schließt die Klappe relativ "dicht" ab. In den Bildern sind die weisen Dichtungen zu sehen.
Der Deckel (blau) nimmt den ESP (D1 Mini) auf. Zusätzlich ist ein kleines OLED Display verbaut, welches aktuell die theoretische Stellung der Klappe anzeigt. Hier sind natürlich weitere Anzeigen denkbar. Über ESPHome ist das recht einfach machbar.
Für die manuelle Steuerung habe ich noch zwei Taster vorgesehen, dann kann man direkt an der Klappe den Öffnungswinkel steuern.
Das Runde Loch im Deckel ermöglicht den Zugang auf die Kopfzahnräder um die tatsächliche Stellung zu kontrollieren. Das Zahnrad auf der Klappenachse hat einen Anzeiger und kann zusätzlich mit einem Inbusschlüssel verstellt/eingestellt werden.
An der Unterseite des Deckels sind zwei Kabelführungen vorgesehen, hier sollen Temperatursensoren an den ESP angeschlossen werden können. Mir Schweben da Sensoren für die Zu-/Abluft vor.
Verrohrung
Die Verrohrung ist über ein "Isoliertes Rohrsystem Ø 180 mm" Marke: ubbink AERFOAM realisiert. Im Rohrsystem gibt es 125mm, 160mm und 180mm Rohre, 90° Bögen, 45° Bögen, T-Stücke, Y-Stücke, Verbinder und Aufhänger. Super einfach zu verarbeiten und obendrein auch noch schalldämmend.
Ansteuerung
Die Ansteuerung des ESPs läuft über ESPHome aus HomeAssistant heraus.
Hier ein Screenshot einer der ESPs:
Weboberfläche:
- open und close repräsentiert die Taster
- opening den aktuellen "Winkel" in %. Auf der Weboberfläche in 10er Schritten einstellbar.
Die Servos werden kurz nach erreichen der Endposition "detached" also nicht mehr bestromt, das ginge auf die Lebensdauert der Servos.
Spannender wird es natürlich die Klappen über Automationen oder NodeRed zu steuern. Hier möchte ich mit Raumtemperatursensoren in beiden Räumen Abhängig der Gegebenheiten die Zu-/Abluft steuern. Die Sensoren sind noch nicht verbaut bzw. angeschlossen. Diese können am ESP einer der Klappen angeschlossen werden oder als eigenständiges Gerät platziert werden.
Hier der Code für die ESPs der Klappen. Nicht final, aber funktioniert. Es fehlen noch die Temperatursensoren und der ein oder andere Wert auf dem Display. Je nach Servo muss man etwas an den Werten spielen.
substitutions:
name: esphome-web-1a5c26
friendly_name: "BWWP Zuluft Technikraum"
esphome:
name: ${name}
friendly_name: ${friendly_name}
min_version: 2024.6.0
name_add_mac_suffix: false
project:
name: esphome.web
version: dev
esp8266:
board: d1_mini
# Enable logging
logger:
# Enable Home Assistant API
api:
# Allow Over-The-Air updates
ota:
- platform: esphome
# Allow provisioning Wi-Fi via serial
improv_serial:
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
domain: .fritz.box
# Set up a wifi access point
ap: {}
# In combination with the `ap` this allows the user
# to provision wifi credentials to the device via WiFi AP.
captive_portal:
dashboard_import:
package_import_url: github://esphome/example-configs/esphome-web/esp8266.yaml@main
import_full_config: true
# To have a "next url" for improv serial
web_server:
servo:
- id: servo1
output: output1
auto_detach_time: 5s # Optional - Default 0 (Always On)
transition_length: 0s # Optional - Default 0 (Max Speed)
min_level: 2.7% # Optional - Default 3%
idle_level: 7.7% # Optional - Default 7.5%
max_level: 12.8% # Optional - Default 12.5%
output:
- platform: esp8266_pwm # For ESP8266 use: esp8266_pwm
id: output1
pin: GPIO2
frequency: 50 Hz # MUST BE 50Hz
number:
- platform: template
id: servoSlider1
name: opening
icon: mdi:sync
optimistic: true
min_value: -10
max_value: 100
initial_value: 0
step: 10
on_value:
then:
- lambda: !lambda |-
// Servo Write range is: -1.0 to 1.0, so divide by 100
id(servo1).write(x / 100.0);
i2c:
sda: SDA
scl: SCL
frequency: 400kHz
font:
- file: "Ultramagnetic_Light.ttf"
id: myfont
size: 18
display:
- platform: ssd1306_i2c
model: "SSD1306 128x64"
#reset_pin: D0
address: 0x3C
lambda: |-
it.printf(28, 0, id(myfont), "%.0f", id(sensor_1).state);
//it.printf(30, 0, id(myfont), "%s", id(sensor_1).state.c_str());
it.rectangle(7, 26, 50, 21); // Rohr
it.rectangle(31, 35, 3, 3); // Drehpunkt
//it.circle(32, 36, 10);
if (id(sensor_1).state > -5 and id(sensor_1).state < 5) { //
it.line(32, 26, 32, 46); } // | 0% geschlossen
else if (id(sensor_1).state < -75) {
it.line(22, 36, 42, 36); } // -- 100% offen
else if (id(sensor_1).state < -50 and id(sensor_1).state > -76) {
it.line(23, 32, 41, 40); } // -75% offen
else if (id(sensor_1).state < -26 and id(sensor_1).state > -51) {
it.line(25, 29, 39, 43); } // -50% offen
else if (id(sensor_1).state < 0 and id(sensor_1).state > -26) {
it.line(28, 27, 36, 45); } // -25% offen
else if (id(sensor_1).state > 0 and id(sensor_1).state < 26) {
it.line(36, 27, 28, 45); } // 25% offen
else if (id(sensor_1).state > 26 and id(sensor_1).state < 51) {
it.line(39, 29, 25, 43); } // 50% offen
else if (id(sensor_1).state > 50 and id(sensor_1).state < 76) {
it.line(41, 32, 23, 40); } // 75% offen
else if (id(sensor_1).state > 75) {
it.line(22, 36, 42, 36); } // -- 100% offen
sensor:
- platform: homeassistant
name: sensor_1
id: sensor_1
entity_id: number.esphome_web_1a5c26_opening
binary_sensor:
- platform: gpio
pin:
number: GPIO13
inverted: true
mode:
input: true
pullup: True
name: "open"
filters:
- delayed_off: 10ms
- platform: gpio
pin:
number: GPIO3
inverted: true
mode:
input: true
pullup: true
name: "close"
filters:
- delayed_off: 10ms
Hier noch eine Zeichnung vor der Umsetzung. Die Rohrführung wird im Zuge der Fertigstellung der Verrohrung, Wasserleitungen und Isolierung festgelegt. Alles noch ein wenig Baustelle also die Unordnung bitte ignorieren ![]()
Rechts Technikraum (Heizung, Elektro und PV), links die Waschküche und Vorratsraum und dazwischen der Flur.
Der rechte Einlass der BWWP ist die Ansaugung. Diese kann aus dem Raum in dem sie steht (Technikraum: Heizung, Elektrik und PV) und/oder (quasi Stufenlos) aus der Waschküche/Vorratsraum gezogen werden.
Der Linke Auslass kann ebenfalls auf beide Räume verteilt werden.
Soweit mal dazu, evtl. ergänze ich noch das ein oder andere wenn das Projekt voranschreitet.
















