# cadMyDC - Alternative à MyDC Controls

*English version below*

**Version:** 1.6\
**Auteur:** Charles-Arthur DAVID\
**Plateforme:** Distech Controls Designer\
**Compatibilité:** Automates Eclypse (Version V1.19)\
**Version Facilities** Disponible dans ce projet : https://git.cadjou.net/DistechControls/cadMyDCFacilities

## Description

cadMyDC est un projet d'interface graphique automatique pour l'application Designer de Distech Controls. Il s'adapte aux points contenus dans le programme GFX en affichant les points par type, ainsi que les tendances, les programmes horaires, les alarmes et les points en dérogation. Il crée une interface utilisateur intuitive ressemblant à MyDC Control pour visualiser et contrôler les points BACnet des automates de la gamme Eclypse en version V1.

Ce projet offre une navigation structurée par catégories de points (entrées/sorties analogiques, digitales, multi-états, tendances, programmes horaires, etc.) avec support multilingue (Français/Anglais).

**Note importante :** Pour les projets avec un **ECY-Display ou Horyzon-C en BI**, MyDC Control pour les ECY V1 n'est pas disponible. Ce projet cadMyDC offre une alternative générique fonctionnelle.

## Fonctionnalités

- **Navigation par catégories** : Organisation automatique des points BACnet par type
  - Favoris (Favorites)
  - Entrées Analogiques (Analog Input)
  - Sorties Analogiques (Analog Output)
  - Valeurs Analogiques (Analog Value)
  - Entrées Digitales (Binary Input)
  - Sorties Digitales (Binary Output)
  - Valeurs Digitales (Binary Value)
  - Entrées Multi-états (Multi State Input)
  - Valeurs Multi-états (Multi State Value)
  - Tendances (Trend Log)
  - Programmes Horaires (Schedule)
  - Dérogations (Override)
  - Alarmes (Alarms)

- **Favoris** : Récupération automatique des favoris configurés dans l'automate (fichier `Project.gfx`) et affichage regroupé par groupe de favoris
- **Support multilingue** : Interface disponible en Français et Anglais
- **Thème clair/sombre** : Personnalisation de l'apparence selon les préférences
- **Interface responsive** : Adaptation automatique à différentes tailles d'écran

## Prérequis

