Aller au contenu

non affichage des icones apres backup ou reboot


yoim

Messages recommandés

Bonjour,

 

Lors d'un reboot ou backup, mes icones de mes modules virtuels disparaissent. Je suis obligé d'actionner un bouton pour qu'il me remette les icones.

 

Les icones par defaut qui n'apparaissent plus.

 

Quelqu'un à une idée.

 

Merci

Lien vers le commentaire
Partager sur d’autres sites

 Bonsoir @yoim,

Tu es en quelle version?

Moi aussi j'ai le problème, je l'ai déjà évoqué dans le sujet sur la 4.130 (c'est depuis cette version que je l'ai constaté mais je n'ai pas mis la 4.131).

 

Lien vers le commentaire
Partager sur d’autres sites

Salut messieurs,

 

Parfois ca m'arrive aussi, j'utilise ceci, un code du master @Steven pour remettre l'icone courante avant le redémarrage ou backup.

toutes ne sont pas remises, on se heurte à la limitation du nombre d'instances ;-) c'est déjà bien ;-)

Usage :

- créer une variable globale

- Sous properties, mettre l'id concerné par la remise de l'icone et la propriété currentIcon


 

--[[
%% autostart
%% properties
4 currentIcon
15 currentIcon
18 currentIcon
19 currentIcon
20 currentIcon
32 currentIcon
33 currentIcon
34 currentIcon
35 currentIcon
37 currentIcon
50 currentIcon
72 currentIcon
--]]
     
local variableGlobale = "Icones"
     
local trigger = fibaro:getSourceTrigger()

   
if (trigger.type == "autostart" or trigger.type == "other") then
     
  fibaro:debug("Mise à jour des icones sur les Virtual Device")
     
   local icones = json.decode(fibaro:getGlobalValue(variableGlobale))
      -- On parcours toutes les entrées et on met l'icone à jour
      for k,v in pairs(icones) do
        fibaro:debug(string.format("Module : %s - currentIcon %s", k, v))
        fibaro:call(tonumber(k), "setProperty", "currentIcon", v)
      end  
     
 elseif (trigger.type == "property") then
     
      local prop = trigger.propertyName
      local device = trigger.deviceID
      local val = fibaro:getValue(device, prop)
     
      fibaro:debug(string.format("Module Virtuel %s (%d) propriété %s = %s", fibaro:getName(device), device, prop, val))
     
      local icones = json.decode(fibaro:getGlobalValue(variableGlobale))
      if (not icones) then
        icones = {}
      end
      -- On ajoute/modifie la valeur du couple Virtual Device/Icone
      icones[device] = val
      -- On remet cela en json dans la variable globale "Icones"
      fibaro:setGlobal(variableGlobale, json.encode(icones))
     
  end

 

Lien vers le commentaire
Partager sur d’autres sites

Salut @yoim,

 

En fait tu crées une variable non definie. Sans valeur.

Oui tu peux créer une variable Icones comme tu veux. L'important est de renseigner la variable que tu auras créée ici

 

local variableGlobale = "Icones"
Lien vers le commentaire
Partager sur d’autres sites

Thx @pepite

 

J'ai une erreur en ligne27

 

[DEBUG] 15:16:39: Mise à jour des icones sur les Virtual Device
[DEBUG] 15:16:39: line 27: bad argument #1 to 'pairs' (table expected, got nil)
      for k,v in pairs(icones) do

 

Lien vers le commentaire
Partager sur d’autres sites

Chez moi, j'ai ajouté une petite ligne de code dans le main du VD pour chercher l'icône au démarrage du module.

avec un 

fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", Id_Icone)

Suivi d'un

fibaro:abort()

Pour ne pas rappeler ce code toute les x secondes.

ça m'a régler le problème de ces icônes qui disparaissent au démarrage.

 

Mais risque de poser problème si on a besoin d'exécuter ke bouclage Main du VD...

 

Mais @pepite ton petit bout de code me plait :) je vais l'utiliser, c'est plus simple de tout centraliser au même endroit...

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

@pepite

 

J'ai ca comme erreur :

 

