Plugin livebox maintenant compatible V4

Je l’avais mis sur le forum.
https://www.jeedom.com/forum/viewtopic.php?f=140&t=45214&p=728562#p728562
Il n’est pas sur le market. Je l’ai appelé lineJHMS.
Voici son code:

<div class="tooltips cmd cmd-widget #history#" data-type="info" data-subtype="numeric" data-cmd_id="#id#" data-cmd_uid="#uid#" data-version="#version#" data-eqLogic_id="#eqLogic_id#" style="display: block;">
	<center><span style="font-size : 12px !important;#hideCmdName#" class="cmdName">#name_display#</span> <strong class="state" style="font-size: 12px;"></strong></center>
	<script>
		jeedom.cmd.update['#id#'] = function(_options){
      var duree = _options.display_value;
      var j = Math.floor(duree/86400); duree %= 86400;
      var h = Math.floor(duree/3600); duree %= 3600;
      var m = Math.floor(duree/60);
      var s = duree%60;
      var txt = '';
      if (j) txt += j + 'j ';
      if (h) txt += h + 'h ';
      if (m) txt += m + 'mn ';
      if (s) txt += s + 's ';
			$('.cmd[data-cmd_id=#id#]').attr('title','Valeur du '+_options.valueDate+', collectée le '+_options.collectDate)
			$('.cmd[data-cmd_id=#id#] .state').empty().append(txt +' (' + _options.display_value +'#unite#)');
			if(_options.alertLevel){
			$('.cmd[data-cmd_id=#id#]').removeClass('label label-warning label-danger')
			if(_options.alertLevel == 'warning'){
				$('.cmd[data-cmd_id=#id#]').addClass('label label-warning');
			}else if(_options.alertLevel == 'danger'){
				$('.cmd[data-cmd_id=#id#]').addClass('label label-danger');
			}
			}
		}
		jeedom.cmd.update['#id#']({display_value:'#state#',valueDate:'#valueDate#',collectDate:'#collectDate#',alertLevel:'#alertLevel#'});
	</script>
</div>

1 « J'aime »

Bonjour
Effectivement je n’arrive pas a faire fonctionner le #value# alors que je l’utilise dans plusieurs autre plugin, mais j’ai une solution de contournement, en passant par un virtuel ca fonctionne.
Par contre je vais tester ton « widget » lineJHMS pour avoir un affichage compréhensible.

Je viens de tester ton widget directement dans la commande duree Synchro du plugin LB , c’est nickel…parfait…pas besoin du virtuel
Merci

1 « J'aime »

Voici une version V4 du widget donné ci-dessus

<div class="tooltips cmd cmd-widget #history#" data-type="info" data-subtype="numeric" data-cmd_id="#id#" data-cmd_uid="#uid#" data-version="#version#" data-eqLogic_id="#eqLogic_id#" style="display: block;">
	<div class="content-xs">
		<span class="cmdName #hide_name#">#name_display# </span> <strong class="state"></strong>
	</div>
	<script>
		jeedom.cmd.update['#id#'] = function(_options){
			var duree = _options.display_value;
			var j = Math.floor(duree/86400); duree %= 86400;
			var h = Math.floor(duree/3600); duree %= 3600;
			var m = Math.floor(duree/60);
			var s = duree%60;
			var txt = '';
			if (j) txt += j + 'j ';
			if (h) txt += h + 'h ';
			if (m) txt += m + 'min ';
			if (s) txt += s + 's ';
			var cmd = $('.cmd[data-cmd_id=#id#]')
			cmd.attr('title','Date de valeur : '+_options.valueDate+'<br/>Date de collecte : '+_options.collectDate)
			cmd.find('.state').empty().append(txt +' (' + _options.display_value +'#unite#)');
			if(_options.alertLevel){
				if(_options.alertLevel == 'warning'){
					cmd.find('.content-xs').addClass('label label-warning')
					cmd.attr('data-alertlevel','warning');
				}else if(_options.alertLevel == 'danger'){
					cmd.find('.content-xs').addClass('label label-danger')
					cmd.attr('data-alertlevel','danger');
				}else{
					cmd.find('.content-xs').removeClass('label label-warning label-danger')
					cmd.attr('data-alertlevel','none');
				}
			}
		}
		jeedom.cmd.update['#id#']({display_value:'#state#',valueDate:'#valueDate#',collectDate:'#collectDate#',alertLevel:'#alertLevel#'});
	</script>