- Automate **Eclypse V1.19** (minimum) de Distech Controls
- Accès réseau à l'automate
- **XpressNetwork Utilities** (pour l'importation via XNU) ou accès à l'**interface web Designer**
- **DC Library** (à importer séparément - obligatoire pour le bon fonctionnement du projet)

## Installation

### 1. Téléchargement du projet

Téléchargez la version souhaitée dans la section Paquets:

- [cadMyDC_V1.6.zip](https://git.cadjou.net/api/packages/DistechControls/generic/cadMyDC/1.6/cadMyDC_V1.6.zip) (avec Favoris)
- [cadMyDC_V1.5.zip](https://git.cadjou.net/api/packages/DistechControls/generic/cadMyDC/1.5/cadMyDC_V1.5.zip) (sans Favoris)

### 2. Importation dans Designer

#### a. Via l'interface web
1. Ouvrez l'interface web **Designer**
2. Dans le menu principal, allez dans **Projet > Importer un projet** (ou **Project > Import Project**)
3. Naviguez jusqu'au dossier qui contient `cadMyDC_V1.XX.zip`
4. Sélectionnez le fichier zip **cadMyDC_V1.XX.zip**
5. Cliquez sur **Ok**

#### b. Via XpressNetwork Utilities
1. Ouvrez XpressNetwork Utilities
2. Ajoutez le ou les automates ECY V1.19 (minimum) soit avec le Find / l'import ou manuellement
3. Sélectionnez le ou les automates souhaités
4. Cliquer sur l'icone Eclypse Designer
3. Naviguez jusqu'au dossier qui contient `cadMyDC_V1.XX.zip`
4. Sélectionnez le fichier zip **cadMyDC_V1.XX.zip**
5. Cliquez sur **Ok**

### 3. Importer la DC Library

**IMPORTANT :** Le projet cadMyDC nécessite impérativement la **DC Library** pour fonctionner correctement.
Il est disponible dans Software Center.
Importez la DC Library de la même manière que le projet cadMyDC en suivant les mêmes étapes (via l'interface web ou via XpressNetwork Utilities).

## Structure du projet

```
cadMyDC/
├── _proj.json              # Configuration du projet
├── index.dg5               # Page principale avec navigation
├── pages/                  # Pages spécialisées
│   ├── alarms.dg5         # Gestion des alarmes
│   ├── loadingPage.dg5    # Page de chargement
│   ├── menuFavorites.dg5  # Menu des favoris (regroupement par groupe)
│   ├── noData.dg5         # Page sans données
│   ├── override.dg5       # Gestion des dérogations
│   ├── schedule.dg5       # Gestion des programmes horaires
│   ├── showData.dg5       # Affichage des données
│   ├── showDataFav.dg5    # Affichage des points favoris
│   └── trend.dg5          # Affichage des tendances
├── js/                     # Scripts et bibliothèques
│   ├── getFavorites.dg5   # Récupération/parsing des favoris depuis Project.gfx
│   └── libraries/         # Bibliothèques tierces (jQuery, JSZip) pour la décompression
├── data/                   # Fichiers CSV générés (favoris, utilisateurs, groupes)
├── palette/                # Widgets personnalisés (vide actuellement)
└── fonts/                  # Polices personnalisées
```

## Utilisation

### Accès à l'interface

Une fois le projet importé et l'automate configuré, accédez à l'interface via le navigateur web en utilisant l'une des URL suivantes :

#### Français
```
https://[IP_AUTOMATE]/eclypse/envysion/viewer.html?proj=cadMyDC&lan=fr&force-redirect=true
```

#### Anglais
```
https://[IP_AUTOMATE]/eclypse/envysion/viewer.html?proj=cadMyDC&force-redirect=true
```

**Note :** Remplacez `[IP_AUTOMATE]` par l'adresse IP de votre automate Eclypse.
**Note :** L'option `force-redirect=true` bloque l'accès aux autres pages web de l'automate si utilisateur n'est pas admin

### Configuration de la page d'accueil utilisateur

Vous pouvez configurer l'URL avec le paramètre de langue dans la **page d'accueil utilisateur** de l'automate pour définir la langue par défaut.

### Navigation

L'interface présente un menu latéral avec toutes les catégories de points détectées automatiquement. Cliquez sur une catégorie pour afficher les points correspondants.

### Visualisation des données

- Les **favoris** (Favorites) affichent les points marqués comme favoris dans l'automate, regroupés par groupe de favoris
- Les **points standards** (AI, AO, AV, BI, BO, BV, MSI, MSV) affichent leurs valeurs et permettent les modifications (selon les droits)
- Les **tendances** (Trend Log) affichent les graphiques historiques
- Les **programmes** (Schedule) permettent la visualisation et modification des plannings
- Les **dérogations** (Override) permettent de forcer temporairement des valeurs
- Les **alarmes** (Alarms) affichent l'état des alarmes actives

## Dépannage

### Le projet ne s'importe pas

- Vérifiez que vous importez bien le fichier ZIP `cadMyDC_V1.XX.zip`
- Assurez-vous d'avoir importé la **DC Library** avant ou après le projet
- Vérifiez que votre automate est en version **V1.19 minimum**

### Aucun point n'apparaît

- Vérifiez que l'automate est bien connecté au réseau
- Assurez-vous que l'action `Add Local Device tree` s'est exécutée (vérifiez dans `/Data/Local Device`)
- Vérifiez que votre programme GFX contient des points BACnet
- Actualisez la page du navigateur

### Problème de langue

- Vérifiez que vous utilisez le bon paramètre dans l'URL : `&lan=fr` pour le français
- Pour forcer la langue française, utilisez l'URL complète : `/eclypse/envysion/viewer.html?proj=cadMyDC&lan=fr`
- Sans paramètre de langue, l'interface s'affiche en anglais par défaut

### Le projet ne fonctionne pas correctement

- **Vérifiez impérativement que la DC Library est importée** - c'est la cause la plus fréquente de dysfonctionnement
- Vérifiez les logs dans l'interface Designer pour identifier les erreurs
- Réimportez le projet et la DC Library si nécessaire

## Support et Contribution

**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

### Comment obtenir de l'aide

La **seule façon de remonter un problème ou une suggestion** est de passer par le système de tickets sur Gitea :

**Ouvrir un ticket sur : https://git.cadjou.net/DistechControls/cadMyDC/issues**

Toute demande de support adressée à Distech Controls concernant ce projet sera refusée.

## Historique des versions

### Version 1.6 (Actuelle)
- Nouvelle catégorie **Favoris** : récupération automatique des favoris depuis le `Project.gfx` de l'automate, affichage regroupé par groupe de favoris
- Correction des libellés français du menu (« Entrées Digitales », « Entrées Multi-états »)

### Version 1.5
- Interface de navigation structurée par catégories
- Support multilingue FR/EN (via paramètre URL)
- Thèmes clair/sombre
- Pages spécialisées pour alarmes, tendances, programmes, dérogations
- Auto-découverte des points BACnet
- Compatible Eclypse V1.19+

---

# cadMyDC - MyDC Controls of Equivalence

**Version:** 1.6\
**Author:** Charles-Arthur DAVID\
**Platform:** Distech Controls Designer\
**Compatibility:** Eclypse Controllers (Version V1.19)\
**Facilities Version** Available in this project : https://git.cadjou.net/DistechControls/cadMyDCFacilities

## Description

cadMyDC is an automatic graphical interface project for Distech Controls Designer application. It adapts to the points contained in the GFX program by displaying points by type, as well as trends, schedules, alarms and override points. It creates an intuitive user interface similar to MyDC Control to view and control BACnet points of Eclypse V1 series controllers.

This project offers structured navigation by point categories (analog/digital/multi-state inputs/outputs, trends, schedules, etc.) with multilingual support (French/English).

**Important note:** For projects with an **ECY-Display or Horyzon-C in BI**, MyDC Control for ECY V1 is not available. This cadMyDC project offers a functional generic alternative.

## Features

- **Navigation by categories**: Automatic organization of BACnet points by type
  - Favorites
  - Analog Inputs
  - Analog Outputs
  - Analog Values
  - Binary Inputs
  - Binary Outputs
  - Binary Values
  - Multi State Inputs
  - Multi State Values
  - Trend Logs
  - Schedules
  - Overrides
  - Alarms

- **Favorites**: Automatic retrieval of the favorites configured in the controller (`Project.gfx` file) and display grouped by favorite group
- **Multilingual support**: Interface available in French and English
- **Light/Dark theme**: Appearance customization according to preferences
- **Responsive interface**: Automatic adaptation to different screen sizes

## Prerequisites

- **Eclypse V1.19** (minimum) controller from Distech Controls
- Network access to the controller
- **XpressNetwork Utilities** (for import via XNU) or access to **Designer web interface**
- **DC Library** (to be imported separately - mandatory for proper project operation)

## Installation

### 1. Project Download

Download the desired version from the Packages section:

- [cadMyDC_V1.6.zip](https://git.cadjou.net/api/packages/DistechControls/generic/cadMyDC/1.6/cadMyDC_V1.6.zip) (with Favorites)
- [cadMyDC_V1.5.zip](https://git.cadjou.net/api/packages/DistechControls/generic/cadMyDC/1.5/cadMyDC_V1.5.zip) (without Favorites)

### 2. Import into Designer

#### a. Via web interface
1. Open the **Designer** web interface
2. In the main menu, go to **Project > Import Project**
3. Navigate to the folder containing `cadMyDC_V1.XX.zip`
4. Select the zip file **cadMyDC_V1.XX.zip**
5. Click **Ok**

#### b. Via XpressNetwork Utilities
1. Open XpressNetwork Utilities
2. Add the ECY V1.19 (minimum) controller(s) either with Find/Import or manually
3. Select the desired controller(s)
4. Click on the Eclypse Designer icon
3. Navigate to the folder containing `cadMyDC_V1.XX.zip`
4. Select the zip file **cadMyDC_V1.XX.zip**
5. Click **Ok**

### 3. Import DC Library

**IMPORTANT:** The cadMyDC project absolutely requires the **DC Library** to function properly.
It is available in Software Center.
Import the DC Library the same way as the cadMyDC project by following the same steps (via web interface or via XpressNetwork Utilities).

## Project Structure

```
cadMyDC/
├── _proj.json              # Project configuration
├── index.dg5               # Main page with navigation
├── pages/                  # Specialized pages
│   ├── alarms.dg5         # Alarm management
│   ├── loadingPage.dg5    # Loading page
│   ├── menuFavorites.dg5  # Favorites menu (grouped by group)
│   ├── noData.dg5         # No data page
│   ├── override.dg5       # Override management
│   ├── schedule.dg5       # Schedule management
│   ├── showData.dg5       # Data display
│   ├── showDataFav.dg5    # Favorite points display
│   └── trend.dg5          # Trend display
├── js/                     # Scripts and libraries
│   ├── getFavorites.dg5   # Favorites retrieval/parsing from Project.gfx
│   └── libraries/         # Third-party libraries (jQuery, JSZip) for unzipping
├── data/                   # Generated CSV files (favorites, users, groups)
├── palette/                # Custom widgets (currently empty)
└── fonts/                  # Custom fonts
```

## Usage

### Interface Access

Once the project is imported and the controller configured, access the interface via web browser using one of the following URLs:

#### French
```
https://[CONTROLLER_IP]/eclypse/envysion/viewer.html?proj=cadMyDC&lan=fr&force-redirect=true
```

#### English
```
https://[CONTROLLER_IP]/eclypse/envysion/viewer.html?proj=cadMyDC&force-redirect=true
```

**Note:** Replace `[CONTROLLER_IP]` with the IP address of your Eclypse controller.
**Note:** The `force-redirect=true` option blocks access to other web pages of the controller if user is not admin

### User Home Page Configuration

You can configure the URL with the language parameter in the controller's **user home page** to set the default language.

### Navigation

The interface presents a side menu with all automatically detected point categories. Click on a category to display corresponding points.

### Data Visualization

- **Favorites** display the points marked as favorites in the controller, grouped by favorite group
- **Standard points** (AI, AO, AV, BI, BO, BV, MSI, MSV) display their values and allow modifications (according to rights)
- **Trends** (Trend Log) display historical graphs
- **Schedules** allow visualization and modification of schedules
- **Overrides** allow temporary forcing of values
- **Alarms** display the status of active alarms

## Troubleshooting

### Project won't import

- Verify that you are importing the ZIP file `cadMyDC_V1.XX.zip`
- Make sure you have imported the **DC Library** before or after the project
- Verify that your controller is version **V1.19 minimum**

### No points appear

- Verify that the controller is properly connected to the network
- Make sure the `Add Local Device tree` action has executed (check in `/Data/Local Device`)
- Verify that your GFX program contains BACnet points
- Refresh the browser page

### Language issue

- Verify that you are using the correct parameter in the URL: `&lan=fr` for French
- To force French language, use the complete URL: `/eclypse/envysion/viewer.html?proj=cadMyDC&lan=fr`
- Without language parameter, the interface displays in English by default

### Project doesn't work properly

- **Verify that the DC Library is imported** - this is the most common cause of malfunction
- Check the logs in the Designer interface to identify errors
- Reimport the project and DC Library if necessary

## Support and Contribution

**IMPORTANT: This project is an independent personal development.**

- 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

### How to Get Help

The **only way to report a problem or suggestion** is through the ticket system on Gitea:

**Open a ticket at: https://git.cadjou.net/DistechControls/cadMyDC/issues**

Any support request sent to Distech Controls regarding this project will be refused.

## Version History

### Version 1.6 (Current)
- New **Favorites** category: automatic retrieval of favorites from the controller's `Project.gfx`, displayed grouped by favorite group
- Fixed French menu labels (« Entrées Digitales », « Entrées Multi-états »)

### Version 1.5
- Structured navigation interface by categories
- Multilingual support FR/EN (via URL parameter)
- Light/dark themes
- Specialized pages for alarms, trends, schedules, overrides
- Auto-discovery of BACnet points
- Compatible with Eclypse V1.19+

---

## Changelog

Le format est basé sur [Keep a Changelog](https://keepachangelog.com/fr/1.0.0/).

### [1.6] - 2026-06-10

#### Ajouté
- Catégorie **Favoris** dans la navigation principale.
- `js/getFavorites.dg5` : téléchargement du `Project.gfx` de l'automate, décompression côté navigateur (JSZip) et extraction de `Favorites.xml` vers `data/Favorites.csv`.
- `js/libraries/` : bibliothèques tierces (jQuery, JSZip, `getZip.html`, `dgframe.js`) pour la décompression.
- `pages/menuFavorites.dg5` : menu des favoris regroupés par groupe.
- `pages/showDataFav.dg5` : affichage des points d'un groupe de favoris.

#### Corrigé
- Libellés français du menu (`index.dg5`) : « Entrées Digitales » et « Entrées Multi-états ».

### [1.5]

#### Ajouté
- Interface de navigation structurée par catégories de points BACnet.
- Support multilingue FR/EN (via paramètre URL).
- Thèmes clair/sombre.
- Pages spécialisées pour les alarmes, tendances, programmes horaires et dérogations.
- Auto-découverte des points BACnet.
- Compatibilité Eclypse V1.19+.
