Dokumentation der Scenen erstellen

Hallo Leute, irgendwie wird es bei mir im HC2 unübersichtlich. Ich suche nach einer Lösung für eine gute Dokumentation zur Erfassung aller Geräte und Szenen.
Hat eventuell einer irgendetwas in Benutzung und würde seine Lösung mit mir teilen.
Danke und eine schöne Woche

Hi,

Du könntest auf das HC-Toolkit zurück greifen oder schau mal hier:
https://www.siio.de/board/thema/device-inventory-script/

Viele Grüße Hoggle

Hi Hoggle,
erstmal Danke. Das Inventory Script benutze ich bereits und es ist ganz toll, die Anzahl der Geräte zu sehen. Da ich ein Apple Jünger bin habe ich kein HC-Toolkit in Gebrauch.

Eventuell habe ich mich auch unglücklich ausgedrückt.
Ich dachte das es irgendetwas gibt, das mir anzeigt welche ID in welcher Scene verwendet wird.

Im Moment schreibe ich eine Excel Tabelle voll, aber Du weißt ja wie schnell man mal vergessen hat etwas zu ändern und schon ist es nicht mehr aktuell.

Gruß

Hallo Hoggle,

mein Problem hat sich eigentlich gelöst. Ich habe folgendes gerade hier im Forum gefunden
https://forum.fibaro.com/files/file/10-device-list-and-status/
und es funktioniert.
Schön wäre es noch, wenn man das Debüt ausdrucken könnte. Aber soweit ich weiß ist das wohl nicht möglich.

Gruß und Danke

Perfekt

Ich stelle mal das Script ein, wie ich es nutze und es funktioniert super.


--[[
%% properties
%% globals
--]]
function getUserData(dID)
  local mStr = ""
 
  uIds = api.get("/users")
  for i in ipairs(uIds) do
    if (uIds[i].id == dID) then
        mStr = mStr .. uIds[i].email
        if ( uIds[i].hasGPS == true) then mStr = mStr .. " : hasGPS=" .. json.encode(uIds[i].tracking) end
        if (json.encode(uIds[i].deviceRights) ~= "[]") then mStr = mStr .. " : deviceRights=<small>" .. json.encode(uIds[i].deviceRights) .. "</small>" end
        if (json.encode(uIds[i].sceneRights) ~= "[]" ) then mStr = mStr .. " : sceneRights=<small>" .. json.encode(uIds[i].sceneRights) .. "</small>" end
        break
    end
  end
 return mStr
end

function getSceneData(dID,lType)
  local mStr, parentId, fontColor = "",0,"<font color=yellowgreen>"
  local header = api.get("/scenes?id=" .. dID)["name"] 
 
  if (lType ~= nil) then
    if ( api.get("/scenes?id=" .. dID)["roomID"] == 0) then header = "Unassigned:" .. api.get("/scenes?id=" .. dID)["name"]
    else header = fibaro:getRoomName(api.get("/scenes?id=" .. dID)["roomID"]) .. ":" .. api.get("/scenes?id=" .. dID)["name"] end
  end
  mStr= mStr .. "<font color=lightblue>" .. dID .. ": </font>" .. fontColor .. header .. "</font><small><font color=grey> [ " .. string.gsub(api.get("/scenes?id=" .. dID)["type"] ,"com.fibaro.","") 
  mStr = mStr .. " : Max Instances=" .. api.get("/scenes?id=" .. dID)["maxRunningInstances"]
  if (api.get("/scenes?id=" .. dID)["visible"] == false) then mStr = mStr .. " : Hidden" end
  if (api.get("/scenes?id=" .. dID)["alexaProhibited"] == false) then mStr = mStr .. " : Alexa enable" end
  if (api.get("/scenes?id=" .. dID)["autostart"] == true) then mStr = mStr .. " : Autostart" end
  mStr = mStr .. " : " .. api.get("/scenes?id=" .. dID)["runConfig"] .. " ]</font></small><br>" 
 return mStr
end

