Bonjour,   Voici un résumé sur la réalisation/suppression de backups via des scènes en Lua. La création/suppression de backup s'effectue en temps normal sur l'interface du HomeCenter à  la page Diagnostiques/Sauvegarde et restauration.   Le code donné dons les 2 scènes n'est pas des plus optimisé; cela constitue juste une base.   EDIT (03/12/2016): Mise à jour avec l'api pour les versions >=4.101; voir plus loin: (https://www.domotique-fibaro.fr/topic/8641-backup-via-scene-lua/?do=findComment&comment=146362)   Les Commandes de l'API La récupération au format JSON de la liste des backups se fait à  l'addresse http://HC2/api/settings/backups Pour Créer un Backup on utilise l'addresse http://HC2/api/settings/backups avec une requète de type en POST avec les paramètres action et description. Pour Supprimer un Backup, on utilise l'addresse http://HC2/api/settings/backups?id=xx (où xx est le numéro de backup). La requète est de type DELETE avec comme paramètre id=xx => Comme les urls de l'api vont être appelées depuis des scènes lua, l'ip de la box utilisée sera 127.0.0.1 (port 11111) => En cas d'appel sur l'ip LAN de la box (Ex: http://192.168.0.100/api/settings/backups) , il faudra en plus transmettre l'authentification dans la requète.     Attention: Lors de la création de Backup, "tout le reste" est suspendu; de même après que le backup soit effectué, le moteur Z-Wave et d'autres services redémarrent. Donc en cas de planification , privilégier la nuit, là  ou l'activité ZWave, scénarios, est faible/inexistante.     Scène de création d'un backup   Exemple de Scène de création d'un Backup, avec notification vers portable:        
  --[[ %% properties %% events %% globals --]]       -- ID des mobiles,tablettes pour notification local portable = { 385,378 } -- 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 = {                         ["content-type"] = 'application/x-www-form-urlencoded;'                           },                 data = 'action=create&description='..descriptif             } }); Depuis la page des backups, on peut vérifier que la scène fonctionne:       Pour les utilisateurs de GEA, on peut déclencher cette sauvegarde le 1er samedi de chaque mois par exemple: -- Fonction déterminant si nous sommes le 1er samedi du mois function isFirstSaturday() local t = os.date('*t') return ( t['day'] < 8 and t['wday'] == 7 ) end -- Backup le 1er samedi du mois GEA.add({"Function",function() return isFirstSaturday() end} , 30 , "Backup Mensuel du HC2" , {{"Time","01:00","01:01"},{"Scenario", 12}}) . Scène de suppression d'un backup   Exemple de Scene Lua pour réaliser la suppression du backup le plus ancien:   --[[ %% properties %% events %% globals --]] -- Flag dryrun; Si true, la requete sur api pour effacer le backup n'est pas effectuée local dryrun = true -- Récupération de la list des backups local backups = api.get('/settings/backups') -- 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) else     print("Erreur lors de la récupération de l'ID")     fibaro:abort() end -- Requete via API pour effacer le backup le plus ancien if not dryrun then     local url = 'http://127.0.0.1:11111/api/settings/backups?id='..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;'                             },                 data = 'id='..id             }     }); end . Cette Scène produit le debug suivant:       Nicolas