Mise à jour des widgets du core pour la V3
Re: Mise à jour des widgets du core pour la V3
@bcaro
bonjour,
Le widget "NON" core sont dans /var/www/html/plugins/widget/core/template/dashboard et /var/www/html/plugins/widget/core/template/mobile.
Ceux "core" sont ailleurs donc pas de risque de les supprimer
bonjour,
Le widget "NON" core sont dans /var/www/html/plugins/widget/core/template/dashboard et /var/www/html/plugins/widget/core/template/mobile.
Ceux "core" sont ailleurs donc pas de risque de les supprimer
1 NUC & 1 RPI3/Msata V3.3.31, EnOcean, Z-wave,
Rflink, IPX800V3, carte 8 rl IP, IR_V3, Xiaomi gateway, JPI/APK/tel Android dédié, Somfy RTS, Rf433Mhz, Xiaomi, Bm280 , Broadlink,WifiLights
Rflink, IPX800V3, carte 8 rl IP, IR_V3, Xiaomi gateway, JPI/APK/tel Android dédié, Somfy RTS, Rf433Mhz, Xiaomi, Bm280 , Broadlink,WifiLights
Re: Mise à jour des widgets du core pour la V3
viewtopic.php?f=30&t=44084&p=710497&hil ... or#p710497
Re: Mise à jour des widgets du core pour la V3
Bonjour,
J'ai tente de recréer mon widget fil pilote, j'ai utilisé le mode création facile mais je voudrais me séparer de la valeur (30 dans l'exemple) :
Quelqu'un pourrait-il me dire comment modifier le code ?:
Merci de votre aide !
J'ai tente de recréer mon widget fil pilote, j'ai utilisé le mode création facile mais je voudrais me séparer de la valeur (30 dans l'exemple) :
Quelqu'un pourrait-il me dire comment modifier le code ?:
Code : Tout sélectionner
<div style="min-width:120px; min-height:80px;" class="cmd tooltips cmd-widget cursor container-fluid" data-type="info" data-subtype="numeric" data-cmd_id="#id#" data-cmd_uid="#uid#">
<center>
<div style="font-weight: bold;font-size : 12px;#hideCmdName#">#name_display#</div>
<span style="font-size: 2.5em;" class="iconCmd"></span>
<div style="display:inline-block;">
<span style="font-weight: bold;" class="pull-right">#unite#</span>
<span style="font-size: 2em;font-weight: bold;" class="pull-right state"></span>
</div>
<div style="#displayHistory# font-size: 0.8em;" class="col-xs-12 center-block">
<span title="Min" class="tooltips">#minHistoryValue#</span>|<span title="Moyenne" class="tooltips" >#averageHistoryValue#</span> | <span title="Max" class="tooltips">#maxHistoryValue#</span> <i class="#tendance#"></i>
</div>
</center>
<!-- Ne Pas Supprimer -->
<script class="createWidgetInfo" type="text/javascript">//<![CDATA[{"type":"1","version":"1","size":"2.5","min":["0","11","21","31","41","51"],"max":["10","20","30","40","50","100"],"images":["radiateur arret.png","radiateur hg.png","radiateur eco.png","radiateur confort-2.png","radiateur confort-1.png","radiateur confort.png"]}]]></script>
<!-- Ne Pas Supprimer -->
<script>
var srcImg = 'plugins/widget/core/template/dashboard/cmd.info.numeric.Radiateur test/';
var iconUpdate = function (state){
$('.cmd[data-cmd_uid=#uid#] .iconCmd').empty();
if (state >= 0 && state <= 10) {
$('.cmd[data-cmd_uid=#uid#] .iconCmd').html('<img style="display: inline-block;" src="'+srcImg+'radiateur arret.png">');
}
if (state >= 11 && state <= 20) {
$('.cmd[data-cmd_uid=#uid#] .iconCmd').html('<img style="display: inline-block;" src="'+srcImg+'radiateur hg.png">');
}
if (state >= 21 && state <= 30) {
$('.cmd[data-cmd_uid=#uid#] .iconCmd').html('<img style="display: inline-block;" src="'+srcImg+'radiateur eco.png">');
}
if (state >= 31 && state <= 40) {
$('.cmd[data-cmd_uid=#uid#] .iconCmd').html('<img style="display: inline-block;" src="'+srcImg+'radiateur confort-2.png">');
}
if (state >= 41 && state <= 50) {
$('.cmd[data-cmd_uid=#uid#] .iconCmd').html('<img style="display: inline-block;" src="'+srcImg+'radiateur confort-1.png">');
}
if (state >= 51 && state <= 100) {
$('.cmd[data-cmd_uid=#uid#] .iconCmd').html('<img style="display: inline-block;" src="'+srcImg+'radiateur confort.png">');
}
$('.cmd[data-cmd_uid=#uid#] .state').text(state);
};
jeedom.cmd.update['#id#'] = function(_options){
$('.cmd[data-cmd_uid=#uid#]').attr('title','Valeur du '+_options.valueDate+', collectée le '+_options.collectDate)
iconUpdate(_options.display_value);
}
jeedom.cmd.update['#id#']({display_value:'#state#',valueDate:'#valueDate#',collectDate:'#collectDate#',alertLevel:'#alertLevel#'});
</script>
</div>
Re: Mise à jour des widgets du core pour la V3
Salut,
Essayes avec ça:
Code : Tout sélectionner
<div style="min-width:120px; min-height:80px;" class="cmd tooltips cmd-widget cursor container-fluid" data-type="info" data-subtype="numeric" data-cmd_id="#id#" data-cmd_uid="#uid#">
<center>
<div style="font-weight: bold;font-size : 12px;#hideCmdName#">#name_display#</div>
<span style="font-size: 2.5em;" class="iconCmd"></span>
<div style="#displayHistory# font-size: 0.8em;" class="col-xs-12 center-block">
<span title="Min" class="tooltips">#minHistoryValue#</span>|<span title="Moyenne" class="tooltips" >#averageHistoryValue#</span> | <span title="Max" class="tooltips">#maxHistoryValue#</span> <i class="#tendance#"></i>
</div>
</center>
<!-- Ne Pas Supprimer -->
<script class="createWidgetInfo" type="text/javascript">//<![CDATA[{"type":"1","version":"1","size":"2.5","min":["0","11","21","31","41","51"],"max":["10","20","30","40","50","100"],"images":["radiateur arret.png","radiateur hg.png","radiateur eco.png","radiateur confort-2.png","radiateur confort-1.png","radiateur confort.png"]}]]></script>
<!-- Ne Pas Supprimer -->
<script>
var srcImg = 'plugins/widget/core/template/dashboard/cmd.info.numeric.Radiateur test/';
var iconUpdate#uid# = function (state){
$('.cmd[data-cmd_uid=#uid#] .iconCmd').empty();
if (state >= 0 && state <= 10) {
$('.cmd[data-cmd_uid=#uid#] .iconCmd').html('<img style="display: inline-block;" src="'+srcImg+'radiateur arret.png">');
}
if (state >= 11 && state <= 20) {
$('.cmd[data-cmd_uid=#uid#] .iconCmd').html('<img style="display: inline-block;" src="'+srcImg+'radiateur hg.png">');
}
if (state >= 21 && state <= 30) {
$('.cmd[data-cmd_uid=#uid#] .iconCmd').html('<img style="display: inline-block;" src="'+srcImg+'radiateur eco.png">');
}
if (state >= 31 && state <= 40) {
$('.cmd[data-cmd_uid=#uid#] .iconCmd').html('<img style="display: inline-block;" src="'+srcImg+'radiateur confort-2.png">');
}
if (state >= 41 && state <= 50) {
$('.cmd[data-cmd_uid=#uid#] .iconCmd').html('<img style="display: inline-block;" src="'+srcImg+'radiateur confort-1.png">');
}
if (state >= 51 && state <= 100) {
$('.cmd[data-cmd_uid=#uid#] .iconCmd').html('<img style="display: inline-block;" src="'+srcImg+'radiateur confort.png">');
}
};
jeedom.cmd.update['#id#'] = function(_options){
$('.cmd[data-cmd_uid=#uid#]').attr('title','Valeur du '+_options.valueDate+', collectée le '+_options.collectDate)
iconUpdate#uid#(_options.display_value);
}
jeedom.cmd.update['#id#']({display_value:'#state#',valueDate:'#valueDate#',collectDate:'#collectDate#',alertLevel:'#alertLevel#'});
</script>
</div>
Dernière édition par Salvialf le 20 mars 2019, 14:34, édité 1 fois.
VM Jeedom 3.2.16 sous Proxmox 5.4 sur NUC5i5RYH (Debian 9.9)
Helper Officiel Jeedom
Widgets développés
Téléchargement d'icônes domotique (Topic Forum)
Helper Officiel Jeedom
Widgets développés
Téléchargement d'icônes domotique (Topic Forum)
Re: Mise à jour des widgets du core pour la V3
Jeedom RC V4.0.23
* DIY NUC 6I5SYK (Crucial 16GB Kit (8GBx2) DDR4 2133 MT/s) * Contrôleur Z-Wave AEOTEC GEN5 *
* VMWare ESXi 6.7.0 Update 3 (Build 14320388) * VM Jeedom Debian 9.5 avec 1 CPU/4 Go de mémoire * PHP 7.0.30-0 * Clé USB : SENA UD100
* DIY NUC 6I5SYK (Crucial 16GB Kit (8GBx2) DDR4 2133 MT/s) * Contrôleur Z-Wave AEOTEC GEN5 *
* VMWare ESXi 6.7.0 Update 3 (Build 14320388) * VM Jeedom Debian 9.5 avec 1 CPU/4 Go de mémoire * PHP 7.0.30-0 * Clé USB : SENA UD100
Re: Mise à jour des widgets du core pour la V3
@SeaWood
Et regarde bien à la fin de mes messages, concernant l'interférence lorsque l'on a plusieurs modules/virtuels qui utilisent le même widget (ajouter #uid# à deux endroits)
Et regarde bien à la fin de mes messages, concernant l'interférence lorsque l'on a plusieurs modules/virtuels qui utilisent le même widget (ajouter #uid# à deux endroits)
Jeedom RC V4.0.23
* DIY NUC 6I5SYK (Crucial 16GB Kit (8GBx2) DDR4 2133 MT/s) * Contrôleur Z-Wave AEOTEC GEN5 *
* VMWare ESXi 6.7.0 Update 3 (Build 14320388) * VM Jeedom Debian 9.5 avec 1 CPU/4 Go de mémoire * PHP 7.0.30-0 * Clé USB : SENA UD100
* DIY NUC 6I5SYK (Crucial 16GB Kit (8GBx2) DDR4 2133 MT/s) * Contrôleur Z-Wave AEOTEC GEN5 *
* VMWare ESXi 6.7.0 Update 3 (Build 14320388) * VM Jeedom Debian 9.5 avec 1 CPU/4 Go de mémoire * PHP 7.0.30-0 * Clé USB : SENA UD100
Re: Mise à jour des widgets du core pour la V3
Bien vu je l'ai ajouté au code au dessus. J'ai viré la div qui gère l'affichage en plus de la ligne qui affiche l'état.
VM Jeedom 3.2.16 sous Proxmox 5.4 sur NUC5i5RYH (Debian 9.9)
Helper Officiel Jeedom
Widgets développés
Téléchargement d'icônes domotique (Topic Forum)
Helper Officiel Jeedom
Widgets développés
Téléchargement d'icônes domotique (Topic Forum)
Re: Mise à jour des widgets du core pour la V3
Merci i-magin !
Re: Mise à jour des widgets du core pour la V3
Excusez mon ignorance, mais ils sont visibles où les widget core ???
J'ai installé le plugin "Widget" Officiel, qui me permet d'accéder à un market de widget.
est-ce que ce sont ceux là les widget core ???
J'ai installé le plugin "Widget" Officiel, qui me permet d'accéder à un market de widget.
est-ce que ce sont ceux là les widget core ???
Re: Mise à jour des widgets du core pour la V3
J'en profite également pour demander un petit coup de main pour mon code :
<div style="width:204px;min-height:60px;" class="cmd #history# tooltips cmd-widget" data-type="info" data-subtype="numeric" data-cmd_id="#id#" title="#collectDate#">
<center>
<span style="font-size: 1em;font-weight: bold;" id="iconCmd#id#"></span>
</center>
<script>
if ('#state#' == 'Absent' ) {
$('#iconCmd#id#').append('<img src="plugins/widget/core/template/dashboard/cmd.info.string.Etat Mode@Tablette2/@absent-onv5.png"> </i>');
}
if ('#state#' == 'Normal' ) {
$('#iconCmd#id#').append('<img src="plugins/widget/core/template/dashboard/cmd.info.string.Etat Mode@Tablette2/@work-onv5.png"> </i>');
}
if ('#state#' == 'Present') {
$('#iconCmd#id#').append('<img src="plugins/widget/core/template/dashboard/cmd.info.string.Etat Mode@Tablette2/@home-onv5.png"> </i>');
}
if ('#state#' == 'OFF') {
$('#iconCmd#id#').append('<img src="plugins/widget/core/template/dashboard/cmd.info.string.Etat Mode@Tablette2/@Off-onv5.png"> </i>');
}
</script>
</div>
Car malgré la lecture des différents post, je ne sais pas quoi faire , ni par ou commencer.
J'avais réussi à adapter un peu, précédemment, par analogie, mais là, je ne sais plus.
<div style="width:204px;min-height:60px;" class="cmd #history# tooltips cmd-widget" data-type="info" data-subtype="numeric" data-cmd_id="#id#" title="#collectDate#">
<center>
<span style="font-size: 1em;font-weight: bold;" id="iconCmd#id#"></span>
</center>
<script>
if ('#state#' == 'Absent' ) {
$('#iconCmd#id#').append('<img src="plugins/widget/core/template/dashboard/cmd.info.string.Etat Mode@Tablette2/@absent-onv5.png"> </i>');
}
if ('#state#' == 'Normal' ) {
$('#iconCmd#id#').append('<img src="plugins/widget/core/template/dashboard/cmd.info.string.Etat Mode@Tablette2/@work-onv5.png"> </i>');
}
if ('#state#' == 'Present') {
$('#iconCmd#id#').append('<img src="plugins/widget/core/template/dashboard/cmd.info.string.Etat Mode@Tablette2/@home-onv5.png"> </i>');
}
if ('#state#' == 'OFF') {
$('#iconCmd#id#').append('<img src="plugins/widget/core/template/dashboard/cmd.info.string.Etat Mode@Tablette2/@Off-onv5.png"> </i>');
}
</script>
</div>
Car malgré la lecture des différents post, je ne sais pas quoi faire , ni par ou commencer.
J'avais réussi à adapter un peu, précédemment, par analogie, mais là, je ne sais plus.
Re: Mise à jour des widgets du core pour la V3
Les widget core (c'est à dire ceux proposé par défaut par Jeedom) ne sont pas visible.
Ils ne sont pas listés dans le plugin Widget
Jeedom Stable 3.3
NUC Z83 + Aeotec Z-Stick Gen5
Z-Wave FGR + FGMS + FGDS + FGFS + FGK + FGWPE + ZW062 + ZW080
GH Mini + Orvibo AllOne + Playbulb + Miband2
NUC Z83 + Aeotec Z-Stick Gen5
Z-Wave FGR + FGMS + FGDS + FGFS + FGK + FGWPE + ZW062 + ZW080
GH Mini + Orvibo AllOne + Playbulb + Miband2
Re: Mise à jour des widgets du core pour la V3
- domoggvad
- Actif
- Messages : 1880
- Inscription : 29 avr. 2015, 16:02
- Localisation : Seine-Saint-Denis (Villepinte)
Re: Mise à jour des widgets du core pour la V3
Bonjour les gars,
si vous avez un widget qui fonctionne en v3.3.x, vous pouvez mettre le lien ici avec un visuel ça serait bien
merci
viewtopic.php?f=29&t=44183
si vous avez un widget qui fonctionne en v3.3.x, vous pouvez mettre le lien ici avec un visuel ça serait bien
merci
viewtopic.php?f=29&t=44183
3 Odroid C2 (Prod - secours - test) Z83 tests: rfxcom + Z-wave- Clims DAIKIN - espeasy - thekey - Xiaomi - Telinfo - broadlink... widget V3 :viewtopic.php?f=29&t=44183&p=717810#p717810
Re: Mise à jour des widgets du core pour la V3
Ils sont déjà intégré à Jeedom d'ou leur appelation "core" (faisant partie du coeur de Jeedom)
Dans les listes déroulantes de sélection c'est précisé "core" ou "widget" en fonction de leur provenance.
Jeedom Stable 3.3
NUC Z83 + Aeotec Z-Stick Gen5
Z-Wave FGR + FGMS + FGDS + FGFS + FGK + FGWPE + ZW062 + ZW080
GH Mini + Orvibo AllOne + Playbulb + Miband2
NUC Z83 + Aeotec Z-Stick Gen5
Z-Wave FGR + FGMS + FGDS + FGFS + FGK + FGWPE + ZW062 + ZW080
GH Mini + Orvibo AllOne + Playbulb + Miband2
Re: Mise à jour des widgets du core pour la V3
Ok, j'ai compris le principe, mais je ne visualise pas du tout.
Une petite copie d'écran pourrait peut-etre m'aider.
Une petite copie d'écran pourrait peut-etre m'aider.
Re: Mise à jour des widgets du core pour la V3
Salut,domoggvad a écrit : ↑21 mars 2019, 22:33Bonjour les gars,
si vous avez un widget qui fonctionne en v3.3.x, vous pouvez mettre le lien ici avec un visuel ça serait bien
merci
viewtopic.php?f=29&t=44183
bonne idée, je mettrai le lien vers les miens quand j'aurais fini les maj (il m'en reste 3 a mettre à jour)
Bonne journée
Box : Jeedom Smart + Jeedom VM-Synology (avec Jeedom en beta)
Protocoles : Z-wave - RFXcom - Hue - Bluetooth - Xiaomi
Mon Matériel
Widgets développés
Protocoles : Z-wave - RFXcom - Hue - Bluetooth - Xiaomi
Mon Matériel
Widgets développés
Re: Mise à jour des widgets du core pour la V3
Bonjour,
J'ai encore un de mes widgets qui ne fonctionne pas mais la cela dépasse mes compétences, voici le code
Merci de votre aide
Bonne journée
J'ai encore un de mes widgets qui ne fonctionne pas mais la cela dépasse mes compétences, voici le code
Code : Tout sélectionner
<div id="fond#id#" class="cmd tooltips cmd-widget cursor #history#" style="width : 295px ;height : 190px;"
data-type="action" data-subtype="liste" data-cmd_id="#id#" data-cmd_uid="#uid#" data-version="#version#">
<div class="cmdName" style="font-weight: bold;font-size : 12px;#hideCmdName#">#name_display#</div>
<div id="objets#id#"></div>
<script>
function AffLabel(index, textlab, ang, Selection, com){
// fonction d'affichage d'un label et du tiret correspondant
// index = numéro du label de 0 à N-1
// textlab = texte du label
// ang = angle de position du label par rapport à la verticale
// Selection = index en cours de sélection
var Offx = CenterX + 63*Math.sin(ang/180*Math.PI); // calcul du centre du label
var Offy = CenterY - 63*Math.cos(ang/180*Math.PI);
var labelind = "label#id#"+index; // Id affecté au label
//Sélection
if (index == Selection){
// Si on traite le label sélectionné, on affiche le label de la bonne classe
$("#objets#id#").append($('<div id="'+labelind+'" class="btn-sm mylabelselect#id#">'+textlab+'</div>'));
} else {
// si c'est un label non sélectionné,on affiche un bouton d'action
var comaction = "Actionclick(#id#,"+ang+",'"+com+"');";
$("#objets#id#").append($('<div id="'+labelind+'" title="'+textlab+'" class="btn btn-sm btn-default action cmdName tooltips mylabel#id#" onclick="'+comaction+'">'+textlab+'</div>'));
}
// On ajuste le X et le Y du label en fonction de l'angle
if (ang < 0){
var decalex = (document.getElementById(labelind).offsetWidth);
}else if (ang == 0){
var decalex = (document.getElementById(labelind).offsetWidth)/2;
} else {
var decalex = 0;
}
var decaley = ((document.getElementById(labelind).offsetHeight)/2)*(1+Math.cos(ang/180*Math.PI));
// On ajuste la position du label
$("#"+labelind).css({"left" : (Offx-decalex)+"px", "top" : (Offy-decaley+16)+"px"});
// calcul de la position du tiret
Offx = CenterX + 47*Math.sin(ang/180*Math.PI);
Offy = CenterY - 47*Math.cos(ang/180*Math.PI);
//Id du tiret
var gradind = "gradu#id#"+index;
// On affiche le tiret
$("#objets#id#").append($('<img id="'+gradind+'" class="grad" src="plugins/widget/core/template/dashboard/cmd.action.select.selecteur/graduation.png">'));
// On ajuste le X et le Y du tiret en fonction de l'angle
if (ang < 0){
decalex = (document.getElementById(gradind).offsetWidth);
} else if (ang == 0){
decalex = (document.getElementById(gradind).offsetWidth)/2;
} else {
decalex = 0;
}
decaley = (document.getElementById(gradind).offsetHeight)/2;
// On ajuste la position et l'orientation du tiret
$("#"+gradind).css({"left" : (Offx-decalex)+"px", "top" : (Offy-decaley+16)+"px","transform" : "rotate("+ang+"deg)"});
}
function Actionclick(id, angle, valeur){
// Lorsqu'on clique un bouton label : id = id du widget, angle = angle du label de destination, valeur de la commande
$("#Idcomut"+(id)).css({"transform" : "rotate("+angle+"deg)"});
jeedom.cmd.execute({id: id, value: {select: valeur}});
}
var cmd = '#listValue#'; //on récupère la listde des label sous forme ...<option value="label" [selected]>label</option>...
//cmd = cmd.substring(cmd.indexOf('>'), cmd.length); // on supprime le 1er qui est vide
var ListOfCmd = [];
var ListOfLabel = [];
var Selection = 0;
var i = 0;
var extractcmd = "";
while (cmd.indexOf('value=') != -1){
// on extrait un par un les différents label en les comptant
cmd = cmd.substring(cmd.indexOf('=')+2, cmd.length);
extractcmd = cmd.substring(0, cmd.indexOf('"'));
ListOfCmd.push(extractcmd);
extractcmd = cmd.substring(cmd.indexOf('"'), cmd.indexOf('>'));
if (extractcmd.indexOf('selected') != -1) {
// si c'est le label sélectionné, on le mémorise
Selection = i;
}
cmd = cmd.substring(cmd.indexOf('>')+1, cmd.length);
extractcmd = cmd.substring(0, cmd.indexOf('<'));
ListOfLabel.push(extractcmd);
i++;
}
var NbCmd = ListOfLabel.length; // Nombre total de labels
var CenterX = document.getElementById("fond#id#").offsetWidth / 2; //On centre les objets au milieu du widget
var CenterY = 100;
var AngMinMax;
switch (NbCmd) {
// répartition des labels en fonction de leur nombre
case 1:
AngMinMax = 0;
case 2:
case 3:
AngMinMax = 45;
break;
case 4:
case 5:
AngMinMax = 90;
break;
default:
AngMinMax = 120;
break;
};
// on affiche le sélecteur au milieu et on l'oriente selon le label sélectionné
$("#objets#id#").empty();
$("#objets#id#").append($('<img id="Idcomut#id#" class="comut" src="plugins/widget/core/template/dashboard/cmd.action.select.selecteur/commut.png">'));
$("#Idcomut#id#").css({"top" : (CenterY-41+16)+"px", "left" : (CenterX-39)+"px"});
$("#Idcomut#id#").css({"transform" : "rotate("+(-AngMinMax+(AngMinMax*2)/(NbCmd-1)*(Selection))+"deg)"});
// Aficchage des labels et des tirets
for (var i=0; i<NbCmd; i++) {
var ang = -AngMinMax+(AngMinMax*2)/(NbCmd-1)*(i);
AffLabel(i, ListOfLabel[i], ang, Selection, ListOfCmd[i]);
};
jeedom.cmd.update['#id#']({display_value:'#state#'});
$('.cmd[data-cmd_uid=#uid#] .iconCmd').off().on('click', function () {
jeedom.cmd.execute({id: '#id#'});
});
</script>
</div>
<style>
.comut{
position:absolute;
width: 78px; height: 82px;
transition: transform 0.5s;
}
.mylabelselect#id#{
position:absolute;
background-color:#cmdColor#;
border : white solid 2px;
border-radius: 3px;
vertical-align: middle;
text-align: center;
line-height: 17px;
font-weight: bold;
}
.mylabel#id#{
position:absolute;
background-color:#cmdColor# !important;
border-color : transparent !important;
}
.grad{
position:absolute;
width: 4px; height: 10px;
}
</style>
Bonne journée
- Pièces jointes
-
- Ensemble des images.zip
- (41.05 Kio) Téléchargé 23 fois
Box : Jeedom Smart + Jeedom VM-Synology (avec Jeedom en beta)
Protocoles : Z-wave - RFXcom - Hue - Bluetooth - Xiaomi
Mon Matériel
Widgets développés
Protocoles : Z-wave - RFXcom - Hue - Bluetooth - Xiaomi
Mon Matériel
Widgets développés
Re: Mise à jour des widgets du core pour la V3
Celui la va être un peu plus chaud à rendre compatible car c'est un widget d'action.JAG a écrit : ↑22 mars 2019, 06:50Bonjour,
J'ai encore un de mes widgets qui ne fonctionne pas mais la cela dépasse mes compétences, voici le code
Capture d’écran 2019-03-22 à 06.45.41.pngMerci de votre aideCode : Tout sélectionner
<div id="fond#id#" class="cmd tooltips cmd-widget cursor #history#" style="width : 295px ;height : 190px;" data-type="action" data-subtype="liste" data-cmd_id="#id#" data-cmd_uid="#uid#" data-version="#version#"> <div class="cmdName" style="font-weight: bold;font-size : 12px;#hideCmdName#">#name_display#</div> <div id="objets#id#"></div> <script> function AffLabel(index, textlab, ang, Selection, com){ // fonction d'affichage d'un label et du tiret correspondant // index = numéro du label de 0 à N-1 // textlab = texte du label // ang = angle de position du label par rapport à la verticale // Selection = index en cours de sélection var Offx = CenterX + 63*Math.sin(ang/180*Math.PI); // calcul du centre du label var Offy = CenterY - 63*Math.cos(ang/180*Math.PI); var labelind = "label#id#"+index; // Id affecté au label //Sélection if (index == Selection){ // Si on traite le label sélectionné, on affiche le label de la bonne classe $("#objets#id#").append($('<div id="'+labelind+'" class="btn-sm mylabelselect#id#">'+textlab+'</div>')); } else { // si c'est un label non sélectionné,on affiche un bouton d'action var comaction = "Actionclick(#id#,"+ang+",'"+com+"');"; $("#objets#id#").append($('<div id="'+labelind+'" title="'+textlab+'" class="btn btn-sm btn-default action cmdName tooltips mylabel#id#" onclick="'+comaction+'">'+textlab+'</div>')); } // On ajuste le X et le Y du label en fonction de l'angle if (ang < 0){ var decalex = (document.getElementById(labelind).offsetWidth); }else if (ang == 0){ var decalex = (document.getElementById(labelind).offsetWidth)/2; } else { var decalex = 0; } var decaley = ((document.getElementById(labelind).offsetHeight)/2)*(1+Math.cos(ang/180*Math.PI)); // On ajuste la position du label $("#"+labelind).css({"left" : (Offx-decalex)+"px", "top" : (Offy-decaley+16)+"px"}); // calcul de la position du tiret Offx = CenterX + 47*Math.sin(ang/180*Math.PI); Offy = CenterY - 47*Math.cos(ang/180*Math.PI); //Id du tiret var gradind = "gradu#id#"+index; // On affiche le tiret $("#objets#id#").append($('<img id="'+gradind+'" class="grad" src="plugins/widget/core/template/dashboard/cmd.action.select.selecteur/graduation.png">')); // On ajuste le X et le Y du tiret en fonction de l'angle if (ang < 0){ decalex = (document.getElementById(gradind).offsetWidth); } else if (ang == 0){ decalex = (document.getElementById(gradind).offsetWidth)/2; } else { decalex = 0; } decaley = (document.getElementById(gradind).offsetHeight)/2; // On ajuste la position et l'orientation du tiret $("#"+gradind).css({"left" : (Offx-decalex)+"px", "top" : (Offy-decaley+16)+"px","transform" : "rotate("+ang+"deg)"}); } function Actionclick(id, angle, valeur){ // Lorsqu'on clique un bouton label : id = id du widget, angle = angle du label de destination, valeur de la commande $("#Idcomut"+(id)).css({"transform" : "rotate("+angle+"deg)"}); jeedom.cmd.execute({id: id, value: {select: valeur}}); } var cmd = '#listValue#'; //on récupère la listde des label sous forme ...<option value="label" [selected]>label</option>... //cmd = cmd.substring(cmd.indexOf('>'), cmd.length); // on supprime le 1er qui est vide var ListOfCmd = []; var ListOfLabel = []; var Selection = 0; var i = 0; var extractcmd = ""; while (cmd.indexOf('value=') != -1){ // on extrait un par un les différents label en les comptant cmd = cmd.substring(cmd.indexOf('=')+2, cmd.length); extractcmd = cmd.substring(0, cmd.indexOf('"')); ListOfCmd.push(extractcmd); extractcmd = cmd.substring(cmd.indexOf('"'), cmd.indexOf('>')); if (extractcmd.indexOf('selected') != -1) { // si c'est le label sélectionné, on le mémorise Selection = i; } cmd = cmd.substring(cmd.indexOf('>')+1, cmd.length); extractcmd = cmd.substring(0, cmd.indexOf('<')); ListOfLabel.push(extractcmd); i++; } var NbCmd = ListOfLabel.length; // Nombre total de labels var CenterX = document.getElementById("fond#id#").offsetWidth / 2; //On centre les objets au milieu du widget var CenterY = 100; var AngMinMax; switch (NbCmd) { // répartition des labels en fonction de leur nombre case 1: AngMinMax = 0; case 2: case 3: AngMinMax = 45; break; case 4: case 5: AngMinMax = 90; break; default: AngMinMax = 120; break; }; // on affiche le sélecteur au milieu et on l'oriente selon le label sélectionné $("#objets#id#").empty(); $("#objets#id#").append($('<img id="Idcomut#id#" class="comut" src="plugins/widget/core/template/dashboard/cmd.action.select.selecteur/commut.png">')); $("#Idcomut#id#").css({"top" : (CenterY-41+16)+"px", "left" : (CenterX-39)+"px"}); $("#Idcomut#id#").css({"transform" : "rotate("+(-AngMinMax+(AngMinMax*2)/(NbCmd-1)*(Selection))+"deg)"}); // Aficchage des labels et des tirets for (var i=0; i<NbCmd; i++) { var ang = -AngMinMax+(AngMinMax*2)/(NbCmd-1)*(i); AffLabel(i, ListOfLabel[i], ang, Selection, ListOfCmd[i]); }; jeedom.cmd.update['#id#']({display_value:'#state#'}); $('.cmd[data-cmd_uid=#uid#] .iconCmd').off().on('click', function () { jeedom.cmd.execute({id: '#id#'}); }); </script> </div> <style> .comut{ position:absolute; width: 78px; height: 82px; transition: transform 0.5s; } .mylabelselect#id#{ position:absolute; background-color:#cmdColor#; border : white solid 2px; border-radius: 3px; vertical-align: middle; text-align: center; line-height: 17px; font-weight: bold; } .mylabel#id#{ position:absolute; background-color:#cmdColor# !important; border-color : transparent !important; } .grad{ position:absolute; width: 4px; height: 10px; } </style>
Bonne journée
J'essaierai d'y jeter un oeil mais je promet rien...
Jeedom Stable 3.3
NUC Z83 + Aeotec Z-Stick Gen5
Z-Wave FGR + FGMS + FGDS + FGFS + FGK + FGWPE + ZW062 + ZW080
GH Mini + Orvibo AllOne + Playbulb + Miband2
NUC Z83 + Aeotec Z-Stick Gen5
Z-Wave FGR + FGMS + FGDS + FGFS + FGK + FGWPE + ZW062 + ZW080
GH Mini + Orvibo AllOne + Playbulb + Miband2
Re: Mise à jour des widgets du core pour la V3
si qqun peut m'aider egalement :
il s'agit de mon widget d'affichage d'icone perso pour le plugin "mode".
Code : Tout sélectionner
<div style="width:204px;min-height:60px;" class="cmd #history# tooltips cmd-widget" data-type="info" data-subtype="string" data-cmd_id="#id#" title="#collectDate#">
<center>
<span style="font-size: 1em;font-weight: bold;" id="iconCmd#id#"></span>
</center>
<script>
if ('#state#' == 'Absent' ) {
$('#iconCmd#id#').append('<img src="plugins/widget/core/template/dashboard/cmd.info.string.Etat Mode@Tablette2/@absent-onv5.png"> </i>');
}
if ('#state#' == 'Normal' ) {
$('#iconCmd#id#').append('<img src="plugins/widget/core/template/dashboard/cmd.info.string.Etat Mode@Tablette2/@work-onv5.png"> </i>');
}
if ('#state#' == 'Present') {
$('#iconCmd#id#').append('<img src="plugins/widget/core/template/dashboard/cmd.info.string.Etat Mode@Tablette2/@home-onv5.png"> </i>');
}
if ('#state#' == 'OFF') {
$('#iconCmd#id#').append('<img src="plugins/widget/core/template/dashboard/cmd.info.string.Etat Mode@Tablette2/@Off-onv5.png"> </i>');
}
</script>
</div>
Re: Mise à jour des widgets du core pour la V3
Oui je sais je me bat avec le code depuis un moment, merci par avance
Box : Jeedom Smart + Jeedom VM-Synology (avec Jeedom en beta)
Protocoles : Z-wave - RFXcom - Hue - Bluetooth - Xiaomi
Mon Matériel
Widgets développés
Protocoles : Z-wave - RFXcom - Hue - Bluetooth - Xiaomi
Mon Matériel
Widgets développés
Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités