Aller au contenu

Messages recommandés

Posté(e)

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

Posté(e)

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

Posté(e)

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

Posté(e)

Quand tu fais ton fibaro:get(fibaro:getSelfId(), "IPAddress") il suffit de tester si l'adresse contient "" pour ignorer la valeur, non ?

Posté(e)

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.

Posté(e)

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

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

Posté(e)

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.

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

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 ?

Posté(e)

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 ;-)

Posté(e)

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 "" :)

×
×
  • Créer...