Alerte sur Design

Bonjour,
J’aimerais pouvoir faire apparaitre des alertes sur mon design sous forme de Pop-up, avec éventuellement aussi des boutons permettant d’interagir avec l’alerte.

Quelques exemples pratiques:

  • Au moment de sortir une alerte suggérant de prendre un parapluie car il va bientot pleuvoir
  • Suggérer d’ouvrir la fenetre des chambres le soir si leur température est trop élevée et qu’il fait plus frais à l’extérieur
  • Proposer d’écouter les infos à la radio, avec un bouton qui permet de lancer franceinfo sur les Sonos.
  • Demander confirmation si on lance une playlist depuis le design et que les enfants dorment.

J’ai cherché sur plusieurs fils de discussion du forum, et ai trouvé quelques pistes:

  • En passant par l’activation et la desactivation d’un équipement virtuel. Mais la mise à jour sur le design nécessite un rafraichissement de la page web ou un gotodesign depuis un scenario, avec donc un délai de chargement (pas WAF).
  • En adaptant cette solution en css/javascript qui permet de montrer/cacher des équipements sur un OnClick. Mais je ne vois pas comment déclencher ce javascript depuis un scenario. (possible de déclencher un javascript sur un changement d’état d’une info par exemple?)

Je me rends compte que l’action alert dans les scenarios affiche justement du texte dans une div_alert sur le design, sans avoir à rafraichir la page. Ca serait déjà un grand pas en avant, mais le probleme de cette alerte est qu’elle fait glisser tout mon design vers le bas quand elle apparait. Et donc mes boutons en bas de design ne sont plus accessibles.

  • Est-il possible de modifier le comportement de cette div_alert pour qu’elle se superpose sur le design au lieu de le décaler vers le bas?
  • Y-a-t’il une solution pour faire apparaitre/disparaitre un équipement sans rafraichissement?
  • Existe-t’il sinon un plugin qui permettrait de remplir mon besoin?

Merci par avance de votre aide,
Thomas

3 « J'aime »

Salut
Je déterre un peu ce topic mais je voudrais savoir si tu as réussi?
Je suis plutôt intéressé par le concept.

Hello,
je viens de faire un essai sur un design.
Ajouter un Texte/html

Contenu:

<script>

	// Gestion de la fenêtre de dialogue
  	$(function() {
		$( "#dialog-update-cmd" ).dialog({
			resizable: false,
			height: "auto",
			width: 400,
			modal: true,
			autoOpen: false,
			closeOnEscape: true,
            open: function () {
              setTimeout(function () {
                $( "#dialog-update-cmd" ).dialog( "close" );
              }, 10000); // 10 secondes avant fermeture automatique
            },
			buttons: {
				"Valider": function() {
					$( this ).dialog( "close" );
					// ACTION SI ON VALIDE ICI
					console.log("ON VALIDE");
				},
				Cancel: function() {
					$( this ).dialog( "close" ); // ON FERME JUSTE LE POPUP
				}
			}
		});

	});
  
	// Une commande a été mise à jour, on vérifie si c'est celle 
	// qu'on surveille pour afficher le popup
	var currentValue = "";
	$('body').on('cmd::update', function(_event, _options) {
		//console.log(_options);
      	_options.forEach((option) => {
          var cmd_id = option.cmd_id;
          var display_value = option.display_value;
          const cmd_id_a_surveiller = 16537; // ici l'id que je désire surveiller

          if(cmd_id == cmd_id_a_surveiller) {
              console.log("update commande " + cmd_id + " : " + display_value);
              if(currentValue != "" && currentValue != display_value) {
                  // Valeur actualisée depuis l'ouverture de page, et valeur différente on affiche le popup
                  //$( "#dialog-update-cmd" ).dialog( "open" );
              }
              currentValue = display_value;
          }
        });
	});

</script>

<div id="dialog-update-cmd" title="Mise à jour valeur détectée">
	<p>
		<span class="ui-icon ui-icon-alert" style="float:left; margin:12px 12px 20px 0;"></span>
		Mise à jour détectée. Question rapide blabla...
	</p>
</div>

ça correspond pas exactement à la demande initiale, mais c’est une piste de départ.

j’ai mis des commentaires pour aider, y’a l’id de la commande à surveiller (celle qui déclenche l’affichage du popup) à modifier en correspondance à votre install
tout en bas personnalisation du message.
on peut imaginer surveiller plusieurs commandes et faire des messages différents en conséquences.

si besoin de plus de renseignements, n’hésitez pas.

5 « J'aime »

Salut
Je vais regarder cela.

Merci à toi

1 « J'aime »

Salut
Je n’arrive pas à faire fonctionner ton code.

Juste pour être sûr :
J’ai ajouter ton code sur un design à un extérieur/html
J’ai modifier pour mettre l’id pour mettre un commande info d’un virtuel par exemple.

Je change la valeur de ma commande info mais rien ne se passe.

J’ai testé avec un virtuel (je navais fait qu’avec une commande) ça fonctionne aussi.
récupérer l’id de ton virtuel:


16537 pour moi. ça ne fait pas de calcul dans mon cas mais c’est pour les tests, le ping de mon ordi est toujours différent et actualisé toutes les minutes, plus simple pour les tests

ajouter un « texte/html » et aller dans les paramètres d’affichage
image

coller le code ci-dessus en mettant l’id correspondant

sauvegarder et actualiser une première fois ta page (pas obligatoire mais au moins on est sûr)

dans les 2 minutes qui suivent il devrait y avoir le popup si la valeur a changé

pour savoir les commandes que jeedom a reçu depuis que tu as ouvert la page, tu peux décommenter en enlevant les 2 slash //console.log(_options);
ensuite en faisant F12 tu auras les commandes

image

D’ailleurs si tu as des erreurs dans la console ça peut t’aiguiller.

J’espère avoir été clair.
PS: je suis en jeedom 4.2.20. il se peut que ça ne fonctionne pas sur des vieilles versions (même probable)

Up: j’ai fait une modif, effectivement si on a beaucoup de commande il se peut que ça soit pas la première :stuck_out_tongue:

tu peux reprendre le code que jai édité, il vérifie toutes les commandes quand y’en a plusieurs à la fois!

Bonjour,

j’ai essayé ton code @ddelec24 mais ca ne fonctionne pas chez moi.
je ne sais pas si @Thom a pu tester de son côté

Salut
Moi non plus je n’arrive pas à faire fonctionné le code. J’ai un peu laissé tomber pour le moment et je reverrai cela à mon retour de congés.