Widget multi-ouvrants proportionnel?

Tu as fait la modification pour prendre en compte la proportionnalité ? Donc là sur le widget le bas du volet est encore bien collé en effet.
Mais les 8% …

Si tu indiques 50% est-ce que le widget est bien au milieu et le volet réel au millieu ?

Malheureusement je n’ai pas de poil de cul pour vérifier :laughing:

Je n’ai rien fait du tout car c’est à se faire des nœuds au cerveau pour rien, en voulant voir ce que je pouvais mettre en place je me suis aperçu que le slider avait également un temps de décollement comme un volet physique du fait du sélecteur qui dépasse légèrement du slider.

Le léger décalage du au temps de décollement ne me gênait déjà pas mais là pour moi je trouve que ça colle à la réalité. De toute façon pour le moment ce widget est fonctionnel je passe à autre chose :sunglasses: :nerd_face:

Édit: au pire je pourrais jouer sur la hauteur du sélecteur a l’avenir en fonction des retours :wink:

Je penses que tu peux clore ce sujet :wink:

Il me semble pourtant assez visuel (et sans poil de cul :slight_smile:) de s’apercevoir que le volet réel n’a absolument pas la bonne position quand on lui demande de monter (ou descendre) à 50% depuis Jeedom (par exemple).

Volet Jeedom 50%

Visuellement on a plus l’impression d’avoir demandé une ouverture à 30% qu’à 50% et ceci parce que le temps d’ouverture ou fermeture des lames est inclus dans le temps total de montée ou descente et donc dans le pourcentage.

L’affaire n’est donc pas juste une histoire de visuel du décollement mais c’est parce que le temps de décollement n’est pas pris en compte que la position final du volet ne reflète pas les 25, 50 ou 75% demandé par exemple.

