Aller au contenu

Messages recommandés

Posté(e)

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
 
Posté(e)

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)

Posté(e)

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)
------------------------------------------------------
Posté(e)

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é

Posté(e)

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 ?

Posté(e)

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

Posté(e)

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)
Posté(e)

Je ne vois pas de propriété du nom "deviceIcon" mais "icon"  :P

 

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.

Posté(e)

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...

×
×
  • Créer...