← 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:
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:
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 1Risposta:
{"DlDim1":{"Ch1":50,"Ch2":30,"Ch3":0,"Ch4":0}}La risposta include sempre tutti i canali del dispositivo indirizzato.
Note:
- Il livello
0spegne 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:
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:
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 1Risposta:
{"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:
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:
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 1Risposta:
{"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
0significa 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:
DlStatus[] | Parametro | Tipo | Intervallo | Descrizione |
|---|---|---|---|
dev |
intero | 1-4 | Numero dispositivo (opzionale; predefinito = 1) |
Esempi:
DlStatus # Status of device 1
DlStatus2 # Status of device 2Risposta:
{
"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:
{
"DimmerLink1": {
"Addr": "0x50",
"Bus": 1,
"Ready": true,
"FW": 1,
"ACFreq": 50,
"Fade": 0,
"Ch1": {"Level": 0, "Curve": "LINEAR"},
"LastError": "0xFE"
}
}DlReset — Reset software
Sintassi:
DlReset[] | Parametro | Tipo | Intervallo | Descrizione |
|---|---|---|---|
dev |
intero | 1-4 | Numero dispositivo (opzionale; predefinito = 1) |
Esempi:
DlReset # Reset device 1
DlReset2 # Reset device 2Risposta:
{"Command":"Done"}Note:
- Scrive
0x01nel registro COMMAND (0x01). - Dopo il reset, il flag
readydel dispositivo viene impostato afalse. 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:
DlRecalibrate[] | Parametro | Tipo | Intervallo | Descrizione |
|---|---|---|---|
dev |
intero | 1-4 | Numero dispositivo (opzionale; predefinito = 1) |
Esempi:
DlRecalibrate # Recalibrate device 1
DlRecalibrate2 # Recalibrate device 2Risposta:
{"Command":"Done"}Note:
- Scrive
0x02nel 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:
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:
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):
{"DlAddress":"0x50"}Risposta (dopo cambio riuscito):
{"DlAddress":"0x51"}Note:
- L'indirizzo è accettato in esadecimale (con prefisso
0xo0X) 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
DlStatusper 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 |