#150 Context for Comments/Messaging (Transient) tagging

Carl Popolo Sat 15 Feb 2014

I'm wondering if there's a context within Haystack for tagging points with transient information that regularly appears and disappears, may take on zero to many values but could also persist (as a historical record).

Our application imports EMS data, creates certain cubes and then does analytics on combinations of the data. As a simple example, if a point is tagged as a discharge air temperature, we might apply a comment at the point level if the recent import of that point's data was out of expected range by some percent. On a campus with 100 buildings and, say 500 air handlers, filtering on this kind of status/comment/message is helpful in narrowing down potential issues.

So I'm imagining a collection of tags that apply to the point entity that may or may not be populated, may have many instances each with a different value (one misbehaving point on an air handler may need to have several comments attached to it).

Something like:

message:
   +----  messageDatetime
   +----  messageBy (system or user)
   +----  messageType (system generated, user supplied, etc)
   +----  messageText

A cursory look a the existing tags doesn't seem to cover dynamic/transient tagging.. Am I out in left field or is this in the realm of future scope?

Thanks

Brian Frank Sun 16 Feb 2014

Transient tagging is really more of a system implementation issue than a modeling issue. For example the Haystack model defines curVal as the current value of a point. In reality I would think most systems would treat this a transient value (we certainly do in SkySpark).

Regarding messaging, I would think that is better handled via alternate entities which are related using Ref keys (much like you would model it in a relational database).

message
pointRef: @some-point
ts: <DateTime>

Then to query messages for a given point its just a read like this:

message and pointRef==@some-point

A technique we use in SkySpark for notes and stuff like this is to flatten out the refs to include siteRef, equipRef, pointRef, etc so that its easy to find things related to any level of the "tree".

Login or Signup to reply.