Aller au contenu

Messages recommandés

  • 3 mois après...
  • 1 mois après...
Posté(e) (modifié)

Petit Up sur la récupération de l'ID des icones ajoutés. Ils sont bien dans la banque d'icone mais je n'ai pas "affiche l'image" dans la liste du "clic droit"... Je suis sous Edge (Win 10), et sous IE 11 j'ai le menu dans la liste du clic droit mais c'est grisé.. j'ai tenté de passé par le toolkit mais j'ai trouvé nulle part les icones... merci d'avance. 

PS : c'est le premier VD que j'ajoute.. ;)

 

Bon je viens de trouver.. si ca peut aider, a moins que je sois le seul ignorant.. en faisant un "clic droit" puis "enregistrer l'image sous" le nom proposé est "Userxxxx.png" où "xxxx" correspond à l'ID...

Modifié par Fanou
solution trouvée
Posté(e)

@jojo "la section pour les nuls" merci de me le rappeler.. Comme expliqué dans mon message, la maniere donnée par@Did ne fonctionne plus sur Edge (ni ie 11) sous win 10. (A moins que ca ne vienne de moi). Quelqu'un peut-il confirmer ca sous win 10. Je n'ai pas testé sous chrome ou FFox...

Envoyé de mon SM-G928F en utilisant Tapatalk

Posté(e)

Aucune garantie de fonctionnement :

 

  1. Affiche la liste des icônes disponibles
  2. Appuie sur [F12]
  3. Une nouvelle petite fenêtre s'ouvre, sélectionne l'icone de gauche (flèche 1)
  4. Puis tu clique sur l'icône que tu veux (flèche 2)
  5. Tu note le numéro de l'icône (flèche 3) ici c'est le "1017".

6304622303.png

Posté(e)

Bon effectivement j'avais mal lu l'explication de @Did concernant le nom de l'ID... il avait bien précisé que c'est précédé de "User" pour les icône perso

 

Et oui Steven, j'ai fini par passer par là hier... ;) Voila le menu sous Edge. Merci à tous

clicdroit.png

Posté(e)

Oui c'est ce que j'avais fais du coup, fouiller dans la console DOM..

Envoyé de mon SM-G928F en utilisant Tapatalk

  • Upvote 1
  • 1 mois après...
Posté(e)

Salut. Le VD ne veut plus fonctionner chez moi depuis ce soir.

Il me met une erreur à la ligne 56:

[ERROR] 23:40:23: line 56: attempt to concatenate a nil value

Je n'ai rien changé mise à part les id des icônes, le téléphone

Il fonctionnait bien jusqu'à tout à l'heure et en faisant un rafraîchissement il a planté. J'ai redémarré la box mais rien n'y fait. J'ai aussi installé une deuxième version "toute neuve" mais le problème est le même!

Posté(e) (modifié)

quel code as-tu autour de ta ligne 56 ? (on est des dieux, mais pas des devvins ...)

Modifié par jojo
grillé par @pepite (comme d'hab, en fait)
  • Upvote 1
Posté(e) (modifié)

Pour les Dieux du forum. Si si vous êtes des Dieux!

Voici le code jusqu'à la ligne 59. Si il faut l'intégralité du code, je le poste, y a pas de problème. Je précise que je n'ai rien modifié mise à part la partie utilisateur (icônes, téléphone).

----------------------------------
-- User Settings
----------------------------------
-- icônes pour 0, 25, 50, 75 & 100 %
local iconebatt = {1057, 1058, 1059, 1060, 1061}  -- laissez la table vide si pas d'icônes à afficher
local pushID = {764} -- 0 = no push; sinon entrer les ID séparés par une ,
local pushLevel = 10 -- niveau de batterie en dessous duquel il y a min 1 batterie pour notification push

----------------------------------
-- DO not change bellow this line
----------------------------------
local modules = {}
local batt             -- charge de la batt
local battmin = 100    -- % charge de la batterie chargée au min

HC2 = Net.FHttp("127.0.0.1",11111)

-- memorise LastCheck time
local LastCheck = os.date("%d/%m/%y %H:%M")

-- clear labels
for i = 1, 10 do
  fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label" ..i.. ".value", "")
end

---------------
--FUNCTIONS
---------------
function exclude(name)
  return name == "Main_Zwave_Device" or name == "Seismomètre" or name == "Luminosité"
end
-- fonction push notification
function push(msg)
  if pushID[1] ~= 0 then
    for i = 1, #pushID do
      fibaro:call(pushID[i], "sendPush", msg.." ("..os.date("%d/%m à %H:%M")..")")
    end
  end
end
---------------
--END FUNCTIONS
---------------
local parentIds = {}
local uniqueParentId = true
local response = HC2:GET("/api/devices")
local json = json.decode(response)
  
for k, v in ipairs(json) do
  if (type(v.properties.batteryLevel) == "number") then
    if (not exclude(v.name) and v.visible and (not uniqueParentId or not parentIds[v.parentId])) 
      then
      parentIds[v.parentId] = true
        batt = tonumber(v.properties.batteryLevel)
        if batt == 255 then batt = 0 end
        if (batt < battmin) then battmin = batt end
        table.insert(modules, {batt, v.name .. " (" .. v.id .. "-"..fibaro:getRoomName(fibaro:getRoomID(v.id))..")"})
    end -- if exclude
  end -- if batteryLevel
end -- for

 

Modifié par fredokl
Posté(e)
Il y a 2 heures, fredokl a dit :

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

Donc c'est cela ta ligne 56 ? 

 

 

Posté(e)

A priori, d'après l'erreur, ils ne trouvent rien : a nil value ;-) 