</div>

En V4 il suffit

  • aller dans le menu Outils Widgets
  • cliquer sur l’icône « Code »,
  • cliquer sur le bouton « Nouveau »,
  • donner le sous type "Numérique et choisir un nom
  • cliquer sur « Créer »
  • copier le code ci-dessus dans l’éditeur à droite
  • cliquer sur « Sauvegarder »
    Et en suite choisir ce widget qui apparaît avec custom devant le nom choisi pour la commande

Ok parfait en V4…
Merci bien

J’ignore si quand on le récupère il est trié ou pas et si oui par quel élément il est trié. Je vais étudier le problème.

Merci !

D’autre part, je viens de faire la maj du plugin, et j’ai toutes les minutes le message suivant:
[2019-12-12 09:31:04][ERROR] : Erreur sur livebox::pull() : Call to a member function execCmd() on boolean

Je suis sur une smart en V3.3.39 et une livebox 3

Eric

J’ai installé ce matin la dernière maj du plugin.
J’ai le message : Call to a member function execCmd() on boolean
C’est la mise à jour des commandes du wifi invité dans refreshInfo qui le provoque.

J’ai désinstallé le plugin puis reinstallé.
A la sauvegarde de l’équipement, j’ai une erreur 500 Internal Server Error.
Le log http.error :

[Thu Dec 12 09:33:08.007707 2019] [:error] [pid 17768] [client 192.168.1.199:52553] PHP Fatal error:  Uncaught Error: Call to a member function execCmd() on boolean in /var/www/html/plugins/livebox/core/class/livebox.class.php:1223
Stack trace:
#0 /var/www/html/plugins/livebox/core/class/livebox.class.php(946): livebox->refreshInfo()
#1 /var/www/html/core/class/DB.class.php(195): livebox->postUpdate()
#2 /var/www/html/core/class/eqLogic.class.php(981): DB::save(Object(livebox), false)
#3 /var/www/html/core/ajax/eqLogic.ajax.php(343): eqLogic->save()
#4 {main}
thrown in /var/www/html/plugins/livebox/core/class/livebox.class.php on line 1223, referer: http://192.168.1.210/index.php?v=d&m=livebox&p=livebox&id=378&saveSuccessFull=1

Bonjour,

Mise à jour ce matin du plugin et même erreur toute les minutes:
Erreur sur livebox::pull() : Call to a member function execCmd() on boolean

J’essai de masque les differentes listes des appel mais lorsque je clic sur sauvegarder j’ai erreur 500 Internal Server Error

|Fabricant|Sagemcom|

Type|Livebox 3
Modèle SagemcomFast3965_LB2.8
Numéro de série XXXXXXXXXXXX
Version hardware SG_LB3_1.2.4
Version software SG30_sip-fr-6.62.12.1

Jeedom VM Proxmox V3.3.38

1 « J'aime »

Bonjour @vedrine

La liste des appels avec les icones pour préciser entrants, sortants, masqués est dans l’ordre inverse des 3 autres listes.
Les appels les plus récents sont en fin de liste.
Je ne vous propose pas de PR pour cela.
Vous ne répondez pas aux messages directs ?

1 « J'aime »

J’ai dû faire une erreur pour la livebox 3. avec une livebox 4 je n’ai pas ce problème.
Etes vous en version stable ou en version béta ?
Désolé pour le désagrément.

