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:
Nachdem das Backup fertig ist finden Sie es im Bereich Konfiguration/ Backups.
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
Ja, gerade haben wir den Blogbeitrag aktualisiert!
Hallo,
Ich habe euer Skript ausprobiert und bekomme „error 400“.
Habt ihr einen Tipp, was ich falsch mache?
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.