<%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"}

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

%if tag and isinstance(tag,tagpoints.NumericTagPointClass): %elif tag and isinstance(tag,(tagpoints.StringTagPointClass, tagpoints.ObjectTagPointClass)): %elif tag and isinstance(tag,(tagpoints.BinaryTagPointClass)): ${len(tag.value)} bytes at page load %else: No live preview %endif %if tag==None: DELETED %endif

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 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

Alerting

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