Zum Inhalt springen

AC-Dimmer mit Home Assistant: ESPHome- und DimmerLink-Anleitung

Zwei Wege zur Steuerung eines AC-Dimmers über Home Assistant: die Standard-ESPHome-Plattform ac_dimmer (schnelle Einrichtung, aber riskant auf ESP32+WiFi) und die DimmerLink-ESPHome-Komponente (empfohlen für Zuverlässigkeit).

Kurzfassung: Zwei Integrationswege existieren. Weg A (Standard-ESPHome-Plattform ac_dimmer) ist einfach, verursacht aber ISR/WiFi-Konflikte auf Dual-Core-ESP32. Weg B (DimmerLink- ESPHome-Komponente) verlagert die TRIAC-Steuerung auf einen dedizierten Controller — kein ISR, keine Konflikte, funktioniert auf jeder Plattform einschließlich ESP32-C3, Raspberry Pi und HA OS.



Welchen Weg sollten Sie wählen?

Kriterium Weg A: Standard-ESPHome Weg B: DimmerLink
Platine ESP8266 (sicher), ESP32 (riskant) Jeder ESP32, RPi, jeder SBC
YAML-Komplexität ~10 Zeilen ~30 Zeilen
WiFi-Stabilität Kann bei WiFi-Last flimmern Kein Konflikt (nur I2C)
Single-Core-ESP32 Nicht unterstützt Unterstützt
Zusätzliche Hardware Keine DimmerLink-Modul
Dimm-Qualität Gut Hervorragend (Hardware-Timing)

⚠️ Warum ESP32 mit Weg A riskant ist: Die Standard-Plattform ac_dimmer verwendet einen Software-ISR auf ESP32. Bei aktivem WiFi oder HA-API wird das ISR-Timing gestört, was zu sichtbarem Flimmern oder Einfrieren des Dimmers führt. Verwenden Sie Weg B, um den ISR vollständig zu eliminieren.

Wählen Sie Weg A, wenn Sie ESP8266 verwenden und die einfachste Einrichtung wünschen.

Wählen Sie Weg B, wenn Sie ESP32 (jede Variante), Raspberry Pi, HA OS auf x86 verwenden oder zuverlässiges Dimmen bei aktivem WiFi/MQTT benötigen.




Weg A: Standard-ESPHome-Plattform ac_dimmer


Verdrahtung (ESP8266 / ESP32)

text
Dimmer-Modul   →   ESP8266 (NodeMCU)
──────────────────────────────────────
ZC-OUT         →   D1 (GPIO5)
DIM            →   D2 (GPIO4)
VCC            →   3.3V
GND            →   GND

Für ESP32 kann jeder GPIO für ZC und DIM verwendet werden.


ESPHome-YAML

yaml
esphome:
  name: ac-dimmer
  platform: ESP8266      # oder ESP32
  board: nodemcuv2       # an Ihre Platine anpassen
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
    zero_cross_pin:
      number: GPIO5
      mode: INPUT
      inverted: yes
    method: leading_pulse  # Standard; 'trailing' für MOSFET
    min_power: 0.01
light:
  - platform: monochromatic
    output: dimmer_out
    name: "AC Dimmer"
    gamma_correct: 0       # 0 = linear, 2.8 = wahrgenommen für LED


Dimm-Methoden

Methode method:-Wert Verwendung mit
Leading Pulse (Standard) leading_pulse TRIAC-Module
Leading (Gate gehalten) leading TRIAC — alternativ
Trailing trailing Nur MOSFET-Module


Bekanntes Problem: ESP32 + WiFi

⚠️ Die Standard-Plattform ac_dimmer verwendet einen Software-ISR auf dem ESP32. Bei aktivem WiFi (insbesondere mit HA-API oder OTA) kann der ISR verzögert werden, was zu sichtbarem Flimmern oder Einfrieren des Dimmers führt.

This is the same root cause as crashes with the RBDdimmer C++ library. See: ESP32 + AC Dimmer: IRAM_ATTR Causes and Fix

Lösung: Verwenden Sie Weg B (DimmerLink) für ESP32-basierte HA-Installationen.




Weg B: DimmerLink-ESPHome-Komponente

DimmerLink ist ein dedizierter Controller mit Cortex-M0+-Prozessor, der die Nulldurchgangserkennung und TRIAC-Gate-Steuerung intern verarbeitet. Ihr ESP32 sendet einen Helligkeitswert (0–100 %) per I2C — kein ISR auf dem MCU.


Verdrahtung

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

DimmerLink → AC load wiring is identical to the standard module. See: Hardware Connection Guide


ESPHome-Komponente installieren

Fügen Sie die externe Komponente zu Ihrem YAML hinzu:

yaml
external_components:
  - source:
      type: git
      url: https://github.com/robotdyn-dimmer/DimmerLink
      ref: main
    components: [dimmerlink]

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


Minimales YAML (~30 Zeilen)

yaml
esphome:
  name: dimmerlink-ha
  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

Flashen, zu HA hinzufügen, fertig.


Standard-YAML — mit Sensoren und Kurvenauswahl

yaml
# (external_components + i2c wie oben)
light:
  - platform: dimmerlink
    name: "Dimmer"
    address: 0x50
sensor:
  - platform: dimmerlink
    address: 0x50
    frequency:
      name: "AC Frequency"
    brightness:
      name: "Dimmer Brightness"
select:
  - platform: dimmerlink
    address: 0x50
    dimming_curve:
      name: "Dimming Curve"
      # Optionen: LINEAR, RMS, LOGARITHMIC
binary_sensor:
  - platform: dimmerlink
    address: 0x50
    status:
      name: "Dimmer Status"


Dimmkurven

Kurve Geeignet für
LINEAR Heizelemente, resistive Lasten
RMS Glüh- und Halogenlampen
LOGARITHMIC Dimmbare LED-Lampen



Geräteansicht in Home Assistant

Nach dem Flashen und Hinzufügen des ESPHome-Geräts zu HA:

  • Weg A erstellt eine light-Entität mit Helligkeitsregler (0–255, gemappt auf 0–100 %)
  • Weg B erstellt eine light-Entität plus optionale Sensor- Entitäten (AC-Frequenz, Helligkeit %, Firmware-Version) und einen Dimmkurven-Selektor — alles auf einer HA-Gerätekarte



Mehrkanalsteuerung mit DimmerLink

Jedes DimmerLink-Modul steuert eine AC-Last an einer I2C-Adresse (eingestellt über Adress-Jumper auf der Platine). Um zwei Lasten zu steuern, verbinden Sie zwei separate DimmerLink-Module auf demselben I2C-Bus mit unterschiedlichen Adressen:

yaml
light:
  - platform: dimmerlink
    name: "Channel 1"
    address: 0x50
  - platform: dimmerlink
    name: "Channel 2"
    address: 0x51



Verwandte Artikel



Noch Fragen?

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

Diesen Beitrag teilen
Anmelden , um einen Kommentar zu hinterlassen