Zum Inhalt springen

ESPHome YAML für AC-TRIAC-Dimmer: Standard und DimmerLink

Fertige ESPHome-YAML-Konfigurationen für AC-TRIAC-Dimmer — von einem minimalen 10-Zeilen-Setup bis zur vollständigen DimmerLink-Integration mit Sensoren, Kurvenauswahl und Lambda-Funktionen.
26. Februar 2026 durch
ESPHome YAML für AC-TRIAC-Dimmer: Standard und DimmerLink
Administrator
| Noch keine Kommentare

Kurzfassung: Es gibt zwei ESPHome-Integrationsmethoden. Die Standard-Plattform ac_dimmer funktioniert sofort, hat aber ISR/WiFi-Konflikte auf ESP32. Die externe DimmerLink-Komponente verwendet einen Hardware-Controller für zuverlässiges, flimmerfreies Dimmen auf jeder Platine.



Methodenvergleich

Merkmal Standard ac_dimmer DimmerLink-Komponente
ESP8266 ✅ Stabil ✅ Stabil
ESP32 (Dual-Core) ⚠️ Kann flimmern ✅ Stabil
ESP32-S2/C3/H2/C6 ❌ Nicht unterstützt ✅ Unterstützt
— (kein ISR) ❌ Nicht unterstützt ✅ Unterstützt
Zusätzliche Hardware Keine DimmerLink-Modul
YAML-Zeilen (minimal) ~10 ~30
Eingebaute Sensoren Nein Frequenz, Helligkeit
Dimmkurven-Auswahl Nein LINEAR / RMS / LOG



Methode 1: Standard-ESPHome-Plattform ac_dimmer

Dies ist die eingebaute ESPHome-Plattform. Keine externen Komponenten erforderlich.


Minimale Konfiguration (ESP8266)

yaml
esphome:
  name: dimmer-esp8266
  platform: ESP8266
  board: nodemcuv2
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
api:
  encryption:
    key: !secret api_key
ota:
  password: !secret ota_password
output:
  - platform: ac_dimmer
    id: dimmer_out
    gate_pin: GPIO4          # DIM-Pin
    zero_cross_pin:
      number: GPIO5          # ZC-Pin
      mode: INPUT
      inverted: yes
    method: leading_pulse    # TRIAC-Standard
light:
  - platform: monochromatic
    output: dimmer_out
    name: "Dimmer"


Vollständige Konfiguration — mit Gamma und Mindestleistung

yaml
output:
  - platform: ac_dimmer
    id: dimmer_out
    gate_pin: GPIO4
    zero_cross_pin:
      number: GPIO5
      mode: INPUT
      inverted: yes
    method: leading_pulse
    min_power: 0.01          # minimales Tastverhältnis (1 %) — vermeidet Flimmern bei 0
light:
  - platform: monochromatic
    output: dimmer_out
    name: "Dimmer"
    gamma_correct: 0         # 0 = linear; 2.8 = menschliche Wahrnehmungskurve
    default_transition_length: 500ms


Dimm-Methoden-Optionen

yaml
method: leading_pulse   # Kurzer Gate-Impuls — Standard-TRIAC (Standard)
method: leading         # Gate wird bis ZC gehalten — alternativer TRIAC
method: trailing        # Gate wird am Ende abgeschaltet — nur MOSFET


ESP32-Warnung

⚠️ Die Standard-Plattform ac_dimmer hat zwei verschiedene Probleme auf ESP32-Hardware:

  • ESP32, ESP32-S3 — kann flimmern; ISR-Timing wird durch WiFi gestört
  • ESP32-S2, ESP32-C3, ESP32-H2, ESP32-C6 — überhaupt nicht unterstützt

Lösung: Verwenden Sie Methode 2 (DimmerLink) für jedes ESP32-basierte Setup.

See: ESP32 + AC Dimmer: IRAM_ATTR Causes and Fix




Methode 2: Externe DimmerLink-Komponente

DimmerLink verlagert Nulldurchgangserkennung und TRIAC-Steuerung auf einen dedizierten Cortex-M0+-Controller. ESPHome sendet die Helligkeit per I2C (Register 0x10). Auf dem MCU läuft kein ISR.

Docs: rbdimmer.com/docs/dimmerlink-esphome

Component source: github.com/robotdyn-dimmer/DimmerLink/tree/main/components


Verdrahtung

text
DimmerLink   →   ESP32 (oder beliebiger MCU)
──────────────────────────────────
VCC          →   3.3V
GND          →   GND
SDA          →   GPIO21
SCL          →   GPIO22


Minimale Konfiguration (~30 Zeilen)

yaml
esphome:
  name: dimmerlink
  platform: ESP32
  board: esp32dev
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
api:
  encryption:
    key: !secret api_key
ota:
  password: !secret ota_password
external_components:
  - source:
      type: git
      url: https://github.com/robotdyn-dimmer/DimmerLink
      ref: main
    components: [dimmerlink]
i2c:
  sda: GPIO21
  scl: GPIO22
  frequency: 100kHz
light:
  - platform: dimmerlink
    name: "Dimmer"
    address: 0x50


Standard-Konfiguration — mit Sensoren und Kurvenauswahl

