<%include file="/pageheader.html"/> <%! from kaithem.src import tagpoints import gc import os,quart from kaithem.src import directories tagsLocation = os.path.join(directories.vardir,"tags") def paginate(l,n): return l[n*50: (n+1)*50] %> <% pageNumber=int(data.get('pageNumber',0)) searchFilter=data.get('searchFilter','').strip() filteredTags = [i for i in tagpoints.allTagsAtomic.keys() if (searchFilter.lower() in i.lower()) ] extraUrlStuff ='' if quart.request.args.get("kaithem_disable_header",0): extraUrlStuff= "?kaithem_disable_header=true" %>

# Tag Points

This page lists all Tag Points currently managed by Kaithem. Creating a tag with a name beginning with "=" allows you to create expression tags, similar to soft tags in many SCADA systems.

### Active Tags

- Page ${pageNumber}/${int(len(filteredTags)/50)+1}
%for i in range(int(len(filteredTags)/50)+1):
%endfor

Name | Value(not realtime) | Alarms
--- | --- | ---
%for i in paginate(sorted(filteredTags ), pageNumber): %if i in tagpoints.allTags: %if tagpoints.allTagsAtomic[i]() and isinstance(tagpoints.allTagsAtomic[i](),tagpoints.NumericTagPointClass):
${i|h} | ${tagpoints.allTagsAtomic[i]().last_value} | ${len(tagpoints.allTagsAtomic[i]().alerts)}
%endif %if tagpoints.allTagsAtomic[i]() and isinstance(tagpoints.allTagsAtomic[i](),tagpoints.StringTagPointClass):
${i|h} | ${str(tagpoints.allTagsAtomic[i]().last_value)[:32]|h} | ${len(tagpoints.allTagsAtomic[i]().alerts)}
%endif %if tagpoints.allTagsAtomic[i]() and isinstance(tagpoints.allTagsAtomic[i](),tagpoints.ObjectTagPointClass):
${i|h} | ${str(tagpoints.allTagsAtomic[i]().last_value)[:32]|h} | ${len(tagpoints.allTagsAtomic[i]().alerts)}
%endif %if tagpoints.allTagsAtomic[i]() and isinstance(tagpoints.allTagsAtomic[i](),tagpoints.BinaryTagPointClass):
${i|h} | Value is binary data | ${len(tagpoints.allTagsAtomic[i]().alerts)}
%endif %if tagpoints.allTagsAtomic[i]()==None:
${i|h} | DELETED | DELETED | DELETED | DELETED
%endif %endif %endfor

<%include file="/pagefooter.html"/>