Debian 12 + Jeedom 4.5.1 - Warning: foreach() argument must be of type array|object

Bonjour,

J’avais réinstallé from scratch mon serveur pour passer de debian 11 à debian 12 avec jeedom 4.5 et je constatais des warnings dans http.error.
Avant de le remonter l’info sur le community, j’ai installé la beta pour vérifier que c’était pas déjà corrigé et je suis aussi passé sous jeedom 4.5.1

0036|[Fri Dec 19 23:37:16.343989 2025] [php:warn] [pid 2547839:tid 2547839] [client 127.0.0.1:34384] PHP Warning:  foreach() argument must be of type array|object, string given in /var/www/html/plugins/mqtt2/core/class/mqtt2.class.php on line 837

Cela correspond au code suivant :

835 public static function ha_discovery($_topic, $_messages) {
836      foreach ($_messages as $type => $devices) {
837         foreach ($devices as $id => $device) {
838            foreach ($device as $name => $configuration) {
839               //log::add(__CLASS__, 'debug', 'HA : ' . print_r($configuration, true));
840               if (!is_array($configuration) || !isset($configuration['config']['dev']['mf']) || !isset($configuration['config']['stat_t'])) {
841                  continue;
842               }

Il faudrait sécuriser en mettant des tests pour vérifier que c’est des tableaux par exemple :

public static function ha_discovery($_topic, $_messages) {
    if (!is_array($_messages)) {
        return;
    }
    foreach ($_messages as $type => $devices) {
        if (!is_array($devices)) {
            continue; 
        }
     foreach ($devices as $id => $device) {
            if (!is_array($device)) {
                continue;
            }
    foreach ($device as $name => $configuration) {
          //log::add(__CLASS__, 'debug', 'HA : ' . print_r($configuration, true));
          if (!is_array($configuration) || !isset($configuration['config']['dev']['mf']) || !isset($configuration['config']['stat_t'])) {
               continue;
          }

Informations Jeedom

Core : 4.5.1 (master)
DNS Jeedom : non

Plugin : MQTT Manager
Version : 2025-12-16 01:21:25 (beta)
Statut Démon : Démarré - (2025-12-16 19:23:03)