# Connexion à Streamlit

Dans cet article, nous expliquerons le processus de création d’un tableau de bord avec Streamlit. Pour rendre cela plus illustratif, nous créerons un tableau de bord qui se connecte à la base de données analytique et surveille l’état en temps réel des véhicules.

{% hint style="info" %}
Ce guide fait partie de la **IoT Query** suite de documentation et couvre spécifiquement la connexion de Power BI à votre entrepôt de données. Si vous hésitez encore sur l’outil BI à utiliser, référez-vous à la [Sélection d'outils BI](https://www.navixy.com/docs/analytics/fr/iot-query/connection-setup/selecting-bi-tools) vue d’ensemble.
{% endhint %}

## Fonctionnalités du tableau de bord

* Afficher le nombre total d'objets
* Visualiser les états de mouvement (en mouvement/arrêté/garé)
* Visualiser les statuts de connexion (actif/inactif/hors ligne)
* Tableau détaillé avec le statut actuel de tous les véhicules
* Filtrage par type de véhicule, groupe, statut de mouvement et statut de connexion
* Actualisation automatique des données toutes les 5 minutes
* Basculer entre les thèmes clair et sombre

## Exigences techniques

* Python 3.8+
* Accès Internet pour la connexion à la base de données
* Minimum 2 Go de RAM

## Installation et configuration

### 1. Cloner le dépôt

```sh
git clone https://github.com/SquareGPS/bi-intergrations.git
```

### 2. Créer un environnement virtuel

```
# Windows
python -m venv venv
venv\Scripts\activate

# Linux/macOS
python -m venv venv
source venv/bin/activate
```

{% hint style="danger" %}
Assurez-vous d’avoir Python 3.8 ou une version supérieure installé. Vous pouvez vérifier la version avec la commande `python --version`.
{% endhint %}

### 3. Installer les dépendances

Après avoir activé l’environnement virtuel, installez toutes les bibliothèques nécessaires :

```sh
pip install -r requirements.txt
```

## Connexion à la base de données

### 1. Créer un fichier de configuration

Créez un `.env` fichier à la racine du projet :

```
DB_HOST=your_db_host
DB_NAME=your_db_name
DB_USER=your_db_user
DB_PASS=your_db_password
DB_PORT=5432
DB_SCHEMA=raw_business_data
```

#### Référence des paramètres de connexion

<table><thead><tr><th width="188.81817626953125">Paramètre Lakehouse</th><th>Emplacement du réglage Streamlit</th><th>Remarques</th></tr></thead><tbody><tr><td><strong>Hôte</strong></td><td><code>DB_HOST</code> dans <code>.env</code> fichier</td><td>L’adresse du serveur de base de données fournie dans votre email de bienvenue</td></tr><tr><td><strong>Port</strong></td><td><code>DB_PORT</code> dans <code>.env</code> fichier</td><td>Par défaut, 5432 pour PostgreSQL</td></tr><tr><td><strong>Nom de la base de données</strong></td><td><code>DB_NAME</code> dans <code>.env</code> fichier</td><td>Le nom de base de données qui vous est attribué</td></tr><tr><td><strong>Nom d'utilisateur</strong></td><td><code>DB_USER</code> dans <code>.env</code> fichier</td><td>Votre nom d'utilisateur de base de données</td></tr><tr><td><strong>Mot de passe</strong></td><td><code>DB_PASS</code> dans <code>.env</code> fichier</td><td>Votre mot de passe de base de données sécurisé</td></tr><tr><td><strong>Mode SSL</strong></td><td>Chaîne de connexion dans le code Python</td><td>Définir sur <strong>require</strong> dans la chaîne de connexion</td></tr><tr><td><strong>Schéma</strong></td><td><code>DB_SCHEMA</code> dans <code>.env</code> fichier</td><td>Spécifiez le schéma (<strong>raw_business_data</strong> ou <strong>raw_telematics_data</strong>)</td></tr></tbody></table>

### 2. Obtention des identifiants

Demandez les identifiants pour vous connecter à la base de données de démonstration en contactant l’administrateur.

{% hint style="info" %}
Le `.env` le fichier ne doit pas être inclus dans le contrôle de version (GitHub) pour garantir la sécurité des identifiants. Le `.gitignore` est déjà configuré pour exclure ce fichier.
{% endhint %}

## Exécution du tableau de bord

Après avoir configuré la connexion à la base de données, démarrez le tableau de bord avec la commande :

```
streamlit run moving_status_dashboard.py
```

Après le lancement, vous verrez un message similaire à :

```
  Vous pouvez maintenant voir votre application Streamlit dans votre navigateur.

  URL locale : http://localhost:8501
  URL réseau : http://192.168.1.5:8501
```

Ouvrez l’URL spécifiée dans votre navigateur. Le tableau de bord sera disponible à <http://localhost:8501> (ou à l’URL réseau si vous souhaitez l’ouvrir depuis un autre appareil sur le réseau).

## Développement de composants personnalisés

Si vous souhaitez modifier le tableau de bord ou créer de nouveaux composants :

### 1. Modifier le tableau de bord existant

Streamlit recharge automatiquement l’application lorsque vous modifiez le code source. Éditez simplement le `moving_status_dashboard.py` fichier et enregistrez vos modifications.

### 2. Ajouter de nouvelles visualisations

Pour ajouter de nouveaux graphiques et diagrammes, utilisez les bibliothèques :

* Plotly : `import plotly.express as px` ou `import plotly.graph_objects as go`
* Visualisations intégrées de Streamlit : `st.bar_chart()`, `st.line_chart()`, etc.

Exemple d’ajout d’un nouveau graphique :

```python
import plotly.express as px

# Get data from the database
df = ... # your database query

# Create chart
fig = px.pie(df, values='count', names='status', title='Vehicle Statuses')
st.plotly_chart(fig, use_container_width=True)
```

### 3. Débogage

Pour le débogage, utilisez

```python
# Output to Streamlit interface
st.write(f"Debug: {your_variable}")

# Output to console
print(f"Console debug: {your_variable}")

# Extended data output
st.json(data_dict)
st.dataframe(pandas_dataframe)
```

## Dépannage

### Problèmes de connexion à la base de données

* **Erreur de connexion :** Vérifiez l’exactitude des identifiants dans le `.env` fichier et la disponibilité de la base de données
* **Erreur SSL :** Assurez-vous que votre IP figure sur la liste d’autorisation pour l’accès à la base de données
* **Erreurs de délai d’attente :** Vérifiez la stabilité de votre connexion Internet et les paramètres du pare-feu

### Problèmes de dépendances

**Erreur lors de l’installation de psycopg2-binary :**

* Windows : `pip install pipwin && pipwin install psycopg2-binary`
* Linux : `sudo apt install python3-dev libpq-dev`
* macOS : `brew install postgresql`

**Conflits de dépendances :**

* Créez un nouvel environnement virtuel
* Installez les dépendances une par une, en commençant par streamlit

### Autres problèmes

Voici quelques astuces qui peuvent vous aider à résoudre des problèmes courants :

1. Mettre à jour les dépendances : `pip install -r requirements.txt --upgrade`
2. Vérifier la compatibilité Python : `python --version` (doit être 3.8+)
3. Lors de la modification du code, incluez des messages de débogage :

```
st.write(f"Debug: {your_variable}")
```

4. Erreurs de cache Streamlit : arrêtez l’application et exécutez avec `--clear_cache` indicateur :

```
streamlit run moving_status_dashboard.py --clear_cache
```

## Étapes suivantes

Après avoir connecté avec succès Power BI à votre instance Private Telematics Lakehouse, nous vous recommandons de :

* Explorer les schémas de données disponibles en consultant la section [Aperçu du schéma](https://www.navixy.com/docs/analytics/fr/iot-query/schema-overview) pour mieux comprendre la structure et les relations des données.
* Commencez par des requêtes simples centrées sur des entités métier spécifiques avant de construire des tableaux de bord complexes - consultez nos [requêtes d’exemple](https://www.navixy.com/docs/analytics/fr/example-queries) à titre de référence.

### **Assistance**

Pour des questions techniques ou des demandes d’accès à la base de données de démonstration, veuillez contacter : <support@squaregps.com>
