Aller au contenu

Recommended Posts

Merci @jojo pour ce VD. Je viens de recevoir mes Smoke Detector de Fibaro et le VD est très utile.

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Regarde dans la section pour les nuls, @Dida expliqué comment retrouver l'id d'une icône 

Partager ce message


Lien à poster
Partager sur d’autres sites

@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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Ben t'as l'option "Inspecter l'élément" :-)

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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!

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour, partage ta ligne 56 :-) ce sera plus simple.

Envoyé de mon Nexus 5X en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites
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 ? 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui


Envoyé de mon iPhone en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci pepite. Je test dès que possible.


Envoyé de mon iPhone en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

oui j'y ai pensé aussi @jojo mais chez moi c'est la même variable et pourtant ça fonctionne ;-) alors là..

Partager ce message


Lien à poster
Partager sur d’autres sites

et je vois que tu es en dernier firmware.

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

bienvenue dans le monde mystérieux de Fibaro :P

Partager ce message


Lien à poster
Partager sur d’autres sites

Ho oui, je vois ça.:D

Partager ce message


Lien à poster
Partager sur d’autres sites

Magique ;-) 

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

×