Kurzfassung: Das Einstellen des Dimmers auf 0% garantiert nicht, dass die Lampe erlischt. Der TRIAC-Haltestrom hält den Schalter bei kleinen Lasten leitend. Lösung: Rufen Sie
dimmer.setState(OFF)odersetMode(OFF_MODE)auf anstelle vonsetPower(0)— oder fügen Sie ein Relais für vollständige galvanische Trennung hinzu. DimmerLink stoppt alle Gate-Impulse bei Stufe 0 und beseitigt das Problem per Software.
Wie sich das Problem zeigt
Sie rufen setPower(0) auf oder setzen brightness: 0 in Ihrer Automatisierung.
Die Last sollte aus sein. Stattdessen:
- eine Glüh- oder Halogenlampe leuchtet weiterhin schwach;
- die Lampe kann langsam flackern (1–4 Hz) auf „Null"-Stufe;
- das Verhalten ist schlimmer bei Lampen geringer Leistung (25–40 W) und verschwindet ab 100 W+.
Dies ist kein Code-Fehler. Es ist eine grundlegende Eigenschaft von TRIAC-Schaltungen bei Interaktion mit kleinen ohmschen Lasten.
Grundursachen
Ursache 1 — TRIAC-Haltestrom
Ein TRIAC (Triode for Alternating Current) leitet in beiden AC-Halbwellen nach dem Zünden. Um die Leitung zu stoppen, muss er natürlich den Nulldurchgang erreichen — und der Strom durch die Last im Moment des Durchgangs muss unter den Haltestrom (I_H) des Bauteils fallen.
Typischer Haltestrom für einen BTA16 oder BT138 TRIAC: 25–80 mA.
Bei einer 25-W-Lampe an 230 V:
I_load = 25 W / 230 V ≈ 109 mA (Spitzenwert während der Leitung)Bei einem sehr kleinen Phasenanschnittwinkel (nahe 0%, d.h. nahe dem Nulldurchgang) ist der Stromimpuls so kurz, dass er unter I_H fällt, bevor der TRIAC Zeit hat zu zünden. Ergebnis: In manchen Halbwellen öffnet der TRIAC, in anderen nicht — es entsteht langsames, unregelmäßiges Flackern oder ein konstantes schwaches Leuchten.
Ursache 2 — Optokoppler-Leckstrom
Der TRIAC-Treiber-Optokoppler (MOC3041, MOC3021 oder gleichwertig) lässt einen geringen Leckstrom (typisch 1–5 mA) durch, selbst wenn die interne LED aus ist. Bei einer 100-W-Lampe ist dies unsichtbar. Bei einer 10-W-LED-Lampe oder einer 25-W-Glühlampe kann der Leckstrom allein ausreichen, um ein Leuchten aufrechtzuerhalten.
Ursache 3 — Minimaler Bibliotheks-Impuls bei 0%
Sowohl RBDdimmer als auch rbdimmerESP32 erzwingen einen minimalen,
von null verschiedenen Zündwinkel, um Hardware-Instabilität nahe den Nulldurchgängen
zu vermeiden. Der Aufruf von setPower(0) kann dennoch einen sehr kurzen
Gate-Impuls in jeder Halbwelle erzeugen. Die Last erhält daher einen winzigen
Leistungsstoß — nicht genug, um eine 100-W-Lampe zum Leuchten zu bringen, aber sichtbar bei
einer 25-W-Lampe.
Die Lösung ist, den Bibliotheks-Modus auf OFF umzuschalten, nicht nur die Leistung auf 0 zu setzen.
Diagnose des Problems
- Leistung prüfen — ersetzen Sie die 25–40-W-Lampe durch eine 100-W-Glühlampe. Wenn das Leuchten verschwindet, ist der Haltestrom die Ursache.
- MCU trennen — ziehen Sie alle Steuersignale ab (DIM, ZC, VCC, GND auf der MCU-Seite). Wenn die Lampe weiterhin leuchtet, ist der Leckstrom die Ursache; wenn sie erlischt, sendet die Bibliothek Restimpulse.
- API-Aufruf prüfen — durchsuchen Sie Ihren Code nach
setPower(0). Stellen Sie sicher, dass Sie keinensetState(OFF)-Aufruf vergessen haben.
Lösungen
🟢 Für Einsteiger — DimmerLink oder Relais verwenden
DimmerLink verwaltet die Gate-Zündung in seiner eigenen Firmware (Cortex-M0+).
Bei Stufe 0 erzeugt er keine Gate-Impulse — der TRIAC wird unabhängig vom
Leckstrom nicht getriggert. Schreiben Sie 0 in Register 0x10 (DIM0_LEVEL),
und die Lampe schaltet vollständig ab.
// Arduino / ESP32 — DimmerLink I2C
Wire.beginTransmission(0x50);
Wire.write(0x10); // DIM0_LEVEL-Register
Wire.write(0); // 0% — keine Gate-Impulse
Wire.endTransmission();Relais hinzufügen, wenn die Last vollständig spannungsfrei sein muss (galvanische Trennung). Schließen Sie ein Schließer-Relais (oder SSR) in Reihe mit dem AC-IN des Dimmers an. Öffnen Sie das Relais, wenn die Last aus sein soll; schließen Sie es zum Dimmen:
// Arduino-Beispiel
const int RELAY_PIN = 7;
void setLoad(bool on, uint8_t level) {
if (!on) {
dimmer.setState(OFF);
digitalWrite(RELAY_PIN, LOW); // Relais offen — vollständig aus
} else {
digitalWrite(RELAY_PIN, HIGH); // Relais geschlossen — AC-Pfad aktiv
delay(5); // Kontakte einschwingen lassen
dimmer.setState(ON);
dimmer.setPower(level);
}
}🔵 Für fortgeschrittene Anwender — Software- und Hardware-Lösungen
Option A — Korrekten OFF-Modus verwenden (Software)
setPower(0) setzt den Zündwinkel auf nahe null, kann aber dennoch einen
Impuls erzeugen. Der korrekte Weg, die Last vollständig auszuschalten, ist
den Betriebs-Modus zu ändern:
rbdimmerESP32 / RBDdimmer:
#include <rbdimmerESP32.h> // oder RBDdimmer.h für AVR/ESP8266
rbdimmer::Dimmer dimmer(DIM_PIN, ZC_PIN);
void setup() {
dimmer.begin(NORMAL_MODE, ON);
dimmer.setPower(50);
}
void turnOff() {
// Korrekt: Modus auf OFF umschalten — keine Gate-Impulse
dimmer.setState(OFF);
// Falsch: dimmer.setPower(0) — kann weiterhin zünden
}
void turnOn(uint8_t level) {
dimmer.setState(ON);
dimmer.setPower(level);
}Wenn Ihre Bibliotheksversion
setMode()verwendet:
dimmer.setMode(OFF_MODE); // schaltet ab
dimmer.setMode(NORMAL_MODE); // setzt das Dimmen fortESPHome ac_dimmer-Komponente:
Die ESPHome-Komponente ac_dimmer setzt output: false, um Gate-Impulse
vollständig zu unterbinden:
output:
- platform: ac_dimmer
id: triac_output
gate_pin: GPIO4
zero_cross_pin: GPIO5
light:
- platform: monochromatic
output: triac_output
name: "Lamp"
# Wenn HA einen Ausschaltbefehl sendet, stoppt die Komponente die Gate-Impulse.Wenn Home Assistant einen Ausschaltbefehl sendet, stoppt ESPHome die Gate-Impulse vollständig — der TRIAC wird nicht getriggert und die Lampe erlischt.
Option B — RC-Snubber (Hardware)
Ein RC-Snubber, der parallel zum TRIAC geschaltet ist, reduziert die Spannungsanstiegsrate (dV/dt) am Bauteil nach einem Nulldurchgang. Dies hilft dem TRIAC, sich bei kleinen Leitungswinkeln zuverlässig selbst zu kommutieren.
TRIAC Anode/Kathode
┌──────────┐
│ TRIAC │
└──────────┘
│ ← parallel: 100 Ω (0,5 W) + 100 nF Klasse X2
└── R ── C ── ┘Standard-Snubber-Werte: R = 100 Ω (0,5 W) und C = 100 nF, Klasse X2 (für Netzspannung ausgelegt).
Die meisten rbdimmer-Module enthalten bereits einen eingebauten Snubber. Prüfen Sie den Schaltplan Ihres Moduls, bevor Sie einen externen hinzufügen.
Ein RC-Snubber beseitigt das Problem nicht vollständig — er macht das TRIAC-Abschalten zuverlässiger, aber der Optokoppler-Leckstrom bleibt bestehen.
Option C — Reihen-Relais für vollständige Trennung
Wenn die Last vollständig spannungsfrei sein muss (Sicherheitsanforderung oder induktive Last), fügen Sie ein Relais in Reihe hinzu:
| Szenario | Relaistyp | Hinweis |
|---|---|---|
| Normale Lasten | SPST-NO-Relais | Offen = kein AC-Pfad |
| Induktiv (Motoren) | SPST-NO-Relais | Funkenunterdrückung empfohlen |
| Netzisolation erforderlich | SSR (Halbleiterrelais) | Keine beweglichen Teile |
Verwenden Sie den Dimmer zur Leistungssteuerung und das Relais zum Ein-/Ausschalten:
void loop() {
if (targetLevel == 0) {
dimmer.setState(OFF);
digitalWrite(RELAY_PIN, LOW);
} else {
digitalWrite(RELAY_PIN, HIGH);
delay(5);
dimmer.setState(ON);
dimmer.setPower(targetLevel);
}
}Lastkompatibilitätsmatrix
| Last | Symptom bei 0% | Ursache | Lösung |
|---|---|---|---|
| Glühlampe 100 W+ | Kein Leuchten | Ausreichende Last | setState(OFF) ausreichend |
| Glühlampe 25–40 W | Schwaches Leuchten | Haltestrom | setState(OFF) oder Relais |
| Halogen 50 W | Leuchten oder langsames Flackern | Haltestrom | RC-Snubber + setState(OFF) |
| Halogen 12 V (Trafo) | Leuchten | Blindstrom | Relais für vollständige Trennung |
| Heizelement | Kein Leuchten | Ohmsche Last | setState(OFF) ausreichend |
Häufige Fehler
| Fehler | Auswirkung | Lösung |
|---|---|---|
setPower(0) statt setState(OFF) aufrufen |
Restimpuls in jeder Halbwelle | setState(OFF) verwenden |
| Annahme, dass 0% = aus bei Lampen geringer Leistung | Leuchten oder Flackern | OFF-Modus verwenden |
| Unterdimensionierten Snubber einbauen (< 0,5-W-Widerstand) | Snubber überhitzt | 0,5-W- oder 1-W-Widerstand verwenden |
| Relais ohne Funkenunterdrückung bei induktiven Lasten | Kontaktverschweißung | Snubber an Relaiskontakten anbringen |
Schnell-Checkliste
Bevor Sie Hardware austauschen, prüfen Sie in dieser Reihenfolge:
Verwandte Artikel
- Flickering at low brightness → AC Dimmer Flickering at Low Brightness
- Safety and wiring → AC Dimmer Safety: Mains Voltage, Isolation, and Wiring
- Choosing a dimmer → AC Dimmer Buyer's Guide
- LED-specific flicker → LED Flickering with AC Dimmer
Noch Fragen?
Ask on forum.rbdimmer.com or open a GitHub Issue.