Zum Inhalt springen

← Erweiterte Nutzung | Inhaltsverzeichnis | Weiter: Lambda-Integration →

DimmerLink — ESPHome-Integration

Flimmerfreies AC-Dimmen für Home Assistant. Ein dedizierter Timing-Controller, der das Hauptproblem von TRIAC-Dimmern beseitigt.




❌ Das Problem

Using ESPHome's ac_dimmer component?

  • 💡 Flimmern bei niedrigen Helligkeitsstufen
  • WiFi-Konflikte — Interrupts stören das Timing
  • 🔥 ESP8266 instabil — nicht genügend Ressourcen für zeitkritischen Code
  • 📝 Komplexe Abstimmung — Timing hängt von Lasttyp und Netzqualität ab

„Die Lampe flimmert unregelmäßig"ESPHome Issue #4131



✅ Die Lösung

DimmerLink — ein kompaktes Modul mit dediziertem Cortex-M0+, das ALLE zeitkritischen Operationen übernimmt: Nulldurchgangserkennung, Phasenwinkelberechnung und TRIAC-Gate-Steuerung mit Mikrosekunden-Präzision.

Your ESP just sends: "Set brightness to 50%" via I2C. That's it.

  • Kein Flimmern — Timing auf Hardware-Ebene, kein Software-Jitter
  • 3 Zeilen YAML — keine Interrupts, keine Bibliotheken, keine Konflikte
  • Funktioniert mit jedem ESP — ESP8266, ESP32, ESP32-S2/S3/C3
  • Auto 50/60 Hz — automatische Netzfrequenzerkennung
  • 3 Dimmkurven — Linear, RMS, Logarithmisch



ac_dimmer DimmerLink
Flimmern ⚠️ Häufig bei niedrigen Stufen (#4131) Nie — Hardware-Timing
ESP8266-Unterstützung ⚠️ Instabil (Interrupt-Konflikte) Stabil — keine Interrupts nötig
CPU-Auslastung Hoch (zeitkritischer ISR) < 1% (nur I2C-Schreibvorgänge)
WiFi-Störungen Ja (Interrupts vs. WiFi-Stack) Keine
Einrichtungskomplexität Mittel (Abstimmung erforderlich) Einfaches YAML
Dimmkurven Nur Software 3 Hardware-Kurven
AC-Frequenz Manuelle Konfiguration Auto-Erkennung 50/60 Hz
Zusätzliche Hardware $0 $1.99-Modul

Wann ac_dimmer verwenden: Wenn es bereits gut funktioniert — weiter nutzen!

Wann DimmerLink verwenden: Bei Flimmerproblemen, ESP8266, mehreren Dimmern oder wenn Sie Plug-and-Play-Einfachheit wünschen.


DimmerLink




Zwei Integrationsmethoden

DimmerLink unterstützt zwei Ansätze für die ESPHome-Integration:


Eine sofort einsatzbereite ESPHome-Komponente mit übersichtlicher YAML-Konfiguration. Kein C++- oder Lambda-Code erforderlich.

yaml
external_components:
  - source: github://robotdyn-dimmer/DimmerLink@main
    components: [dimmerlink]
    refresh: 1d

dimmerlink:
  id: dimmer1
  address: 0x50

light:
  - platform: dimmerlink
    dimmerlink_id: dimmer1
    name: "Dimmer"

Geeignet für: Die meisten Anwender. Einfaches YAML, automatische I2C-Kommunikation, integrierte Sensoren, Auswahlfelder und Buttons.

Vollständige Komponentendokumentation


2. Lambda-Integration (Fortgeschritten)

Direkter I2C-Registerzugriff über ESPHome-Lambda-Funktionen. Bietet volle Kontrolle über das Kommunikationsprotokoll.

yaml
output:
  - platform: template
    id: dimmer_out
    type: float
    write_action:
      - lambda: |-
          uint8_t level = (uint8_t)(state * 100.0f);
          uint8_t data[2] = {0x10, level};
          id(bus_a).write(0x50, data, 2, true);

light:
  - platform: monochromatic
    name: "Dimmer"
    output: dimmer_out

Geeignet für: Fortgeschrittene Anwender, die eigene Logik, nicht-standardmäßige Konfigurationen oder ein detailliertes Verständnis des I2C-Protokolls benötigen.

Vollständige Lambda-Dokumentation | Lambda-Referenz




Vergleich der Integrationsmethoden

Funktion Externe Komponente Lambda-Integration
Einrichtungskomplexität Einfaches YAML Erfordert C++ Lambdas
Codeumfang ~30 Zeilen ~100+ Zeilen
Sensoren & Status Integriert Manuelle Implementierung
Dimmkurven-Auswahl Integriert Manuelle Implementierung
Reset / Rekalibrierung Integrierte Buttons Manuelle Befehle
Mehrere Geräte Native Unterstützung Manuell pro Gerät
Anpassung Standardoptionen Volle Flexibilität
I2C-Fehlerbehandlung Automatisch Manuell



Architektur

text
Home Assistant
      │
      │ WiFi (Native API)
      ▼
   ESP32 + ESPHome
      │
      │ I2C (100 kHz)
      ▼
  DimmerLink
      │
      │ Zero-Cross + Gate
      ▼
   AC Dimmer (TRIAC)
      │
      │ AC 110/220V
      ▼
    Lamp



Schnellstart


Verdrahtung

text
ESP32          DimmerLink
─────          ──────────
3.3V     →     VCC
GND      →     GND
GPIO21   →     SDA
GPIO22   →     SCL


Minimale Konfiguration (Externe Komponente)

yaml
esphome:
  name: dimmerlink

esp32:
  board: esp32dev

logger:
api:
ota:

wifi:
  ssid: "YOUR_WIFI"
  password: "YOUR_PASSWORD"

external_components:
  - source: github://robotdyn-dimmer/DimmerLink@main
    components: [dimmerlink]
    refresh: 1d

i2c:
  sda: GPIO21
  scl: GPIO22

dimmerlink:
  id: dimmer1

light:
  - platform: dimmerlink
    dimmerlink_id: dimmer1
    name: "Dimmer"
    gamma_correct: 1.0



Entitätstypen (Externe Komponente)

Entität Plattform Beschreibung
Light dimmerlink Helligkeitssteuerung (0–100%)
Sensor dimmerlink AC-Frequenz, Helligkeitsstufe, Firmware-Version
Binary Sensor dimmerlink Bereitschaftsstatus, Fehler-Flag, Kalibrierungsstatus
Select dimmerlink Dimmkurve (LINEAR / RMS / LOG)
Button dimmerlink Reset-, Rekalibrierungsbefehle



Dokument Beschreibung
I2C-Kommunikation I2C-Protokoll und Registertabelle
Hardware-Anschluss Anschlussdiagramme
Schnellstartanleitung Erste Schritte mit DimmerLink
FAQ & Fehlerbehebung Häufige Probleme und Lösungen



Versionshistorie

Version Datum Änderungen
1.0 2026-02 Erstveröffentlichung: Dokumentation zur Lambda-Integration
1.1 2026-02 Externe Komponente hinzugefügt

← Erweiterte Nutzung | Inhaltsverzeichnis | Weiter: Lambda-Integration →