jjacques68 Posté(e) le 29 décembre 2017 Signaler Posté(e) le 29 décembre 2017 (modifié) 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é le 29 décembre 2017 par jjacques68
jjacques68 Posté(e) le 29 décembre 2017 Auteur Signaler Posté(e) le 29 décembre 2017 j'ai trouvé une piste : properties.rows[].elements[].caption mais je sais pas comment l'exploiter...
jjacques68 Posté(e) le 29 décembre 2017 Auteur Signaler Posté(e) le 29 décembre 2017 (modifié) 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é le 29 décembre 2017 par jjacques68
Lazer Posté(e) le 30 décembre 2017 Signaler Posté(e) le 30 décembre 2017 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.
Berale64 Posté(e) le 30 décembre 2017 Signaler Posté(e) le 30 décembre 2017 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 !!!
jjacques68 Posté(e) le 30 décembre 2017 Auteur Signaler Posté(e) le 30 décembre 2017 @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 !
Lazer Posté(e) le 30 décembre 2017 Signaler Posté(e) le 30 décembre 2017 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.
jjacques68 Posté(e) le 30 décembre 2017 Auteur Signaler Posté(e) le 30 décembre 2017 @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.
Lazer Posté(e) le 30 décembre 2017 Signaler Posté(e) le 30 décembre 2017 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.
jjacques68 Posté(e) le 30 décembre 2017 Auteur Signaler Posté(e) le 30 décembre 2017 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...
Lazer Posté(e) le 30 décembre 2017 Signaler Posté(e) le 30 décembre 2017 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é.
Lazer Posté(e) le 30 décembre 2017 Signaler Posté(e) le 30 décembre 2017 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. 1
jjacques68 Posté(e) le 30 décembre 2017 Auteur Signaler Posté(e) le 30 décembre 2017 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 ?
pepite Posté(e) le 30 décembre 2017 Signaler Posté(e) le 30 décembre 2017 Bon soir, c'est effectivement l api des VDs :-)Envoyé de mon Nexus 5X en utilisant Tapatalk
Lazer Posté(e) le 30 décembre 2017 Signaler Posté(e) le 30 décembre 2017 Voilà, l'API des modules physiques /devices n'est pas la même que les VD /virtualDevices
jjacques68 Posté(e) le 30 décembre 2017 Auteur Signaler Posté(e) le 30 décembre 2017 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
Messages recommandés