Erreur plugin Strava

Bonjour,

Suite à la mise à jour, j’ai l’erreur :
Type incorrect, (classe commande inexistante)stravaCmd

Impossible de mettre à jour l’équipement actuel ou d’en créer un autre


Informations Jeedom

Core : 4.5.2 (master)
DNS Jeedom : non

Plugin : Strava
Version : 2026-01-05 15:16:05 (stable)
1 « J'aime »

Si tu vas dans l’explorateur de fichier, as tu bien le répertoire « vendor » à la racine du plugin strava ?
As tu fermer ton navigateur et réouvert ?

Bonjour,

Oui j’ai bien le répertoire vendor à la racine du plugin.
J’ai redémarré le navigateur, vider le cache,…

J’ai le même soucis.

Pareil pour moi

merci de partager un peu plus d’info:

  • version d’OS
  • hardware
  • version Jeedom
  • nouvelle installation du plugin strava, ou mise a jour du plugin.
  • version stable ou version beta, …
    Benoit

hello, j’ai voulu mettre le plugin Strava (nouvelle install donc)
Debian 11, miniPC DIY proxmox
jeedom 4.5.2
version beta puis stable testée, même phénomène

logs d’installation:

+ echo '*******************Begin of package installation******************'
*******************Begin of package installation******************
+ touch /tmp/jeedom_install_in_progress_strava
+ echo 1
+ echo 2
+ sudo chmod +x /var/www/html/core/class/../../resources/install_composer.sh
+ sudo /var/www/html/core/class/../../resources/install_composer.sh
Begin installation of composer
--2026-01-06 14:58:28--  https://getcomposer.org/installer
Resolving getcomposer.org (getcomposer.org)... 2001:41d0:304:300::18ef, 57.128.19.244
Connecting to getcomposer.org (getcomposer.org)|2001:41d0:304:300::18ef|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 59524 (58K) [application/octet-stream]
Saving to: 'composer-setup.php'
0K .......... .......... .......... .......... .......... 86% 3.24M 0s
50K ........                                              100%  134M=0.02s
2026-01-06 14:58:28 (3.76 MB/s) - 'composer-setup.php' saved [59524/59524]
All settings correct for using Composer
Downloading...
Composer (version 2.9.3) successfully installed to: /var/www/html/core/ajax/composer.phar
Use it: php composer.phar
End installation of composer
+ echo 3
+ cd /var/www/html/core/class/../../plugins/strava
+ rm -rf vendor
+ export COMPOSER_ALLOW_SUPERUSER=1
+ COMPOSER_ALLOW_SUPERUSER=1
+ export COMPOSER_HOME=/tmp/composer
+ COMPOSER_HOME=/tmp/composer
+ sudo composer install --no-ansi --no-dev --no-interaction --no-plugins --no-progress --no-scripts --optimize-autoloader
No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information.
Loading composer repositories with package information
Updating dependencies
Lock file operations: 9 installs, 0 updates, 0 removals
- Locking guzzlehttp/guzzle (7.10.0)
- Locking guzzlehttp/promises (2.3.0)
- Locking guzzlehttp/psr7 (2.8.0)
- Locking league/oauth2-client (2.9.0)
- Locking psr/http-client (1.0.3)
- Locking psr/http-factory (1.1.0)
- Locking psr/http-message (2.0)
- Locking ralouphie/getallheaders (3.0.3)
- Locking symfony/deprecation-contracts (v2.5.4)
Writing lock file
Installing dependencies from lock file
Package operations: 9 installs, 0 updates, 0 removals
- Downloading guzzlehttp/promises (2.3.0)
- Downloading ralouphie/getallheaders (3.0.3)
- Downloading psr/http-message (2.0)
- Downloading psr/http-factory (1.1.0)
- Downloading guzzlehttp/psr7 (2.8.0)
- Downloading symfony/deprecation-contracts (v2.5.4)
- Downloading psr/http-client (1.0.3)
- Downloading guzzlehttp/guzzle (7.10.0)
- Downloading league/oauth2-client (2.9.0)
- Installing guzzlehttp/promises (2.3.0): Extracting archive
- Installing ralouphie/getallheaders (3.0.3): Extracting archive
- Installing psr/http-message (2.0): Extracting archive
- Installing psr/http-factory (1.1.0): Extracting archive
- Installing guzzlehttp/psr7 (2.8.0): Extracting archive
- Installing symfony/deprecation-contracts (v2.5.4): Extracting archive
- Installing psr/http-client (1.0.3): Extracting archive
- Installing guzzlehttp/guzzle (7.10.0): Extracting archive
- Installing league/oauth2-client (2.9.0): Extracting archive
3 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating optimized autoload files
4 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
+ sudo chown -R www-data:www-data LICENSE README.md composer.json composer.lock core desktop docs plugin_info vendor
+ echo 4
+ php /var/www/html/core/class/../php/jeecli.php plugin dependancy_end strava
+ echo 5
+ rm /tmp/jeedom_install_in_progress_strava
+ echo '*******************End of package installation******************'
*******************End of package installation******************

ça pourrait venir du « use » après tes include/require? dans strava.class.php
le vérificateur de syntaxe php7.4 ou 8 me souligne ça
Parse error: syntax error, unexpected ‹ use › (T_USE) in your file on line 29

Ca devrait être fixe, il y a un caractère ‹ = › qui s’est glissé avant the ‹ use ›.
On va y arriver :slight_smile:

2 « J'aime »

Bonsoir,
Suite à la nouvelle version plus d’erreur. Mais n’a pas remonté ma course de lundi …
Peut-être un problème strava.

je verrais à la prochaine sortie.

Merci pour ton travail !
Bonne soirée

oui la création fonctionne, mais je pense ce matin encore strava répond pas et on le voit bien dans les logs
J’ai une erreur de table stravaActivity inexistante, j’espère que dès que strava fonctionnera bien tout rentrera dans l’ordre :wink:

[2026-01-07 09:55:11] DEBUG  viewSubscription
[2026-01-07 09:55:12] DEBUG  Response : [], code=200
[2026-01-07 09:55:15] DEBUG  Response : <!DOCTYPE html>
<html>
<head>
<title>Strava is temporarily unavailable</title>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
<meta name='viewport' content='width=device-width, initial-scale=1' />
<meta name='robots' content='noindex' />
<link href='http://strava.static.s3.amazonaws.com/images/favicon.ico' rel='icon' type='image/x-icon'>
<style>
/* Resets */
* {
box-sizing: border-box;
}
body {
background-color: #fff;
color: #333;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 14px;
line-height: 1.45em;
margin: 0;
padding: 0;
}
/* Scaffolding */
header, footer, main {
display: block;
}
header, footer {
background-color: #fff;
}
header {
border-bottom: 1px solid #ddd;
padding: 15px 0;
}
main {
flex: 1 1 auto;
min-height: 80vh;
}
footer {
border-top: 1px solid #eee;
color: #999;
font-size: 12px;
padding: 30px 0;
}
/* Typography */
h1, h2 {
line-height: 1.2em;
font-weight: 300;
}
h2 {
font-size: 30px;
margin-top: 0;
}
/* Components */
.branding svg {
display: block;
height: 24px;
}
.container {
margin: 0 auto;
padding: 0 20px;
max-width: 992px;
}
/* Canary */
.canary {
margin: 30px 0 0;
}
button {
border: 0;
font-size: 14px;
padding: 10px 20px;
color: #fff;
background-color: #fc4c02;
cursor: pointer;
transition: background-color 0.1s ease, box-shadow 0.1s ease;
}
button:hover {
background-color: #c93d02;
box-shadow: 0px 2px 5px rgba(0,0,0,0.33);
}
/* Page Styles */
.main {
background-image: url(http://strava.static.s3.amazonaws.com/images/img-error-500.svg);
background-repeat: no-repeat;
background-size: cover;
background-position: center;
}
.main,
.error-container {
display: flex;
align-items: center;
}
.error-container {
margin-left: 50%;
width: 100%;
}
/* Media Query Styles */
@media (max-width: 768px) {
.error-container {
display: block;
margin: 0;
}
.main {
background: none;
flex-direction: column;
min-height: 100vw;
}
.main:after {
content: '';
display: block;
background-image: url(http://strava.static.s3.amazonaws.com/images/img-error-500.svg);
background-repeat: no-repeat;
background-size: cover;
background-position: left center;
flex: 1 1 auto;
width: 100%;
min-height: 75vw;
}
.error-container {
padding-bottom: 30px;
border-bottom: 1px solid #eee;
}
}
</style>
</head>
<body>
<div class='view'>
<header>
<div class='container'>
<div class='branding'>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" x="0" y="0" viewBox="0 0 200 42" xml:space="preserve">
<path d="M19.16 40.4c-3.81 0-7.36-0.53-10.65-1.58C5.22 37.77 2.38 36.2 0 34.1l6.67-7.95c2.03 1.56 4.17 2.69 6.4 3.36 2.24 0.68 4.47 1.01 6.67 1.01 1.14 0 1.96-0.14 2.46-0.42 0.5-0.29 0.75-0.68 0.75-1.17V28.82c0-0.54-0.37-0.99-1.09-1.34 -0.73-0.36-2.09-0.73-4.08-1.12 -2.1-0.43-4.1-0.93-6-1.5 -1.9-0.56-3.58-1.3-5.02-2.19 -1.44-0.89-2.59-2.01-3.44-3.36 -0.85-1.35-1.28-3.01-1.28-4.96v-0.11c0-1.78 0.35-3.44 1.04-4.96C3.76 7.75 4.77 6.41 6.11 5.28c1.34-1.14 2.99-2.03 4.97-2.67 1.97-0.64 4.24-0.96 6.8-0.96 3.63 0 6.8 0.43 9.52 1.29 2.72 0.85 5.17 2.13 7.34 3.84l-6.08 8.44c-1.78-1.28-3.66-2.22-5.63-2.81 -1.98-0.59-3.83-0.88-5.58-0.88 -0.92 0-1.61 0.14-2.05 0.43 -0.45 0.28-0.67 0.66-0.67 1.12v0.11c0 0.5 0.33 0.93 1.01 1.29 0.68 0.35 1.99 0.73 3.95 1.12 2.38 0.43 4.55 0.94 6.52 1.54 1.95 0.61 3.64 1.38 5.04 2.33 1.41 0.94 2.49 2.07 3.26 3.39 0.76 1.32 1.15 2.92 1.15 4.8v0.11c0 1.95-0.39 3.72-1.18 5.28 -0.78 1.57-1.89 2.89-3.31 3.98 -1.42 1.08-3.15 1.92-5.18 2.51C23.97 40.1 21.69 40.4 19.16 40.4L19.16 40.4z" fill="#FC4C02"/><polygon points="45.96 12.9 34.96 12.9 34.96 2.34 69.45 2.34 69.45 12.9 58.45 12.9 58.45 39.7 45.96 39.7 " fill="#FC4C02"/><path d="M89.09 20.11c1.5 0 2.67-0.32 3.52-0.96 0.85-0.64 1.28-1.53 1.28-2.67v-0.11c0-1.21-0.43-2.11-1.28-2.69 -0.85-0.59-2.01-0.88-3.47-0.88h-5.45v7.31H89.09L89.09 20.11zM71.2 2.34h18.26c3.34 0 6.09 0.38 8.24 1.15 2.16 0.76 3.89 1.81 5.21 3.12 1.14 1.14 2 2.42 2.57 3.84 0.57 1.42 0.85 3.1 0.85 5.01v0.11c0 2.74-0.66 5.05-1.98 6.94 -1.31 1.89-3.11 3.39-5.39 4.48l8.7 12.7H93.41l-7.05-10.67H86.26h-2.57v10.67H71.2V2.34L71.2 2.34z" fill="#FC4C02"/><polygon points="179.89 23.63 188.03 39.7 200 39.7 179.89 0 159.78 39.7 171.75 39.7 " fill="#FC4C02"/><polygon points="123.92 23.63 132.06 39.7 144.03 39.7 123.92 0 103.82 39.7 115.78 39.7 " fill="#FC4C02"/><polygon points="151.91 18.41 143.77 2.34 131.8 2.34 151.91 42.04 172.01 2.34 160.05 2.34 " fill="#FC4C02"/>
</svg>
</div>
</div>
</header>
<main class='main'>
<div class='error-container container'>
<div class='error-content'>
<h1 id='status-title'>Strava is temporarily unavailable.</h1>
<p id='status-summary'></p>
<p>Check <a href='http://status.strava.com'>Strava Status</a> for more information. Thanks for your patience.</p>
</div>
</div>
</main>
<footer>
<div class='container'>
<div class='copyright'>&#0169; 2020 Strava, Inc.</div>
</div>
</footer>
</div>
<script src='https://code.jquery.com/jquery-1.11.2.min.js'></script>
<script src='https://statuspage-production.s3.amazonaws.com/se-v2.js'></script>
<script>
var messages = {
'maintenance': {
'title': "Strava is offline for scheduled maintenance",
'details': "The site's in the shop for a little tune-up."
},
'unavailable': {
'title': "Strava is temporarily unavailable",
'details': "We hit a road block, but our team is working on an alternate route."
}
};
function buildSummary(data) {
var active = data.scheduled_maintenances.filter(function(m) {
return m.status == "in_progress" || m.status == "verifying";
});
var category = (active.length > 0) ? "maintenance" : "unavailable";
showMessages(category);
}
function buildError() {
showMessages("unavailable");
}
function showMessages(category) {
$('#status-title').text(messages[category]["title"]);
$('#status-summary').text(messages[category]["details"]);
var cookies = document.cookie.split(';');
for(var i = 0; i < cookies.length; i++) {
var c = cookies[i].trim();
if (c.indexOf('_canary=') == 0) {
createCanaryButton();
}
if (c.indexOf('_sandbox') == 0) {
createSandboxButton();
}
}
}
function createCanaryButton() {
var button =  document.createElement('button');
button.id = 'delete-cookie-button';
button.appendChild(document.createTextNode('Your canary has been recycled. Click here to delete your _canary cookie.'));
$('.error-content').append(button);
$(button).click(function() {
document.cookie = '_canary=; expires=Thu, 01 Jan 1970 00:00:00 UTC; domain=.www.strava.com; path=/'
window.location.reload(false);
});
}
function createSandboxButton() {
var button =  document.createElement('button');
button.id = 'delete-cookie-button';
button.appendChild(document.createTextNode('Your sandbox has been recycled. Click here to delete your _sandbox cookie.'));
$('.error-content').append(button);
$(button).click(function() {
document.cookie = '_sandbox=; expires=Thu, 01 Jan 1970 00:00:00 UTC; domain=.www.dev.strava.com; path=/'
window.location.reload(false);
});
}
function onReady() {
try {
var sp = new StatusPage.page({page: 'frsctv3lx5sn'});
sp.summary({success: buildSummary, error: buildError});
}
catch(err) {
buildError();
}
}
$(document).ready(onReady);
</script>
</body>
</html>
, code=503

Nouvelle version remise en place et tout est ok de mon coté ! le trajet en velo de ce matin est bien remonté :wink:

1 « J'aime »

Bonjour @gdseb,
les courses passées ne sont pas prises en compte. Quand tu enregistres ton activités Strava, le plugin est notifie. S’il y a une erreur a ce moment la, la notification est perdu. Sur la page de ton équipement, tu peux cliquer sur « Forcer la mise a jour » (Mentions Légales | strava)
Benoit