Automatisches Backup mit dem fibaro HomeCenter2 erstellen

Leider hat das fibaro HomeCenter2 so seine Eigenheiten und man kommt nicht darum auf das HomeCenter ein Backup aufzuspielen. Gute wenn man ein aktuelles Backup hat, denn man macht ja regelmäßig diese Backups. Richtig? Sicherlich fragen sich jetzt einige: „Wann habe ich das letzte Backup gemacht?“

LUA Coder fibaro Backup erstellen

Aktuell ab Firmware Version 4.510

Fibaro hat Anfang des Jahres große Veränderungen an seinem Backend vorgenommen. Das äußert sich dadurch, dass das automatische Backup mit dem alten LUA-Code einen Fehler (400) verursacht.

Hier also der überarbeitete Code, der ein automatisches Remote Backup in der Cloud erstellt. Sie müssen nur Zeile 10 und 11 Ihre fibaro Zugangsdaten eintragen. Danach die Szene benennen und speichern. Sobald die Szene ausgelöst wird, entweder manuell oder automatisch, wird ein Backup in der Cloud erstellt.

--[[
%% properties
%% events
%% globals
--]]
     
-- Description of the Backup
local descriptif = 'Backup from '..os.date("%d.%m.%y - %H:%M")

local user = 'email@aol.de' -- Hier den fibaro Superuser eintragen
local password = 'Passwort'-- Hier das Passwort des Superusers eintragen 

local url = 'http://127.0.0.1/api/service/backups'
local datas = '{"action":"create","params":{"type": "remote","description":"'..descriptif..'"}}'

-- 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

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())       
      else
        print("Error " .. response.status)						
      end
    end,
    error = function(err)
      print('error = ' .. err)
    end,
    options = {
      method = 'POST',
      checkCertificate = false,
      headers = { 
        ["content-type"] = 'application/json',
        ["Authorization"] = 'Basic ' .. encbase64(user .. ':' .. password)
      },
      data = datas
    }
  });

Gefunden hier: https://forum.fibaro.com/topic/31086-backups-hc2-specific-or-not/

Veraltet: Bis Firmware Version 4.180

Gut das Sie sich ab jetzt automatische Backups erstellen lassen können! Kopieren Sie den folgenden Code und passen Sie die Zeile 11 an. Hier steht der Admin Username und Password verschlüsselt in Base64. Auf der Seite Base64encode können Sie entsprechend verschlüsseln. Schreiben Sie auf der Seite USERNAME:PASSWORD in unserem Beispiel das fibaro Standart Password admin:admin und klicken auf „Encode“. Das Ergebnis in unserem Fall ist YWRtaW46YWRtaW4=

--[[
%% properties
%% events
%% globals
--]]
     
-- Backup Beschreibung 
local descriptif = 'AutoBackup erstellt '..os.date("%d/%m/%y - %HH%M")

-- Password Encoded Base64 in unserem Beispiel admin:admin
local password = 'YWRtaW46YWRtaW4='

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) == 202then
						print("Backup Created at " .. os.date())
						
                    else
						print("Error " .. response.status)						
                    end
                end,
        error = function(err)
					print('error = ' .. err)
                end,
        options = {
				method = 'POST',
                headers = { 
						["content-type"] = 'application/json',
						["Authorization"] = 'Basic '..password
                          },
                data = datas
			}
});

Backup automatisch erstellen

Abschließend noch eine weitere Szene erstellen, welche die zuvor erstellte „Backup erstellen“ Szene auslöst. Zum Beispiel zeitgesteuert einmal in der Woche Mittwochs um 03:00 Uhr.

Ergebnis

Nachdem die Szene ausgelöst würde, erstellt das HC2 automatisch ein Backup und auf dem Bildschirm ist folgendes zu sehen:

Automatisches Backup wird erstellt

Nachdem das Backup fertig ist finden Sie es im Bereich Konfiguration/ Backups.

4 Gedanken zu „Automatisches Backup mit dem fibaro HomeCenter2 erstellen

  • 9. August 2018 um 11:24
    Permalink

    Hallo,

    sehr gute Idee!
    Gibt es schon ein modifiziertes LUA Script für die Speicherung in der Fibaro Cloud (Firmware HC 2 4.510)?

    Danke

    Antwort
    • 24. September 2019 um 11:22
      Permalink

      Ja, gerade haben wir den Blogbeitrag aktualisiert!

      Antwort
  • 24. August 2019 um 11:27
    Permalink

    Hallo,
    Ich habe euer Skript ausprobiert und bekomme „error 400“.
    Habt ihr einen Tipp, was ich falsch mache?

    Antwort
    • 24. September 2019 um 11:15
      Permalink

      Hallo, wahrscheinlich haben Sie eine Version größer als die 4.180. Wir haben gerade den LUA Code für die aktuelle FW Version in diesem Blogbeitrag angepasst.

      Antwort

Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.