<%include file="/pageheader.html"/> <%! from kaithem.src import devices,modules_state, devices_interface import os, gc from kaithem.src import directories import urllib.parse %> Devices

Devices

Printable Report
This section provides an easy way to configure devices supported by Kaithem's remote device abstraction layer.
<%def name="device(i,title='', devObj = None)"> <% devObj = devObj or deviceData[i] if devObj.device.device_type == 'UnusedSubdevice': greyout = "opacity: 70%;" else: greyout = '' resource_obj = None if devObj.module_name and devObj.resource_name: if devObj.module_name in modules_state.ActiveModules: if devObj.resource_name in modules_state.ActiveModules[devObj.module_name]: resource_obj = modules_state.ActiveModules[devObj.module_name][devObj.resource_name] %> %if devObj.device.subdevices:
%endif

${devObj.device.title|h} %if (hasattr(devObj,'errors') and len(devObj.errors)) : ${(str(len(devObj.errors))+" errors")} %endif

%if devObj.device.device_type== 'UnusedSubdevice': (Not found) %endif %if hasattr(devObj, 'tagpoints'): %if (not devObj.device.is_subdevice) and resource_obj: %endif
%if 'color' in devObj.tagpoints and devObj.tagpoints['color'].subtype=='color':
%endif %endif %if resource_obj and resource_obj['resource'].get('label_image',''): thumbnail %endif %}
%if hasattr(devObj, 'alerts') and devObj.alerts: %for i in devObj.alerts: % if devObj.alerts[i].sm.state!='normal':

${i}

%endif %endfor %endif %if hasattr(devObj, 'tagpoints') and devObj.tagpoints: %for i in sorted(list(devObj.tagpoints.keys())): %if 'admin.' not in i: %if devObj.dashboard_datapoints.get(i,True): %if devObj.tagpoints[i].type == 'string':
%elif devObj.tagpoints[i].type == 'number': %if devObj.tagpoints[i].subtype in ('bang','trigger'): %elif devObj.tagpoints[i].subtype in ('bool', 'boolean'): %else: %endif %endif %endif %endif %endfor %endif
%if devObj.config.get('description',''):

${devObj.config.get('description')|h}

%endif
%if devObj.device.subdevices: %for j in devObj.device.subdevices: ${device(devObj.device.subdevices[j].name,devObj.device.subdevices[j].get_host_container())} %endfor
%endif
%for i in sorted(deviceData.keys()): %if not deviceData[i].device.is_subdevice: ${device(i)} %endif %endfor %for i in disks:

${i}

Size${si(disks[i]['total'])}
Used${si(disks[i]['used'])}
%if is_mounted(disks[i]['device']):
%else:
%endif
%endfor
<% d = 0#devices.getZombies() %> %if d:

Zombie Devices

%for i in sorted(d):

${i[0]|h}

    ${gc.get_referrers(i[1])|h}
    ${gc.get_referrers(gc.get_referrers(i[1])[0])}

%endfor
%endif <% del d %>
<%include file="/pagefooter.html"/>