Domodial 351 Signaler ce message Posté(e) 27 septembre 2017 (modifié) Je reprends le script modifié de DrBoss, mais j'ai toujours l'erreur 401 [DEBUG] 15:31:00: Current parameters: [DEBUG] 15:31:00: delete after: 060 day(s), only backups with description start by [!] [DEBUG] 15:31:10: Error 401 EDIT : c'est bon pour le backup, c'était le changement d'API (service VS setting) grrrr Modifié 27 septembre 2017 par Domodial 1 Partager ce message Lien à poster Partager sur d’autres sites
Domodial 351 Signaler ce message Posté(e) 28 septembre 2017 Question (maintenant que mon backup sur appuie manuel fonctionne) Dites, la modification en 3 fichiers de DrBoss ne semble pas initier le backup automatiquement style tous les jours. Il y a une notion de suppression des backups après xxx jours. Dans ce cas il faut que je fasse un appel dans GEA sur le scénario de création de backup c'est ça ? Merci Partager ce message Lien à poster Partager sur d’autres sites
pepite 1 272 Signaler ce message Posté(e) 28 septembre 2017 Salut @Domodial, Oui il n'y a rien dans la scene en automatique, tu dois la lancer avec GEA ou autre. Partager ce message Lien à poster Partager sur d’autres sites
Domodial 351 Signaler ce message Posté(e) 28 septembre 2017 Cool, c'est donc fait !! Partager ce message Lien à poster Partager sur d’autres sites
Sakkhho 469 Signaler ce message Posté(e) 11 août 2018 Hello Les scences de Backup et DeleteBakcup ne sont plus fonctionnelles en 4.510 C'était quand meme très pratique; Qq'un sait comment faire avec la nouvelle API ? merci Partager ce message Lien à poster Partager sur d’autres sites
Kana-chan 66 Signaler ce message Posté(e) 12 août 2018 (modifié) Bonjour, Il faut s'authentifier en encodant maintenant pour utiliser les GET/POST. Donc le code deviendrait (exemple pour le backup) : --[[ %% properties %% events %% globals --]] -- ID des mobiles,tablettes pour notification local portable = { 385,378 } -- specify user and passwort in clear text local user = 'do.not@email.us' local password = 'verystrongpassw0rd' ------------------------------------------------------------------ ---------------- do not change anything below -------------------- ------------------------------------------------------------------ -- base64 helper function -- Lua 5.1+ base64 v3.0 (c) 2009 by Alex Kloss <alexthkloss@web.de> -- licensed under the terms of the LGPL2 function encbase64(data) local b='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; return ((data:gsub('.', function(x) local r,b='',x:byte() for i=8,1,-1 do r=r..(b%2^i-b%2^(i-1)>0 and '1' or '0') end return r; end)..'0000'):gsub('%d%d%d?%d?%d?%d?', function(x) if (#x < 6) then return '' end local c=0 for i=1,6 do c=c+(x:sub(i,i)=='1' and 2^(6-i) or 0) end return b:sub(c+1,c+1) end)..({ '', '==', '=' })[#data%3+1]) end -- Message Descriptif du Backup local descriptif = 'Backup du '..os.date("%d/%m/%y - %HH%M") function sendPush(message) if #portable > 0 then for _,v in ipairs(portable) do fibaro:call(v,'sendPush', message) end end end local url = 'http://127.0.0.1:11111/api/settings/backups' local httpClient = net.HTTPClient() httpClient:request(url , { success = function(response) if tonumber(response.status) == 201 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 = { ["Authorization"] = 'Basic '.. encbase64(user .. ':' .. password), ["content-type"] = 'application/x-www-form-urlencoded;' }, data = 'action=create&description='..descriptif } }); Pour faire le backup. P.S. : Je n'ai pas testé mais fait la synthèse avec d'autres posts de ce forum à ce sujet. Voilà ... Modifié 12 août 2018 par Kana-chan Partager ce message Lien à poster Partager sur d’autres sites
Sakkhho 469 Signaler ce message Posté(e) 12 août 2018 hello merci j'ai une [DEBUG] 18:10:52: Error 501 quand j'applique ce code Partager ce message Lien à poster Partager sur d’autres sites
Kana-chan 66 Signaler ce message Posté(e) 12 août 2018 Bonsoir, Alors, une erreur 501 c'est "Fonctionnalité réclamée non supportée par le serveur", donc le backup a du être enlever de l'API ou placé ailleurs. Je ne vois pas d'autres explication. Voilà ... Partager ce message Lien à poster Partager sur d’autres sites
Lazer 8 477 Signaler ce message Posté(e) 19 août 2018 J'ai commencé à regarder, l'API n'a plus rien à voir. Lister les backups : Requête : GET : /api/service/backups Réponse : Code : 200 Données : JSON Faire un Backup Local : Requête : POST : /api/service/backups Données : {"action":"create","params":{"type":"local","description":"Test%20de%20Backup%20Local"}} Content-Type: application/json Réponse : Code : 202 Remarque : Un seul backup local est possible sur la box, donc à chaque fois qu'on réalise un nouveau backup local, cela supprime automatiquement le backup local précédent. Faire un Backup Cloud : Requête : POST : /api/service/backups Données : {"action":"create","params":{"type":"remote","description":"Test%20de%20Backup%20Cloud"}} Content-Type: application/json Réponse : Code : 202 Remarque : Plusieurs backups clouds sont possible dans la limite de l'espace autorisé par Fibaro Supprimer un Backup Local : Requête : DELETE : /api/service/backups?type=local&id=1 Réponse : Code : 200 Remarque : Fonction sans intérêt puisqu'un seul backup local est possible Supprimer un Backup Cloud : Requête : DELETE : /api/service/backups?type=remote&id=38468 Réponse : Code : 200 Remarque : Il faut préalablement récupérer la liste des backups pour obtenir les identifiants Télécharger un Backup Local : Requête : GET : /backups/backup_HC2-XXXXXX_2018_08_19-15_33_20.fbi Réponse : Code : 200 Données : le fichier de sauvegarde au format FBI, il s'agit en réalité d'un fichier ZIP renommé) Remarque : Puisqu'un seul backup local est possible, alors il n'est possible de télécharger que le dernier backup local réalisé Il faut préalablement récupérer la liste des backups pour obtenir le nom du backup local. Il reste maintenant à écrire le code LUA.... 1 2 Partager ce message Lien à poster Partager sur d’autres sites
lamparo 56 Signaler ce message Posté(e) 19 août 2018 Il y a 1 heure, Lazer a dit : Il reste maintenant à écrire le code LUA.... Partager ce message Lien à poster Partager sur d’autres sites
Lazer 8 477 Signaler ce message Posté(e) 19 août 2018 Ouais par contre là ça sera sans moi, je réalise mes backups via un script Shell externe.... l'intérêt étant de pouvoir vérifier le statut du backup et de me notifier par email si tout va bien, ou pas, puis de télécharger le backup et de le conserver sur le NAS. Mais avec l'API ci-dessus, et en utilisant la scène LUA de backup déjà partagée, ça devrait être assez facile d'adapter je pense. Partager ce message Lien à poster Partager sur d’autres sites
pepite 1 272 Signaler ce message Posté(e) 19 août 2018 Bonsoir, Voila voila, Testé pour les 2 types de backup. Merci @Lazer Gros gain de temps -- BACKUP -- ID des mobiles,tablettes pour notification local portable = {} -- {XX, XX} -- Type de backup : local/remote (cloud) local type = 'local' --local type = 'remote' -- Message Descriptif du Backup local descriptif = 'Backup HC2 du '..os.date("%d/%m/%y - %HH%M") -- Password admin encodé en base64 local password = 'xxxxxxxxxxxxxxxxxxxx' 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 datas = '{"action":"create","params":{"type":"'..type..'","description":"'..descriptif..'"}}' local httpClient = net.HTTPClient() httpClient:request(url , { success = function(response) if tonumber(response.status) == 202 then print("Backup Local Créé " .. 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 } }); 4 Partager ce message Lien à poster Partager sur d’autres sites
Dragoniacs 436 Signaler ce message Posté(e) 20 août 2018 Ca ne fonctionne pas chez moi, j'ai une erreur 401.... Partager ce message Lien à poster Partager sur d’autres sites
Dragoniacs 436 Signaler ce message Posté(e) 20 août 2018 j'avais raté mon encodage.... ca tourne Merci Partager ce message Lien à poster Partager sur d’autres sites
kioneoranga 80 Signaler ce message Posté(e) 20 août 2018 ça marche cool Un grand merci Partager ce message Lien à poster Partager sur d’autres sites
lamparo 56 Signaler ce message Posté(e) 21 août 2018 Bonsoir, question certainement bête, mais ou est stocker le backup local par la scène? Partager ce message Lien à poster Partager sur d’autres sites
Lazer 8 477 Signaler ce message Posté(e) 21 août 2018 Le backup local est stocké sur le disque (clé USB à mémoire SLC) interne de la box, dans une partition différente du système, des logs, et des données. La clé USB Recovery externe n'est plus utilisée On peut conserver un seul backup local, chaque nouveau backup local écrase le précédent. On peut télécharger le backup local (toujours le dernier réalisé, forcément, cf remarque précédente) pour le stocker ailleurs (PC, NAS, etc) On peut aussi réaliser autant de backup Cloud que l'on désire, dans la limite de l'espace autorisé par Fibaro sur leurs serveurs. 1 Partager ce message Lien à poster Partager sur d’autres sites
Sakkhho 469 Signaler ce message Posté(e) 25 août 2018 @tinman as aussi donné une version des scenes un peu different pour le delete https://forum.fibaro.com/topic/31086-backups-hc2-specific-or-not/?do=findComment&comment=156436 1 Partager ce message Lien à poster Partager sur d’autres sites