Bonjour
PREAMBULE
J'ai fait l'acquisition de cartes IPX800 pour g�rer mon �clairage, le portail, la ventilation, l'arrosage, etc..
Chacune des cartes a 8 relais commandables par IP au travers de la freebox.
Les relais r�pondent � des commandes de type:
newAJAXCommand('url de la carte/leds.cgi?led=i')
Par exemple, une fonction ONCLICK
fait basculer le relais n�4 de la carte dont l'adresse IP est 81.xx.xx.xxx sur le port 9025
Code : S�lectionner tout - Visualiser dans une fen�tre � part onclick="newAJAXCommand('http://81.xx.xx.xxx:9025/leds.cgi?led=4')
et donc la lampe correspondante s'allume
Par ailleurs, les relais sont connect�s � des boutons poussoirs (les interrupteurs de la maison), qui font �galement basculer les relais.
L'�tats des relais sont enregistr�s dans des fichier status.xml, h�berg� par les cartes.
Je r�cup�re bien les �tats des relais avec les fonctions
je peux m�me renseigner un tableau array de type LED[i]
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3 xhttp.open("GET","http://81.xx.xx.xxx:9025/status.xml",false); x=xmlDoc.getElementsByTagName etc...
si LED[2]=0, indique que le relais n�2 est �teint
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8 <script type="text/javascript"> var LED = new Array(); for (i = 0; i <= 7; i++) { x=xmlDoc.getElementsByTagName("led"+i)[0].childNodes[0]; LED[i] = x.nodeValue; } </script>
PROBLEME JAVASCRIPT
Donc pour r�sum�, je sais commander les relais avec ONCLICK:
newAJAXCommand('http://81.xx.xx.xxx:9025/leds.cgi?led=1')
Et je connais l'�tat des relais au travers d'un ARRAY de type LED[i]= (0 ou 1)
Je souhaiterai faire une interface sous forme d'un tableau, TABLE,
ou chaque cellule prend le style correspondant � l'�tat du relais
si LED[i]=1, la cellule n�i prend le style CSS on.
si LED[i]=0 la cellule n�i prend le style CSS off.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 <style type="text/css"> .on { text-align:center; background-color:lightgray; font-family:Arial,Helvetica,sans-serif; font-size:30px; color:white; } .off { text-align:center; background-color:gray; font-family:Arial,Helvetica,sans-serif; font-size:30px; color:black; } </style>
Comment faire pour r�aliser �a:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <table style="width:100%; height:90%; style="background-color: #07B133; color: #ffffff;"> <col span="4" style="background-color: #07B133; color: #ffffff;" /> <tr> <td class="off ou on en fonction de LED[1]" onclick="newAJAXCommand('http://81.xx.xx.xxx:9025/leds.cgi?led=1');">ENTREE</td> <td class="off ou on en fonction de LED[2]" onclick="newAJAXCommand('http://81.xx.xx.xxx:9025/leds.cgi?led=2');">CUISINE</td> <td class="off ou on en fonction de LED[3]" onclick="newAJAXCommand('http://81.xx.xx.xxx:9025/leds.cgi?led=3');">SEJOUR1</td> </tr> <tr> <td class="off ou on en fonction de LED[4]" onclick="newAJAXCommand('http://81.xx.xx.xxx:9025/leds.cgi?led=4');">SEJOUR2</td> <td class="off ou on en fonction de LED[5]" onclick="newAJAXCommand('http://81.xx.xx.xxx:9025/leds.cgi?led=5');">BUREAU</td> <td class="off ou on en fonction de LED[6]" onclick="newAJAXCommand('http://81.xx.xx.xxx:9025/leds.cgi?led=6');">BUANDERIE</td> etc.. </tr> </table>
class="off ou on en fonction de LED[1] �gale 0 ou 1"
Peut-�tre faut-il faut faire une fonction � base de
et introduire un ID dans le tableau, mais je ne sais pas comment, je suis largu�
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5 if LED[i]=1 { document.getElementById("LED").innerHTML =' "class=on"'; } else { document.getElementById("LED").innerHTML =' "class=off"';
merci de votre aide
Partager