Plugin datamanager - Erreur de récupération des données sous Debian 12

Bonjour,

Après de très nombreuses années de bons et loyaux services, mon RPI3 hébergeant Jeedom montrait des faiblesses et j’ai basculé sur RPI4B sous Debian 12 (Jeedom 4.4.19).
Tous les plugins fonctionnent correctement sauf 2, dont datamanager pour récupérer les données de mon onduleur Fronius.

J’ai l’erreur suivante dans mes logs empêchant la récupération des données :

Erreur sur la fonction cron du plugin : Unsupported operand types: int - string

et le debug suivant :

4397|[2025-05-21 08:50:05] INFO  : Mise à jour forcée le 05-21-2025 à 08:50
4398|[2025-05-21 08:50:05] INFO  : Récupération des données sur l'onduleur.
4399|[2025-05-21 08:50:05] DEBUG  : fonction getJson via -> cUrl
4400|[2025-05-21 08:50:06] DEBUG  : Réponse HHTP : 200
4401|[2025-05-21 08:50:06] DEBUG  : Données récupérées : {    "Body" : {       "Data" : {          "DAY_ENERGY" : {             "Unit" : "Wh",             "Value" : 162          },          "DeviceStatus" : {             "ErrorCode" : 0,             "LEDColor" : 2,             "LEDState" : 0,             "MgmtTimerRemainingTime" : -1,             "StateToReset" : false,             "StatusCode" : 7          },          "FAC" : {             "Unit" : "Hz",             "Value" : 49.969999999999999          },          "IAC" : {             "Unit" : "A",             "Value" : 0.81999999999999995          },          "IDC" : {             "Unit" : "A",             "Value" : 0.64000000000000001          },          "PAC" : {             "Unit" : "W",             "Value" : 186          },          "TOTAL_ENERGY" : {             "Unit" : "Wh",             "Value" : 2213950          },          "UAC" : {             "Unit" : "V",             "Value" : 236.80000000000001          },          "UDC" : {             "Unit" : "V",             "Value" : 359.5          },          "YEAR_ENERGY" : {             "Unit" : "Wh",             "Value" : 1154779.1200000001          }       }    },    "Head" : {       "RequestArguments" : {          "DataCollection" : "CommonInverterData",          "DeviceClass" : "Inverter",          "DeviceId" : "1",          "Scope" : "Device"       },       "Status" : {          "Code" : 0,          "Reason" : "",          "UserMessage" : ""       },       "Timestamp" : "2025-05-21T08:59:34+02:00"    } }
4402|[2025-05-21 08:50:06] DEBUG  : fonction getJson via -> cUrl
4403|[2025-05-21 08:50:06] DEBUG  : Réponse HHTP : 200
4404|[2025-05-21 08:50:06] DEBUG  : Données récupérées : {    "Body" : {       "Data" : {}    },    "Head" : {       "RequestArguments" : {          "DeviceClass" : "Meter",          "Scope" : "System"       },       "Status" : {          "Code" : 0,          "Reason" : "",          "UserMessage" : ""       },       "Timestamp" : "2025-05-21T08:59:35+02:00"    } }
4405|[2025-05-21 08:50:06] ERROR  : Erreur sur la fonction cron du plugin : Unsupported operand types: int - string

Je n’ai pas réussi à identifier la ligne de code responsable de cette erreur.
Je suis en python 3.11.2 et php 8.2.28 (c’est à priori l’origine du pb)

Je sais que Jeedom n’est pas pleinement validé pour cette version de Debian mais, pour préparer une future migration inévitable, serait-il possible pour @ido de trouver la cause de ce bug ?
J’ai aussi testé la version beta du plugin sans succès.

Merci IDO pour ce plugin bien pratique et pour le correctif que tu pourras apporter !

Jeedom (le core) si, ce sont les plugnis qui ne le sont pas tous … et la ca depend des devs :
Pour info : Compatibilité des plugins avec Debian 12 - Bookworm, php 8, python 3.11

Norbert

Merci @ngrataloup (Norbert) pour ton retour. Les 2 plugins concernés ne sont pas référencés dans ta liste. J’ouvrirai un autre post pour le second (mywallbox). Tu pourras mettre à jour ta liste en ce sens.

ca dépend des versions :wink:
en l’occurrence, la 4.4, c’est non, ce n’est pas pleinement validé (vu le nombre de fix qui attendent en 4.5)

et donc ici même si c’est probablement lié au plugin, c’est p-e le core aussi

2 « J'aime »

ce plugin n’est en fait jamais passé en stable donc peu ou pas en vie… ca ressemble à un futur plugin obsolète

Je me réponds à moi-même pour ceux qui utilisent ce plugin en attendant le correctif officiel.
Vous pouvez supprimer les erreurs en corrigeant les 5 lignes dans le fichier suivant :

sudo nano /var/www/html/plugins/datamanager/core/class/datamanager.class.php


Ligne 461 => ajouter intval():
$lastRefresh    = intval($this->getCmd(null,'lastRefresh')->execCmd());


A partir de la ligne 466 => ajouter floatval() autour des 4 lignes :
$daily_cumulativeConsumption    = floatval($this->getCmd(null,'daily_cumulativeConsumption')->execCmd());

$daily_cumulativeImport    = floatval($this->getCmd(null,'daily_cumulativeImport')->execCmd());

$daily_cumulativeExport    = floatval($this->getCmd(null,'daily_cumulativeExport')->execCmd());

$daily_autoconsomation    = floatval($this->getCmd(null,'daily_autoconsomation')->execCmd());

Chez moi, les consommations journalières s’affichent désormais correctement.

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.