# Connexion à Streamlit

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

{% hint style="info" %}
Ce guide fait partie de la **Requête IoT** 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, consultez la [Sélection des outils BI](/docs/analytics/fr/iot-query/connection-setup/selecting-bi-tools.md) vue d’ensemble.
{% endhint %}

## Fonctionnalités du tableau de bord

* Afficher le nombre total d’objets
* Visualiser les statuts de déplacement (en mouvement/à l’arrêt/garé)
* Visualiser les états de connexion (actif/inactif/hors ligne)
* Tableau détaillé avec l’état actuel de tous les véhicules
* Filtrage par type de véhicule, groupe, état de déplacement et état 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 que Python 3.8 ou une version supérieure est 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 dans le répertoire 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 paramètre Streamlit</th><th>Notes</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 e-mail de bienvenue</td></tr><tr><td><strong>Port</strong></td><td><code>DB_PORT</code> dans <code>.env</code> fichier</td><td>La valeur par défaut est 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 votre base de données 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 sécurisé de base de données</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" %}
La `.env` fichier ne doit pas être inclus dans le contrôle de version (GitHub) afin de garantir la sécurité des identifiants. Le `.gitignore` fichier est déjà configuré pour exclure ce fichier.
{% endhint %}

## Lancement 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. Il vous suffit de modifier le fichier `moving_status_dashboard.py` et d’enregistrer 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 Streamlit intégrées : `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 adresse 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 les problèmes courants :

1. Mettre à jour les dépendances : `pip install -r requirements.txt --upgrade`
2. Vérifiez la compatibilité de Python : `python --version` (doit être 3.8 ou plus)
3. Lorsque vous modifiez le code, ajoutez des messages de débogage :

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

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

```
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 :

* Explorez les schémas de données disponibles en consultant la [Vue d’ensemble du schéma](/docs/analytics/fr/iot-query/schema-overview.md) section afin de mieux comprendre la structure et les relations des données.
* Commencez par des requêtes simples axées sur des entités métier spécifiques avant de créer des tableaux de bord complexes - consultez nos [exemples de requêtes](/docs/analytics/fr/example-queries.md) à titre de référence.

### **Assistance**

Pour toute question technique ou demande d’accès à la base de données de démonstration, veuillez contacter : <support@squaregps.com>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://navixy.com/docs/analytics/fr/iot-query/connection-setup/selecting-bi-tools/connecting-streamlit.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
