Sebbrunie1 Posté(e) le 19 juin 2015 Signaler Posté(e) le 19 juin 2015 Bonjour, il est facile en Lua de récuperer l'adresse ip inscrite dans un module virtuel par la formule fibaro:get(fibaro:getSelfId(), "IPAddress") Mais comment dois je faire pour la modifier en LUA? En effet, a chaque changement de version du firmware, j'ai des "" qui se mettent automatiquement dans le champs que je veux retirer en automatique. Mes modules ne marchent plus à cause de ça... Merci Sébastien
jojo Posté(e) le 19 juin 2015 Signaler Posté(e) le 19 juin 2015 tu as beaucoup de Modules Virtuels avec l'adresse IP dedans ? Perso, je n'ai pas observé ce phénomène : si une adresse IP était définie, elle restait. En effet, si aucune n'était définie, il y a "" Il est possible d'écrire dans le champ IP Adresse, mais si tu n'as que 10-20 modules concernés, tu iras plus vite de faire un ctrl-C / ctrl-V que de créer un VD qui va remettre les bonnes IPs aux bons endrois, car cela nécessiterait de maintenir une table avec les ID et les IPAdress des VD à mettre à jour
Sebbrunie1 Posté(e) le 19 juin 2015 Auteur Signaler Posté(e) le 19 juin 2015 quand adresse ip rempli, la bonne adresse reste. quand vide, il y a des "" que je veux supprimer par le VD. J'en ai bien une 20ène si c'était une fois de temps en temps, mais là c'est fréquent avec tous les changement de version
Lazer Posté(e) le 19 juin 2015 Signaler Posté(e) le 19 juin 2015 Quand tu fais ton fibaro:get(fibaro:getSelfId(), "IPAddress") il suffit de tester si l'adresse contient "" pour ignorer la valeur, non ?
Sebbrunie1 Posté(e) le 20 juin 2015 Auteur Signaler Posté(e) le 20 juin 2015 Oui mais quelle formule pour la repasser si "" par rien? Le but est de remplasser "" par vide ...
Lazer Posté(e) le 20 juin 2015 Signaler Posté(e) le 20 juin 2015 je ne sais pas du tout ce que tu veux faire, mais j'essaye de répondre simplement àta question : IP = fibaro:get(fibaro:getSelfId(), "IPAddress") if IP ~= nil and IP ~= "" then fibaro:debug("Adresse IP :"..IP) else fibaro:debug("Adresse IP vide") end Après tu remplaces le code des 2 conditions par ce que tu as besoin de faire.
jojo Posté(e) le 20 juin 2015 Signaler Posté(e) le 20 juin 2015 @Sebbruniel, Maintenant, si tu veux absolument remplacer "" par rien (mais pourquoi ?), tu parts du code de Lazer pour le test et tu rajoutes ceci, ce qui donne : IP = fibaro:get(fibaro:getSelfId(), "IPAddress") if IP ~= nil and IP ~= "" then fibaro:debug("Adresse IP :"..IP) else fibaro:debug("Adresse IP vide") local HC2 = Net.FHttp("127.0.0.1",11111) local action = ('{"id":'.. fibaro:getSelfId() ..',"properties":{"ip":""}}') HC2:PUT("/api/virtualDevices/" .. fibaro:getSelfId() , action) end
Sebbrunie1 Posté(e) le 21 juin 2015 Auteur Signaler Posté(e) le 21 juin 2015 vous pensez que les "" dans adresse ip ne bloque pas mon VD? moi j'ai l'impression.... en tout cas le script ci-dessus ne me retire pas les ""...
Lazer Posté(e) le 21 juin 2015 Signaler Posté(e) le 21 juin 2015 Difficile de te répondre, je ne sais pas comment est écrit ton script, et ce que tu fais avec l'adresse IP. On t'a juste exposé une méthode permettant de détecter la présence d'une IP ou pas. Mais prend le problème autrement : si ton VD ne contient pas d'adresse IP, ou qu'il contienne "", cela revient au même, puisque tu n'es pas censé faire un fibaro:get(fibaro:getSelfId(), "IPAddress") Si ton VD a bien une adresse IP, alors le fonction devrait fonctionner. En fait, il n'y a pas de problème de mon point de vue, et je ne comprends toujours pas ce qui te pose souci.
Sebbrunie1 Posté(e) le 22 juin 2015 Auteur Signaler Posté(e) le 22 juin 2015 IP = fibaro:get(fibaro:getSelfId(), "IPAddress") Bonjour, j'ai l'impression que mon VD ne fonctionne pas correctement à cause des "" qui se mettent toujours lorsque je fais une mise à jour du firmware. Je les retire donc manuellement à chaque fois dans chaque VD ce que je trouve fastidieux. Je voulais trouver une solution automatique qui me remettait le champs vide. Mais vous avez tous l'air de dire que le "" n'impacte en rien l'exécussion du script dans mes VD..... Le scrit que j'ai mis est celui de Jojo juste ci-dessus. Je n'ai rien changé. La première ligne ne devrait pas être: Local IP =fibaro:get(fibaro:getSelfId(), "IPAddress")
jojo Posté(e) le 22 juin 2015 Signaler Posté(e) le 22 juin 2015 IP= ou local IP= dans ton cas donnera le même résultat. Mais quel est le problème avec ton script ? Poste nous le code de ton script, car on se braque sur les "", alors que ce n'est peut-être pas ça la problème. Est-ce que quand tu as retiré les "" ton script fonctionne mieux ?
pepite Posté(e) le 22 juin 2015 Signaler Posté(e) le 22 juin 2015 Salut, Idem pour moi, dans mes VD j'ai les "" mais cela n'empeche pas le fonctionnement. @jojo a rasion, poste le code d'un des VD qui se bloquent, c'est peut-etre autre chose ;-)
Sebbrunie1 Posté(e) le 22 juin 2015 Auteur Signaler Posté(e) le 22 juin 2015 Le scripte marche quand je retire les "". Typiquement le VD sur les piles qui a été posté sur le forum.. Mais je vous met le scripte ce soir.... Mais je vais voir et arreter de m'emmm avec ces ""
jojo Posté(e) le 22 juin 2015 Signaler Posté(e) le 22 juin 2015 tu parles ce ce script ? http://www.domotique-fibaro.fr/index.php/topic/3896-my-batteries/ Chez moi il tourne sans erreur avec IP = ""
pepite Posté(e) le 22 juin 2015 Signaler Posté(e) le 22 juin 2015 si c'est celui-la : il tourne aussi chez moi avec les ""
Sebbrunie1 Posté(e) le 22 juin 2015 Auteur Signaler Posté(e) le 22 juin 2015 C'est lui.... Bon je vais regarder alors... Merci en tout cas
Messages recommandés