Passa al contenuto

← Uso avanzato | Indice | Avanti: Integrazione Lambda →

DimmerLink — Integrazione ESPHome

Dimmerizzazione AC senza sfarfallio per Home Assistant. Un controller di temporizzazione dedicato che elimina il problema n.1 dei dimmer TRIAC.




❌ Il problema

Using ESPHome's ac_dimmer component?

  • 💡 Sfarfallio a bassi livelli di luminosità
  • Conflitti WiFi — gli interrupt alterano la temporizzazione
  • 🔥 ESP8266 instabile — risorse insufficienti per il codice critico in tempo
  • 📝 Regolazione complessa — la temporizzazione dipende dal tipo di carico e dalla qualità della rete

«La lampada ha uno sfarfallio irregolare»ESPHome Issue #4131



✅ La soluzione

DimmerLink — un modulo compatto con un Cortex-M0+ dedicato che gestisce TUTTE le operazioni critiche in tempo: rilevamento passaggio per lo zero, calcolo dell'angolo di fase e controllo del gate TRIAC con precisione al microsecondo.

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

  • Zero sfarfallio — temporizzazione hardware, nessun jitter software
  • 3 righe di YAML — nessun interrupt, nessuna libreria, nessun conflitto
  • Funziona su qualsiasi ESP — ESP8266, ESP32, ESP32-S2/S3/C3
  • Auto 50/60 Hz — rilevamento automatico della frequenza di rete
  • 3 curve di dimmerizzazione — Lineare, RMS, Logaritmica



ac_dimmer DimmerLink
Sfarfallio ⚠️ Frequente a bassi livelli (#4131) Mai — temporizzazione hardware
Supporto ESP8266 ⚠️ Instabile (conflitti di interrupt) Stabile — nessun interrupt necessario
Utilizzo CPU Alto (ISR critico in tempo) < 1% (solo scritture I2C)
Interferenze WiFi Sì (interrupt vs stack WiFi) Nessuna
Complessità di configurazione Media (regolazione necessaria) YAML semplice
Curve di dimmerizzazione Solo software 3 curve hardware
Frequenza AC Configurazione manuale Rilevamento auto 50/60 Hz
Hardware aggiuntivo $0 Modulo a $1.99

Quando usare ac_dimmer: Se funziona già bene per la tua installazione — continua a usarlo!

Quando usare DimmerLink: Problemi di sfarfallio, ESP8266, dimmer multipli o se vuoi la semplicità plug-and-play.


DimmerLink




Due metodi di integrazione

DimmerLink supporta due approcci per l'integrazione con ESPHome:


Un componente ESPHome pronto all'uso con configurazione YAML chiara. Nessun codice C++ o lambda richiesto.

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"

Ideale per: La maggior parte degli utenti. YAML semplice, comunicazione I2C automatica, sensori, selettori e pulsanti integrati.

Documentazione completa del componente


2. Integrazione Lambda (Avanzato)

Accesso diretto ai registri I2C tramite le funzioni lambda di ESPHome. Controllo completo sul protocollo di comunicazione.

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

Ideale per: Utenti avanzati che necessitano di logica personalizzata, configurazioni non standard o vogliono comprendere in dettaglio il protocollo I2C.

Documentazione Lambda completa | Riferimento Lambda




Confronto dei metodi di integrazione

Caratteristica Componente esterno Integrazione Lambda
Complessità di configurazione YAML semplice Richiede lambda C++
Righe di codice ~30 righe ~100+ righe
Sensori e stato Integrati Implementazione manuale
Selezione curva di dimmerizzazione Integrati Implementazione manuale
Reset / Ricalibrazione Pulsanti integrati Comandi manuali
Dispositivi multipli Supporto nativo Manuale per dispositivo
Personalizzazione Opzioni standard Flessibilità totale
Gestione errori I2C Automatica Manuale



Architettura

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



Avvio rapido


Cablaggio

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


Configurazione minima (Componente esterno)

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



Tipi di entità (Componente esterno)

Entità Piattaforma Descrizione
Light dimmerlink Controllo luminosità (0–100%)
Sensor dimmerlink Frequenza AC, livello di luminosità, versione firmware
Binary Sensor dimmerlink Stato di disponibilità, flag errore, stato di calibrazione
Select dimmerlink Curva di dimmerizzazione (LINEAR / RMS / LOG)
Button dimmerlink Comandi di reset e ricalibrazione



Documento Descrizione
Comunicazione I2C Protocollo I2C e mappa dei registri
Collegamento hardware Schemi di collegamento
Guida all'avvio rapido Per iniziare con DimmerLink
FAQ e risoluzione dei problemi Problemi comuni e soluzioni



Cronologia delle versioni

Versione Data Modifiche
1.0 2026-02 Versione iniziale: documentazione dell'integrazione lambda
1.1 2026-02 Aggiunto componente esterno

← Uso avanzato | Indice | Avanti: Integrazione Lambda →