Uncaught TypeError: json_decode(): Argument #1 ($json) must be of type string, array given

Bonjour,

Impossible de dire si c’est depuis la mise à jour du plugin Frigate ou si c’est à cause des mise à jour des packages de l’OS, mais le plugin ne fonctionnait plus correctement. Après une détection et réception du message MQTT (visible dans les logs debug du plugin), je n’avais plus aucune action de réalisée. Après quelques recherches, je suis tombé sur plusieurs erreurs de ce type dans le log « http.error ».

HP Fatal error:  Uncaught TypeError: json_decode(): Argument #1 ($json) must be of type string, array given in /var/www/html/plugins/frigate/core/class/frigate.class.php:1121
Stack trace:
#0 /var/www/html/plugins/frigate/core/class/frigate.class.php(1121): json_decode()
#1 /var/www/html/plugins/frigate/core/class/frigate.class.php(2149): frigate::eventAdd()
#2 /var/www/html/plugins/frigate/core/class/frigate.class.php(1036): frigate::majEventsCmds()
#3 /var/www/html/plugins/frigate/core/class/frigate.class.php(968): frigate::getEvents()
#4 /var/www/html/plugins/frigate/core/class/frigate.class.php(2884): frigate::getEvent()
#5 /var/www/html/plugins/mqtt2/core/php/jeeMqtt2.php(32): frigate::handleMqttMessage()
#6 {main}
  thrown in /var/www/html/plugins/frigate/core/class/frigate.class.php on line 1121

En regardant dans le code source et en tattonant, j’ai fini par identifier la cause du problème. A cette fameuse ligne 1121, j’ai remplacé:

$data = json_decode($event->getData(), true);

par

$data = $event->getData();

et depuis tout refonctionne…

Voici ma page santé si ça peut aider à comprendre.

Étant sur Debian 12 avec PHP 8, le problème est peut être ici.

Plugin en version 1.2.5

Merci.

Romain

J’ai effectué une correction sur la beta 1.2.6.

Parfait! ça fonctionne avec cettebeta. Merci :slight_smile:

1 « J'aime »

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