Problème de configuration Jeerhasspy depuis migration en Debian 12 (error 500)

Bonjour,

Et déjà un grand merci à @kiboost pour ce plugin que j’utilise depuis des années et qui fonctionne à merveille :+1:

Récemment je me suis lancé dans la migration de Debian 10 en 12 avec une réinstallation complète et beaucoup de choses à reconfiguer (docker, pijuice, respeaker,…) bref pas simple.

J’ai réinstallé le Rhasspy et tout semble bien fonctionner, écoute détection de mot clef, transcription et lecture de texte.

J’ai testé également TTS depuis Jeedom qui fonctionne.

J’ai donc voulu tester l’utilisation de Rhasspy de bout en bout, mais je n’avais aucune réponse audio.

Après avoir creusé, je me suis rendu compte que Jeedom recevait bien la commande, que mon scénario s’exécutait mais que la réponse n’était pas lue.
Dans les logs du scénario j’ai l’erreur :
"Non-static method RhasspyUtils::evalDynamicString() cannot be called statically"

Dans les log de Jeersasspy il n’y a rien de spécial.

Après avoir relu la doc, j’ai voulu configurer le profil rhasspy => 500 : internal server error

J’ai donc voulu importer l’assistant => 500 : internal server error

Je me suis dis que j’allais réinstaller le plugin ou passer en version beta pour tester => pas mieux.

Et là j’avoue que je sèche alors que tout fonctionnait parfaitement bien sur mon ancienne installation. S’il y avait une âme charitable pour m’aiguiller :slight_smile:

Bonjour,

Je n’utilise pas ce plugin mais apparemment il n’est pas intégré dans la liste des plugins testés sur ce post très utile…

Du coup vu que la dernière version date du 11/02/2023 je ne pense pas qu’il soit compatible deb12, et rien de spécifié dans le changelog
David

Il me semble que certains l’utilisent pourtant sur Debian 12?
Une erreur 500 ne me parait pas liée à la version de Debian (je me trompe peut-être).

Et j’avoue que faire une croix sur des fonctions essentielles en changeant de version c’est dur…

Ok, si c’est le cas, il serait bien de faire un post pour indiquer le compatibilité ou non de deb12.

je comprend mais pour info et sauf erreur de ma part, Jeedom n’est pas encore officiellement compatible avec deb12 et les différents plugins dépendent des développeurs…
David

1 « J'aime »

oui, aucun lien de cause à effet ni aucune exclusion ne peut être effectuée entre ces 2 éléments (erreur 500 et version debian); autrement ca n’a absolument aucun sens de corréler ces 2 informations.

Par contre, en lisant l’erreur, on voit une erreur de syntax qui n’est plus toléré sous php8 qui est installé sous deb12; Donc dans ce cas-ci, l’erreur 500 est bien la conséquence d’une installation sous deb12.

de quelles « fonctions essentielles » parlez-vous? debian11 répond à tous les besoins actuels, essentiels ou non.

Je te remercie pour la réponse, mais j’avoue que quelques chose de plus constructif ou quelques pistes par rapport au problème remonté ce serait top :slight_smile:

La possibilité d’utiliser Rhasspy sur Jeedom. Oui Debian 11 répond aux besoins actuels, après je t’avoue que vu le nombre d’heures passées à reconfigurer mon RPi avec tout ce que j’ai dessus, je n’avais aucune envie de le refaire d’ici un an pour passer en 12, si jamais cela peut se comprendre…

non, je ne comprend pas
moi pour test, ca me prend 30/45min de setup un pi, en comptant large


sinon que voulez-vous, les faits sont là;

  • ce plugin n’est pas encore compatible deb12
  • deb12 n’est pas l’os supporté par jeedom

donc il fallait installer deb11 si vous vouliez ce plugin

Merci, cela s’apparente à dire « Google est ton ami » lorsque quelqu’un pose une question.

OK je suis en tort de ne pas avoir pris la version supportée et je suis nul car avec tout ce qui tourne sur mon Rpi je ne suis pas capable de le reconfigurer en moins d’une heure.

Maintenant, Debian 12 sera un jour supporté et je pense que pas mal de monde utilisent ce plugin et seront content d’avoir une réponse s’ils sont dans la même situation et même le développeur pourra être content que des personnes l’aient aidé à rendre son plugin compatible.

Peut-être que ce que je tente est totalement stupide et que cela n’est pas possible, maintenant je suis de bonne volonté pour faire des tests et j’aime bien essayer de comprendre d’où ma question, et cela m’embêterai de dire fallait passer en 11 merci au revoir.
Je pensais ce lieu basé sur l’entraide afin d’avancer…

c’est juste une blague… vous posez une question en fournissant des embryons d’info, on vous répond avec la solution et vous parvenez à faire des reproches?

