Message d'erreur Call to undefined method timeline::getIsEnable()

Tags: #<Tag:0x00007fcbb9aba4f0>

bonjour, je me prends la tête avec une série de message d’erreur sur mon système… et je reste dans l’impasse.
lorsque je veux aller dans Monitoring / Timeline j’ai un message rouge qui indique Call to undefined method timeline::getIsEnable(). lorsque je veux aller dans de nombreuses commandes (interactions, résumé domotique, …) j’ai le message Call to undefined method timeline::getHumanName(). cela me pénalise énormément !!!
j’ai regardé dans les logs de timeline et j’ai

[2018-06-29 11:01:31][INFO] : Début d'activation du plugin
[2018-06-29 11:01:32][INFO] : Info sur le démon : Array (     [launchable_message] =>      [launchable] => nok     [state] => nok     [log] => nok     [auto] => 0 )
[2018-06-29 11:01:33][DEBUG] : Lancement de : /var/www/html/core/class/../../core/php/jeePlugin.php  plugin_id=timeline function=install callInstallFunction=1
[2019-03-05 14:40:14][DEBUG] : Lancement de : /var/www/html/core/class/../../core/php/jeePlugin.php  plugin_id=timeline function=pre_update callInstallFunction=1

je pense que les nok ne sont bon signe.
j’ai réinstallé le plugin timeline. aucun message d’erreur et j’ai toujours les mêmes soucis…
quelqu’un aurait une idée sur mon problème ?

Bonjour,

Pour que la communauté puisse t’aider, je t’invite à lire ce post et nous donner les informations manquantes, merci,


Sans cela tu risque de ne pas avoir beaucoup d’aide.

1 J'aime

précisions que je peux apporter effectivement. mon jeedom est installé sur un PC tournant sous DEBIAN 9. mes recherches concernant les 2 types de messages d’erreur ne m’ont pas apporté grand chose.j’ai tenté une réinstallation complète d’une sauvegarde sur une autre machine propre et j’ai les mêmes messages ce qui me porte à croire que le soucis ne vient pas de la config, de l’OS, des fichiers de base de JEEDOM.
j’ai essayé de désinstaller le plugin timeline et de fonctionner sans… j’ai les mêmes messages.

et ma version de JEEDOM est la 4.1.14

:crazy_face::crazy_face::crazy_face::crazy_face:

C’est de la bêta? De l’alpha?

effectivement… Alpha

Sur ton environnement de prod?

Si oui tu es joueur dit donc!!!

Apparement @kiboost faisait des modifs en alpha sur cette partie hier, c’est peut-être lié…

je suis très joueur effectivement.

Je te dirais bien de faire une mise à jour pour récupérer les dernières modifs.

Mais en alpha, suivant les modifs en cours ça peut tout casser…

Hier j’ai séparé la timeline de la page historique, je pense pas que çà ai d’incidence. Je parle bien de l’alpha.

Par contre, en 4.1 depuis pas mal de temps, la timeline a été migrée en DB et a sa propre class (core/class/timeline.class.php).

Je pense que si le plugin definit aussi une class timeline, y’a collision avec celle du core.

J’en touche un mot un Loic au cas où

Après, la timeline en v4.1 a complètement été refaite, on peux avoir plusieurs timelines, et graphiquement rien à voir (aperçu en mobile aussi ici https://doc.jeedom.com/fr_FR/presentation/index#Historiques)

A toi de voir si le plugin est encore nécessaire, mais tu peut essayer de le desactiver / desinstaller pour valider si çà vient de là (ou changer le nom de la class dans le code :grin:)

on peut supprimer le plugin au vol sans incidence sur la timeline du core ?

Normalement oui.

Fait un backup manuel avant pour ne rien perdre au cas où.

Un petit aperçu juste pour toi

timeline

sur la droite de chaque action/scenario accès direct au log ou historique :wink:

1 J'aime

vraiment sympa si on peut tracer sur chaque action/scenario.
je vais tenter le renommage du fichier du plugin et relancer le système pour voir si il y a collision avec celui du core

Salut,

Suite au passage de mon Jeedom de test en 4.0.XX (la dernière version) vers la 4.1.14, je me retrouve dans le même cas.
J’ai supprimé le plugin et j’ai toujours le même problème avec la remontée de l’erreur :
Call to undefined method timeline::getHumanName()

Il y a un moyen de contourner ce problème ?

Merci.

Tu peux nous dire si tu a toujours l’erreur en alpha ou beta à jour ?
Plus de plugins timeline ?

Et enventuellement un accès en mp si tu a toujours le soucis pour investiguer :face_with_monocle:

En complément de retour sur le problème, j’obtiens les erreurs suivantes pour les menus ci-dessous :

  • Call to undefined method timeline::getHumanName() : menu Outils / Interactions
  • Call to undefined method timeline::getConfiguration() : menu Analyse / Equipements
  • Call to undefined method timeline::setObject() : menu Analyse / Résumé domotique

J’avais en effet déjà supprimé le plugin tilmeline suite à ces erreurs.
Mise à jour à l’instant vers la 4.1.15, j’ai toujours le même problème.

EDIT : @kiboost MP envoyé, tiens-moi au courant de la procédure.

Helloo,

Je tenais à remonter l’info : après une intervention de @kiboost ce matin sur mon Jeedom de test en erreur depuis la migration vers la 4.1.15, le problème est résolu ! Bravo à lui, un grand merci !

=> Un problème d’équipement de l’ancien plugin timeline contenant le mot ‹ timeline › dans son nom provoquait l’erreur

1 J'aime

Salut.

L’erreur peut devenir récurrente si le plugin n’est pas supprimé avant le passage en V4.

Je ne suis pas notifié sur de nombreux tag de mes plugins d’où le délai.

Voici le fix (enfin j’espère):

  • Créer le code dans un bloc code scénario
  • Activer le scénario et l’exécuter
  • En cas de persistance du problème , transmettre les logs de scenario_execution
$table1 = array(
            'id' => 'timeline_jeedom',
            );
$table2 = array(
            'id' => 'timeline_triggers',
            );			

$sql = "SHOW TABLES LIKE :id";
$exist1 = DB::Prepare($sql, $table1, DB::FETCH_TYPE_ROW);
$exist2 = DB::Prepare($sql, $table2, DB::FETCH_TYPE_ROW);

if ($exist1) {
	echo 'timeline_jeedom exist '  . PHP_EOL;
	DB::Prepare('DROP TABLE IF EXISTS `timeline_jeedom`', array(), DB::FETCH_TYPE_ROW);
	echo 'timeline_jeedom supprimée'  . PHP_EOL;
} else {
	echo 'timeline_jeedom inexistante'  . PHP_EOL;
}

if ($exist2) {
	echo 'timeline_triggers exist' . PHP_EOL;
	DB::Prepare('DROP TABLE IF EXISTS `timeline_triggers`', array(), DB::FETCH_TYPE_ROW);
	echo 'timeline_triggers supprimée' . PHP_EOL;
} else {
	echo 'timeline_triggers inexistante' . PHP_EOL;
}

$eqLogics = eqLogic::byType('timeline');
foreach($eqLogics as $eqLogic) {
	if(is_object($eqLogic)) {
		echo 'Equipement trouvé : ' . $eqLogic->getName() . PHP_EOL;
		foreach ($eqLogic->getCmd() as $cmd) {
			if(is_object($cmd)) {
				$cmd->remove();
			}
		}
		echo 'Suppression des commandes OK' . PHP_EOL;		
		$eqLogic->remove();
		echo 'Suppression de la timeline OK'. PHP_EOL;
	}
}

$cmds = cmd::all();
$i = 0; 
foreach ($cmds as $cmd) {
  if($cmd->getEqtype() == 'timeline') {
    $cmd->remove();
    $i++;
  } 
}
echo $i . ' commandes supprimées en post....'. PHP_EOL;

$dir = __DIR__ . '/../../plugins/timeline';
if (!is_dir($dir)) {
	echo 'le dossier du plugin est supprimé' . PHP_EOL;	
} else {
	echo 'le dossier du plugin exist' . PHP_EOL;	
}
echo 'exécution du script terminé';
3 J'aimes

Super @ZygOm4t1k merci, çà va servir :+1:t3:

Oui je pense aussi.

317 installations du plugin …

Manque de communication flagrant sur ce coup au détriment de l’utilisateur !