MAM78
Novembre 22, 2020, 1:12
1
J’ai plusieurs détecteurs de mouvements sur un IPX800 et raccordés sur des entrées digitales.
Comme les détecteurs de mouvements fonctionnent en mode normalement fermé, ils apparaissent donc par défaut en vert (on), j’aurais préféré qu’ils soient en gris et qu’ils soient en vert lorsqu’il y a détections de mouvements.
Est-ce qu’il est possible d’inverser l’affichage pour une entrée digitale sans passer par un scénario et l’utilisation d’un entrée virtuelle. ?
Bonjour MAM78,
la solution serait de faire votre propre widget.
Celui-ci gère les 8 entrées de l’IPX, les affiche en gris quand les entrées sont activées, en bleu quand elles sont inactives. C’est mon choix pour différencier le widget de ceux intégrés. De même le titre est bleu et les noms des entrées s’affichent quand on positionne le curseur dessus (ne fonctionne pas avec Firefox chez moi).
if (datasources["IPX"]["response"]["led0"] == 0) {var m1= "indicator-light4-on";} else {m1="indicator-light4-off";}
if (datasources["IPX"]["response"]["led1"] == 0) {var m2= "indicator-light4-on";} else {m2="indicator-light4-off";}
if (datasources["IPX"]["response"]["led2"] == 0) {var m3= "indicator-light4-on";} else {m3="indicator-light4-off";}
if (datasources["IPX"]["response"]["led3"] == 0) {var m4= "indicator-light4-on";} else {m4="indicator-light4-off";}
if (datasources["IPX"]["response"]["led4"] == 0) {var m5= "indicator-light4-on";} else {m5="indicator-light4-off";}
if (datasources["IPX"]["response"]["led5"] == 0) {var m6= "indicator-light4-on";} else {m6="indicator-light4-off";}
if (datasources["IPX"]["response"]["led6"] == 0) {var m7= "indicator-light4-on";} else {m7="indicator-light4-off";}
if (datasources["IPX"]["response"]["led7"] == 0) {var m8= "indicator-light4-on";} else {m8="indicator-light4-off";}
var titre1="Titre widget";
return `
<style>
.indicator-light4-on {
border-radius: 50%;
width: 15px;
height: 15px;
border: 1px solid #fff;
margin-top: 15px;
float: left;
background-color: #1a64ff;
margin-right: 10px;
margin-left: 3px;
}
.indicator-light4-off {
border-radius: 50%;
width: 15px;
height: 15px;
border: 1px solid #3d3d3d;
margin-top: 15px;
float: left;
background-color: #222222;
margin-right: 10px;
margin-left: 3px;
}
</style>
<br>
<span style="margin-left:30px;color:#1a64ff;">${titre1}</span>
<br><br>
<div title="Nom1" class="${m1}" style="margin-left:10px;margin-top:8px;" onclick="newAJAXCommand('io.cgi?rly=0');"></div>
<div title="Nom2" class="${m2}" style="margin-left:7px;margin-top:8px;" onclick="newAJAXCommand('io.cgi?rly=1');"></div>
<div title="Nom3" class="${m3}" style="margin-left:7px;margin-top:8px;" onclick="newAJAXCommand('io.cgi?rly=2');"></div>
<div title="Nom4" class="${m4}" style="margin-left:7px;margin-top:8px;" onclick="newAJAXCommand('io.cgi?rly=3');"></div>
<div title="Nom5" class="${m5}" style="margin-left:7px;margin-top:8px;" onclick="newAJAXCommand('io.cgi?rly=4');"></div>
<div title="Nom6" class="${m6}" style="margin-left:7px;margin-top:8px;" onclick="newAJAXCommand('io.cgi?rly=5');"></div>
<div title="Nom7" class="${m7}" style="margin-left:7px;margin-top:8px;" onclick="newAJAXCommand('io.cgi?rly=6');"></div>
<div title="Nom8" class="${m8}" style="margin-left:7px;margin-top:8px;" onclick="newAJAXCommand('io.cgi?rly=7');"></div>
`;
Bonne journée
bonjour @grocrabe
j’ai mis en place ton widjet mais normalement je devrais 2 voyant gris je te joint une capture
peut tu me dire pkoi ?
c’est l’entree 28 et 29 qui sont connecte en vert elle devrais etre grise normalement
widjet entree.pdf (15,3 Ko)
Bonjour seraphinou,
déjà évite de mettre plus de 8 boutons dans le même widget, les navigateurs ne gèrent pas trop bien, d’où ton décalage.
Les entrées de la 1ère X-24D sont nommées de btn8 à btn31 (pour toi bt27 et btn 28), ce qui explique que ça ne réagisse pas chez toi.
Enfin, tu as gardé les commandes des relais de l’IPX en fin de code, attention aux actions indésirables.
Bonne journée
fgtoul
Novembre 22, 2020, 3:35
5
Bonjour,
j’avais développé ce widget pour @merokaly ,
si vous souhaitez plus d’explications, voyez le post d’origine.
Bonjour a tous,
Voila, je cherchais un moyen de visualiser mon système d’alarme d’un coup d’œil.
Compliqué avec des capteurs Eno , des relais et des entrées Virtuelles, entrées digitales…
Voyant avec couleur rouge et verte , titre au passage de la souris et action sur le voyant.
et un grand MERCI a @fgtoul pour son aide précieuse
ici alarme OFF et on voit les portes ou fenêtre ouvertes
[Capture8]
ici alarme ON et on voit les portes ou fenêtres fermées
et action sur le voyant rouge …
cdt
1 « J'aime »
quand je supprime les relai ca n’affiche plus rien
fgtoul
Novembre 22, 2020, 3:47
7
non, « led0 » à « led55 » représentent les relais, pas les entrées.
Pour les entrées, il faudra utiliser « btn0 » à « btn55 »
le décalage est dû au mauvais positionnement des marges, les navigateurs n’y sont pour rien
Il est tout à fait possible de mettre plus de 8 afficheurs en valorisant correctement les attributs CSS margin-left
et en utilisant un container <DIV>
par ligne, afin de forcer un saut.
D’ailleurs, dans les matrices, il y en a 32
merci @fgtoul
mais la c’est complique
deja je voudrais enlever les relais j’arrive pas ca n’affiche plus rien
fgtoul
Novembre 22, 2020, 3:57
9
remplace « led » par « btn » pour avoir les entrées digitales
si je met btn je peut mettre la totalite du script?
fgtoul
Novembre 22, 2020, 3:59
11
le script ne fonctionne que s’il est entier !
dis nous exactement ce que tu veux
1 « J'aime »
c’est bon c’est ok la
le bas du script je le comprend pas onclick=« newAJAXCommand(‹ io.cgi?rly=0 ›); »>
fgtoul
Novembre 22, 2020, 4:03
13
c’est la commande interne du firmware pour basculer le relais n°1 par la commande SWITCH
moi je veux juste les infos des entree digital rouge a 0 et vert a 1
fgtoul
Novembre 22, 2020, 4:07
15
si tu ne veux pas le pilotage par le widget, enlèves tous les onclick="newAJAXCommand('io.cgi?rly=xx');"
et laisse les lignes sous ce format
<div title="Nom8" class="${m8}" style="margin-left:7px;margin-top:8px;"></div>
voici le code pour les entrées digitales 1 à 8
if (datasources["IPX"]["response"]["btn0"] == 0) {var m1= "indicator-light4-on";} else {m1="indicator-light4-off";}
if (datasources["IPX"]["response"]["btn1"] == 0) {var m2= "indicator-light4-on";} else {m2="indicator-light4-off";}
if (datasources["IPX"]["response"]["btn2"] == 0) {var m3= "indicator-light4-on";} else {m3="indicator-light4-off";}
if (datasources["IPX"]["response"]["btn3"] == 0) {var m4= "indicator-light4-on";} else {m4="indicator-light4-off";}
if (datasources["IPX"]["response"]["btn4"] == 0) {var m5= "indicator-light4-on";} else {m5="indicator-light4-off";}
if (datasources["IPX"]["response"]["btn5"] == 0) {var m6= "indicator-light4-on";} else {m6="indicator-light4-off";}
if (datasources["IPX"]["response"]["btn6"] == 0) {var m7= "indicator-light4-on";} else {m7="indicator-light4-off";}
if (datasources["IPX"]["response"]["btn7"] == 0) {var m8= "indicator-light4-on";} else {m8="indicator-light4-off";}
var titre1="Titre widget";
return `
<style>
.indicator-light4-on {
border-radius: 50%;
width: 15px;
height: 15px;
border: 1px solid #fff;
margin-top: 15px;
float: left;
background-color: #1a64ff;
margin-right: 10px;
margin-left: 3px;
}
.indicator-light4-off {
border-radius: 50%;
width: 15px;
height: 15px;
border: 1px solid #3d3d3d;
margin-top: 15px;
float: left;
background-color: #222222;
margin-right: 10px;
margin-left: 3px;
}
</style>
<br>
<span style="margin-left:30px;color:#1a64ff;">${titre1}</span>
<br><br>
<div title="Nom1" class="${m1}" style="margin-left:10px;margin-top:8px;"></div>
<div title="Nom2" class="${m2}" style="margin-left:7px;margin-top:8px;"></div>
<div title="Nom3" class="${m3}" style="margin-left:7px;margin-top:8px;"></div>
<div title="Nom4" class="${m4}" style="margin-left:7px;margin-top:8px;"></div>
<div title="Nom5" class="${m5}" style="margin-left:7px;margin-top:8px;"></div>
<div title="Nom6" class="${m6}" style="margin-left:7px;margin-top:8px;"></div>
<div title="Nom7" class="${m7}" style="margin-left:7px;margin-top:8px;"></div>
<div title="Nom8" class="${m8}" style="margin-left:7px;margin-top:8px;"></div>
`;
1 « J'aime »
trop fort
j’ai fait un autre post aussi sur scenario seuil si du tps
MAM78
Novembre 22, 2020, 4:27
17
Il n’est pas pas possible d’agir au niveau de la configuration de l’IPX pour inverser les valeurs ?
fgtoul
Novembre 22, 2020, 4:31
18
le widget s’appuie sur les valeurs 1 ou 0 des périphériques. Vous ne pouvez pas les inverser sans créer votre propre code (sinon vous pensez bien que je n’aurais pas passé du temps à écrire celui-là, d’autant plus qu’ici il était question de modifier les couleurs )
MAM78
Novembre 22, 2020, 4:38
19
Ok merci, c’est bien ce que je craignais.
fgtoul
Novembre 22, 2020, 4:40
20
il suffit de copier/coller le code entier dans un widget type HTML.