J'ai mon icone TV où il prend bien le bon icon mais les autres je suis en currentIcon = 0

 

[DEBUG] 00:49:02: Mise à jour des icones sur les Virtual Device
[DEBUG] 00:49:02: line 27: bad argument #1 to 'pairs' (table expected, got number)
[DEBUG] 00:49:19: Module Virtuel TV (106) propriété currentIcon = 1003
[DEBUG] 00:49:19: line 45: attempt to index local 'icones' (a number value)
[DEBUG] 09:13:59: Mise à jour des icones sur les Virtual Device
[DEBUG] 09:13:59: line 27: bad argument #1 to 'pairs' (table expected, got number)
[DEBUG] 09:15:37: Module Virtuel Bouton Virtuel (93) propriété currentIcon = 0
[DEBUG] 09:15:37: line 45: attempt to index local 'icones' (a number value)
[DEBUG] 09:16:14: Mise à jour des icones sur les Virtual Device
[DEBUG] 09:16:14: line 27: bad argument #1 to 'pairs' (table expected, got number)
[DEBUG] 09:16:53: Module Virtuel Chauffage Salon (252) propriété currentIcon = 0
[DEBUG] 09:16:53: line 45: attempt to index local 'icones' (a number value)

une idée ?

Lien vers le commentaire
Partager sur d’autres sites

--[[
%% autostart
%% properties
106 currentIcon
93 currentIcon
252 currentIcon
266 currentIcon
267 currentIcon
138 currentIcon
315 currentIcon
314 currentIcon
319 currentIcon
172 currentIcon
--]]
     
local variableGlobale = "plop"
     
local trigger = fibaro:getSourceTrigger()

   
if (trigger.type == "autostart" or trigger.type == "other") then
     
  fibaro:debug("Mise à jour des icones sur les Virtual Device")
     
   local icones = json.decode(fibaro:getGlobalValue(variableGlobale))
      -- On parcours toutes les entrées et on met l'icone à jour
      for k,v in pairs(icones) do
        fibaro:debug(string.format("Module : %s - currentIcon %s", k, v))
        fibaro:call(tonumber(k), "setProperty", "currentIcon", v)
      end  
     
 elseif (trigger.type == "property") then
     
      local prop = trigger.propertyName
      local device = trigger.deviceID
      local val = fibaro:getValue(device, prop)
     
      fibaro:debug(string.format("Module Virtuel %s (%d) propriété %s = %s", fibaro:getName(device), device, prop, val))
     
      local icones = json.decode(fibaro:getGlobalValue(variableGlobale))
      if (not icones) then
        icones = {}
      end
      -- On ajoute/modifie la valeur du couple Virtual Device/Icone
      icones[device] = val
      -- On remet cela en json dans la variable globale "Icones"
      fibaro:setGlobal(variableGlobale, json.encode(icones))
     
  end

J'ai l'impression que ca met du temps a enregister les icones dans la table ...

Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines après...

Tu as raison, il faut ajouter une pause 

 

...

 elseif (trigger.type == "property") then
  
      fibaro:sleep(2000)
   
      local prop = trigger.propertyName
      local device = trigger.deviceID
      local val = fibaro:getValue(device, prop)

...

 

Edit : Heuuu, non même pas, il faut sauver 2x l'icone pour que le scénario soit capable de retrouvé l'information ... étrange.

Lien vers le commentaire
Partager sur d’autres sites

erreur 503 ^^

 

Ca fonctionne pas. 

 

 

Même avec la méthode de @jjacques68

 

c triste :P

 

Le 16/06/2017 à 06:57, jjacques68 a dit :

Chez moi, j'ai ajouté une petite ligne de code dans le main du VD pour chercher l'icône au démarrage du module.

avec un 


fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", Id_Icone)

Suivi d'un


fibaro:abort()

Pour ne pas rappeler ce code toute les x secondes.

ça m'a régler le problème de ces icônes qui disparaissent au démarrage.

 

Mais risque de poser problème si on a besoin d'exécuter ke bouclage Main du VD...

 

Mais @pepite ton petit bout de code me plait :) je vais l'utiliser, c'est plus simple de tout centraliser au même endroit...

 

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...