yaml
# (Blöcke external_components + i2c wie oben)
light:
  - platform: dimmerlink
    name: "Dimmer"
    address: 0x50
sensor:
  - platform: dimmerlink
    address: 0x50
    frequency:
      name: "AC Frequency"
      unit_of_measurement: "Hz"
    brightness:
      name: "Dimmer Level"
      unit_of_measurement: "%"
select:
  - platform: dimmerlink
    address: 0x50
    dimming_curve:
      name: "Dimming Curve"
      # Optionen im HA-Dropdown: LINEAR, RMS, LOGARITHMIC
binary_sensor:
  - platform: dimmerlink
    address: 0x50
    status:
      name: "Dimmer Online"
button:
  - platform: dimmerlink
    address: 0x50
    reset:
      name: "Dimmer Reset"
    recalibrate:
      name: "Dimmer Recalibrate"


Erweiterte Konfiguration — alle Entitäten

yaml
# Vollständige DimmerLink-Integration mit Diagnose
sensor:
  - platform: dimmerlink
    address: 0x50
    frequency:
      name: "AC Frequency"
    brightness:
      name: "Dimmer Level"
text_sensor:
  - platform: dimmerlink
    address: 0x50
    firmware_version:
      name: "DimmerLink Firmware"
number:
  - platform: dimmerlink
    address: 0x50
    min_brightness:
      name: "Min Brightness"
      min_value: 0
      max_value: 20
select:
  - platform: dimmerlink
    address: 0x50
    dimming_curve:
      name: "Dimming Curve"
binary_sensor:
  - platform: dimmerlink
    address: 0x50
    status:
      name: "Dimmer OK"
    calibration_mode:
      name: "Calibration Active"
button:
  - platform: dimmerlink
    address: 0x50
    reset:
      name: "Reset"
    recalibrate:
      name: "Recalibrate"


Multi-Device-Konfiguration

Mehrere DimmerLink-Module auf einem I2C-Bus (verschiedene Adressen):

yaml
light:
  - platform: dimmerlink
    name: "Kitchen"
    address: 0x50
  - platform: dimmerlink
    name: "Bedroom"
    address: 0x51



Lambda-Integration (Fortgeschritten)

Für benutzerdefinierte Logik — z. B. Helligkeit über eine physische Taste oder einen Sensorwert einstellen — verwenden Sie ESPHome-Lambda- Funktionen mit direktem I2C-Registerzugriff.

Docs: rbdimmer.com/docs/dimmerlink-esphome/lambda-integration


DimmerLink I2C-Registerkarte (wichtige Register)

Register Adresse Beschreibung
STATUS 0x00 Status-Flags (nur lesen)
DIM0_LEVEL 0x10 Helligkeit Kanal 0, 0–100
DIM0_CURVE 0x11 Kurve: 0=LINEAR, 1=RMS, 2=LOG
AC_FREQ 0x20 Gemessene AC-Frequenz (Hz)


Lambda-Beispiel — Helligkeit direkt setzen

yaml
# Template-Ausgang mit Lambda für benutzerdefinierte Helligkeitssteuerung
output:
  - platform: template
    id: dimmer_out
    type: float
    write_action:
      - lambda: |-
          uint8_t level = (uint8_t)(state * 100.0f);
          // erfordert i2c:-Block in Ihrer ESPHome-Konfiguration
          Wire.beginTransmission(0x50);
          Wire.write(0x10);   // DIM0_LEVEL-Register
          Wire.write(level);
          Wire.endTransmission();
light:
  - platform: monochromatic
    output: dimmer_out
    name: "Dimmer (lambda)"


Lambda-Beispiel — Taste löst Voreinstellung aus

yaml
binary_sensor:
  - platform: gpio
    pin: GPIO0
    name: "Dim Button"
    on_press:
      - lambda: |-
          // Umschalten zwischen 30 % und 80 %
          static bool high = false;
          uint8_t level = high ? 30 : 80;
          high = !high;
          Wire.beginTransmission(0x50);
          Wire.write(0x10);
          Wire.write(level);
          Wire.endTransmission();



Dimmkurven

Kurve Registerwert ESPHome dimming_curve Geeignet für
Linear 0 LINEAR Heizungen, resistive Lasten
RMS 1 RMS Glühlampen, Halogen
Logarithmisch 2 LOGARITHMIC Dimmbare LED-Lampen

RMS- und logarithmische Kurven kompensieren die nichtlineare Beziehung zwischen Phasenwinkel und wahrgenommener Helligkeit.




Häufige Probleme

Symptom Ursache Lösung
Flimmern mit ESP32 ISR/WiFi-Konflikt DimmerLink-Methode verwenden
Dimmer offline nach OTA ISR während Flash unterbrochen DimmerLink verwenden
Helligkeit bleibt bei 0 % min_power zu niedrig oder ZC-Verdrahtung ZC-Pin prüfen
HA-Light-Entität fehlt ESPHome nicht in HA adoptiert Gerät erneut adoptieren
Komponente nicht gefunden Falsches ref: in external_components ref: main verwenden



Verwandte Artikel



Noch Fragen?

Ask on forum.rbdimmer.com or open a GitHub Issue.

Diesen Beitrag teilen
Anmelden , um einen Kommentar zu hinterlassen