Lazer Posté(e) le 1 octobre 2016 Signaler Posté(e) le 1 octobre 2016 domo, désolé je viens de me rendre compte que je ne t'avais jamais répondu.... Entre temps, depuis que j'ai un Fibaro Button, le module virtuel plantait, car celui-ci ne déclenche plus de triggers, mais des Central Scenes, et donc le retour JSON de l'API events est différent. J'en avait parlé sur un autre topic. Je me suis aussi rendu compte que le VD plantait si un module ne se trouvait dans aucune pièce (c'est peut être ton problème domo). Voici mon code qui fonctionne chez moi : -- Last modification : September 2016 by Lazer local excluded_id = {} -- Comma separated list of ID to exclude local max_events = 500 -- Maximum number of events to fetch local max_labels = 10 -- Number of labels in virtual device local debug = false -- debug local today = os.date("%d/%m/%Y") local selfID = fibaro:getSelfId() local j = 0 local HC2 = Net.FHttp("127.0.0.1", 11111) local response, status, errorCode = HC2:GET("/api/panels/event?last="..max_events.."&type=id") if tonumber(errorCode) == 0 and tonumber(status) == 200 and response ~= nil and response ~= "" then local t = json.decode(response) for i = 1, max_events do local exclude = false for k = 1, #excluded_id do if excluded_id[k] == t[i].deviceID then exclude = true break end end if (t[i].deviceType == "com.fibaro.temperatureSensor") or (t[i].deviceType == "com.fibaro.humiditySensor") or (t[i].deviceType == "com.fibaro.lightSensor") or (t[i].deviceType == "com.fibaro.multilevelSensor") or exclude == true then if debug then fibaro:debug(i.." => Exclude") end else if debug then fibaro:debug(i.. " => Include : deviceID="..t[i].deviceID) fibaro:debug("timestamp : "..t[i].timestamp) fibaro:debug("deviceID : "..fibaro:getName(t[i].deviceID)) fibaro:debug("getRoomID : "..fibaro:getRoomID(t[i].deviceID)) if fibaro:getRoomID(t[i].deviceID) > 0 then fibaro:debug("getRoomName : "..fibaro:getRoomName(fibaro:getRoomID(t[i].deviceID))) end fibaro:debug("propertyName : "..(t[i].propertyName or "")) fibaro:debug("oldValue : "..(t[i].oldValue or "")) fibaro:debug("newValue : "..(t[i].newValue or "")) end --local msg = fibaro:getName(t[i].deviceID) .. " "..roomName .. " | " .. oldValue .. "->" .. newValue .. " | " .. heure local msg = fibaro:getName(t[i].deviceID) local roomID = fibaro:getRoomID(t[i].deviceID) if roomID > 0 then msg = msg .. " " .. fibaro:getRoomName(roomID) end if t[i].propertyName then local oldValue = "" local newValue = "" if t[i].propertyName == "value" then oldValue = t[i].oldValue newValue = t[i].newValue elseif t[i].propertyName == "armed" then if t[i].oldValue > 0 then oldValue = "armé" else oldValue = "désarmé" end if t[i].newValue > 0 then newValue = "armé" else newValue = "désarmé" end end msg = msg .. " | " .. oldValue .. "->" .. newValue elseif t[i].event then msg = msg .. " | " .. (t[i].event.data.keyAttribute or "") else msg = msg .. " | " fibaro:debug("Non supporté !!!") end local date = os.date("%d/%m/%Y", t[i].timestamp) local heure = os.date("%H:%M:%S", t[i].timestamp) msg = msg .. " | " .. heure if today ~= date then msg = msg .. " " .. date end j = j + 1 if debug then fibaro:debug("j="..j) end local label = fibaro:get(selfID, "ui.Label"..j..".value") if label ~= msg then pcall(function() fibaro:call(selfID, "setProperty", "ui.Label"..j..".value", msg) end) end if j >= max_labels then break end end end -- for else fibaro:debug("Net.FHttp error") end -- if -- Clean labels for k = j+1, max_labels do if debug then fibaro:debug("j="..j.." k="..k) end local label = fibaro:get(selfID, "ui.Label"..k..".value") if label ~= "" then fibaro:call(selfID, "setProperty", "ui.Label"..k..".value", "") end end fibaro:debug("OK") Pour info, chez moi j'ai ajouté 25 labels au VD afin d'avoir plus d'historique, donc j'ai mis les paramètres suivants et ça fonctionne très bien : - max_events = 1200- max_labels = 25 J'ai mis un max_events assez gros, car pendant les vacances il y a très peu d'activité chez moi (uniquement simulation de présence...) et les seuls événements remontés par l'API sont les sonde de température/humidité/lux/etc, pas intéressant pour ce qu'on veut afficher. Donc 1200 me permet d'être tranquille à affiner en fonction de votre environnement.
domo Posté(e) le 2 octobre 2016 Signaler Posté(e) le 2 octobre 2016 Merci Lazer pour la mise àjour maintenant c'est nickel
Sakkhho Posté(e) le 6 janvier 2017 Signaler Posté(e) le 6 janvier 2017 hello l'api et/ou l'authentification à changé en 4.110, du coup le VD ne fonctionne plus
Lazer Posté(e) le 6 janvier 2017 Signaler Posté(e) le 6 janvier 2017 ah mince, tu as bien la dernière version que j'ai partagé sur cette page ? Tu peux envoyer le log de debug ?
Sakkhho Posté(e) le 6 janvier 2017 Signaler Posté(e) le 6 janvier 2017 (modifié) ha non attends j'avais pas mis à jour, j'avais pas vu, je te dis EDIT ; Désolé Chef , RAS Modifié le 6 janvier 2017 par Sakkhho
CharlesO Posté(e) le 8 août 2018 Signaler Posté(e) le 8 août 2018 Salut a tous comment faire pour que la date et l heure soit afficher et pas que l heure ? merci
Lazer Posté(e) le 8 août 2018 Signaler Posté(e) le 8 août 2018 Remplacer : if today ~= date then msg = msg .. " " .. date end Par : msg = msg .. " " .. date (donc en fait, juste supprimer la condition) EDIT : j'en déduis à la lecture de l'autre topic que tu utilises une vieille version totalement dépassée, tu ferais mieux de relire ce topic, et en particulier cette page-ci.....
vjoubin Posté(e) le 11 septembre 2018 Signaler Posté(e) le 11 septembre 2018 Bonjour à tous, depuis la mise à jour d'aout, ce module virtuel ne fonctionne plus chez moi?? avez vous le meme problème?
Lazer Posté(e) le 23 septembre 2018 Signaler Posté(e) le 23 septembre 2018 Il fonctionne très bien en 4.510, tu dois avoir une vieille version, relis cette page
vjoubin Posté(e) le 23 septembre 2018 Signaler Posté(e) le 23 septembre 2018 désolé je mets à jour de suite merci!
mipa Posté(e) le 13 septembre 2019 Signaler Posté(e) le 13 septembre 2019 Bonjour, Est ce que ce VD fonctionne en 4.55 ? Je suis intéressé par à l'utilisé
Lazer Posté(e) le 13 septembre 2019 Signaler Posté(e) le 13 septembre 2019 Oui si tu utilises bien la dernière version du code LUA 1
mipa Posté(e) le 13 septembre 2019 Signaler Posté(e) le 13 septembre 2019 J'ai copier coller ton code ci-dessus, celui du 2 octobre 2016, Mais je n'arrive pas a avoir de donnes sur le VD (il apparait vide) On est d'accord que le code de la première page n'est plus d'actualité ?
Lazer Posté(e) le 13 septembre 2019 Signaler Posté(e) le 13 septembre 2019 En effet, le code de la première page ne fonctionne plus, il faut remplacer le code par celui qui se trouve sur cette page. Vérifie tes Labels, tu dois avoir un souci. Sinon regarde si tu vois des choses dans la zone de debug du bouton.
mipa Posté(e) le 14 septembre 2019 Signaler Posté(e) le 14 septembre 2019 hello, ok, merci @Lazer bon j'avais correctement chargé le bon code (ça au moins c'est juste) Je vois rien de rien sur le Debug, il n'affiche rien Voici mes Labels... est ce qu'il faut les renseigner ? merci d'avance
Lazer Posté(e) le 14 septembre 2019 Signaler Posté(e) le 14 septembre 2019 Oui tes labels semblent OK. Tu peux activer le debug = true, il devrait te donner plus d'infos dans la fenêtre de debug pour comprendre ce qui se passe 1
mipa Posté(e) le 14 septembre 2019 Signaler Posté(e) le 14 septembre 2019 merci de ta réponse @Lazer Voici le Debug obtenu : Cela semble ressemble à la première ligne du code, non ?
Lazer Posté(e) le 14 septembre 2019 Signaler Posté(e) le 14 septembre 2019 Désolé mais là c'est totalement incohérent, je te demande de mettre debug = true, et ce n'est pas le cas sur la capture d'écran que tu me montres.... donc là vraiment je ne comprends rien et je peux pas t'aider.
lolomail Posté(e) le 14 septembre 2019 Signaler Posté(e) le 14 septembre 2019 Je viens de tester en 4.550 soucis de " [DEBUG] 17:56:00: Net.FHttp error", j'ai mis l'IP de ma box et le port 80 à la ligne : local HC2 = Net.FHttp("127.0.0.1", 11111) Une idée du soucis?
Lazer Posté(e) le 14 septembre 2019 Signaler Posté(e) le 14 septembre 2019 Il ne faut plus mettre l'IP, il faut utiliser 127.0.0.1 comme dans le code, il ne faut donc pas modifier cette ligne. Les seules lignes modifiables par l’utilisateur sont : local excluded_id = {} -- Comma separated list of ID to exclude local max_events = 500 -- Maximum number of events to fetch local max_labels = 10 -- Number of labels in virtual device local debug = false -- debug
lolomail Posté(e) le 14 septembre 2019 Signaler Posté(e) le 14 septembre 2019 Top cela marche nickel maintenant, merci
Messages recommandés