Présentation et documentation du plugin Bosch eBike pour Jeedom

Le plugin Bosch eBike permet de superviser vos vélos électriques Bosch depuis Jeedom. Il se connecte aux applications eBike Flow, eBike Connect ou COBI de Bosch pour récupérer toutes les informations de vos vélos et activités.
La communication se fait via l’API eBike Flow de Bosch, sans connexion directe entre Jeedom et vos vélos. Toutes les informations disponibles sont automatiquement récupérées et les commandes générées dépendent des données remontées par l’API.

Le plugin supporte tous les vélos électriques Bosch équipés d’un système compatible avec l’une des applications suivantes :

  • eBike Flow : Application moderne avec interface repensée (testé et fonctionnel)
  • eBike Connect : Application historique toujours supportée (en test)
  • COBI : Application pour systèmes COBI.Bike (en test)

✨ Fonctionnalités

Synchronisation automatique

  • Découverte automatique de tous vos vélos eBike et des activités
  • Mise à jour des données via API
  • Rafraîchissement périodique configurable (cron)

Supervision complète

  • Informations vélo : État de la batterie, kilométrage total, dernières activités
  • Activités : Historique complet des trajets avec statistiques détaillées
  • Notifications : Récupération des alertes de l’application

📊Graphiques interactifs des activités

Prérequis

  • Jeedom 4.4 ou supérieur
  • PHP 7.4+ avec extensions : openssl, json, pcntl, sockets (inclus dans le core Jeedom)
  • Un compte eBike Flow, eBike Connect ou COBI avec au moins un vélo enregistré
  • Un compte développeur Bosch (gratuit) pour créer une application OAuth2

Installation

  1. Allez dans Plugins → Gestion des plugins
  2. Recherchez « Bosch eBike »
  3. Cliquez sur Installer

Configuration du plugin

La configuration nécessite plusieurs étapes détaillées ci-dessous.

Étape 1 : Créer une application OAuth2 chez Bosch

Avant de configurer le plugin dans Jeedom, vous devez créer une application OAuth2 sur le portail développeur de Bosch : https://portal.bosch-ebike.com/

  1. Remplissez les informations suivantes :
  • Application Name : « Jeedom eBike » (ou le nom de votre choix)
  • Redirect URI : https://VOTRE_JEEDOM/plugins/bosch_ebike/core/php/oauth2callback.php?k=MON_API_KEY
    Remplacez VOTRE_JEEDOM par l’adresse de votre Jeedom (ex: mondomicile.duckdns.org) et MON_API_KEY par l’API du plugin
  • Login URL : https://VOTRE_JEEDOM/plugins/bosch_ebike/core/php/oauth2callback.php
  • Soumettez l’application.
  • Notez le Client ID généré (vous en aurez besoin dans Jeedom)
  • (optionnel) Notez le Client Secret si vous avez coché « Confidential client« 

Étape 2 : Configurer le plugin dans Jeedom

Une fois votre application Bosch créée, configurez le plugin dans Jeedom.

  1. Dans Jeedom, allez dans Plugins → Communication → Bosch eBike
  2. Cliquez sur l’onglet Configuration
  3. Sélectionnez l’application de votre vélo :
  1. Collez le Client ID OAuth2 obtenu à l’étape précédente
  2. (optionnel) Collez le Client Secret OAuth2 obtenu à l’étape précédente
  3. Cliquez sur Sauvegarder

Étape 3 : Authentification avec SingleKey ID

  1. Cliquez sur le bouton « Se connecter avec SingleKey ID »
  2. Vous êtes redirigé vers le portail d’authentification Bosch
  3. Connectez-vous avec vos identifiants eBike Flow / eBike Connect / COBI
  4. Autorisez l’application à accéder à vos données sur https://flow.bosch-ebike.com/data-act
  5. Si votre Jeedom n’est pas joignable, le bouton ne pourra pas rester activé
  6. Les tokens OAuth2 sont automatiquement générés et stockés

✅ Si la connexion réussit, un message de confirmation s’affiche sur la nouvelle page.

Étape 4 : Paramétrer la synchronisation

  1. Toujours dans l’onglet Configuration, descendez jusqu’à Synchronisation automatique
  2. Choisissez la fréquence de rafraîchissement des données :
    • Jamais
    • Toutes les minutes
    • Toutes les 5 minutes (minimum recommandé)
    • Toutes les 10 minutes
    • Toutes les 15 minutes
    • Toutes les 30 minutes
    • Toutes les heures
  3. Cliquez sur Sauvegarder

Étape 5 : Gestion des tokens OAuth2

Le plugin propose plusieurs outils pour gérer l’authentification :

  • Rafraîchir : Renouvelle le access_token via le refresh_token (sans re-authentification)
  • Tester : Vérifie la validité du token actuel en appelant l’API
  • Statistiques : Affiche les détails du token (expiration, scope, type, etc.)
  • Effacer : Supprime tous les tokens pour réinitialiser l’authentification

ℹ️ Note : Le token est automatiquement rafraîchi avant expiration lors des appels API, vous n’avez normalement pas besoin d’utiliser ces boutons.

📋 Équipements créés

Pour chaque vélo Bosch eBike, un équipement Jeedom est créé avec :

Vélo

  • Informations sur la batterie, moteur et cadre : Marque, modèle, numéro de série, énergie totale, cycles (pas son pourcentage de charge)
  • Kilométrage total : Distance cumulée depuis la mise en service
  • Temps : avec assistance et total
  • Dernière synchronisation : Date de la dernière mise à jour

Activités

  • Historique complet : Liste de toutes les sorties enregistrées
  • Statistiques par sortie : Distance, durée, vitesse moyenne/max, dénivelé, cadence, puissance
  • Date et heure : Horodatage de chaque activité
  • Destination : Trajet origine-extrémité, etc.

Le nombre d’équipements activités dépend de la configuration du plugin.
Vous pouvez choisir le nombre d’activités à créer et leur nom généré.

🎨 Modales

Modale « activités »

Le plugin propose une interface graphique complète pour visualiser vos activités, sous forme de timeline interactive :

Cette page est également accessible depuis le widget d’un équipement activité.

Métriques disponibles

  • Dénivelé : Visualisation du dénivelé positif de chaque sortie
  • Distance : Distance parcourue par activité
  • Durée : Temps de chaque sortie
  • Vitesse : Vitesse moyenne et maximale (double barre)
  • Cadence : Cadence moyenne et maximale (double barre)
  • Puissance : Puissance moyenne et maximale (double barre)

Fonctionnalités du graphique

  • Timeline intelligente : Barre horizontale représentant la chronologie des activités
  • Visualisation par métrique : Choix libre de la métrique à afficher
  • Double valeurs : Pour vitesse/cadence/puissance, affichage simultané des valeurs moyennes et maximales
  • Intervalles flexibles : 7 jours, 14 jours, 30 jours, 3 mois, 6 mois, 1 an, ou tout l’historique
  • Synchronisation tableau/graphique : Le tableau affiche uniquement les activités visibles sur le graphique
  • Chargement automatique : Récupération automatique de toutes les activités nécessaires pour l’intervalle sélectionné
  • Échelle temporelle dynamique : Dates adaptées au nombre d’activités affichées (2 à 10 marqueurs)
  • Courbe d’évolution : Ligne SVG montrant la tendance de la métrique dans le temps
  • Statistiques : Nombre total d’activités, distance cumulée, durée totale, vitesse moyenne

Design adaptatif

  • Couleurs selon intensité : Dégradés de couleurs basés sur la valeur de la métrique
  • Légendes personnalisées : Seuils et légendes adaptés à chaque métrique
  • Compatible CSP : Visualisation pure CSS/HTML/SVG sans CDN externe
  • Interface responsive : Optimisée pour desktop et mobile

Vue graphique

– Timeline horizontale avec barres de couleur selon la métrique
– Sélecteur de métrique (6 options)
– Boutons d’intervalle temporel
– Statistiques en temps réel
– Échelle de dates dynamique

Vue tableau

– Liste paginée des activités
– Colonnes : Date, Titre, Distance, Durée, Vitesse moyenne, Dénivelé
– Tri par colonne
– Recherche par mot-clé
– Synchronisée avec le graphique (affiche uniquement les activités de l’intervalle sélectionné)

Modale « santé »

