Aller au contenu

Messages recommandés

Posté(e)

 

la plupart du temps c’est vous qui m’aidez et me sortez de la mouizzz :P

merci à vous tous

 

ceci dit, ce n’est pas fini, il reste le probleme de RoomName

  • Upvote 1
Posté(e)

@jojo si tu as un moment pourrais tu si tu le veux bien modifier le post 1 dont tu es l'auteur et ajouter la version 2
je te remercie d'avance mon ami

Envoyé de mon SM-G901F en utilisant Tapatalk

Posté(e)

Salut les amis,

 

Juste une question : comment on fait pour faire apparaître l'ensemble des modules sur batteries de notre installation. Il ne m'affiche que 10 modules alors que j'en ai plus. 

 

@flamalexmerci pour ta modif. 

Posté(e)

@Yannick

 

C'est assez simple.

 

1.     Regarder combien il y a de modules qui doivent apparaître sur la VD.

2.     Mettre autant d'étiquette (Label) qu'il y a de modules.

3.     Modifier la routine :

 

         -- clear labels

        for i = 1, xx do  -- xx nombres d'etiquettes totals

          fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label" ..i.. ".value", "")

       end

 

4.     Faire la sauvegarde de la VD

 

Et voilà c'est bon :60:

 

Bonne journée.

  • Upvote 1
Posté(e)
Le 04/12/2017 à 21:34, jojo a dit :

@mprinfo

A la vue des efforts énormes de diplomatie dont tu viens de faire preuve, je ne pouvais pas ne rien faire.

=> post 1 modifié

:13:Merci encore

Posté(e)

Ou modifié le VD avec ceci  pour avoir tous les devices visibles sur batterie ;-)

 

for _, v in ipairs(fibaro:getDevicesId({interface="battery", visible=true})) do

 ......

end

  • Like 1
Posté(e) (modifié)

tout a fait d'accord, après dans la boucle tu recuperes ceux qui ont un niveau de batterie < X

local batt = fibaro:getValue(v, "batteryLevel")

if batt <.......end

 

@jojo

dans son code envoie un push si le niveau de batteries est < X, sur le meme principe tu peux afficher NOM, piece niveau de batterie dans les etiquettes

 

Modifié par pepite
Posté(e)

Hello,

 

En utilisant fibaro:getRoomNameByDeviceID(v.id) ça fonctionne nickel !

 

Ca donne ceci :

 

table.insert(modules, {batt, v.name .." (" .. (fibaro:getRoomNameByDeviceID(v.id))..") "})

 

 

  • Like 1
  • Upvote 2
  • 2 semaines après...
Posté(e)

Bonjour,

 

Vis-à-vis de la dernière version en date (5.3), la seule modification que j'ai du faire pour que tout fonctionne en 4.150 est à la ligne 49 :

 

  if (type(v.properties.batteryLevel) == "number") then
 

Qui devient :

 

  if (tonumber(v.properties.batteryLevel) ~= nil) then

  • Like 1
Posté(e)
Le 17/12/2017 à 11:15, neliger a dit :

Bonjour,

 

Vis-à-vis de la dernière version en date (5.3), la seule modification que j'ai du faire pour que tout fonctionne en 4.150 est à la ligne 49 :

 

  if (type(v.properties.batteryLevel) == "number") then
 

Qui devient :

 

  if (tonumber(v.properties.batteryLevel) ~= nil) then

Merci :D c'est exactement ca.

Posté(e)

fichier avec la modif de @Crunchy

 

en ligne 72

remplacer la ligne

table.insert(modules, {batt, v.name .."-" ..(fibaro:getRoomID(v.id)).."(" .. v.id.. ")"})

 

par

 

fibaro:getRoomNameByDeviceID(v.id)

table.insert(modules, {batt, v.name .." (" .. (fibaro:getRoomNameByDeviceID(v.id))..") "})   
 

 

vous aurez alors le name de la room au lieu du numero 

 

My_Batteries_v6.1.vfib

Posté(e)

@flamalex

 

Attention, pour les modules non assignés à une pièce, room vaut zéro et fibaro:getRoomNameByDeviceID(v.id) retourne nil...

Je propose :

local room = fibaro:getRoomName(fibaro:getRoomID(v.id));
if (room == nil) then room = "???"; end
table.insert(modules, {batt, v.name .. " (" ..room..")"});

 

  • Upvote 1
×
×
  • Créer...