# DaliACLI CLI PowerShell pour la gestion des configurations de sorties DALI adressable (**ECxLightDaliA**) sur des automates Distech Controls Eclypse. --- IMPORTANT : Ce projet est un développement personnel indépendant. Ce projet a été développé par Charles-Arthur DAVID à titre personnel Distech Controls n'est pas responsable de ce projet et ne le supporte pas Aucune demande de support ne sera prise en charge par Distech Controls Distech Controls ne fournit aucune garantie ni assistance technique pour ce projet --- ## Fonctionnalités - **Read** : Lit la configuration des modules ECxLightDaliA et génère un rapport CSV (une ligne par sortie) - **Write** : Modifie les propriétés des sorties DALI à partir du CSV enrichi ## Prérequis - PowerShell 5.1+ (inclus dans Windows 10/11) - Accès réseau aux automates Eclypse ## Utilisation ### Lecture des configurations ```powershell .\DaliACLI.ps1 -Action Read -CsvInput ".\automates.csv" ``` Génère un fichier `dali_YYYY-MM-DD_HHhmm.csv` avec les propriétés de chaque sortie. ### Écriture des configurations ```powershell .\DaliACLI.ps1 -Action Write -CsvInput ".\dali_2026-04-02_14h30.csv" ``` ### Avec mot de passe ```powershell .\DaliACLI.ps1 -Action Read -CsvInput ".\automates.csv" -Password "MonMotDePasse" ``` ### Aide ```powershell Get-Help .\DaliACLI.ps1 -Detailed ``` ## Format CSV d'entrée (automates) Séparateur : point-virgule (`;`) ```csv Hostname;Current Ip;HttpPort;HttpsPort Eclypse-RDC;192.168.1.11;0;443 Eclypse-Etage1;192.168.1.12;0;443 ``` Colonnes optionnelles : `Username`, `Password` (surcharge les credentials par défaut `admin` / vide). ## Format CSV de sortie (Read) Une ligne par sortie DALI : | Colonne | Description | |---------|-------------| | Hostname | Nom de l'automate | | Current Ip | Adresse IP | | HttpPort | Port HTTP | | HttpsPort | Port HTTPS | | ModuleKey | Identifiant du module | | ModuleName | Nom du module | | OutputKey | Identifiant de la sortie | | OutputName | Nom de la sortie | | ControlGearKey | Clé du control gear DALI | | Groups | Groupes DALI actifs (ex: `1,3,5`) | | SystemFailLevel | Niveau en cas de défaillance système | | PowerOnLevel | Niveau à la mise sous tension | | MinDimmingLevel | Niveau minimum de variation | | DefaultValue | Valeur par défaut | | DimmingTime | Temps de variation (secondes) | | MaxDimmingLevel | Niveau maximum de variation | ## Filtrage Seuls les modules de type **ECxLightDaliA** sont traités. Les autres types (ECxLight4Dali, etc.) sont ignorés automatiquement. ## API - **Endpoint** : `/api/rest/v2/services/subnet/devices/light-sunblind/modules` - **Auth** : Basic Auth - **TLS 1.2** avec support des certificats auto-signés ## Structure du projet ``` daliA/ ├── DaliACLI.ps1 # Script principal ├── modules/ │ ├── Logger.psm1 # Logging console + fichier │ ├── CsvHandler.psm1 # Lecture/écriture CSV │ ├── ApiClient.psm1 # Communication REST API │ └── DaliParser.psm1 # Parsing JSON DALI ├── plan/ │ └── daliacli.md # Plan de développement └── README.md ```