← Vue d'ensemble du pilote natif | Sommaire | Suivant : Commandes →
Build & Flash — DimmerLink Native Tasmota Driver
Prérequis
Logiciel
| Prérequis | Détails |
|---|---|
| PlatformIO | IDE ou CLI. Installer depuis https://platformio.org ou comme extension VS Code |
| Code source Tasmota | Cloner depuis https://github.com/arendst/Tasmota ou utiliser votre fork existant |
| Python 3 | Requis par le système de compilation PlatformIO |
| Git | Pour cloner et gérer les sources |
Matériel
| Prérequis | Détails |
|---|---|
| Carte ESP32 ou ESP8266 | Toute variante ESP32 (tasmota32, tasmota32c3, tasmota32s3, etc.) ou ESP8266 (tasmota, tasmota-sensors, etc.) |
| Appareil DimmerLink | Contrôleur de gradateur MCU TRIAC avec interface I2C activée |
| Câblage I2C | Connexions SDA, SCL, GND, VCC avec résistances de tirage appropriées |
| Câble USB | Pour le flash (ou capacité de mise à jour OTA si re-flash) |
Mode I2C DimmerLink
L'appareil DimmerLink est livré avec l'interface UART activée par défaut. Avant de le connecter au bus I2C de Tasmota, l'appareil doit être basculé en mode I2C à l'aide de la commande UART SWITCH_I2C (0x5B). Référez-vous à la documentation matérielle DimmerLink pour cette procédure. Après le basculement, l'appareil démarre en mode I2C et le changement est sauvegardé dans la mémoire flash interne de l'appareil.
Activation du pilote
Le pilote est conditionné par deux gardes préprocesseur :
#ifdef USE_I2C
#ifdef USE_DIMMERLINKLes deux doivent être actifs. USE_I2C est généralement activé dans la configuration par défaut de votre carte. USE_DIMMERLINK doit être ajouté explicitement.
Étape 1 : Créer ou ouvrir user_config_override.h
Ce fichier se trouve à :
tasmota/user_config_override.hS'il n'existe pas, créez-le à cet emplacement.
Étape 2 : Ajouter la définition
#ifndef USE_DIMMERLINK
#define USE_DIMMERLINK
#endifÉtape 3 : Confirmer que I2C est activé
Vérifiez que USE_I2C est défini dans votre environnement cible. Pour tasmota32 (ESP32) et tasmota (ESP8266), c'est activé par défaut. Si vous compilez un environnement allégé (ex. tasmota-lite), vérifiez dans tasmota/tasmota_configurations.h que USE_I2C est présent.
Enregistrement du pilote
Une fois les deux définitions actives, le pilote s'auto-enregistre dans la table de dispatch de Tasmota via la fonction Xdrv94 et revendique le slot I2C XI2C_100 (ID d'appareil 100). Aucune autre modification au niveau du code source n'est nécessaire.
Options de configuration
Deux définitions optionnelles contrôlent le comportement à l'exécution. Placez-les dans user_config_override.h.
USE_DIMMERLINK_ADDR
Définit l'adresse de départ attendue pour le scan I2C. Le pilote scanne tout de même la plage d'adresses I2C valide complète (0x08 à 0x77) et identifie les appareils en lisant le registre VERSION. La valeur par défaut est fournie à titre documentaire.
// Default: 0x50 (factory default for DimmerLink)
#define USE_DIMMERLINK_ADDR 0x50USE_DIMMERLINK_CHANNELS
Définit le nombre de canaux configurés par appareil détecté.
// Default: 4 (maximum)
#define USE_DIMMERLINK_CHANNELS 4Plage valide : 1 à 4. Définissez ce nombre selon le nombre réel de canaux de charge physiquement câblés à votre matériel DimmerLink.
// Example: single-channel installation
#define USE_DIMMERLINK_CHANNELS 1
// Example: two-channel installation
#define USE_DIMMERLINK_CHANNELS 2Limites à la compilation
Elles sont fixées dans le code source et ne peuvent pas être modifiées via user_config_override.h :
| Constante | Valeur | Signification |
|---|---|---|
DL_MAX_DEVICES |
4 | Nombre maximum d'appareils détectés simultanément |
DL_MAX_CHANNELS |
4 | Nombre maximum de canaux par appareil |
DL_FW_VERSION |
0x01 | Empreinte de version de firmware requise |
Exemple complet de user_config_override.h
// user_config_override.h — DimmerLink native driver configuration
// Enable DimmerLink native I2C driver (requires USE_I2C)
#ifndef USE_DIMMERLINK
#define USE_DIMMERLINK
#endif
// Default I2C address (informational — driver scans full bus range)
#ifndef USE_DIMMERLINK_ADDR
#define USE_DIMMERLINK_ADDR 0x50
#endif
// Number of channels per device (1-4)
// Set to match the physical wiring of your DimmerLink hardware
#ifndef USE_DIMMERLINK_CHANNELS
#define USE_DIMMERLINK_CHANNELS 4
#endifCâblage matériel I2C
Connexions des broches
Broches ESP32 par défaut :
| Broche DimmerLink | Broche ESP32 | Notes |
|---|---|---|
| VCC | 3.3V | DimmerLink accepte 1,8V, 3,3V ou 5V — aucun convertisseur de niveau requis |
| GND | GND | Masse commune |
| SDA | GPIO21 (par défaut) | Tout GPIO configuré comme I2C SDA dans Tasmota |
| SCL | GPIO22 (par défaut) | Tout GPIO configuré comme I2C SCL dans Tasmota |
Broches ESP8266 par défaut :
| Broche DimmerLink | Broche ESP8266 | Notes |
|---|---|---|
| VCC | 3.3V | Identique à ESP32 |
| GND | GND | Masse commune |
| SDA | GPIO4 (D2) | I2C SDA par défaut sur la plupart des cartes ESP8266 |
| SCL | GPIO5 (D1) | I2C SCL par défaut sur la plupart des cartes ESP8266 |
Sur les deux plateformes, les broches I2C peuvent être remappées via la configuration du module (Configuration > Configure Module).
Schéma
3.3V
|
4.7k | 4.7k
| |
MCU | | DimmerLink
SDA ------+-----+---- SDA
SCL ------------+---- SCL
GND ---------------- GND
3.3V ---------------- VCCRésistances de tirage
Des résistances de tirage externes sont requises. ESP32 et ESP8266 ont des résistances de tirage internes faibles (~45 kOhm) insuffisantes pour I2C.
| Longueur du fil | Valeur de tirage recommandée |
|---|---|
| Moins de 10 cm | 4,7 kOhm |
| 10 à 30 cm | 2,2 à 4,7 kOhm |
| Plus de 30 cm | 1 à 2,2 kOhm (non recommandé ; utiliser des fils plus courts) |
Placez les résistances entre les lignes SDA/SCL et 3,3V. Une paire de résistances sert l'ensemble du bus — n'ajoutez pas de résistances de tirage par appareil lorsque plusieurs appareils partagent le même bus.
Niveaux de tension
DimmerLink accepte une VCC de 1,8V à 5V et ses niveaux logiques correspondent à VCC. À 3,3V (niveau standard ESP32/ESP8266), aucun convertisseur de niveau n'est nécessaire.
Vitesse du bus I2C
L'appareil DimmerLink fonctionne à 100 kHz (mode standard). La vitesse I2C par défaut de Tasmota est appropriée. Ne configurez pas le bus I2C au-delà de 100 kHz pour cet appareil.
Deuxième bus I2C (ESP32)
Tasmota supporte deux bus I2C sur ESP32, ESP8266, ESP32-C6, ESP32-H2, ESP32-P4, ESP32-S2 et ESP32-S3. Le pilote scanne les deux bus automatiquement. Si vous avez d'autres appareils I2C sur le Bus 1 et souhaitez isoler DimmerLink sur le Bus 2, configurez la deuxième paire SDA/SCL dans la configuration du module de Tasmota et connectez DimmerLink là. Aucune modification du côté du pilote n'est nécessaire.
Compilation avec PlatformIO
Commande de compilation
# ESP8266 (standard Tasmota)
pio run -e tasmota
# ESP32 (standard)
pio run -e tasmota32
# ESP32-C3
pio run -e tasmota32c3
# ESP32-S3
pio run -e tasmota32s3Sélectionnez votre environnement cible dans platformio_override.ini sous default_envs.
Confirmer que le pilote est compilé
Après une compilation réussie, vérifiez que le pilote est inclus :
pio run -e tasmota32 2>&1 | grep -i dimmerlinkSi le pilote est compilé, vous verrez des références aux symboles Xdrv94 ou DimmerLink dans la sortie. Si rien n'apparaît, vérifiez que USE_DIMMERLINK est défini et que USE_I2C est actif pour l'environnement sélectionné.
Impact mémoire
| Ressource | Utilisation |
|---|---|
| RAM (heap) | ~40 octets par appareil ; moins de 250 octets pour 4 appareils à 4 canaux |
| Flash (code) | ~4 à 6 Ko selon la configuration de compilation |
Flasher le firmware
Via PlatformIO (USB)
Connectez la carte via USB et exécutez :
# ESP8266
pio run -e tasmota --target upload
# ESP32
pio run -e tasmota32 --target uploadPlatformIO détecte automatiquement le port série. Si plusieurs ports sont disponibles, spécifiez explicitement :
pio run -e tasmota32 --target upload --upload-port COM3Via OTA (interface web Tasmota)
Si l'appareil exécute déjà Tasmota :
- Compiler le firmware (ex.
pio run -e tasmota32) - Le binaire de sortie se trouve dans
.pio/build//firmware.bin - Dans l'interface web Tasmota : Firmware Upgrade > Upgrade by file upload
- Sélectionner
firmware.binet cliquer sur Start upgrade
Via esptool.py (manuel)
# ESP32
esptool.py --chip esp32 --port COM3 --baud 921600 \
write_flash -z 0x0 .pio/build/tasmota32/firmware.bin
# ESP8266
esptool.py --chip esp8266 --port COM3 --baud 921600 \
write_flash -z 0x0 .pio/build/tasmota/firmware.binAjustez --chip, --port et le chemin du firmware pour votre environnement.
Vérification
Sortie du journal série
Connectez un terminal série (115200 bauds, 8N1) et observez le journal de démarrage. Une détection réussie produit :
DLK: DimmerLink v1 at 0x50 bus1 (4ch, 50Hz, READY)Si aucun appareil DimmerLink n'est trouvé, aucune ligne DLK: n'apparaît dans le journal de démarrage.
Vérification par console
Après le démarrage, interroger l'appareil :
DlStatusUn appareil connecté répond avec :
{
"DimmerLink1": {
"Addr": "0x50",
"Bus": 1,
"Ready": true,
"FW": 1,
"ACFreq": 50,
"Fade": 0,
"Ch1": {"Level": 0, "Curve": "LINEAR"},
"Ch2": {"Level": 0, "Curve": "LINEAR"},
"Ch3": {"Level": 0, "Curve": "LINEAR"},
"Ch4": {"Level": 0, "Curve": "LINEAR"}
}
}Si la commande renvoie {"Command":"Unknown"}, le pilote n'est pas compilé.
Scan I2C
La commande de scan I2C intégrée à Tasmota confirme que l'appareil est sur le bus :
I2CScanConfirmation dans l'interface web
Naviguer vers http://. Avec DimmerLink détecté, la page affiche des curseurs de luminosité et des lignes de données de capteurs. L'absence de curseurs indique qu'aucun appareil n'a été détecté.