Erreur sur la fonction cron du plugin : unsupported operand

Je commence à monter une deb12+J4.5
Je n’ai pas encore branché le dongle et j’obtiens cette erreur :

0831|[2025-12-20 08:35:17] DEBUG  [TELEINFO_deamon_infoserial] test pid
0832|[2025-12-20 08:35:17] ERROR  [TELEINFO_deamon_infoserial] le deamon port modem 1 n'est pas démarré
0833|[2025-12-20 08:35:17] DEBUG  [TELEINFO_deamon_modem] état : nok
0834|[2025-12-20 08:35:17] DEBUG  [TELEINFO_deamon_MQTT] état : sans
0835|[2025-12-20 08:35:17] DEBUG  [TELEINFO_deamon_prod] état : sans
0836|[2025-12-20 08:35:17] DEBUG  [TELEINFO_deamon] état global => retour: nok
0837|[2025-12-20 08:35:17] INFO  [deamon_start_modem] Démarrage du service
0838|[2025-12-20 08:35:17] INFO  [deamonRunning] Vérification de l'état du service : NOK
0839|[2025-12-20 08:35:17] INFO  Lancement démon pour modem 1
0840|[2025-12-20 08:35:17] INFO  [conso] Démarrage daemon
0841|[2025-12-20 08:35:17] INFO  [conso] Démarrage compteur
0842|[2025-12-20 08:35:17] ERROR  [TELEINFO]-----[conso] Le port1  n'existe pas
0843|[2025-12-20 08:35:17] INFO  Port du modem2 non configuré
0844|[2025-12-20 08:35:18] DEBUG  calculatepapp
0845|[2025-12-20 08:35:18] DEBUG  ----- Calcul de la puissance apparente moyenne -----
0846|[2025-12-20 08:35:18] DEBUG  Compteur 471 Cmd trouvée
0847|[2025-12-20 08:35:18] ERROR  Erreur sur la fonction cron du plugin : Unsupported operand types: int + string
0848|#0 /var/www/html/plugins/teleinfo/core/class/teleinfo.class.php(37): teleinfo::calculatePAPP()
0849|#1 /var/www/html/core/class/plugin.class.php(369): teleinfo::cron()
0850|#2 /var/www/html/core/php/jeeCron.php(78): plugin::cron()
0851|#3 {main}

Informations Jeedom

Core : 4.5.1 (master)
DNS Jeedom : oui

Plugin : Téléinfo
Version : 2025-07-17 15:49:50 (stable)
Statut Démon : Stoppé - (2025-12-20 08:45:13)

Informations complémentaires
Compteur #1 - Mode : Consommateur - HPHC? : pas de HPHC ancienne formule - Nouveaux index? : pas de new index

OS: debian 12 on vmware ; PHP: 8.2.20 ; Python: 3.11.2
teleinfo: version 4.9.7 ; cmds: 67

correctif :

   public static function calculatePAPP()
    {
        log::add('teleinfo', 'debug', 'calculatepapp ');
        $indexConsoHP = config::byKey('indexConsoHP', 'teleinfo', 'BASE,HCHP,EASF02,EASF04,EASF06,BBRHPJB,BBRHPJW,BBRHPJR,EJPHPM');
        $indexConsoHC = config::byKey('indexConsoHC', 'teleinfo', 'HCHC,EASF01,EASF03,EASF05,BBRHCJB,BBRHCJW,BBRHCJR,EJPHN');
        foreach (eqLogic::byType('teleinfo') as $eqLogic) {
            $cptId = strval($eqLogic->getId());
			$ppapHp  = 0;
			$ppapHc  = 0;
			$cmdPpap = null;
            foreach ($eqLogic->getCmd('info') as $cmd) {
                if ($cmd->getConfiguration('type') == 'stat') {
                    if ($cmd->getConfiguration('info_conso') == 'PPAP_MANUELLE') {
                        log::add('teleinfo', 'debug', __('----- Calcul de la puissance apparente moyenne -----', __FILE__));
                        $cmdPpap = $cmd;
                    }
                }
            }
            if ($cmdPpap !== null) {
                log::add('teleinfo', 'debug', 'Compteur ' . $cptId . ' Cmd trouvée');
                foreach ($eqLogic->getCmd('info') as $cmd) {
                    if ($cmd->getConfiguration('type') == "data" || $cmd->getConfiguration('type') == "") {
                        if (strpos($indexConsoHP, $cmd->getConfiguration('info_conso')) !== false) {
                            $ppapHp += (int) $cmd->execCmd();
							log::add('teleinfo', 'debug', 'Compteur ' . $cptId . ' HP : ' . $cmd->getId() . ' Valeur: ' . $ppapHp);
                        }
                        if (strpos($indexConsoHC, $cmd->getConfiguration('info_conso')) !== false) {
                            $ppapHc += (int) $cmd->execCmd();
							log::add('teleinfo', 'debug', 'Compteur ' . $cptId . ' HC : ' . $cmd->getId() . ' Valeur: ' . $ppapHc);
                        }
                    }
                }
                $cacheHc        = cache::byKey('teleinfo::ppap_manuelle::' . $cptId . '::hc', false);
                $datetimeMesure = date_create($cacheHc->getDatetime());
                $cacheHp        = cache::byKey('teleinfo::ppap_manuelle::' . $cptId . '::hp', false);
                $cacheHc        = $cacheHc->getValue();
                $cacheHp        = $cacheHp->getValue();
                $datetimeMesure = $datetimeMesure->getTimestamp();
                $datetime2      = time();
                $interval       = (float)$datetime2 - (float)$datetimeMesure;
                if ($interval!=0){
                    $consoResultat = ((((float)$ppapHp - (float)$cacheHp) + ((float)$ppapHc - (float)$cacheHc)) / $interval) * 3600;
                } else {
                    $consoResultat = 0;
                }
                log::add('teleinfo', 'debug', 'Compteur ' . $cptId . __(' Intervale depuis la dernière valeur :', __FILE__) . ' ' . $interval);
                log::add('teleinfo', 'debug', 'Compteur ' . $cptId . __(' Conso calculée :', __FILE__) . ' ' . intval($consoResultat) . ' Wh');
                $cmdPpap->event(intval($consoResultat));
                cache::set('teleinfo::ppap_manuelle::' . $cptId . '::hc', $ppapHc, 150);
                cache::set('teleinfo::ppap_manuelle::' . $cptId . '::hp', $ppapHp, 150);
            } else {
                log::add('teleinfo', 'debug', 'Compteur ' . $cptId . __(' Pas de calcul', __FILE__));
            }
        }
    }

Mettre en cast (int) sur les opérations d’addition ou peut-être (float)

2 « J'aime »

merci, (int) suffit le (float) n’est pas nécessaire ici :wink: