Gibt es eine Möglichkeit über ein Skript ein Gerät in den Parametern zu deaktivieren?
Ich meine nicht nur abschalten, sondern zu deaktivieren wie im Anhang zu sehen?
Hi @pblacky
so aus der Hüfte geschossen:
devID=deviceID -- ID des devices
api.put("/devices/"..devID, {enabled=false})
Und um wieder zu aktivieren {enabled=true} verwenden.
Hat funktioniert, danke Lucky Luke ;-))
Für Minimalisten klappt auch
api.put("/devices/007", {enabled=false})
Wenn Device ID “007” ist …
Ich experimentiere gerade damit rum, weil ich im Urlaub einige sicherheitsrelevante Geräte deaktivieren möchte.
z.B. Türöffner, Garagentor, u.s.w
Das geht auch per "Knopfdruck in der Fibaro-App! (habe ich derzeit in Benutzung, da die Kinder 2 und 4 immer an den Jalousie-Schaltern spielen)
--[[
%% properties
%% events
%% globals
switchProtection
--]]
local switchList = {1219, 1613, 1099, 573, 579, 1626, 1477} -- ID master device of dimmers or roller shutters to protect
--Do not modify code below this line
local function postMethod(requestUrl, data, successCallback, errorCallback)
local http = net.HTTPClient()
http:request(requestUrl, {
options = {
method = 'POST',
headers = {},
data = data,
timeout = data.timeout or 5000 },
success = successCallback,
error = errorCallback
})
end
local function fibaroSwitchProtection(id, onOff) -- ID , [protect/release]
local url = 'http://127.0.0.1:11111/api/devices/'..id..'/action/setProtection'
local data = '{"args": [0,0]}'
if onOff == "protected" then
-- data = '{ "args": [2,1]}' -- Use this line to protect from switches and scenes
data = '{ "args": [2,0]}' -- Use this line to protect from switches only
end
postMethod(url, data, function(resp)
if resp.status < 300 then
print('Connection successful, status ' .. resp.status .. ', ' .. data)
else
print('Connection failed, status ' .. resp.status .. ', ' .. data)
end
end,
function(err)
print('error ' .. err)
end
)
end
local switchState = fibaro:getGlobalValue("switchProtection")
for i, deviceID in ipairs(switchList) do
print(deviceID, fibaro:getType(deviceID), fibaro:getName(deviceID), fibaro:getRoomNameByDeviceID(deviceID), switchState)
fibaroSwitchProtection (deviceID, switchState)
end
- Bild