juando
Décembre 12, 2025, 9:10
1
Bonjour,
suite au passage sous jeedom atlas 4.5 et debian 12, le plugin de fonctionne plus et j’ai l’erreur suivante dans http.error :
PHP Fatal error: Uncaught Error: Non-static method AndroidTV::connectADB() cannot be called statically in /var/www/html/plugins/AndroidTV/core/ajax/AndroidTV.ajax.php:15\nStack trace:\n#0 {main}\n thrown in /var/www/html/plugins/AndroidTV/core/ajax/AndroidTV.ajax.php on line 15
et une erreur 500 :
Bison
Décembre 12, 2025, 9:27
2
Bonsoir,
Tu peux montrer une capture de la version du plugin et voir si version stable ou beta ?
juando
Décembre 13, 2025, 2:27
3
J’ai essayé les 2 la je suis en beta :
Bison
Décembre 13, 2025, 5:07
4
Alors la personne qui avait reporté que le plugin fonctionnait en Debian 12 s’est peut-être tromper.
Je tenterai sur ma version de dev.
Bonjour,
J’ai jeté un œil vite fait malheureusement la correction nécessite d’adapter certaines parties du code.
Le souci se situe ici :
include_file('core', 'authentification', 'php');
if (!isConnect('admin')) {
throw new \Exception(__('401 - Accès non autorisé', __FILE__));
}
$ipaddress = init('params');
if (init('action') == 'connect') {
log::add('AndroidTV', 'debug', 'connection encours a ' . $ipaddress);
AndroidTV::connectADB($ipaddress);
ajax::success();
}
if (init('action') == 'resetADB') {
log::add('AndroidTV', 'debug', '==== reset encours ====');
AndroidTV::resetADB();
ajax::success();
}
if (init('action') == 'imgUpload') {
Dans l’absolu l faudrait modifier public function connectADB par public static function connectADB ici :
$sudo_prefix = "sudo ";
log::add('AndroidTV', 'debug', 'Arret du service ADB');
shell_exec($sudo_prefix . "adb kill-server");
sleep(3);
log::add('AndroidTV', 'debug', 'Lancement du service ADB');
shell_exec($sudo_prefix . "adb start-server");
} catch (Exception $e) {
log::add('AndroidTV','error','Exception reçue : ', $e->getMessage());
}
}
public function connectADB($_ip_address = null) {
try{
$sudo = exec("\$EUID");
if ($sudo != "0")
$sudo_prefix = "sudo ";
if (isset($_ip_address)) {
$ip_address = $_ip_address;
log::add('AndroidTV', 'debug', ' Connection au nouveau périphérique '.$ip_address.' encours');
shell_exec($sudo_prefix . "adb connect ".$ip_address.":5555");
}
else {
Mais si cette méthode doit être statique alors il faut revoir l’appel à $this inclus dans la fonction + ses différents appels ailleurs dans le code :
$this->connectADB($ip_address);
return false;
} elseif (!strstr($check, "device")) {
$cmd = $this->getCmd(null, 'encours');
$cmd->setDisplay('icon', 'plugins/AndroidTV/desktop/images/erreur.png');
$cmd->save();
log::add('AndroidTV', 'info', $this->getHumanName() . ' Votre appareil n\'est pas détecté par ADB ou en veille profonde.');
$this->checkAndUpdateCmd('power_state', 0 );
$this->connectADB($ip_address);
return false;
} elseif (strstr($check, "unauthorized")) {
$cmd = $this->getCmd(null, 'encours');
$cmd->setDisplay('icon', 'plugins/AndroidTV/desktop/images/erreur.png');
$cmd->save();
log::add('AndroidTV', 'info',$this->getHumanName() . ' Votre connection n\'est pas autorisé');
$this->checkAndUpdateCmd('power_state', 0 );
$this->connectADB($ip_address);
juando
Décembre 15, 2025, 8:47
6
Bonjour,
Merci, j’ai modifié le code comme signalé, est je n’ai plus l’erreur 500, par contre il faut remplacer $this par quoi dans le dernier bloque de code ?
Bison
Décembre 20, 2025, 2:23
7
Hello,
ça devrait suffire comme modification, je n’ai pas vu de problème après quelques tests.
Je vais essayer de lui faire une PR
fix issue with Debian 12 and add emby + hdhomerun by BisonJeedom · Pull Request #66 · mika-nt28/Jeedom-AndroidTV
1 « J'aime »
juando
Janvier 1, 2026, 9:21
8
Bonjour,
en effet ca fonctionne, mais j’ai des erreurs dans le fichier de log con_execution
0893|sh: ligne 1: 33 : commande introuvable
16 fois à chaque lancement du cron liè à androidTV pour un appareil.
Desolé pour mon abscence ses derniers moi trop de boulot.
J’ai poussé le PR en stable
1 « J'aime »
juando
Janvier 7, 2026, 12:35
10
pour le souci, je pense que j’ai trouvé l’erreur c’est dans la class AndroidTV.class.php
il faut remplacer tous les appels à Exec() par un fonction PHP
$sudo = exec("\$EUID");
par une fonction PHP :
$sudo = posix_geteuid();
system
A fermé ce sujet ()
Janvier 8, 2026, 1:38
12
Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.