Sposób na wprowadzanie zmian w Panelu grzewczym przez każdego użytkownika i z każdego urządzenia.
Spotykając się z ograniczeniem uprawnień dla użytkownika, który nie może zmienić w Panelu grzewczym temperatur dla strefy do której ma pełne uprawnienia(masakra), wykorzystuję urządzenie wirtualne, aby dać użytkownikowi (innemu niż admin) możliwość regulacji temperatury na dłużej niż 6h.
Skrypt modyfikowany, W standardowej wersji otrzymany od supportu;)
Pierwszy przycisk: (reszta analogicznie)
local new_temp = 16; --temperatura
local heating_section
function show(string)
fibaro:log(string);
fibaro:debug(string);
end
id_sections = {35} -- id stref ogrzewania(jeśli jest więcej niż 1 strefa to wpisać ID po ,
show("Start");
for var = 1, #id_sections do
heating_section =id_sections[var];
HC2 = Net.FHttp("192.168.100.196",80) --adres ip centralki
HC2:setBasicAuthentication("admin", "admin") -- login i haslo
-- get harmonogram
show("Ustawiam dla sekcji = " .. heating_section);
fibaro:sleep(1000)
response ,status, errorCode = HC2:GET("/api/panels/heating/"..heating_section) --wersja dla 4.x
--response ,status, errorCode = HC2:GET("/api/panels/heating?id="..heating_section) --wersja dla 3.x
show("Status = " .. status)
fibaro:sleep(3000)
if (tonumber(status) == 200) then
jsonTable = json.decode(response)
if (tonumber(jsonTable.properties.vacationTemperature) == tonumber(new_temp))
then
--calling action
show("Temperatura trybu wakacyjnego = "..jsonTable.properties.vacationTemperature)
else
--calling action
show("Ustawiam temperaturę")
-- change tabele in Lua
jsonTable.properties.vacationTemperature = tonumber(new_temp);
-- send back
local json2 = json.encode(jsonTable);
HC2:PUT("/api/panels/heating/"..heating_section, json2) -- wersja dla 4.x
-- HC2:PUT("/api/panels/heating?id="..heating_section, json2) --wersja dla 3.x
show("Tryb wakacyjny włączony")
end
else
show("Nie ma takiej strefy");
fibaro:sleep(1000);
end
fibaro:setGlobal("Wakacje", "Wlaczony")
fibaro:sleep(5000)
end