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.