function getDeviceData(dID,lType)
  local mStr, parentId, fontColor, bLvl = "",0,"<font color=yellowgreen>",0
  local header = fibaro:getName(dID)
  
  if (fibaro:getType(dID) == "HC_user") then
    if (lType ~= nil) then
       mStr = mStr .. "<font color=lightblue>" .. dID .. ": </font><font color=yellowgreen>HC_User:" .. header .. "</font><small><font color=grey> [ " .. getUserData(dID).. " ]</font></small><br>"
    else
       mStr = mStr .. "<font color=lightblue>" .. dID .. ": </font><font color=yellowgreen>" .. header .. "</font><small><font color=grey> [ " .. getUserData(dID).. " ]</font></small><br>"
    end
   return mStr
  end
  if (lType ~= nil) then
    if ( fibaro:getRoomID(dID) == 0) then header = "Unassigned:" .. fibaro:getName(dID)
    else header = fibaro:getRoomName(fibaro:getRoomID(dID)) .. ":" .. fibaro:getName(dID) end
  end
  if (fibaro:getType(dID) == "com.fibaro.zwaveDevice"
    or api.get("/devices?id=" .. dID)["visible"] == false) then fontColor = "<font color=darkgrey>" end
  mStr= mStr .. "<font color=lightblue>" .. dID .. ": </font>" .. fontColor .. header .. "</font><small><font color=grey> [ " .. string.gsub(fibaro:getType(dID) ,"com.fibaro.","") 
  if (api.get("/devices?id=" .. dID)["parentId"] ~= nil) then parentId = api.get("/devices?id=" .. dID)["parentId"] end
  if (parentId == 1) then mStr = mStr .. " : Master" elseif (parentId>1) then mStr =mStr .. " : ParentID=" .. parentId end   
  if (tonumber(fibaro:getValue(dID, "batteryLevel")) ~= nil
    and fibaro:getType(dID) ~= "com.fibaro.zwaveDevice") then
        bLvl = api.get("/devices?id=" .. dID)["properties"]["batteryLevel"]
    	if not (bLvl) then bLvl=100 end
        if (tonumber(fibaro:getValue(dID, "batteryLevel")) < bLvl) then bLvl = tonumber(fibaro:getValue(dID, "batteryLevel")) end
        mStr = mStr .. " : Battery=" ..bLvl .. "%"
  end
  if (api.get("/devices?id=" .. dID)["properties"]["Push"] == true) then mStr = mStr .. " : Push" end
  if (api.get("/devices?id=" .. dID)["properties"]["DeviceUID"] ~= nil) then mStr = mStr .. " : UID=<small>" .. api.get("/devices?id=" .. dID)["properties"]["DeviceUID"] .. "</small>" end
  if (api.get("/devices?id=" .. dID)["visible"] == false) then mStr = mStr .. " : Hidden" end
  if (api.get("/devices?id=" .. dID)["enabled"] == false) then mStr = mStr .. " : Disabled" end
  if (fibaro:getValue(dID,"value") ~=nil) then mStr = mStr .. " ] [ value=" .. fibaro:getValue(dID,"value") .. " ]</font></small><br>" 
  else mStr = mStr .. " ]</font></small><br>" end
return mStr
end

local dList = "<br>"
local plainList = false

fibaro:debug("Gathering system information.....")
if not plainList then
rIds = api.get("/rooms")
for i in ipairs(rIds) do
  dList = dList .. "<font color=wheat>--~~== " .. string.upper(rIds[i].name) .. " room ==~~--</font><br>"
  dIds = fibaro:getDevicesId({roomID = rIds[i].id})
  for j,dID in ipairs(dIds) do
      dList= dList .. getDeviceData(dID)
  end
  dIds = api.get("/scenes")
  for j in ipairs(dIds) do
    if (api.get("/scenes?id=" .. dIds[j].id)["roomID"] == rIds[i].id) then
       dList= dList .. getSceneData(dIds[j].id)
    end
  end
end  
dList = dList .. "<font color=wheat>--~~== Unassigned room ==~~--</font><br>"
dIds = fibaro:getDevicesId({roomID = 0,interfaces ={"zwave"}})
  for j,dID in ipairs(dIds) do
      dList= dList .. getDeviceData(dID)
  end
 dIds = api.get("/scenes")
  for j in ipairs(dIds) do
    if (api.get("/scenes?id=" .. dIds[j].id)["roomID"] == 0) then
       dList= dList .. getSceneData(dIds[j].id)
    end
  end
dList = dList .. "<font color=wheat>--~~== System Users ==~~--</font><br>"
dIds = fibaro:getDevicesId({roomID = 0,type="HC_user"})
  for j,dID in ipairs(dIds) do
      dList= dList .. getDeviceData(dID)
  end
dList = dList .. "<font color=wheat>--~~== Mobile devices list ==~~--</font><br>"
dIds = fibaro:getDevicesId({roomID = 0,type="iOS_device"})
  for j,dID in ipairs(dIds) do
      dList= dList .. getDeviceData(dID)
  end
fibaro:debug(dList .. "<span style=text-align:center>")
else
ids = fibaro:getDevicesId({})
dList = dList .. "<font color=wheat>--~~== Devices list ==~~--</font><br>"

for i,dID in ipairs(ids) do
  dList= dList .. getDeviceData(dID,1)
end
dList = dList .. "<font color=wheat>--~~== Scenes list ==~~--</font><br>"
 dIds = api.get("/scenes")
  for j in ipairs(dIds) do
       dList= dList .. getSceneData(dIds[j].id,1)
  end
 fibaro:debug(dList .. "<span style=text-align:center>")
end


ist nicht aus meiner Feder, deshalb großen Dank an den Ersteller.