Debian 12 + Jeedom 4.5 - warning Array to string conversion

Bonjour,

J’ai réinstallé from scratch mon serveur pour passer de debian 11 à debian 12 avec jeedom 4.5 hier soir.
Depuis j’ai 3 warnings dans listener_execution :

0090|PHP Warning:  Array to string conversion in /var/www/html/plugins/thermostat/core/class/thermostat.class.php on line 616

Visiblement c’est la ligne de log :

615    public function reschedule($_next = null, $_stop = false, $_smartThermostat = false) {
616		  log::add(__CLASS__, 'debug', $this->getHumanName() . ' Reschedule, next : '.$_next.', stop : '.$_stop.', smartThermostat : '.$_smartThermostat);
617		  $options = array('thermostat_id' => intval($this->getId()));

je ne sais pas quelle est la variable qui pose problème si je l’identifie, je mettrais qqch comme :
(is_array($var) ? json_encode($var) : $var).

Pareil, Il faut que j’arrive a identifier le déclencheur mais comme il n’y a pas d’horodatage c’est un peu compliqué.


Informations Jeedom

Core : 4.5 (master)
DNS Jeedom : non

Plugin : Thermostat
Version : 2024-09-30 10:49:26 (stable)

Bonjour,
Merci pour le retour ca sera corrigé dans la beta qui sortira demain du plugin thermostat

3 « J'aime »

Merci @Loic
J’ai toujours dans le fichier cron_execution un autre message pour la ligne 756 :

0037|PHP Warning:  Trying to access array offset on value of type null in /var/www/html/plugins/thermostat/core/class/thermostat.class.php on line 756

755					$nextOccurence = $event->nextOccurrence($position, true);
756					if ($nextOccurence['date'] != '' && ($next == null || (strtotime($next['date']) > strtotime($nextOccurence['date']) && strtotime($nextOccurence['date']) > (strtotime('now') + 120)))) {
757						$consigne = null;

J’imagine que $nextOccurence peut être null si $event->nextOccurrence($position, true); ne retourne rien.

Bonjour,
Merci pour le retour ca sera corrigé dans la beta qui sortira demain du plugin thermostat

2 « J'aime »

Bonjour @Loic,

Juste pour info, je viens d’installer la version beta du plugin thermostat et j’ai toujours le warning à la ligne 616. J’ai redémarrer jeedom au cas ou c’est pareil.

/var/www/html/plugins/thermostat/core/class/thermostat.class.php on line 616

J’essaye de checker régulièrement le community aujourd’hui si tu as besoins de plus d’info ou que je teste qqch.

Encore merci

Informations Jeedom

Core : 4.5 (master)
DNS Jeedom : non

Plugin : Thermostat
Version : 2025-12-11 01:26:55 (beta)

Salut,
TU aurais l’erreur complete car la je vois pas.

Salut,

Oui c’était la toute première de mon message d’origine :

0209|PHP Warning:  Array to string conversion in /var/www/html/plugins/thermostat/core/class/thermostat.class.php on line 616
0210|PHP Warning:  Array to string conversion in /var/www/html/plugins/thermostat/core/class/thermostat.class.php on line 616

désolé j’avais loupé le copier-coller.

Bonne soirée

PS je vais tester de mettre des json_encode sur les autres variables pour voir si ça résout le problème (j’avoue ne pas comprendre l’origine, je reviendrai dire si ça fonctionne) :

615 	public function reschedule($_next = null, $_stop = false, $_smartThermostat = false) {
616.   		log::add(__CLASS__, 'debug', $this->getHumanName() . ' Reschedule, next : '.json_encode($_next).', stop : '.json_encode($_stop).', smartThermostat : '.json_encode($_smartThermostat));

Hello @Loic,

Avec ma modification, je n’ai plus de Warning.
C’est la variable smartThermostat qui avait l’air de poser problème quand je regarde les logs de debug.
Je te laisse faire le correctif qui va bien.

Bonne journée

Voici un exemple de log :

0514|[2025-12-15 04:00:11] DEBUG  [Salle à manger][Chauffage] Reschedule, next : "2025-12-15 05:00:00", stop : false, smartThermostat : false
0523|[2025-12-15 04:00:11] DEBUG  [Chambre Invités][Chauffage] Reschedule, next : "2025-12-15 05:52:00", stop : false, smartThermostat : {"date":"2025-12-15 06:00:00","event":{},"consigne":"18.5","calendar_id":199,"cmd":2197,"type":"mode","schedule":"2025-12-15 05:52:00"}
0547|[2025-12-15 04:00:12] DEBUG  [Chambre parentale][Chauffage] Reschedule, next : "2025-12-15 05:49:00", stop : false, smartThermostat : {"date":"2025-12-15 06:00:00","event":{},"consigne":"19","calendar_id":147,"cmd":2161,"type":"mode","schedule":"2025-12-15 05:49:00"}
0568|[2025-12-15 04:00:13] DEBUG  [Salle à manger][Chauffage] Reschedule, next : "2025-12-15 04:36:00", stop : false, smartThermostat : {"date":"2025-12-15 05:30:00","event":{},"consigne":"19","calendar_id":145,"cmd":3353,"type":"mode","schedule":"2025-12-15 04:36:00"}
0607|[2025-12-15 04:36:04] DEBUG  [Salle à manger][Chauffage] Reschedule, next : "2025-12-15 05:36:00", stop : false, smartThermostat : false
0620|[2025-12-15 04:36:04] DEBUG  [Salle à manger][Chauffage] Reschedule, next : null, stop : true, smartThermostat : false

Informations Jeedom

Core : 4.5 (master)
DNS Jeedom : non

Plugin : Thermostat
Version : 2025-12-11 01:26:55 (beta)

Bonjour,
Effectivement je me suis concentré sur le mauvaise argument, ca sera bon dans la beta de demain.

Merci pour le retour.

1 « J'aime »