Aller au contenu

Module Virtuel Adresse Ip


Sebbrunie1

Messages recommandés

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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

@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
Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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")
Lien vers le commentaire
Partager sur d’autres sites

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 ?

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...