Steven Posté(e) le 6 juin 2016 Auteur Signaler Posté(e) le 6 juin 2016 On va essayé un truc simple que tu vas tester (je suis au travail). à la ligne 101 : return a.sectionname..a.roomname < b.sectionname..b.roomname Essaie juste de la remplacer par return a.sectionname..a.roomname..a.name < b.sectionname..b.roomname..b.name Tiens moi au courant, si ça marche pas, je creuserais ce soir. 1
jojo Posté(e) le 6 juin 2016 Signaler Posté(e) le 6 juin 2016 merci, j'essayerai dès que ma box est ànouveau up. Depuis que j'ai voulu exclure et réinclure un device mort, ma box est "morte". Des multiples redémarrages n'y font rien :angry: :angry:
jojo Posté(e) le 6 juin 2016 Signaler Posté(e) le 6 juin 2016 @Steven, MERCI, j'adore les lutions "keep it simple"
jojo Posté(e) le 6 juin 2016 Signaler Posté(e) le 6 juin 2016 du coupe je me suis shopé un beau 503 en sauvant mon GEA, mais rien àvoir
CharlesO Posté(e) le 4 septembre 2016 Signaler Posté(e) le 4 septembre 2016 salut a tous il y a un joli petit icône pour ca ? merci
Steven Posté(e) le 6 septembre 2016 Auteur Signaler Posté(e) le 6 septembre 2016 Faut faire la demande ici : http://www.domotique-fibaro.fr/index.php/topic/1588-banque-icones-hc2-et-hcl/
speedoxx007 Posté(e) le 18 décembre 2016 Signaler Posté(e) le 18 décembre 2016 Hello j'ai une erreur en V4.104: line 101: or '...' expected near 'if' Quelqu'un peut me aider? Salutations speedoxx007
sebcbien Posté(e) le 18 décembre 2016 Signaler Posté(e) le 18 décembre 2016 Ligne 101, ça ne veut rien dire, la ligne dépend de ta config.Poste au moins la ligne de code, et aussi ta config, le problème vient probablement de là...Sent from my Note4
speedoxx007 Posté(e) le 18 décembre 2016 Signaler Posté(e) le 18 décembre 2016 Hello Voici la ligne 101: if (not useSections) then qui me crée l'erreur: line 101: or '...' expected near 'if' Voici le code que j'ai récuperé: --[[ %% properties %% globals --]] local hidden = false --- true pour exporter les devices cachés local dead = false -- true pour exporter les devices morts local useSections = true local excludeType = {"com.fibaro.zwaveDevice", "weather", "HC_user", "iOS_device", "com.fibaro.voipUser"} local excludeID = {} local generateur = { devices = {}, names = {}, rooms = {}, sections = {}, devicesJSon = api.get("/devices"), roomsJSon = api.get("/rooms"), sectionsJSon = api.get("/sections"), -- Retourne la section souhaitée getSection = function(self, id) if (not useSections) then return "" end if (#self.sections == 0) then for k, v in ipairs(self.sectionsJSon) do self.sections[v.id] = v.name end end id = tonumber(id) if (type(self.sections[id]) == "nil") then return "inconnu" else return self.sections[id] end end, -- Retourne la pièce souhaitée getRoom = function(self, id) if (#self.rooms == 0) then for k, v in ipairs(self.roomsJSon) do self.rooms[v.id] = {} self.rooms[v.id].name = v.name self.rooms[v.id].sectionId = v.sectionID self.rooms[v.id].sectionName = self:getSection(v.sectionID) end end id = tonumber(id) if (type(self.rooms[id]) == "nil") then return "inconnu", "inconnu", 0 else return self.rooms[id].name, self.rooms[id].sectionName, self.rooms[id].sectionId end end, -- Retourne un nom unique addName = function(self, name, roomname) if (type(self.names[name]) == "nil") then self.names[name] = true return name else return self:addName(name.."_"..roomname, roomname) end end, -- Supprime les caractères indésirables et rend le nom unique rename = function(self, name, roomname) local name = name:upper():gsub("[éêèë]", "E"):gsub("EE", "E"):gsub("[ûüù]", "U"):gsub("UU", "U"):gsub("[àâä]", "A"):gsub("AA", "A"):gsub("[öô]", "O"):gsub("OO", "O"):gsub("[îï]", "I"):gsub("II", "I"):gsub("%W", "_") local roomname = roomname:upper():gsub("[éêèë]", "E"):gsub("EE", "E"):gsub("[ûüù]", "U"):gsub("UU", "U"):gsub("[àâä]", "A"):gsub("AA", "A"):gsub("[öô]", "O"):gsub("OO", "O"):gsub("[îï]", "I"):gsub("II", "I"):gsub("%W", "_") return self:addName(name, roomname) end, proceed = function(self) for k, v in pairs(self.devicesJSon) do local doit = (hidden or v.visible) and (dead or not v.dead) if (doit) then for h, w in pairs(excludeType) do if (v.type == w) then doit = false end end if (doit) then for h, w in pairs(excludeID) do if (v.id == w) then doit = false end end end end if (doit) then v.roomname, v.sectionname, v.sectionID = self:getRoom(v.roomID) table.insert(self.devices, v) end end table.sort(self.devices, function(a, if (not useSections) then return a.roomID < b.roomID else return a.sectionname..a.roomname < b.sectionname..b.roomname end end) return self.devices; end Je suis en V4.104 et un débutant en LUA :-( Merci pour vos aides.
jojo Posté(e) le 18 décembre 2016 Signaler Posté(e) le 18 décembre 2016 as-tu bien mis ce code dans une scène, pas dans le bouton d'un VD ?
speedoxx007 Posté(e) le 18 décembre 2016 Signaler Posté(e) le 18 décembre 2016 Oui j'ai bien mis dans une scène. Envoyé de mon SM-G900F en utilisant Tapatalk
Steven Posté(e) le 19 décembre 2016 Auteur Signaler Posté(e) le 19 décembre 2016 @speedoxx007 Le code que tu as posté n'est pas complet, soit tu as oublié de nous copier la fin, soit tu as oublié de la mettre dans ta scène
speedoxx007 Posté(e) le 19 décembre 2016 Signaler Posté(e) le 19 décembre 2016 Euh je vais revérifier
jojo Posté(e) le 19 décembre 2016 Signaler Posté(e) le 19 décembre 2016 oui, car elle fonctionne impeccable chez moi depuis le début.
ADN182 Posté(e) le 23 décembre 2016 Signaler Posté(e) le 23 décembre 2016 Salut, Il y a du y avoir un problème lors de la migration du site et du coup le code de la scène n'est plus bon. Si vous faites un copier coller de la scène du post ça ne fonctionne plus. Voici la ou ça coince je pense : table.sort(devices, function(a, return a.roomID<b.roomID end)
nigao Posté(e) le 12 avril 2017 Signaler Posté(e) le 12 avril 2017 (modifié) Déterrage*** je coince aussi au même endroit ^^ table.sort(devices, function(a, return a.roomID<b.roomID end) --DEBUG line 63: or '...' expected near 'return' Edit : je constate que ca semble etre un tri de table ; du coup si je désactive cette ligne // et que j'en sors le 'end' le script 'semble' accepter de fonctionner mais je n'ai pas connu son état d'origine @ADN182 --[[ %% properties %% globals --]] local hidden = false --- true pour exporter les devices cachés local dead = false -- true pour exporter les devices morts local excludeType = {"com.fibaro.zwaveDevice", "weather", "HC_user", "iOS_device", "com.fibaro.voipUser"} local excludeID = {} local devicesJSon = api.get("/devices") local devices = {} local names = {} local rooms = {} function addName(name, roomname) if (type(names[name]) == "nil") then names[name] = true return name else return addName(name.."_"..roomname, roomname) end end function getRooms() local roomsJSon = api.get("/rooms") rooms[0] = "inconnu" for k, v in ipairs(roomsJSon) do rooms[v.id] = v.name end end function rename(name, roomname) local name = name:upper():gsub("[éêèà«]", "E"):gsub("EE", "E"):gsub("[à»à¼ù]", "U"):gsub("UU", "U"):gsub("[à âà¤]", "A"):gsub("AA", "A"):gsub("[à¶ô]", "O"):gsub("OO", "O"):gsub("[îà¯]", "I"):gsub("II", "I"):gsub("%W", "_") local roomname = roomname:upper():gsub("[éêèà«]", "E"):gsub("EE", "E"):gsub("[à»à¼ù]", "U"):gsub("UU", "U"):gsub("[à âà¤]", "A"):gsub("AA", "A"):gsub("[à¶ô]", "O"):gsub("OO", "O"):gsub("[îà¯]", "I"):gsub("II", "I"):gsub("%W", "_") return addName(name, roomname) end getRooms() for k, v in pairs(devicesJSon) do local doit = (hidden or v.visible) and (dead or not v.dead) if (doit) then for h, w in pairs(excludeType) do if (v.type == w) then doit = false end end if (doit) then for h, w in pairs(excludeID) do if (v.id == w) then doit = false end end end end if (doit) then table.insert(devices, v) end --passage de cette ligne en commentaire car ne fonctionne pas :( --table.sort(devices, function(a, return a.roomID<b.roomID end) end --ici on 'sort' le end de la ligne qui a été annulée local result = "<BR><BR>-- IDs générés le : " .. os.date("%d/%m/%y à %X") local room = -1 local lastinfo = ""; result = result .. "<BR><BR>local id = {" for k, v in ipairs(devices) do if (room ~= v.roomID) then room = v.roomID result = result .. "<BR>--"..rooms[v.roomID].."<BR>" end lastinfo = rename(v.name, rooms[v.roomID]) result = result .. lastinfo .. " = " .. v.id .. ", " end result = result .. "<BR>}" result = result .. "<BR>" result = result .. "<BR>-- usage :" result = result .. "<BR>-- fibaro:getValue(id[\""..lastinfo .."\"], \"value\")" result = result .. "<BR>-- GEA.add(id[\""..lastinfo .."\"], 30, \"\")" print(result) Modifié le 12 avril 2017 par nigao
pepite Posté(e) le 13 avril 2017 Signaler Posté(e) le 13 avril 2017 Bonjour, Je viens de tester, fonctionnement OK chez moi avec ce code : local hidden = false --- true pour exporter les devices cachés local dead = false -- true pour exporter les devices morts local excludeType = {"com.fibaro.zwaveDevice", "weather", "HC_user", "iOS_device", "com.fibaro.voipUser"} local excludeID = {} local devicesJSon = api.get("/devices") local devices = {} local names = {} local rooms = {} function addName(name, roomname) if (type(names[name]) == "nil") then names[name] = true return name else return addName(name.."_"..roomname, roomname) end end function getRooms() local roomsJSon = api.get("/rooms") rooms[0] = "inconnu" for k, v in ipairs(roomsJSon) do rooms[v.id] = v.name end end function rename(name, roomname) local name = name:upper():gsub("[éêèë]", "E"):gsub("EE", "E"):gsub("[ûüù]", "U"):gsub("UU", "U"):gsub("[àâä]", "A"):gsub("AA", "A"):gsub("[öô]", "O"):gsub("OO", "O"):gsub("[îï]", "I"):gsub("II", "I"):gsub("%W", "_") local roomname = roomname:upper():gsub("[éêèë]", "E"):gsub("EE", "E"):gsub("[ûüù]", "U"):gsub("UU", "U"):gsub("[àâä]", "A"):gsub("AA", "A"):gsub("[öô]", "O"):gsub("OO", "O"):gsub("[îï]", "I"):gsub("II", "I"):gsub("%W", "_") return addName(name, roomname) end getRooms() for k, v in pairs(devicesJSon) do local doit = (hidden or v.visible) and (dead or not v.dead) if (doit) then for h, w in pairs(excludeType) do if (v.type == w) then doit = false end end if (doit) then for h, w in pairs(excludeID) do if (v.id == w) then doit = false end end end end if (doit) then table.insert(devices, v) end end table.sort(devices, function(a,b) return a.roomID<b.roomID end) local result = "<BR><BR>-- IDs générés le : " .. os.date("%d/%m/%y à %X") local room = -1 local lastinfo = ""; result = result .. "<BR><BR>local id = {" for k, v in ipairs(devices) do if (room ~= v.roomID) then room = v.roomID result = result .. "<BR>--"..rooms[v.roomID].."<BR>" end lastinfo = rename(v.name, rooms[v.roomID]) result = result .. lastinfo .. " = " .. v.id .. ", " end result = result .. "<BR>}" result = result .. "<BR>" result = result .. "<BR>-- usage :" result = result .. "<BR>-- fibaro:getValue(id[\""..lastinfo .."\"], \"value\")" result = result .. "<BR>-- GEA.add(id[\""..lastinfo .."\"], 30, \"\")" print(result) 1
nigao Posté(e) le 13 avril 2017 Signaler Posté(e) le 13 avril 2017 (modifié) Je constate que ton code diffère bien de la page 1 du coup ^^ --code @pepite table.sort(devices, function(a,b) return a.roomID<b.roomID end) --code page 1 table.sort(devices, function(a, return a.roomID<b.roomID end) Je ferais la modif ce soir pour tester sans ma bidouille ^^ J'aurais donc le tri par ordre plutôt qu'en bordel grâce à toi Edit : je confirme bien que cette ligne de code "function (a,b)" permet de faire fonctionner ce VD Modifié le 13 avril 2017 par nigao
Did Posté(e) le 13 avril 2017 Signaler Posté(e) le 13 avril 2017 Bonsoir @Steven, Si tu veux, tu peux ajouter cette icône dans le premier post (à moins qu'elle ne te plaise pas).
Felig Posté(e) le 14 avril 2017 Signaler Posté(e) le 14 avril 2017 (modifié) Bonjour, Il y a une erreur à la ligne 63 du script au début du post: table.sort(devices, function(a, return a.roomID<b.roomID end) Il faut corriger comme suit je pense: table.sort(devices, function(a,b) return a.roomID<b.roomID end) Modifié le 14 avril 2017 par Felig
ADN182 Posté(e) le 14 avril 2017 Signaler Posté(e) le 14 avril 2017 Lu prend la version de pépite plus 2,3 com plus haut c'est la bonne. Merci Pépite je pense que le changement de forum à du changer des caractèresEnvoyé de mon Nexus 5X en utilisant Tapatalk 1
fredokl Posté(e) le 14 avril 2017 Signaler Posté(e) le 14 avril 2017 Super idée ce générateur d'id. Merci @Steven.
nigao Posté(e) le 1 mai 2017 Signaler Posté(e) le 1 mai 2017 (modifié) Je vais paraitre bête avec ma question, mais comment on fait un copier/coller ? Quand je sélectionne le texte de la zone de debug, il devient en sur-brillance mais dès que je lache le clic de la souris, il se désélectionne. Pas le temps de faire ni un Ctrl+C ; ni clic droit>copier. J'ai le meme comportement sous Chrome / Firefox / Safari Modifié le 1 mai 2017 par nigao
jojo Posté(e) le 1 mai 2017 Signaler Posté(e) le 1 mai 2017 j'ai eu le même problème, il faut être rapide sur le ctrl+C (pas V), et ensuite le coller dans Notepad++ et voir si on a tout. Il faut chipotter
nigao Posté(e) le 1 mai 2017 Signaler Posté(e) le 1 mai 2017 (modifié) Chipote chipote, surtout que tu as dû avoir la notif de suivi de message avec "ctrl V" alors que j'ai éditer "ctrl+C" 3 heures avant ta réponse ^^ et oui faut chippoter meme les chippoteurs mais j'avoue j'ai tapé trop vite Bon sinon j'ai trouvé une astuce... Sélectionner le texte mais ne jamais lâcher le clic gauche de souris Puis avec l'autre main de libre, faire un Ctrl C Modifié le 1 mai 2017 par nigao
Messages recommandés