Création du projet DaliACLI

- CLI PowerShell pour la gestion des sorties DALI adressable (ECxLightDaliA)
  - Action Read : rapport CSV des configurations (une ligne par output)
  - Action Write : modification des propriétés via POST JSON
  - Fallback curl.exe -k pour les automates avec problèmes SSL
This commit is contained in:
2026-04-03 08:42:23 +02:00
commit 89bf57b665
7 changed files with 868 additions and 0 deletions

112
README.md Normal file
View File

@@ -0,0 +1,112 @@
# 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
```