Je te poste mon code qui fonctionne

----------------------------------
-- User Settings
----------------------------------
-- icones pour 0, 25, 50, 75 & 100 %
local iconebatt = {50,51,52,53,54}
local pushID = {0} -- 0 = no push; sinon entrer les ID séparés par une ,
local pushLevel = 10 -- niveau de batterie en dessous duquel il y a min 1 batterie pour notification push

----------------------------------
-- DO not change bellow this line
----------------------------------
local modules = {}
local batt             -- charge de la batt
local battmin = 100    -- % charge de la batterie chargée au min
local BattOper         -- is battery Operated (only for v3.x)
local Dead             -- is dead
local Visible          -- is Visible ?
-- détermination de la version du firmware
local HC2 = Net.FHttp("127.0.0.1",11111)
local version = ""
payload = "/api/settings/info"
response, status, errorCode = HC2:GET(payload)
if tonumber(status) == 200 
  then
    jsonTable = json.decode(response)
    if tonumber(jsonTable.softVersion) >= 4 
      then
        version = "4.x"
     else
        version = "3.x"
    end
  else
    fibaro:debug('<span style="color:red;">status='..status..', errorCode='..errorCode..', payload='..payload..', response='..response..'</span>')
end
fibaro:debug('version = ' ..version)
HC2 = Net.FHttp("127.0.0.1",11111)
 
-- memorise LastCheck time
local LastCheck = os.date("%d/%m/%y %H:%M")
 
-- clear labels
for i = 1, 10 do
  fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label" ..i.. ".value", "")
end
 
---------------
--FUNCTIONS
---------------
function exclude(name)
  return name == "Main_Zwave_Device" or name == "Seismomètre" or name == "Luminosité"
end
-- fonction push notification
function push(msg)
    if pushID[1] ~= 0 then
        for i = 1, #pushID do
            fibaro:call(pushID[i], "sendPush", msg.." ("..os.date("%d/%m à %H:%M")..")")
        end
    end
end
---------------
--END FUNCTIONS
---------------
local parentIds = {}
local uniqueParentId = true
local response = HC2:GET("/api/devices")
local json = json.decode(response)
 
for k, v in ipairs(json) do
  if (type(v.properties.batteryLevel) == "number") then
    if (not exclude(v.name) and v.visible and (not uniqueParentId or not parentIds[v.parentId])) 
      then
        parentIds[v.parentId] = true
        batt = tonumber(v.properties.batteryLevel)
        if batt == 255 then batt = 0 end
        if (batt < battmin) then battmin = batt end
          table.insert(modules, {batt, v.name .. " (" .. v.id .. "-"..fibaro:getRoomName(fibaro:getRoomID(v.id))..")"})
    end -- if exclude
  end -- if batteryLevel
end -- for
 
-- sort table
function comp(w1,w2)
    return tonumber(w1[1]) < tonumber(w2[1])
end
table.sort(modules,comp)
 
-- display labels
--if string.len(modules[1][2]) >= 29 then
--  modules[1][2] = string.sub(modules[1][2], 1, 28)
--end
for index, value in ipairs(modules) do
      pcall( function() 
        fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label"..index..".value", value[2].. "..." .. value[1] .. "%")
        end
      )
end
 
-- display LastCheck
fibaro:debug(LastCheck)
fibaro:call(fibaro:getSelfId(), "setProperty", "ui.LastCheck.value", LastCheck)
 
-- display Icon
fibaro:debug("battmin = "..battmin)
if battmin < pushLevel then
  msg = "Il y a au moins une batterie sous le niveau minimum ("..pushLevel.."%) : "..battmin.."%."
  push(msg)
end
battmin = math.floor((battmin - 1)/25) + 2
fibaro:debug("Icone batterie : "..battmin)
fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", iconebatt[battmin])

 

  • Upvote 1
Posté(e)

ne serait-ce pas lié à un problème que @Lazer a déjà identifié dans les dernières version  :

 

j'ai utilisé une variable <json>, qui est peut-être réservée dans les dernières versions.

 

Alors remplace ce <json> par <autreChose> et regarde si ça fonctionne

Posté(e)

je parle de la variable json qui est déclarée ici

local json = json.decode(response)
for k, v in ipairs(json) do

j'essayerais en remplaçant par ceci :

local autreChose = json.decode(response)
for k, v in ipairs(autreChose) do

 
  • Upvote 1
Posté(e)

et je vois que tu es en dernier firmware.

Alors, ça doit être le coup du bit à moitié ouvert ...

Posté(e)

Salut à tous. Merci pour vos réponses.

En vérifiant le VD à l'instant, j'ai constaté qu'il fonctionne de nouveau alors que je n'ai rien fait! C'est à rien n'y comprendre!

Par précaution, j'ai installé le code de @pepite et tout fonctionne parfaitement.

Je vous tiens au courant en cas de nouveau plantage du VD.

Merci encore.

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