EDIT : En fait j’avais commencé par adapté le widget comme ça :

       jeedom.cmd.update['#id#'] = function(_options) {        
         var new_value = (_options.display_value == '') ? 0 : parseInt(_options.display_value-24+((_options.display_value-24)*6/19));
         if (new_value == 99 && '#Fibaro#'.trim() == '1') {
           new_value = 100;
         }
         if (new_value < 24 && new_value != 0) {
           new_value = 1;
         }

Mais ça me donne pas le bon résultat car 98% en haut et je ne comprend pas pourquoi.

Peux-être peux-tu juste m’aider à corriger du coup ?

Alors je viens de passer plusieurs heures la-dessus et le seul moyen précis que je vois est de calculer le temps total et de faire un ratio avec le temps de course donc pas jouable sur un widget…

Ta solution n’empêche pas ton volet d’être visuellement à 30% au lieu des 50% indiqués si je ne m’abuse :wink:

Je vais continuer d’y réfléchir mais pour le moment je lâche l’affaire

Je ne comprends pas pourquoi ça ne serait pas jouable avec un widget ? Dans le code d’un widget on peut bien mettre des calculs et donc faire en sorte de modifier le pourcentage que le widget indique (donc la position du volet dans Jeedom) en rectifiant ce pourcentage en fonction pourcentage correspondant à la position réelle du volet.

2 ou 3 exemple de valeurs avec le code que j’avais essayé :

  • Si le pourcentage calculé naturellement par le module est en dessous de 24% alors on rectifie et on fait comme si c’était 1% car chez moi il n’est pas encore décollé à 24% (mais pas fermé). C’est cette valeur qui va changer suivant les personnes
  • Si le pourcentage calculé naturellement par le module est de 50% alors on rectifie à la valeur (50-24+(50-24)*6/19) = 34% ce qui fait que le visuel colle à la réalité car à 50% le volet n’est en fait qu’à 34% puisqu’il lui a fallut plusieurs secondes pour décoller. Il est bien à la moitié de son temps de trajet total mais qu’au tiers de sa position
  • Si le pourcentage calculé naturellement par le module est de 75% alors on rectifie à la valeur (75-24+(75-24)*6/19) = 67%

Et donc avec ces modifications, quand la position du volet rectifiée par le widget est à 50%, le vrai volet a eu le temps de grimper plus longtemps et il est … vraiment à la moitié du chemin, c’est-ce pas ? :slight_smile:

1 « J'aime »

T’aurais du me donner les calculs avant j’aurais gagné du temps je suis une bille en math !

J’essaye ça et je te redis merci

1 « J'aime »

ça date du 11 janvier ça remonte un peu et … je m’étais vraiment fais suer aussi pour trouver ça !

Comme je le disais, le soucis c’est que la formule à laquelle j’étais arrivée avec le « *6/19 » dépendait, de mémoire, de mon pourcentage de décollement à 24% car j’avais simplifié à la fin :sweat_smile:
Mais je retrouve pas ma feuille de calcul … bon s’il le faut je devrais arriver à le refaire… j’espère.

Du coup il est probable que ce soit moins juste si chez toi ça décolle à 20%…

PourcentageModule-PourcentageDecollement+((PourcentageModule-PourcentageDecollement)*6/19)

Ah bah si t’as plus d’infos ça m’intéresse. Sur le coup j’ai pensé que c’était universel ces 2 valeurs…

Je viens de vérifier je décolle à 12% (sûrement pour cette raison que ça me choque moins, ce sont tes photos qui m’ont convaincu d’approfondir la question).

Je regardes après avoir couché les enfants, si tu retrouves tes calculs ça devrait aider :wink:

Je tente de le refaire car j’avais cherché mais pas retrouvé :frowning:
Enfin vu comme je m’étais pris le choux, tu pourras déjà essayé d’intégrer cette formuler au widget de la bonne façon (puisque volet ouvert Jeedom m’indique 98% j’ai du me rater mais je comprends pas où) et il suffira de modifier la formule par la suite si la base est posée !

Merci à toi :slight_smile:

J’ai réussi à retrouver comment j’avais fais et du coup j’ai clarifié tout ça :star_struck:

Le principe, si ça intéresse, a été de découper en 4 intervalles ce qu’il reste à parcourir réellement entre le moment du décollement et l’ouverture complète pour trouver :

  • l’écart en pourcentage entre chaque intervalle
  • la différence à appliquer, à chaque intervalle, pour corriger la valeur sur le widget

Soit D = valeur en pourcentage du décollement.

On va avoir besoin de 2 variables.

  • L’écart E = (100-D)/4
  • Le pas P = D/4

Le pourcentage rectifié R d’une valeur de module X pourra alors être calculé par la formule suivante :
R = ((X-D)*P/E)+X-D

Exemple avec ton 12% de décollement si le module indique un volet à 56% :
R = ((56-12)*3/22)+56-12 = 50%
Le widget pourra alors afficher 50% et le visuel du widget, tout comme en principe le vrai volet, seront bien au milieu !

1 « J'aime »

Bah tu sais quoi ?? Même avec ta formule c’est plutôt probant félicitations !!

Juste un petit truc qui peut être déstabilisant c’est que le volet ne termine pas sa course au positionnement cliqué mais par contre une fois le retour d’état pris en compte le visuel correspond bien mieux à la réalité. On voit un saut sur le widget au moment du retour d’état (au bout d’une dizaine de secondes):
20200402_213710

Félicitations à toi pour ces calculs et merci pour l’info !!

Je vais affiner tout ça demain et faire différents tests grâce à tes calculs pour rendre ça générique pour tout un chacun juste en renseignant la valeur à partir de laquelle le volet décolle en paramètre optionnel. J’essayerai de te faire une version V3 si t’es pas décidé à passer en V4 :wink:

Cool :+1: et merci :relaxed:

Alors j’avoue que le passage en V4 me fait peur car pas mal de choses ne fonctionneront plus visuellement et j’ai eu pas mal de difficultés pour en arriver là. Certe depuis peu, et pour beaucoup grâce à toi, plein de widgets ont été adaptés en V4 mais si tu pouvais réarranger le widget en V3 je t’en serais reconnaissant :smile:.

Ce n’est pas le sujet mais tu as fait une migration V3 vers V4 depuis Jeedom et en restant en Stretch ou bien tu es répartis de zéro avec une V4 sous Buster en refaisant tout sur un principe de copier/coller depuis la V3 ? D’ailleurs en faisant comme ça, si on monte la clef zwave sur la V4, Jeedom ne va pas recréer es équipements ? Faudrait tout réintégrer c’est l’enfer non ?

Je commence par la bonne nouvelle, j’ai intégré le calcul automatiquement à partir d’un paramètre optionnel et pour le moment ça parait pas mal mais je test uniquement sur des virtuels à cette heure.

Du coup je t’invite à télécharger les fichiers Widget ShutterSlider.zip et à les coller dans le répertoire plugins/widget/core/template/dashboard. Je t’envois par MP un code de remplacement pour le html (on va tester en changeant juste les chemins pour la V3).


Pour la migration j’ai tout réinstallé pour ma part : Proxmox 6, Debian 10 et fresh install Jeedom.
Mais j’avais fait différents tests auparavant, c’est l’avantage des VM…

La migration V4 est la bonne excuse pour passer sous Buster car de toutes façons il faudra y passer tôt ou tard.
Pas d’inquiétude à avoir concernant le zwave, la clé a en mémoire les routes vers tous les modules, il suffit de cliquer sur le bouton synchroniser dans le plugin Zwave, d’attendre quelques minutes (c’est vraiment un moment où il faut savoir être patient et laisser le plugin tout remettre en place) et hop c’est reparti !

Après j’ai jonglé entre 2 VM pour faire cette migration. pendant quelques jours je coupais ma VM de prod V3 pour attribuer la clé à la VM V4 le temps d’avancer puis retour sur la VM V3 pour réactiver la domotique.

Franchement j’ai migré un peu à l’arrache et ça s’est vraiment passé très facilement !

Ah déjà, extra !

Tu t’appuies sur ton code V4 et pas de raison pour que ça ne fonctionne pas en V3, c’est malin.

Je testerai demain avec le zip et le changement dans le code HTML parce que c’est plus trop l’heure de jouer avec les volets :innocent:.

Merci pour ton retour d’expérience V3 vers V4, c’est ma foi sans doute comme ça que je ferai aussi mais faut se lancer quoi.

Ma bonne conscience me disait pareil :innocent: mais elle n’a pas fait long-feu :japanese_ogre: j’ai pas résisté à tester « en vrai »… Bah ça fonctionne bien !!! Je finalise demain mais ça fonctionne nickel à première vue.

Allez bonne nuit, je t’ai envoyé un code modifié en MP

1 « J'aime »

Haaa mais vous êtes géniaux !!
Super merci @Salvialf d’avoir mieux compris le réel besoin par rapport a nos discussions sur discord.

Et bravo a @Bison pour la calcul !! J’espère qu’on pourra faire des tests ce weekend en sachant que le pourcentage de décollement est variable par volet sinon c’est pas drôle ( enfin chez moi c’est comme ça )

Salut @Salvialf !

Je n’ai pu testé que maintenant, travail oblige. C’est top et ça marche bien merci beaucoup pour ton travail :heart_eyes:

Il y a juste un décalage vers la droite du bandeau noir du bas si on veut pinailler. Possible de le recaler sous le reste ?

image

L’image 85x65 est peut-être un peu grande pour mon design je vais testé en diminuant la hauteur et la largeur mais du coup comme le rapport 85/65 est bizarre je sais pas si je pourrais retomber sur la même proportion.

Cool merci pour le retour @Bison,

Pour la taille de l’image j’ai mis par défaut à peu près la taille qui était définie dans le widget SlidVertical et fallait bien que je mette quelque chose :wink: Sur ma prod j’ai modifié dans le code pour passer par défaut à h=100 * l=110.
J’ai mis des paramètres optionnels hauteur & largeur qui te permette de modifier la taille par volet et mettre ce que tu veux:

Concernant le sélecteur décalé je m’y attendais mais je pensais qu’il y aurait d’autres problèmes d’affichage. Donc pour régler ce décalage il te suffit de supprimer la ligne margin-left: 5px; dans le bas du code :

#custom-handle {
height: 9px;
border-radius: 0 0 4px 4px!important;
margin-left: 5px;
}

J’ai réussi à m’y remettre je devrais pouvoir partager une version finale dans la journée.

Encore merci pour ta patience et les infos :wink:

Merci pour le margin-left ! En le supprimant totalement ça décalait à gauche cette fois. Avec une valeur de 3px c’est parfait :slight_smile:

image

1 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.