<%include file="/pageheader.html"/> <%! from kaithem.src import tagpoints,unitsofmeasure,util,pages import time import gc import collections import dateutil import quart %> <% pageGCListIgnoreFlag = True if tagName in tagpoints.allTags: tag=tagpoints.allTags[tagName]() else: raise RuntimeError("Nonexistant Tag") #normalize normalizednormalizedTagName=tag.name %> <% if quart.request.args.get("kaithem_disable_header",0): extraUrlStuff= "?kaithem_disable_header=true" else: extraUrlStuff ='' %> ${normalizednormalizedTagName|h}

(back)(Advanced View) Tag Point: ${normalizednormalizedTagName}

Description

${tag.description or "No description set"}

Info

%if hasattr(tag,'unit'): %endif
Time Since Update ${((unitsofmeasure.format_time_interval(time.time()-tag.timestamp,3)+" ago") if int(tag.timestamp) else 'never')}
Timestamp ${tag.timestamp}
Annotation ${tag.annotation|h}
Active Claim ${tag.active_claim.name}(P${tag.active_claim.priority})
Value at page load ${(str(tag.value)[:128]) if not isinstance(tag.value,bytes) else str(len(tag.value)) +" bytes of binary"}
Owner ${tag.owner}
Subscriber count ${len(tag.subscribers)}
WebAPI read perms ${tag.get_effective_permissions( )[0]}
WebAPI write perms ${tag.get_effective_permissions( )[1]}
WebAPI priority ${tag.get_effective_permissions( )[2]}
Python3 Object ID ${id(tag)|h}
Base Unit ${tag.unit|h}

Current State

If you do not configure a type, the tag will not exist until requested via code.
%if tag and isinstance(tag,tagpoints.NumericTagPointClass): %endif %if tag and isinstance(tag,(tagpoints.StringTagPointClass, tagpoints.ObjectTagPointClass)): %endif %if tag==None: %endif
Type ${tag.type|h}
Interval ${tag.interval}
Min ${tag.min}
Max ${tag.max}
Hi ${tag.hi}
Lo ${tag.lo}
Display in Units ${tag.display_units}
Type ${tag.type|h}
Interval ${tag.interval}
DELETED

Value(source at page load: ${tag.active_claim.name})

The default value affects tags immediately when created, when they have never been set by anything else. Changes will not take effect immediately if the tag has already been set. Default values cannot be =expressions.
%if tag and isinstance(tag,tagpoints.NumericTagPointClass): %elif tag and isinstance(tag,(tagpoints.StringTagPointClass, tagpoints.ObjectTagPointClass)): %elif tag and isinstance(tag,(tagpoints.BinaryTagPointClass)): %else: %endif %if tag==None: %endif
Default Current
${len(tag.value)} bytes at page loadNo live previewDELETED

Alerting

%for i in tag.alarms: %endfor
Name State
${i} ${tag.alarms[i].sm.state}
<%include file="/pagefooter.html"/>