[Présentation] Benj29 et blog Jeedom-Facile

:innocent:

On attend le retour de @benj29. A priori il a une solution en bouton rechargeable

Girafe sur Amazon.

Et voilà le dernier design, ma migration sous Jeedom 4 est donc maintenant finie !

Un appui sur le tableau de suivi me permet d’y accéder…

Et voilà :

Je récupère depuis suivi conso :

  • l’évolution veille, avant veille de l’électricité, l’eau, la climatisation (2 groupes), l’eau chaude, la piscine et la production ;
  • pareil pour la semaine, avant semaine ; mois et avant mois. (pas le mois en cours qui est déjà affiché).

A défaut, suivi conso est plus lisible pour aller plus loin.

J’ai graph la consommation par pas de 5 min :

*/5 * * * *

Il suffit d’utiliser la fonction statistics :

statistics(#[Energie][Puissance Instantanée][Consommation]#,avg,5min ago,now)

Pour les non-électriciens, depuis un linky :

  • je calcule la puissance en W en me basant chaque minute par scénario par un delta des index HC et HP :
puissance_1min_consommation

est

((#[Capteurs et Actionneurs][Compteur Linky Garage][HCHP]#-variable(compteur_consommation1minbeforeHP))*60)+((#[Capteurs et Actionneurs][Compteur Linky Garage][HCHC]#-variable(compteur_consommation1minbeforeHC))*60)

puis compteur_consommation1minbeforeHP et compteur_consommation1minbeforeHC récupèrent la valeur de l’index #[Capteurs et Actionneurs][Compteur Linky Garage][HCHP]# et #[Capteurs et Actionneurs][Compteur Linky Garage][HCHC]#

Alors que S (la puissance apparente est donnée par linky) :

statistics(#[Capteurs et Actionneurs][Compteur Linky Garage][PAPP]#]#,avg,1min ago,now)

Et du coup pour alléger les graphiques, j’affiche la consommation par pas de 5 min car sinon les graphiques sont lourds.

  • de l’eau,
  • de la consommation électrique en W (calculé depuis celle du linky en VA),
  • de la production PV en W (compteur pulse).

Un tableau de synthèse me récupère plus d’éléments :

  • puissance consommée min/max de la journée en W et à la minute,
  • puissance apparente du linky en VA,
  • le facteur de puissance de l’installation (P/S),
  • l’efficacité de ma consommation HC/HP aujourd’hui et la veille,
  • le pilotage du délestage au cas où, mode, en cours (je l’utilisais à l’époque du chauffage électrique),

Je remonte pas mal d’info côté PV grâce à un compteur pulse tout bête par Jeedouino (voir sur le fil ou sur l’ancien forum, un jour je ferai un article !) :

  • ma production en cours à la minute, le max d’aujourd’hui,
  • l’efficacité d’autoconsommation (ce que j’ai autoconsommé de ce que j’ai produit), le restant étant rejeté sur le réseau, la production et l’autoconsommation de la journée,
  • l’effacement de la journée (puissance nulle, comme si la maison était séparée du réseau), l’effacement depuis que j’ai mon installation (2 ans), le gain de l’autoconsommation (et pas la production qui est une FAUSSE estimation !), l’amortissement réel de mon installation.

Dernier point l’eau : la consommation quotidienne, la surveillance de fuite, et la réinitialisation si fuite (notamment quand je remplis la piscine ou que madame arrose :D).

Et voilà !

1 « J'aime »

J ai survolé le sujet et c’est du beau travail, tu as poussé ta domotique assez loin, bravo.
J aime bien ton dashboard, tu l as conçu ou télécharger ?

Conçu :wink: tout le poste détaille comment fabriquer ce superbe travail d’interface utilisateur…

Ok, vu que prend le sujet en vol je vais prendre le temps de le lire depuis le début car c’est du très beau travail et ça m interresse.

1 « J'aime »

Je ne sais pas trop sur quoi je vais attaquer le blog…

Que préférez vous ?

  • ma migration de jeedom 3 à jeedom 4,
  • ces nouveaux designs,
  • l’évolution sur jpi et fully kiosk,
  • le suivi de consommation et des usages,
  • la partie piscine avec l’intégration d’iopool (il est judicieux d’attendre car ils ont prévu d’ajouter une Api gratuite),
  • la partie production et autoconso,
  • la partie audio vidéo.
2 « J'aime »

Personnellement j’aimerai bien avoir des infos sur l’évolution de JPI et fully kiosk. J’utilise JPI juste pour l’affichage, mais j’aimerai bien en faire plus, mais je manque de DOC
Ensuite suivi des conso.
Merci

Salut @benj29,

J’ai une préférence pour le « suivi de consommation et des usages »,
Je présume que ton article tournera sur le plugin suivi conso,

Hâte de te lire dans un nouvel article,

1 « J'aime »

Bonjour @benj29
Te serait il possible de faire une copie d écran en mode édition d un design pour voir comment sont imbriqués tes différents popup
Merci

Bonsoir
de mon côté une préférence à l’évolution sur jpi et fully kiosk

Hello!
Pour ma part je dirais suivi conso en premier et JPI/Fully en second :slight_smile:
Merci encore pour tout ton partage :wink:

Bonjour @benj29
Pour moi, je suis plus intéressé par tes nouveaux designs
Merci pour tous ces partages, vraiment très utile pour avancer plus rapidement avec jeedom
Benoit5672

  • 1
    les design !

Bonjour Benj29,
je suis admiratif de tout le travail que tu fais et le temps que tu passes a nous expliquer et nous aider dans la domotique.
tu nous dis dans un message du 25/02

pourrais tu nous détailler rapidement comment fais tu pour changer la couleur des ouvrants en fonction de la présence ou de l’absence dans ton tableau de suivi des pièces? Je bataille depuis quelques jours dessus, j’ai peut être loupé une étape
merci encore pour le temps que tu passes pour tout ces précieux renseignements
bonne journée
à te lire!

Bonjour,
Super travail !
Serait il possible de m’expliquer comment a été réalisé le widget historique des messages ?

L’historique des messages n’est pas réellement un widget. Il est constitué d’une image de fond sur le design en arrière plan avec un virtuel en avant plan.
L’image de fond (je tiens à préciser que chez moi la pseudo IA s’appelle « Eva »):


Le virtuel:

Voici la configuration du virtuel:


Avec une disposition tableau et quelques commandes css pour personnaliser l’affichage:

le widget utilisé sur chaque commande:

Le contenu du Widget::

<div class="tooltips cmd cmd-widget #history#" data-type="info" data-subtype="string" 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;#hideCmdName#" class="cmdName">#name_display#</span> </center>
    <div style="text-align:left"><strong class="state"></strong>
    </div>
	<script>
		jeedom.cmd.update['#id#'] = function(_options){
			$('.cmd[data-cmd_id=#id#]').attr('title','Valeur du '+_options.valueDate+', collectée le '+_options.collectDate)
			$('.cmd[data-cmd_id=#id#] .state').empty().append(_options.display_value);
			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>

Ensuite à chaque fois qu’un message vocal est diffusé, j’enrichis les données du virtuel dans le scénario, sachant que tous mes messages font toujours appel au même scénario.
Je décale tous mes messages vers le bas et garnit la première ligne avec l’heure + le message passé par tag.

1 « J'aime »

Je ne suis pas sûr de comprendre ton problème.

Le code de @noodom travaille sur les options d’un widget. Donc si ton widget n’a pas d’options tu vas chercher longtemps.

Perso, j’utilise le widget info button donné sur ce fil :

Par exemple, j’ai un bouton pour commander le volet. Suivant l’état de la maison je le colorise. Orange s’il est fermé et que nous sommes à la maison, blanc si ouvert est à la maison, rouge si nous sommes absents et ouverts etc.

Pour changer l’attribut couleur, un simple scénario se déclenchant sur l’état du volet ou l’état de la maison… pour changer la couleur.

et le scénario qui appelle celui de @noodom

Pour info, on peut faire la même chose sur des infos sans ce widget. Je l’utilise.

Un widget qui change d’état en fonction d’une variable passé par les options du widget.

Exemple pour la gestion de l’alarme de la moto où je remonte l’état de l’alarme et le niveau de batterie. Et en fonction couleur si je suis là ou non.

<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 class="iconCmd"></span><span><strong class="state" style="font-size: 25px;"></strong></span><span class="unite"></span>
  </center>
	<script>
		jeedom.cmd.update['#id#'] = function(_options){
          var state = _options.display_value;
          var cmd = $('.cmd[data-cmd_id=#id#]');
            
		  var alarme = is_numeric('#alarme#') ? parseFloat('#alarme#'):0;
          
          cmd.attr('title','Valeur du '+_options.valueDate+', collectée le '+_options.collectDate);
    
          // alarme = 0 (alarme = 0, online = 1)
          if (alarme == 0) {
            	if (state >= 40) {
                  		// vert car alarme désactivée, vert car en ligne, vert batterie car ok
            	   	   cmd.find('.iconCmd').empty().append('<i class="Mdi mdi-lock-open-variant" style="color:#30b455;font-size:20px;"></i><div style="font-size:10px;color:#30b455;">#state#<span style="font-size:10px;color:#30b455;">%</span></div>');
				}
            	else {
                  		// orange car alarme requiert attention, rouge var batterie déchargé
                  	   cmd.find('.iconCmd').empty().append('<i class="Mdi mdi-lock-open-variant" style="color:#ff8c00;font-size:20px;"></i><div style="font-size:10px;color:#da3037;">#state#<span style="font-size:10px;color:#da3037;">%</span></div>');
                }
          }
          // alarme = 1 (alarme = 1, online = 1)
		  else if (alarme == 1) {
            		
		  		if (state >= 40) {
                  		// rouge car alarme activée, vert car batterie OK
            	   	   cmd.find('.iconCmd').empty().append('<i class="Mdi mdi-lock-check" style="color:#da3037;font-size:20px;"></i><div style="font-size:10px;color:#30b455;">#state#<span style="font-size:10px;color:#30b455;">%</span></div>');
				}
            	else {
                  		// rouge car alarme activée, rouge car batterie déchargée
                  	   cmd.find('.iconCmd').empty().append('<i class="Mdi mdi-lock-alert" style="color:#da3037;font-size:20px;"></i><div style="font-size:10px;color:#da3037;">#state#<span style="font-size:10px;color:#da3037;">%</span></div>');
                }
          }
          // alarme = 2 (alarme = 1, online = 0)
          else if (alarme == 2) {
		  		if (state >= 40) {
                  		// rouge car alarme activée, vert car batterie ok
            	   	   cmd.find('.iconCmd').empty().append('<i class="Mdi mdi-lock-question" style="color:#da3037;font-size:20px;"></i><div style="font-size:10px;color:#30b455;">#state#%<span style="font-size:10px;color:#30b455;">%</span></div>');
				}
            	else {
                  	   cmd.find('.iconCmd').empty().append('<i class="Mdi mdi-lock-question" style="color:#da3037;font-size:20px;"></i><div style="font-size:10px;color:#da3037;">#state#<span style="font-size:10px;color:#da3037;">%</span></div>');
                }
          }
          // alarme = 3 (alarme = 0, online = 0)
          else if (alarme == 3) {
		  		if (state >= 40) {
                  		// vert car alarme désactivée, vert car 
            	   	   cmd.find('.iconCmd').empty().append('<i class="Mdi mdi-lock-question" style="color:#30b455;font-size:20px;"></i><div style="font-size:10px;color:#30b455;">#state#<span style="font-size:10px;color:#30b455;">%</span></div>');
				}
            	else {
                  	   cmd.find('.iconCmd').empty().append('<i class="Mdi mdi-lock-question" style="color:#30b455;font-size:20px;"></i><div style="font-size:10px;color:#da3037;">#state#<span style="font-size:10px;color:#da3037;">%</span></div>');
                }
          }
		  //cmd.find('.state').empty().append(' '+state);
          //cmd.find('.unite').empty().append(' #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>

Le widget est un numeric (niveau de la batterie) et je change l’icone en fonction de l’option de l’état de l’alarme.

Autre solution, utilisez le plugin jeelog très complet et bien paramétrable.
L’idée de @superbricolo est une bonne fifo. J’avoue avoir pensé à l’intégrer sur le design mais comme j’ai un monodesign, j’ai laissé tomber.
Perso, je remonte ce type de notifications dans un télégram dédié sur mon tél.