Aller au contenu

pepite

Membres confirmés
  • Compteur de contenus

    9 579
  • Inscription

  • Dernière visite

  • Jours gagnés

    59

Tout ce qui a été posté par pepite

  1. pepite

    Backup Via Scene Lua

    Salut @Plap3014, Pardon, je n'avais pas bien suivi ;-) J'ai aussi et fonctionnel --[[ %% properties %% events %% globals --]] --DELETE BACKUP -- Flag dryrun; Si true, la requete sur api pour effacer le backup n'est pas effectuée local dryrun = false -- Password admin encodé en base64 local password = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' function sortBackup(data) local backups = json.decode(data) -- Vérification de présence Backup if (backups and type(backups == 'table') and #backups > 0) then if #backups > 1 then print(#backups .. ' Backups présents') else print('1 Backup présent') end for i in ipairs(backups) do fibaro:debug('ID: '..backups[i]['id']..' | TIMESTAMP: '..backups[i]['timestamp']..' | DESCRIPTION: '..backups[i]['description']) end else print('Pas de backup ou erreur lors de la récupération de la liste') fibaro:abort() end -- Pour chaque Backup on stock le timestamp de la date de réalisation dans une table -- On classe ensuite les timestamps par ordre croissant local timestamp = {} for i in ipairs(backups) do table.insert(timestamp, backups[i]['timestamp']) end table.sort(timestamp) -- Le 1er timestamp de la table est le plus petit donc le plus ancien en epochtime -- Dans la table de backup on recherche le backup ayant ce timestamp local id = false for i in ipairs(backups) do if (tonumber(backups[i]['timestamp']) == tonumber(timestamp[1])) then id = backups[i]['id'] end end if id then print("ID du backup le plus ancien: "..id) deleteBackup(id) else print("Erreur lors de la récupération de l'ID") fibaro:abort() end end function deleteBackup(id) -- Requete via API pour effacer le backup le plus ancien if (not dryrun) and (id) then print('Effacement du backup '..id..' en cours. Cela peut prendre 30s') local url = 'http://127.0.0.1/api/service/backups/'..id local httpClient = net.HTTPClient() httpClient:request(url , { success = function(response) if tonumber(response.status) == 200 then print("Backup deleted at " .. os.date()) else print("Error " .. response.status) end end, error = function(err) print('error = ' .. err) end, options = { method = 'DELETE', headers = { ["content-type"] = 'application/x-www-form-urlencoded;', ["authorization"] = 'Basic '..password }, data = 'id='..id } }) end end -- Récupération de la list des backups local GETClient = net.HTTPClient() if dryrun then print('Mode DryRun -> La requète pour effacer ne sera pas éxécutée') end GETClient:request('http://127.0.0.1/api/service/backups', { success = function(response) if tonumber(response.status) == 200 then sortBackup(response.data) else print("Error " .. response.status) end end, error = function(err) print('error = ' .. err) end, headers = { ["content-type"] = 'application/x-www-form-urlencoded;', ["authorization"] = 'Basic '..password } });
  2. Mieux vaut tard que jamais, on peut au moins leur reconnaitre cela, et ça va plutôt dans le bon sens ;-)
  3. @razowski, je pense que cela a changé. En ce moment ils réagissent et répondent je trouve. Exemple : le panneau de chauffage, bug remonté par @MAM78..et d'autres exemples Ils font un vrai effort d'écoute des users.
  4. pepite

    Backup Via Scene Lua

    Salut @Plap3014 Voila la scène de backup fonctionnelle pour moi, suite aux modifications de nikko, il faut que tu encode ton couple login@toto.fr:motdepasse en base 64, regarde dans un des posts, il y'a le code pour le faire --[[ %% properties %% events %% globals --]] -- BACKUP -- ID des mobiles,tablettes pour notification local portable = {} -- {XX, XX} -- Message Descriptif du Backup local descriptif = 'Backup HC2 du '..os.date("%d/%m/%y - %HH%M") -- Password admin encodé en base64 local password = 'xxxxxxxxxxxxxxxxxxxxxxxxx' function sendPush(message) if #portable > 0 then for _,v in ipairs(portable) do fibaro:call(v,'sendPush', message) end end end --[[function sendPush(message) if #portable > 0 then fibaro:setGlobal('FreeSms', message) end end]]-- local url = 'http://127.0.0.1/api/service/backups' local datas = '{"action":"create","params":{"name":"'..descriptif..'"}}' local httpClient = net.HTTPClient() httpClient:request(url , { success = function(response) if tonumber(response.status) == 201 or tonumber(response.status) == 202 then print("Backup Created at " .. os.date()) sendPush(descriptif .. ' effectué') else print("Error " .. response.status) sendPush('Erreur lors de la création du Backup') end end, error = function(err) print('error = ' .. err) end, options = { method = 'POST', headers = { ["content-type"] = 'application/json', ["Authorization"] = 'Basic '..password }, data = datas } });
  5. Salut @MAM78, Je pensais plutôt à quelquechose comme ceci, non testé local panelHorsVacances = 194 local panelEnVacances = 234 local VarVacances = "Oui" local panelEV = api.get("/panels/heating/"..panelEnVacances) local panelHV = api.get("/panes/heating/"..panelHorsVacances) if VarVacances == "Oui" then SaveRooms = panelEV.properties.rooms panelEV.properties.rooms = panelHV.properties.rooms panelHV.properties.rooms = SaveRooms else SaveRooms = panelHV.properties.rooms panelHV.properties.rooms = panelEV.properties.rooms panelEV.properties.rooms = SaveRooms end api.put("/heating/panels/" ..panelHorsVacances, panelHV) api.put("/heating/panels/"..panelEnVacances, panelEV)
  6. Ah si effectivement tu as le watchdog de @Lazer et que tu as une scene qui est rebootée par le watchdog tu vas avoir un paquet de lignes ;-) Bien vu Lazer, je n'y avais pas pensé a ton watchdog ;-)
  7. On est bien d'accord que sur ce coup là, pas de pub possible :-) mais une grosse patience pour avoir la fibre :-) Envoyé de mon Nexus 5X en utilisant Tapatalk
  8. Bonjour, moi non jamais eu cela :-( Envoyé de mon Nexus 5X en utilisant Tapatalk
  9. pepite

    Support Gea

    Yeah merci master, c'est ce que je pensais mais pas assez expert pour le dire. Ca sent le function.. Envoyé de mon Nexus 5X en utilisant Tapatalk
  10. Excellent mam :-). Tu peux aussi simplifier le code avec des api.get et api.put :-) Et tu peux aller jusqu a properties avec le get je pense Envoyé de mon Nexus 5X en utilisant Tapatalk
  11. Oops, je n'ai pas été clair :-). Je me demandais si le "repérage" de la présence ou absence était plutôt instantané ou avec un peu de latence :-).. Toujours aussi sympa ton histoire de fibre. Un vrai roman :-) Envoyé de mon Nexus 5X en utilisant Tapatalk
  12. Bonjour, J'adore ce teaser :-) Et que penses tu des temps de reponse avec l ubiquiti ? Envoyé de mon Nexus 5X en utilisant Tapatalk
  13. Super !! Comment as tu fait alors ? ça peut aider d'autres ? Et tu utilises le VD de tibo ?
  14. et en recreant un autre panneau tout en laissant le précédent ? et en passant par l'API ?
  15. je parlais du VD ;-) et tu as reboote entre temps, on ne sait jamais.
  16. ah oui, j'avais lu cela. mais je ne crois pas que tu puisses supprime plus que cela. @samhuin tu as lu cela : @tibo789 a tout fait ;-) tu n'as plus qu'a importer ;-)
  17. PAs possible sur le panneau de donner des droits à un user
  18. Pour moi aussi, et je pense que la plus propre c'est le choix par le VD de @Steven, ça permet de choisir le panneau qui t'intéresse ;-)
  19. Heu, @MAM78, on t' a donné plein de liens dans les messages précédents ;-) qui passent par le lua ;-)
  20. Mais tu dois faire choisir la pour lier les modules qui vont déclencher et là tu auras les jours, la durée et l'heure d'allumage. Et là tu auras ta croix ;-) Amis en fait là ton panneau n'est pas complet, tu n'as fait que le début
  21. pepite

    Support Gea

    Ah ok, j'avoue que la je n'en sais pas plus et j'avoue ne pas comprendre pourquoi cela reste à 13 mins par défaut.. Sinon, après faut passer par function. Si @Steven a un début d'explication ;-) à ces 13 mins
  22. pepite

    Support Gea

    Quoi ? quoi ?
  23. Salut, tu n'as pas de croix sur ton interface des panneaux ? Récupère ton ID. Sinon là http://IPHC2/docs tu dois avoir des infos : delete /panels/drenchers
  24. Merci master ;-). ah oui un api.get qui va directement chercher les properties du panneau. @Nico, il ne coupe pas, mais lis les infos à partir du panneau de chauffage souhaité en fonction des conditions souhaitées ;-) Faisable avec X panneaux et avec n'importe quel capteur de temperature ;-)
×
×
  • Créer...