JackyB Posté(e) le 22 août 2016 Signaler Posté(e) le 22 août 2016 Bonjour, est'il possible de modifier en LUA l'icone des pièces suivant l'état d'un capteur ? voici le code utilisé dans Main Loop de mon VD ----------------------------------------------------- local MaVariable2 MaVariable2 = fibaro:getValue(75, 'value') if (MaVariable2 == '0') then --Porte fermée fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", 56) fibaro:call(16, "setProperty", "currentIcon", 1003) else --Porte ouverte fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", 55) fibaro:call(16, "setProperty", "currentIcon", 1001) end ---------------------------------------------------- Pour le VD c'est Ok par contre l'icone de la pièce ne change pas ? Cordialement Jacky
jojo Posté(e) le 22 août 2016 Signaler Posté(e) le 22 août 2016 lorsque je regarde l'api http://<IP HC2>/api/rooms cela devrait être possible en modifiant le json de la pièce. Voici ce que je fait pour changer l'icone d'un thermomètre par exemple ---------------------------------- -- User Settings ---------------------------------- local DeviceID = 84 local IconeID = 1015 ---------------------------------- -- DO not change bellow this line ---------------------------------- HC2 = Net.FHttp("127.0.0.1",11111) -- préparation du nouveau json NouvelleIcone = '{"properties":{"deviceIcon":'..IconeID..'}}' -- écriture du nouveau json payload = "/api/devices/" ..DeviceID HC2:PUT(payload, NouvelleIcone)
JackyB Posté(e) le 22 août 2016 Auteur Signaler Posté(e) le 22 août 2016 Bonsoir Jojo et merci, une question àquoi correspond 11111 après l'adresse ip de la box ?
JackyB Posté(e) le 22 août 2016 Auteur Signaler Posté(e) le 22 août 2016 Testé le code indiqué mais sans succès... ci dessous le code utilisé : --------------------------------------- local MaVariable2 local DeviceID = 16 local IconeID = 1015 MaVariable2 = fibaro:getValue(75, 'value') if (MaVariable2 == '0') then --Porte fermée fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", 56) --fibaro:call(16, "setProperty", "currentIcon", 1003) IconeID = 1003 else --Porte ouverte fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", 55) --fibaro:call(16, "setProperty", "currentIcon", 1001) IconeID = 1001 end ---------------------------------- -- DO not change bellow this line ---------------------------------- HC2 = Net.FHttp("127.0.0.1",11111) -- préparation du nouveau json NouvelleIcone = '{"properties":{"deviceIcon":'..IconeID..'}}' -- écriture du nouveau json payload = "/api/devices/" ..DeviceID HC2:PUT(payload, NouvelleIcone) ------------------------------------------------------
jojo Posté(e) le 26 août 2016 Signaler Posté(e) le 26 août 2016 petite remarque : pour que ton code soit plus facilement lisible, utilise le bouton <> pour l'insérer. faits le json d'une de tes pièces et tu verras que là, ce n'est pas le numéro de l'icône, mais le nom complet de comment il a sauvé l'icône qui est utilisé
JackyB Posté(e) le 26 août 2016 Auteur Signaler Posté(e) le 26 août 2016 Bonjour, Ok compris pour lisibilité du code, par contre, je ne comprends pas ce que tu veux dire? faut'il que je mette "User1003.png" au lieu de 1003 ?
jojo Posté(e) le 26 août 2016 Signaler Posté(e) le 26 août 2016 lace l'api pour voir ce qu'il y a dedans: htttp://<IP BOX>/api/rooms et tu trouveras qqch comme ceci { "id": 4, "name": "Salon", "sectionID": 4, "icon": "room_kominek", "defaultSensors": { "temperature": 116, "humidity": 117, "light": 0 }, "defaultThermostat": 115, "sortOrder": 1 }, { "id": 5, "name": "SdB Rez", "sectionID": 4, "icon": "room_prysznic", "defaultSensors": { "temperature": 236, "humidity": 238, "light": 237 }, "defaultThermostat": 233, "sortOrder": 2 }, et ici pour la room 4, c'est room_kominek je dirais pour toi User1003 au lieu de 1003. A essayer
JackyB Posté(e) le 26 août 2016 Auteur Signaler Posté(e) le 26 août 2016 Désolé mais je n'y arrive pas... ci-dessous le code, j'ai essayé avec les " et sans cela ne change rien... local MaVariable2 local DeviceID = 16 local IconeID = 1015 MaVariable2 = fibaro:getValue(75, 'value') if (MaVariable2 == '0') then --Porte fermée fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", 56) --fibaro:call(16, "setProperty", "currentIcon", 1003) IconeID = "User1003" else --Porte ouverte fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", 55) --fibaro:call(16, "setProperty", "currentIcon", 1001) IconeID = "User1001" end ---------------------------------- -- DO not change bellow this line ---------------------------------- HC2 = Net.FHttp("127.0.0.1",11111) -- préparation du nouveau json NouvelleIcone = '{"properties":{"deviceIcon":'..IconeID..'}}' -- écriture du nouveau json payload = "/api/devices/" ..DeviceID HC2:PUT(payload, NouvelleIcone)
Steven Posté(e) le 2 septembre 2016 Signaler Posté(e) le 2 septembre 2016 Je ne vois pas de propriété du nom "deviceIcon" mais "icon" Et ne pas oublié que lorsque l'on change directement le json, le rafraîchissement n'est pas automatique, il faut recharger la page voir relancer l'application Android/iPhone.
JackyB Posté(e) le 2 septembre 2016 Auteur Signaler Posté(e) le 2 septembre 2016 Hello, Merci pour le coup de mains :-) j'ai déjàtenté mais sans succès ! je laisse tomber cette partie mes modules Virtuels sont bien actualisés c'est l'essentiel...
Messages recommandés