diff --git a/README.md b/README.md index c45624f..0ebe055 100644 --- a/README.md +++ b/README.md @@ -1,29 +1,43 @@ + # 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 +> **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. --- +## Prérequis + +- Windows 10 ou Windows 11 +- Automates **Distech Controls ECY Facilities (V2)** +- Être connecté au même réseau que les automates (réseau local ou VPN) +- Avoir les identifiants de connexion aux automates (nom d'utilisateur et mot de passe) + ## 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 +## Utilisation avec cadMasterCLI -- PowerShell 5.1+ (inclus dans Windows 10/11) -- Accès réseau aux automates Eclypse +Ce script peut être piloté depuis **[cadMasterCLI](https://git.cadjou.net/DistechControls/cadMasterCLI)**, qui évite d'avoir à utiliser PowerShell manuellement. -## Utilisation +1. Lancez `cadMasterCLI.ps1` +2. Sélectionnez **DaliACLI** dans la liste des scripts à gauche. +3. Choisissez l'action `Read` ou `Write` (RadioButtons). +4. Renseignez `CsvInput` avec le bouton **Parcourir...** (voir le [format CSV d'entrée](#format-csv-dentrée-automates) ci-dessous). +5. Renseignez `Username` / `Password` si besoin (sinon `admin` / vide par défaut). +6. Cliquez sur **Lancer le script** et suivez la progression dans le journal d'exécution intégré. + +## Utilisation en ligne de commande (script autonome) ### Lecture des configurations @@ -51,7 +65,7 @@ Génère un fichier `dali_YYYY-MM-DD_HHhmm.csv` avec les propriétés de chaque Get-Help .\DaliACLI.ps1 -Detailed ``` -## Format CSV d'entrée (automates) +### Format CSV d'entrée (automates) Séparateur : point-virgule (`;`) @@ -63,7 +77,7 @@ 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) +### Format CSV de sortie (Read) Une ligne par sortie DALI : @@ -86,17 +100,17 @@ Une ligne par sortie DALI : | DimmingTime | Temps de variation (secondes) | | MaxDimmingLevel | Niveau maximum de variation | -## Filtrage +### Filtrage Seuls les modules de type **ECxLightDaliA** sont traités. Les autres types (ECxLight4Dali, etc.) sont ignorés automatiquement. -## API +### 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 +### Structure du projet ``` daliA/ @@ -110,3 +124,130 @@ daliA/ │ └── daliacli.md # Plan de développement └── README.md ``` + + +# DaliACLI + +PowerShell CLI for managing addressable DALI output configurations (**ECxLightDaliA**) on Distech Controls Eclypse controllers. + +--- + +> **IMPORTANT: This project is an independent personal project.** +> +> This project was developed by Charles-Arthur DAVID on a personal basis. +> Distech Controls is not responsible for this project and does not support it. +> No support request will be handled by Distech Controls. +> Distech Controls provides no warranty or technical assistance for this project. + +--- + +## Requirements + +- Windows 10 or Windows 11 +- **Distech Controls ECY Facilities (V2)** controllers +- Connected to the same network as the controllers (local network or VPN) +- Controller login credentials (username and password) + +## Features + +- **Read**: Reads the ECxLightDaliA modules configuration and generates a CSV report (one line per output) +- **Write**: Updates DALI output properties from the enriched CSV + +## Usage with cadMasterCLI + +This script can be run from **[cadMasterCLI](https://git.cadjou.net/DistechControls/cadMasterCLI)**, which avoids having to use PowerShell manually. + +1. Launch `cadMasterCLI.ps1` +2. Select **DaliACLI** in the script list on the left. +3. Choose the `Read` or `Write` action (RadioButtons). +4. Set `CsvInput` using the **Browse...** button (see the [input CSV format](#input-csv-format-controllers) below). +5. Set `Username` / `Password` if needed (otherwise defaults to `admin` / empty). +6. Click **Run script** and follow the progress in the built-in execution log. + +## Command-line usage (standalone script) + +### Reading configurations + +```powershell +.\DaliACLI.ps1 -Action Read -CsvInput ".\automates.csv" +``` + +Generates a `dali_YYYY-MM-DD_HHhmm.csv` file with the properties of each output. + +### Writing configurations + +```powershell +.\DaliACLI.ps1 -Action Write -CsvInput ".\dali_2026-04-02_14h30.csv" +``` + +### With password + +```powershell +.\DaliACLI.ps1 -Action Read -CsvInput ".\automates.csv" -Password "MyPassword" +``` + +### Help + +```powershell +Get-Help .\DaliACLI.ps1 -Detailed +``` + +### Input CSV format (controllers) + +Separator: semicolon (`;`) + +```csv +Hostname;Current Ip;HttpPort;HttpsPort +Eclypse-RDC;192.168.1.11;0;443 +Eclypse-Etage1;192.168.1.12;0;443 +``` + +Optional columns: `Username`, `Password` (overrides the default `admin` / empty credentials). + +### Output CSV format (Read) + +One line per DALI output: + +| Column | Description | +|---------|-------------| +| Hostname | Controller name | +| Current Ip | IP address | +| HttpPort | HTTP port | +| HttpsPort | HTTPS port | +| ModuleKey | Module identifier | +| ModuleName | Module name | +| OutputKey | Output identifier | +| OutputName | Output name | +| ControlGearKey | DALI control gear key | +| Groups | Active DALI groups (e.g. `1,3,5`) | +| SystemFailLevel | Level on system failure | +| PowerOnLevel | Level at power-on | +| MinDimmingLevel | Minimum dimming level | +| DefaultValue | Default value | +| DimmingTime | Dimming time (seconds) | +| MaxDimmingLevel | Maximum dimming level | + +### Filtering + +Only **ECxLightDaliA** module types are processed. Other types (ECxLight4Dali, etc.) are automatically ignored. + +### API + +- **Endpoint**: `/api/rest/v2/services/subnet/devices/light-sunblind/modules` +- **Auth**: Basic Auth +- **TLS 1.2** with self-signed certificate support + +### Project structure + +``` +daliA/ +├── DaliACLI.ps1 # Main script +├── modules/ +│ ├── Logger.psm1 # Console + file logging +│ ├── CsvHandler.psm1 # CSV read/write +│ ├── ApiClient.psm1 # REST API communication +│ └── DaliParser.psm1 # DALI JSON parsing +├── plan/ +│ └── daliacli.md # Development plan +└── README.md +```