Ceux qui ont une livebox 3 pouvez-vous me dire si lors de la mise à jour les commandes pour le wifi invité se sont bien supprimées (ce qui serait normal, je n’aurais jamais dû créer ces commandes pour les livebox autres que 4 et 5 car le wifi invité n’existe pas sur ces box, j’ai donc ajouté un code pour les supprimer lors de la mise à jour) ? Si oui je crois que je commence à comprendre pourquoi cette erreur arrive : j’ai dû laisser quelque part une trace de ces commandes qui n’est pas désactivée pour les livebox 3. Je cherche.

Salut,
Sur une livebox 5, ça fonctionne bien sauf que j’ai des erreurs toutes les minutes :

Erreur sur livebox::pull() : Call to a member function execCmd() on bool

Une erreur 500 à chaque fois que je sauvegarde un paramètre dans l’admin :
500 : Internal Server Error

Du coup c’est inutilisable en l’état avec la notif d’erreur chaque minute, mais le reste à l’air de fonctionner, ça récupère bien les infos de ma livebox !

Steven

@vedrine: Version stable et oui, le Wifi invité est bien désactivé.

Eric

1 « J'aime »

Je crois que j’ai trouvé le problème : il manquait un if
Je pousse une mise à jour sur le market et je l’active tout de suite pour éviter d’attendre cette nuit.

bonjour @Stevenpwlk
il me semble que tu es le premier à poster avec une livebox 5
En fait comme je n’en ai pas j’ai fait un peu au pif pour ce cas là, donc il va falloir maintenant que j’ai un testeur qu’on débugue un epu pour que çà marche.

  1. Peux tu me dire ce que tu lis dans la page de l’équipement en haut à droite en face de « Type » j’ai supposé que c’était « Livebox 5 » mais je me suis peut-être trompé.
  2. Pourrais tu m’envoyer des logs en debug ? Fais le en message direct si tu ne veux pas les mettre sur le forum.

Dites moi si vous avez bien une mise à jour dispo en stable et si vous faites la mise à jour si çà stoppe les erreurs.

Désolé, je suis un peu débordé, j’ai dû oublier, d’autant que j’avais des questions à propos de la liste des appels.

Pas de souci. J’attends vos questions sur la liste des appels.

La maj de ce midi corrige les erreurs 500 et Call to a member function execCmd() on bool

Bonjour à tous

merci pour le taf sur ce plugin, j’avais un script pour la partie TELEPHONIE et maintenant tout est inclus, c’est cool

Tout semble OK en V4

Il me dit OK pour la partie TV mais je ne l’ai pas

serait il possible d’avoir un affichage des listes avec une limite en hauteur et un ascenseur verticale pour l’affichage ce serait bien

j’avais fait ce type de widget, si ca peut aider, si je l’applique le tableau ne prend pas toute la largeur

<div style="padding:5px; min-width:30px; min-height:30px;" class="cmd #history# container-fluid tooltips cmd-widget" data-type="info" data-version="#version#" data-eqLogic_id="#eqLogic_id#" data-subtype="other" data-cmd_id="#id#" data-cmd_uid="#uid#">
	<center>
      <span class="cmdName" style="font-weight: bold;font-size : 12px; #hideCmdName#">#name_display#</span>
      <div class="cmdInfo#uid#">#state# #unite#</div>
	</center>
  <style>
    div.cmdInfo#uid# {
		overflow-y:scroll; 
      	border:#000000 1px solid; 
      	font-size : 14px; 
      	background-color:rgba(55,192,233,.45)!important; 
      	width:450px; 
      	min-height:15px; 
      	max-height:150px; 
      	font-size:12px; 
      	font-weight: bold; 
      	word-wrap: break-word; 
      	text-align: left      
    }
  </style>
	<script>
		jeedom.cmd.update['#id#'] = function(_options){
			$('.cmdInfo#uid#').html(_options.display_value);
			$('.cmd[data-cmd_id=#id#]').attr('title','Valeur du '+_options.valueDate+', collectée le '+_options.collectDate);
		}
		jeedom.cmd.update['#id#']({display_value:'#state#',valueDate:'#valueDate#',collectDate:'#collectDate#',alertLevel:'#alertLevel#'});
	</script>
</div>
1 « J'aime »