Bonjour,

J'ai un script qui sert à allumer et éteindre des ampoules Hue avec deux boutons on et off, en faisant appel à l'api hue.

J'avoue humblement l'avoir trouvé sur le net.

Le script fonctionne parfaitement pour 1 ampoule.

Je souhaite maintenant le dupliquer 6 fois car j'ai 6 ampoules.

Pour tester, j'ai donc bidouillé un code qui ferait appel au même script, dans chaque colonne d'une table. Sachant que la différence entre les ampoules se fait au niveau de la variable "grouplamp".

Je vous mets mon code, très dégueu, je le concède, car je ne cesse de faire des tests.

Pour dupliquer le script, j'ai simplement dupliquer les variables en leur donnant un nom différent (avec le 1 à la fin pour le second).

J'ai essayé en dupliquant et renommant les variables IP, ID, etc...

J'ai essayé en renommant les functions, etc...

Mon souci, c'est que selon mes modifs, le script ne s'exécute pas correctement.

Soit j'ai le script de l'ampoule 2 qui s'exécute sur les 4 boutons, soit le script 1 qui s'exécute sur les 4 boutons ;

Comme si il ne lisait qu'un seul script.

Je n'arrive pas à faire en sorte que dans la même page, chaque script s'exécute indépendamment. 1 pour chaque ampoule en fait.


MErci du coup de main.

Voici le code (et ne hurlez pas !)

Cette version m'affiche mes 4 boutons, on et off. Mais les 4 n'actionnent que la seconde lampe (grouplamp=17)

Code html : 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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
 
<!doctype html>
<html lang="fr">
<head>
 <style>
   button {
     background-color:#383838;
     border:none;
   }
  
  </style>
    <meta charset="UTF-8">
    <title>Controlling hue</title>
</head>
<body>
 
<script type="text/javascript">
    // See API documentation to retrieve your own ID
    // https://www.developers.meethue.com/documentation/getting-started
    
    var hueIP = "XXX" // Your hue bridge IP
    var hueID = "XXX" // Get your ID from the hue bridge
     var hueIP1 = "XXX" // Your hue bridge IP
    var hueID1 = "XXX" // Get your ID from the hue bridge
    var grouplamp = "1" // the group to comtrol
    var grouplamp1 = "17" // the group to comtrol
        
 
 
    function turnOn() {
        send({"on":true})
    }
 
    function turnOff() {
        send({"on":false})
    }
  
  function turnOn1() {
        send({"on":true})
    }
 
    function turnOff1() {
        send({"on":false})
    }
 
    
 
</script>
<div align="center">
 
 
<table>
 
 <thead>
        <tr>
            <th colspan="2">Lumières</th>
        </tr>
    </thead>
  <tbody>
  <tr><td>
    <script> 
      function callback() {}
      function send(obj) {
        var xmlhttp = new XMLHttpRequest();
        var url = "http://"+ hueIP +"/api/"+ hueID +"/groups/"+ grouplamp +"/action/" ;
        xmlhttp.open("PUT", url, true, callback);
        xmlhttp.setRequestHeader("Content-type", "application/json");    
        var parameters = JSON.stringify(obj);
        xmlhttp.send(parameters);
      }</script>
<div align="center" 
<span style="font-family:Helvetica, Arial, sans-serif; font-size:16px; text-align:center; color:#99cc00">Plafond TV
  <br><br></body></html></div>
  <button onclick="javascript:turnOn()"><img src="/js-perso/images/on.png"></button>
    <button onclick="javascript:turnOff()"><img src="/js-perso/images/off.png"></button>
</td>
 <td>
    <script> 
   function callback() {}
      function send(obj) {
        var xmlhttp = new XMLHttpRequest();
        var url = "http://"+ hueIP1 +"/api/"+ hueID1 +"/groups/"+ grouplamp1 +"/action/" ;
        xmlhttp.open("PUT", url, true, callback);
        xmlhttp.setRequestHeader("Content-type", "application/json");    
        var parameters = JSON.stringify(obj);
        xmlhttp.send(parameters);
      }</script>
<div align="center" 
<span style="font-family:Helvetica, Arial, sans-serif; font-size:16px; text-align:center; color:#99cc00">Plafond TV
  <br><br></body></html></div>
  <button onclick="javascript:turnOn1()"><img src="/js-perso/images/on.png"></button>
    <button onclick="javascript:turnOff1()"><img src="/js-perso/images/off.png"></button>
</td></tr>
  </div>
 
</table>
</html>
</body>
</html>