Le plugin propose un page santé qui liste les vélos de votre compte avec les informations de ses composants :

🔧 Commandes

Les commandes créées varient selon le vélo et les données remontées par l’API, voilà un exemple des commandes disponibles pour mon vélo.

Vélo

NomTypeExemple de valeur
Aide Marche Activéeinfo binary
Cycles de Chargeinfo numeric9.2 
Cycles Hors Véloinfo numeric
Cycles Sur Véloinfo numeric9.2 
Batterieinfo stringPowerTube 600 
Circonférence Roueinfo numeric2300 mm
Date Enregistrementinfo string2025-10-07T15:13:11.483889Z 
Dernière Synchroinfo string2025-12-21 08:23:02 
Descriptioninfo stringCommentaire indiqué dans l’app
Énergie Totaleinfo numeric5029 Wh
ID Véloinfo stringXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX 
Modes Assistanceinfo string[{« name »: »0″, »reachableRa… 
Moteurinfo stringDrive Unit Performance Line CX 
N° Cadreinfo stringXXXXXXXXXX 
N° Série Batterieinfo stringXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX 
N° Série Moteurinfo stringXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX 
N° Série Télécommandeinfo stringXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX 
Nominfo stringeBike 
Odomètreinfo numeric71.24 km
Position N° Cadreinfo stringAu-dessus du pédalier 
Référence Batterieinfo stringXXXXXXXXXX 
Référence Moteurinfo stringXXXXXXXXXX 
Référence Télécommandeinfo stringXXXXXXXXXX 
Télécommandeinfo stringPurion 200 
Temps Avec Assistanceinfo numeric20 h
Temps Totalinfo numeric134 h
Vitesse Aide Marcheinfo numeric4 km/h
Vitesse Assistance Maxinfo numeric27.4 km/h

Activité

Commandes disponibles pour une activité :

NomTypeExemple de Valeur
Cadence Maxinfo numeric104 rpm
Cadence Moyenneinfo numeric75 rpm
Caloriesinfo numeric24 kcal
Débutinfo string2025-12-20 17:39:04 
Dénivelé-info numeric15 m
Dénivelé+info numeric16 m
Distanceinfo numeric0.99 km
Duréeinfo numeric2.7 min
Fininfo string2025-12-20 17:43:34 
IDinfo stringXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX 
Odomètre Départinfo numeric77.68 km
Puissance Maxinfo numeric709 W
Puissance Moyenneinfo numeric225 W
Titreinfo stringPaname et alentours
Vitesse Maxinfo numeric36.63 km/h
Vitesse Moyenneinfo numeric29.81 km/h

Widget dashboard

Widget vélo

Widget activité qui reprend les informations essentielles dans des tuiles

🔐 Sécurité et authentification

Le plugin utilise le protocole OAuth2 avec le système SingleKey ID de Bosch pour garantir la sécurité :

Flux d’authentification

  1. L’utilisateur s’authentifie via le portail Bosch officiel et crée une application client.
  2. Un code d’autorisation est renvoyé à Jeedom.
  3. Jeedom échange ce code contre un « access_token » et un « refresh_token ».
  4. Le « refresh_token » permet de renouveler automatiquement l’accès sans re-authentification.
  5. L’utilisateur valide l’application sur le portail, ce qui permet d’accéder aux informations du vélo.

Gestion des tokens

  • Access Token : Valable 3600 secondes (1 heure)
  • Refresh Token : Valable plusieurs semaines
  • Renouvellement automatique : Avant expiration lors des appels API

🛠️ Dépannage

Le plugin ne se connecte pas

1. Vérifiez que votre Client ID OAuth2 est correct
2. Testez l’authentification via le bouton « Se connecter avec SingleKey ID »
3. Consultez les logs : Plugins → Bosch eBike → Logs ou page de configuration du plugin
4. Vérifiez la validité du token avec le bouton « Tester la connexion »

Les activités ne s’affichent pas

1. Vérifiez que vous avez des activités sur l’application eBike
2. Force la synchronisation avec le bouton « Synchroniser les vélos »
3. Vérifiez l’intervalle sélectionné (5 minutes par défaut)
4. Cliquez sur « Tout » pour voir l’historique complet

Loading

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *