Debian 12 + Jeedom 4.5 : warning: Array to string conversion

Bonsoir,

J’ai réinstallé from scratch mon serveur pour passer de debian 11 à debian 12 avec jeedom 4.5 hier soir (+ restauration sauvegarde)

Depuis j’ai des warnings dans http.error :

0105|[Wed Dec 10 17:15:29.596161 2025] [php:warn] [pid 310983:tid 310983] [client 127.0.0.1:53420] PHP Warning:  Array to string conversion in /var/www/html/plugins/eufy/core/php/jeeeufy.php on line 31

Cela correspond à cette ligne :

29  if ($result['type'] == 'event') {
30              log::add('eufy', 'debug', '>>> Event received from daemon: serialNumber: '. $result['serialNumber'] . ', property: ' 
31		. $result['property'] . ', value: ' . $result['value']);
32	      eufy::updateDeviceInfo($result['serialNumber'], $result['property'], $result['value']);
33          }

Dans la log d’eufy, je pense que c’est lié à cette ligne :

0202|[2025-12-10 17:15:29] DEBUG  >>> Event received from daemon: serialNumber: T8210xxxxxxxx, property: picture, value: Array

En attendant un fix, j’ai remplacé les lignes 30 et 31 par :

$valueStr = (isset($result['value']) && is_array($result['value'])) ? json_encode($result['value']) : ($result['value'] ?? '');
log::add('eufy', 'debug', '>>> Event received from daemon: serialNumber: '. ($result['serialNumber'] ?? '') . ', property: ' 
		. ($result['property'] ?? '') . ', value: ' . $valueStr);

Informations Jeedom

Core : 4.5 (master)
DNS Jeedom : non

Plugin : Eufy
Version : 2025-10-20 01:22:07 (stable)
Statut Démon : Démarré - (2025-12-09 21:09:14)

Avec ce fix, je n’ai plus le warning mais c’est plus verbeux (lors du debug)

0202|[2025-12-10 17:34:32] DEBUG  >>> Event received from daemon: serialNumber: T8210xxxxxxxxx, property: picture, value: {"data":{"type":"Buffer","data":[255,216,255, ..................,217]},"type":{"ext":"jpg","mime":"image\/jpeg"}}

salut et merci pour ton message
j’ai pas encore testé Jeedom4.5, je regarde ce week-end

1 « J'aime »

hello @Heliospeed
Je ne reproduis pas sur ma VM de test ceci dit effectivement ce code n’est pas propre je vais faire un fix. Le voici:

          if ($result['type'] == 'event') {
              $val = is_array($result['value']) ? 'array' : $result['value'];
              log::add('eufy', 'debug', '>>> Event received from daemon: serialNumber: '. $result['serialNumber'] . ', property: '
                . $result['property'] . ', value: ' . $val);
              eufy::updateDeviceInfo($result['serialNumber'], $result['property'], $result['value']);
          }

Pourrais-tu me partager ta page santé? quelle version de php as-tu?
Voici la mienne: