Bonjour,
Il semble y avoir un problème avec l’écran pour l’affichage des données Tesla Fleet sur la dernière beta.
Je suis en Version: 3.3.16-beta.49.270
Dans chrome j’ai pu trouver l’erreur AJAX (pas d’erreur dans les logs plugin tesla ou bien http.error) :
{ "state": "error",
"result": "<span id=\"span_errorMessage\">[MySQL] Error code : HY093 (). : SELECT NVL(SUM(deviceData),0) as deviceData,NVL(SUM(wakes),0) as wakes,NVL(SUM(signals),0) as signals,NVL(SUM(commands),0) as commands, year,month,NVL(SUM(deviceData),0) * 0.002+NVL(SUM(wakes),0) * 0.02+NVL(SUM(signals),0) * 6.6666666666667E-6+NVL(SUM(commands),0) * 0.001 as cost, DATE_ADD(MAKEDATE(year, 1), INTERVAL (month)-1 MONTH) as dd FROM tesla_fleet WHERE 1 = 1 AND ( month!=9 OR (month=9 AND day>=19) OR (month=9 AND day=19 AND hour>15)) GROUP BY year,month ORDER BY dd DESC<\/span>",
"code": 0
}
Avec un peut d’aide de l’IA, l’erreur se trouverait dans fleet.class.php
Dans la méthode
cost(), lorsque le plugin demande le récapitulatif global ($year = 'ALL'), la variable de paramètres$C8ba9est initialisée au début avec['year' => 'ALL', 'month' => ...].Ensuite, le code génère la requête SQL sans aucun marqueur
:yearni:month:Au moment de l’exécution, PDO reçoit 2 variables dans le tableau alors qu’il n’y a aucun marqueur dans la requête SQL, ce qui déclenche l’erreur
HY093.
L’IA a proposé une solution qui m’a permis de réafficher le tableau pour chaque mois.
if ($year == ‹ ALL ›) { $sql = "SELECT " . $fieldsSql . ", year, month, " . $costSql . ", DATE_ADD(MAKEDATE(year, 1), INTERVAL (month)-1 MONTH) as dd "; $sql .= « FROM tesla_fleet WHERE 1 = 1 " . $whereClause . " GROUP BY year,month ORDER BY dd DESC »;
// CORRECTION DU BUG HY093 : Vider le tableau de paramètres car la requête n’a pas de marqueurs :year/:month $params = [];
return @DB::Prepare($sql, $params, DB::FETCH_TYPE_ALL); }
Merci si tu as le temps de jeter un coup d’œil
@vercors

