Gerät per Skript dekativieren ?

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

Bildschirmfoto-2019-09-18-um-16.28.23.png

  1. Bild

Bildschirmfoto-2019-09-18-um-16.28.08.png