Passa al contenuto

← Build & Flash | Sommario | Next: Web, MQTT & HTTP →

Riferimento comandi — driver nativo DimmerLink per Tasmota

Tutti i comandi seguono le convenzioni standard di Tasmota:

  • I comandi sono case-insensitive.
  • Un suffisso opzionale con il numero del dispositivo (da 1 a 4) seleziona quale dispositivo rilevato indirizzare. Senza suffisso, o con suffisso 0, il valore predefinito è il dispositivo 1.
  • L'invio di un comando senza argomento restituisce lo stato corrente senza modificare nulla.
  • Tutti i comandi restituiscono risposte JSON.

Il driver nativo usa il prefisso Dl per tutti i comandi (diverso dal prefisso DimmerLink del driver Berry).


DlDim — Impostare la luminosità del canale

Sintassi:

plaintext
DlDim[] [,]
Parametro Tipo Intervallo Descrizione
dev intero 1-4 Numero dispositivo (opzionale; predefinito = 1)
ch intero 1-4 Numero canale (opzionale; predefinito = 1)
level intero 0-100 Luminosità in percentuale

Esempi:

plaintext
DlDim 50            # Device 1, channel 1 to 50%
DlDim 75            # Device 1, channel 1 to 75%
DlDim 2,30          # Device 1, channel 2 to 30%
DlDim2 100          # Device 2, channel 1 to 100%
DlDim2 3,0          # Device 2, channel 3 to 0% (off)
DlDim               # Query — returns all channel levels for device 1

Risposta:

json
{"DlDim1":{"Ch1":50,"Ch2":30,"Ch3":0,"Ch4":0}}

La risposta include sempre tutti i canali del dispositivo indirizzato.

Note:

  • Il livello 0 spegne il canale. Il dispositivo non memorizza il livello precedente — la riattivazione richiede l'invio di un nuovo livello diverso da zero.
  • I valori di livello superiori a 100 vengono silenziosamente limitati a 100 dal driver.
  • Se il dispositivo restituisce un codice di errore diverso da zero dopo la scrittura, il driver lo registra al livello DEBUG ma non restituisce un errore al chiamante.

DlCurve — Impostare la curva di dimmerazione

Sintassi:

plaintext
DlCurve[] [,]
Parametro Tipo Intervallo Descrizione
dev intero 1-4 Numero dispositivo (opzionale; predefinito = 1)
ch intero 1-4 Numero canale (opzionale; predefinito = 1)
curve intero 0-2 Curva: 0 = LINEAR, 1 = RMS, 2 = LOG

Esempi:

plaintext
DlCurve 0           # Device 1, channel 1 to LINEAR
DlCurve 2           # Device 1, channel 1 to LOG
DlCurve 2,1         # Device 1, channel 2 to RMS
DlCurve2 1          # Device 2, channel 1 to RMS
DlCurve             # Query — returns all channel curves for device 1

Risposta:

json
{"DlCurve1":{"Ch1":"LINEAR","Ch2":"LOG","Ch3":"LINEAR","Ch4":"LINEAR"}}

Note:

  • L'impostazione della curva viene applicata per canale ed è indipendente tra i canali dello stesso dispositivo.
  • I valori di curva fuori dall'intervallo 0-2 vengono rifiutati; il comando non ha effetto e restituisce lo stato corrente.
  • Le modifiche alla curva hanno effetto al prossimo comando di luminosità. L'impostazione di una curva non modifica di per sé il livello di uscita.

Vedere Curve di dimmerazione spiegate per descrizioni dettagliate di ciascuna curva e raccomandazioni per tipo di carico.


DlFade — Impostare il tempo di transizione fade

Sintassi:

plaintext
DlFade[] 
Parametro Tipo Intervallo Descrizione
dev intero 1-4 Numero dispositivo (opzionale; predefinito = 1)
value intero 0-255 Durata del fade in unità di 100 ms

Esempi:

plaintext
DlFade 0            # Instant change (no fade)
DlFade 10           # 1.0 second fade
DlFade 50           # 5.0 second fade
DlFade 255          # 25.5 second fade (maximum)
DlFade2 20          # Device 2: 2.0 second fade
DlFade              # Query — returns current fade value for device 1

Risposta:

json
{"DlFade":0}

Note:

  • Il fade è un'impostazione a livello dispositivo, non per canale. Tutti i canali di un dispositivo usano lo stesso tempo di fade.
  • Il fade è implementato nell'hardware MCU. Una volta che una modifica della luminosità viene scritta tramite I2C, il dispositivo internamente sale gradualmente al nuovo livello nella durata configurata.
  • Il tempo di fade 0 significa cambio immediato. Il fade si applica a tutte le scritture di luminosità, incluse quelle dai cursori dell'interfaccia web.

DlStatus — Mostrare lo stato completo del dispositivo

Sintassi:

plaintext
DlStatus[]
Parametro Tipo Intervallo Descrizione
dev intero 1-4 Numero dispositivo (opzionale; predefinito = 1)

Esempi:

plaintext
DlStatus            # Status of device 1
DlStatus2           # Status of device 2

Risposta:

json
{
  "DimmerLink1": {
    "Addr": "0x50",
    "Bus": 1,
    "Ready": true,
    "FW": 1,
    "ACFreq": 50,
    "Fade": 10,
    "Ch1": {"Level": 75, "Curve": "LOG"},
    "Ch2": {"Level": 30, "Curve": "RMS"},
    "Ch3": {"Level": 0, "Curve": "LINEAR"},
    "Ch4": {"Level": 0, "Curve": "LINEAR"},
    "Temperature": 42,
    "ThermalState": "NORMAL"
  }
}

I campi Temperature e ThermalState compaiono solo se il firmware MCU ha la funzionalità di temperatura abilitata. Il campo LastError compare solo se l'ultima operazione I2C ha prodotto un codice di errore diverso da zero:

json
{
  "DimmerLink1": {
    "Addr": "0x50",
    "Bus": 1,
    "Ready": true,
    "FW": 1,
    "ACFreq": 50,
    "Fade": 0,
    "Ch1": {"Level": 0, "Curve": "LINEAR"},
    "LastError": "0xFE"
  }
}

DlReset — Reset software

Sintassi:

plaintext
DlReset[]
Parametro Tipo Intervallo Descrizione
dev intero 1-4 Numero dispositivo (opzionale; predefinito = 1)

Esempi:

plaintext
DlReset             # Reset device 1
DlReset2            # Reset device 2

Risposta:

json
{"Command":"Done"}

Note:

  • Scrive 0x01 nel registro COMMAND (0x01).
  • Dopo il reset, il flag ready del dispositivo viene impostato a false. Viene ripristinato automaticamente al prossimo polling del tick al secondo una volta che il dispositivo riporta lo stato READY.
  • Il reset reinizializza il firmware MCU, inclusa l'attivazione di un nuovo ciclo di calibrazione della frequenza AC. Durante la calibrazione, i comandi di luminosità potrebbero essere ignorati o produrre risultati inconsistenti.

DlRecalibrate — Ricalibrare la frequenza AC

Sintassi:

plaintext
DlRecalibrate[]
Parametro Tipo Intervallo Descrizione
dev intero 1-4 Numero dispositivo (opzionale; predefinito = 1)

Esempi:

plaintext
DlRecalibrate       # Recalibrate device 1
DlRecalibrate2      # Recalibrate device 2

Risposta:

json
{"Command":"Done"}

Note:

  • Scrive 0x02 nel registro COMMAND.
  • Avvia un nuovo ciclo di misurazione della frequenza AC. Utile se la frequenza di rete viene riportata in modo errato, o dopo aver spostato il dispositivo a un'altra alimentazione AC.
  • Il dispositivo imposta READY = 0 durante la calibrazione. Il funzionamento normale riprende automaticamente dopo il completamento della calibrazione (tipicamente 1-2 secondi).
  • A differenza di DlReset, la ricalibratura non reimposta i livelli dei canali né le impostazioni delle curve.

DlAddress — Modificare o interrogare l'indirizzo I2C

Sintassi:

plaintext
DlAddress[] []
Parametro Tipo Intervallo Descrizione
dev intero 1-4 Numero dispositivo (opzionale; predefinito = 1)
new_addr hex o decimale 0x08-0x77 Nuovo indirizzo I2C (opzionale; senza argomento = interrogazione)

Esempi:

plaintext
DlAddress           # Query current address of device 1
DlAddress 0x51      # Change device 1 address to 0x51
DlAddress2 0x52     # Change device 2 address to 0x52
DlAddress 81        # Change device 1 to decimal 81 (= 0x51)

Risposta (interrogazione):

json
{"DlAddress":"0x50"}

Risposta (dopo cambio riuscito):

json
{"DlAddress":"0x51"}

Note:

  • L'indirizzo è accettato in esadecimale (con prefisso 0x o 0X) o decimale.
  • Dopo la scrittura, il driver attende 50 ms e legge il registro VERSION dal nuovo indirizzo per verificare il cambio. Se la verifica fallisce, il comando restituisce un errore, ma l'hardware del dispositivo potrebbe aver già cambiato — usare DlStatus per verificare.
  • Il nuovo indirizzo è memorizzato nella memoria flash interna del MCU e persiste attraverso i cicli di alimentazione.
  • Il vecchio indirizzo diventa immediatamente non valido dopo il successo del comando.
  • Gli indirizzi 0x00-0x07 e 0x78-0x7F vengono rifiutati come indirizzi I2C riservati.

Tabella completa dei comandi

Comando Argomento Dispositivo Canale Restituisce
DlDim[N] [ch,]level Opzionale Opzionale Tutti i livelli dei canali
DlCurve[N] [ch,]curve Opzionale Opzionale Tutte le curve dei canali
DlFade[N] value Opzionale -- Valore di fade corrente
DlStatus[N] -- Opzionale -- Stato completo del dispositivo
DlReset[N] -- Opzionale -- Done
DlRecalibrate[N] -- Opzionale -- Done
DlAddress[N] [new_addr] Opzionale -- Indirizzo corrente o nuovo