pas de bol que vous n’ayez pas eu l’info pour deb11 avant mais on n’y peut rien…

je ne comprend pas ce que vous attendez de plus car non, perso je ne vais pas migrer/debug le code d’un plugin via un post community sans connaitre son code et sans connaitre les compétences de l’utilisateur

sinon en vrac:

  • installez uniquement jeedom sur votre pi, le problème est probablement là si ca prend trop de temps
  • personne n’a dit que vous étiez nul
  • répondez aux questions qu’on vous pose
  • lorsque vous posez une question à l’avenir, fournissez systématiquement la page santé jeedom, la page config du plugin, tous les logs collés dans une balise Texte préformaté

Voilà merci, c’est un peu plus constructif, après un post de 20 lignes, cela ne me parait pas être un embryon d’infos et aucune question ne m’a jusqu’alors été posée, bref.
Pour répondre, page santé nickel, et rien dans les logs à part ce que j’ai donné.

J’ai donc continué à investiguer dans les log http : /var/www/html/log/http.error
En voulant importer l’assistant :

PHP Fatal error:  Uncaught Error: Non-static method RhasspyUtils::loadAssistant() cannot be called statically in /var/www/html/plugins/jeerhasspy/core/ajax/jeerhasspy.ajax.php:30\nStack trace:\n#0 {main}\n  thrown in /var/www/html/plugins/jeerhasspy/core/ajax/jeerhasspy.ajax.php on line 30, referer: https://happinesskeys.freeboxos.fr:4433/index.php?v=d&m=jeerhasspy&p=jeerhasspy

Et en voulant configuer le profil Rhasspy :

[Wed Jan 08 12:23:21.609691 2025] [php:error] [pid 167620:tid 167620] [client 93.174.35.130:60385] PHP Fatal error:  Uncaught Error: Non-static method RhasspyUtils::configureRhasspyProfile() cannot be called statically in /var/www/html/plugins/jeerhasspy/core/ajax/jeerhasspy.ajax.php:79\nStack trace:\n#0 {main}\n  thrown in /var/www/html/plugins/jeerhasspy/core/ajax/jeerhasspy.ajax.php on line 79, referer: https://happinesskeys.freeboxos.fr:4433/index.php?v=d&m=jeerhasspy&p=jeerhasspy&id=jeerhasspy

J’ai donc été dans le fichier jeerhasspy.ajax.php et j’ai modifié les lignes suivantes suivant les recommandations de php8 :

        /*$result = RhasspyUtils::loadAssistant($_cleanIntents);*/
        $result = (new RhasspyUtils)->loadAssistant($_cleanIntents);
		/*$result = RhasspyUtils::configureRhasspyProfile($_siteId, $_url, $_configRemote, $_configWake);*/
		$result = (new RhasspyUtils)->configureRhasspyProfile($_siteId, $_url, $_configRemote, $_configWake);

En relançant les mêmes commandes, je n’ai plus d’erreur 500 et j’ai l’impression que la lecture audio depuis mon scénario se fait bien (à confirmer lorsque je pourrais tester chez moi).

J’espère que cela donnera des pistes!

J’ai au final dû modifier d’autres méthodes en respectant l’idée :

$var = new ClassName();
$var->method();

ou

new ClassName)->method();

Si jamais notre ami @kiboost est dans le coin ou s’il y a des personnes compétentes en php (je ne suis qu’un bidouilleur) il y aurait des modifications mineures à réaliser dans rhasspy.utils.class.php et jeerhasppy.class.php et nous aurions un plugin Jeerhasspy compatible Debian 12 :partying_face:

ps : merci pour ton idée @Mips au niveau syntaxe php8 même si le discours à mon sens manquait de bienveillance.

Heureusement qu’il a ce petit défaut sinon il serait trop parfait. :grin:

1 « J'aime »

Vous abusez complètement… ou est le manque de bienveillance ?
Je suis resté factuel…

Casser du sucre sur le dos des autres c’est bienveillant ça ?

1 « J'aime »

No comment, pas grave.

Restons donc focalisés sur l’entraide et sur le sujet si des personnes souhaitent apporter une contribution pour aider et faire évoluer ce beau plugin !

1 « J'aime »

Bonjour,
Même problème ici. Mais je pense avoir trouver une solution.
Pour l’instant elle fonctionne chez moi sur un rpi4 avec debian 12 et jeedom 4.4
Il s’agit d’éditer le fichier /var/www/html/plugins/jeerhasspy/core/class/rhasspy.utils.class.php

Et dans ce fichier vous remplacez " function " par " static function "

Il faut déclarer toutes les methodes (function) en statique dans la classe RhasspyUtils. Certainement un besoin lié au passage en php8.

Ces fonctions n’utilisant pas $this, cela devrait fonctionner.

A+