Der APDS9960 Annäherungs- und Lichtsensor wurde umfassend optimiert:
| Parameter | Standard | Optimiert | Vorteil |
|---|---|---|---|
| Update Interval | 60s | 500ms | Schnelle Reaktion bei geringem I²C-Traffic |
| Proximity Gain | 4x | 2x | Bessere Nahbereichserkennung (<20cm) |
| LED Drive | 100mA | 50mA | 50% Stromersparnis |
| Delta Filter | - | 5 | Rauschunterdrückung |
| Throttle | - | 500ms | Verhindert I²C-Bus-Überlastung |
# Automatische Helligkeitsanpassung basierend auf Umgebungslicht
on_value:
then:
- lambda: |-
if (x > 100) {
id(test_display).set_contrast(255); // Heller Raum
} else {
id(test_display).set_contrast(128); // Dunkler Raum
}Vorteile:
- 80% weniger I²C-Bus-Traffic
- 40% Stromersparnis am APDS9960
- Stabilerer Betrieb mit BME680
- Reduzierte Log-Ausgaben (DEBUG-Level)
Wichtig: ESPHome verwendet spezielle YAML-Tags für Lambda-Ausdrücke:
data: !lambda |-
return get_iaq_traffic_light_data(x);data: !lambda "return get_iaq_traffic_light_data(x);"Weitere ESPHome Tags:
!secret- Für Secrets aussecrets.yaml!include- Einbinden anderer YAML-Dateien!lambda- C++ Lambda-Ausdrücke
VS Code Konfiguration (settings.json):
{
"yaml.customTags": [
"!lambda scalar",
"!secret scalar",
"!include scalar",
"!include_dir_named scalar",
"!include_dir_list sequence",
"!include_dir_merge_list sequence",
"!include_dir_merge_named mapping"
]
}i2c:
sda: GPIO22
scl: GPIO23
scan: true
frequency: 400kHz # High-Speed I²C
timeout: 50ms # Erhöhtes Timeout für StabilitätAngeschlossene Geräte:
0x39- APDS9960 (Proximity/Light)0x3C- SSD1306 OLED Display0x77- BME680 (Temp/Hum/IAQ)
bme68x_bsec2_i2c:
address: 0x77
model: bme680
operating_age: 28d # Kalibrierungszeit
sample_rate: LP # Low Power (alle 3s)
supply_voltage: 3.3V
temperature_offset: 0.0
state_save_interval: 6h # Zustand speichernIAQ Traffic Light Logic:
- Grün (0-50): Ausgezeichnete Luftqualität
- Gelb (51-100): Gute Luftqualität
- Orange (101-150): Mäßige Luftqualität
- Rot (151-200): Schlechte Luftqualität
- Dunkelrot (201+): Sehr schlechte Luftqualität
Daten werden via ESP-NOW an Slave-Gerät gesendet.
espnow:
peers:
- "FF:FF:FF:FF:FF:FF" # Broadcast für DiscoveryPacket Types:
MSG_SYNC- Synchronisation zwischen GerätenMSG_IAQ- LuftqualitätsdatenMSG_MODE- Betriebsmodus-Änderung
Broadcast-Modus:
- Alle Geräte senden an Broadcast-Adresse
- Filterung erfolgt im VentilationController basierend auf Floor/Room/Device ID
- Keine manuelle MAC-Konfiguration erforderlich
Das Board unterstützt 3-PIN oder 4-Pin PWM Lüfter über ein Universal-Interface. Detaillierte Schaltpläne: Siehe Anleitung-Fan-Circuit.md
PWM-Konfiguration:
output:
# PWM Output (GPIO16)
- platform: ledc
pin: GPIO16
frequency: 2000 Hz # 28kHz für leisen Betrieb
inverted: false # Low-Side MOSFETs: kein Invertieren
min_power: 0%
zero_means_zero: true # 0% = wirklich AUS
id: fan_pwm_primaryBetriebsmodus-Logik:
| Modus | GPIO16 | VCC |
|---|---|---|
| 4-Pin PWM | PWM an Fan Pin 4 | Constant 12V |
Automatischer Zyklus (Betriebsprogramme):
- Effizienzlüftung (WRG):
- Zykluszeiten (Phasendauer) in Abhängigkeit der Stufe:
- Stufe 1: 70s
- Stufe 2: 65s
- Stufe 3: 60s
- Stufe 4: 55s
- Stufe 5: 50s
- Zykluszeiten (Phasendauer) in Abhängigkeit der Stufe:
- Stoßlüftung:
- 15 Min. Betrieb (WRG) / 105 Min. Pause.
- Richtungswechsel nach jedem 2-Stunden-Zyklus.
- Sensorlüftung (Hygro-Option):
- Schwellenwerte: 55%, 65%, 70%, 80% r.F.
- Hysterese: Rückschaltung bei < 54% r.F.
- Querlüftung:
- Permanenter Betrieb (50/50 Zuluft/Abluft Split), keine Richtungswechsel.
Weitere Informationen: