Aller au contenu
jjacques68

Modification Propriété Caption Label VD

Recommended Posts

Bonjour à tous !!

 

rapide question qui a déjà sans doute été posé, mais j'ai pas trouvé de réponses... 

 

Peut on modifier le texte d'une étiquette d'un VD ?

ATENTION je parle pas de la valeur de l'étiquette ! "ui.label.value" ! ça c'est ok !

 

mais bien de son "caption" !

par exemple quand on crée une étiquette dans un VD, il met dans le champs étiquette la valeur "étiquette"

Et c'est celle-là que j'aimerai pouvoir modifier en dur.

 

J'ai essayé ui.label.caption mais sans résultat...

Modifié par jjacques68

Partager ce message


Lien à poster
Partager sur d’autres sites

j'ai trouvé une piste : 

 

properties.rows[].elements[].caption

 

mais je sais pas comment l'exploiter...

Partager ce message


Lien à poster
Partager sur d’autres sites

J'avance un peu mais j'ai pas le résultat voulu : 

 

voici que je fais :

 

--lecture des infos du VD
local ApiVd = api.get("/devices/496")

--affichage de la valeur actuelle
print("AVANT", ApiVd.properties.rows[3].elements[1].caption)

--modification le la valeur
ApiVd.properties.rows[3].elements[1].caption = "1"
print("PENDANT", ApiVd.properties.rows[3].elements[1].caption)

--envoi des modif
api.put("/devices/496", ApiVd)

--relecture des infos
ApiVd = api.get("/devices/496")

--affichage de la nouvelle valeur pour confirmation
print("APRES", ApiVd.properties.rows[3].elements[1].caption)

J'ai aucun message d'erreur, mais j'ai aucune modification qui est faite !!! :( 

 

Voici le debug : il semblerait que ça coince avec le api.put !!!

[DEBUG] 23:26:24: AVANT	essai
[DEBUG] 23:26:24: PENDANT 1
[DEBUG] 23:26:26: APRES	essai

 

Modifié par jjacques68

Partager ce message


Lien à poster
Partager sur d’autres sites

Dans l'idée ce que tu veux faire est bon. C'est plus ou moins ce que je fais pour mon VD Yamaha en cours d'écriture.

 

Mais par contre il faut recharger ta page Web (et appli mobile), car l'API ne permet pas de détecter un changement du titre d'un label, mais seulement sa valeur.

Partager ce message


Lien à poster
Partager sur d’autres sites

Je dis peut être une sonnerie mais en changeant la valeur ?

Mettre une valeur bidon, puis immédiatement remettre la bonne valeur.

l'API en détectant un changement de valeur va faire une mise à jour, voire si cela inclus "l’étiquette" du bouton !!!

Partager ce message


Lien à poster
Partager sur d’autres sites

@Lazer et @Berale24, merci pour votre participation.

 

j’ai pourtant bien penser à rafraîchir les pages et application.

Mais rien y fait.

je constate qu’il se passe bien qqch, car après le PUT, le VD est complètement rechargé.

Mais le caption du label ne veut rien savoir, il garde sa valeur.

c’est comme si cette propriété était en lecture seule !

Partager ce message


Lien à poster
Partager sur d’autres sites

Je ne sais pas là, je n'ai pas testé la modification du titre des label.

J'ai juste testé l'ajout de boutons dans un VD (c'est la main lioop qui ajoute des boutons dans son propre VD... à la sauvegarde, la main loop est immédiatement tuée et relancée immédiatement).

Ce qui est certain, c'est qu'il faut recharger la page web et l'appli mobile pour "voir" la modification.

Partager ce message


Lien à poster
Partager sur d’autres sites

@Lazer, je vais re tester, mais il me semble que je le faisais à chaque essai...

la je peux pas, mais je te tiens au jus.. 

 

ok pour l’affichage, mais ce qui me dérange aussi c’est que je si je relis l’api du VD après le put, je retrouve l’ancienne valeur.

Partager ce message


Lien à poster
Partager sur d’autres sites

OK donc tu as un souci à l'enregistrement alors, car chez moi à la relecture de l'API, le code LUA voit bien la modification, idem si je vais chercher manuellement le JSON via l'API HTTP.

Partager ce message


Lien à poster
Partager sur d’autres sites

pourtant comme dis, le VD se recharge immédiatement après !

Donc le PUT fait quelque chose...

ah moins que je me sois trompé dans la grammaire du code ? je suis pas un spécialiste des PUT/GET...

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu t'es probablement planté dans la grammaire du code au moment de faire le PUT.

Maintenant ça me revient, j'avais constaté ce comportement, le VD redémarre, même si le PUT a échoué.

 

Plus tard je pourras te partager mon code que j'ai utilisé.

Partager ce message


Lien à poster
Partager sur d’autres sites

Je pense que j'ai trouvé ton problème, à priori tu n'utilises pas la bonne API :

 

Sans te partager ton mon code qui est brouillon, voici l'extrait utile :

local s_id = tostring(fibaro:getSelfId())
local HC2 = Net.FHttp("127.0.0.1", 11111)

-- Lecture
local response, status, errorCode = HC2:GET("/api/virtualDevices/"..s_id)
local jsonTable = json.decode(response)

-- Ecriture
local payload = json.encode(jsonTable)
local response, status, errorCode = HC2:PUT("/api/virtualDevices/"..s_id, payload)

 

Pour trouver cela, j'ai simplement utilisé les outils de dev F12 du navigateur.

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

oui en effet j’utilise la dernière version (3 ou 4 je sais plus) il me semble (sujet présent quelque part sur le fofo).

Mais j’ai déjà utilisé ma méthode pour d’autre modification (comme la durée des de réveil des device, désactiver le notif mail des batteries, et j’en passe...)

 

je viens de me rendre compte que tout ça était pour des modules physique et non pour des VD...

 

je n’ai pas la HC2 sous la main, mais je testerai ta méthode...

 

sans tirer de conclusion trop ative, cela voudrait dire que l’on peut pas modifier les VD avec cette API ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon soir, c'est effectivement l api des VDs :-)

Envoyé de mon Nexus 5X en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Voilà, l'API des modules physiques  /devices n'est pas la même que les VD /virtualDevices

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Ah ben on en apprend tous les jours :)

Ben j’essaye des que je peux et vous dis le résultat...

Merci !!


Envoyé de mon iPhone en utilisant Tapatalk Pro

Partager ce message


Lien à poster
Partager sur d’autres sites

×