Capability urgentAlert

Capability embeddedAlert?

This isnā€™t actually a device capability, right? Itā€™s an extension telling ST itself to do something different, whether itā€™s a traffic priority class, a popup in the UI, a an extra notification option, or whatever. (How configurable that is by the end user is not yet clear.)

but the physical device itself does what it was manufactured to do, per its certification by an outside group (not ST). It doesnā€™t know itā€™s doing whatever it is weā€™re calling this.

Itā€™s ST which is making a decision to handle this notification differently. Not the device manufacturer, not the device.

So I would consider something along the lines of capability.STsystemAlert

At least that way coders coming in from other zwave or zigbee systems wonā€™t waste a lot of time trying to figure out what protocol capability this maps to.

Itā€™s an ST-specific capability to activate ST-specific features.

Just a thoughtā€¦

No.

This is a catchall for any Device that has extra self-diagnostic alerts (similar to Deviced Tamper Alert, or Low Battery Alert, but not covered by those ā€“ if any), that are also not covered in the basic Capability Attributes of the device (on/off/unlocked, etc).

This has nothing to do with any special handling by SmartThings.

SmartThings decided to add some slightly special handling (a prominent Location level Dashboard SmartApp) for low Battery conditions; they could choose to do this for Tamper Alerts and this catchall as well; but it is not fundamental to itā€™s definition.

How are you using ā€œbasicā€? (Zwave terminology or something else?)

Because every certified zwave device that provides these type of notifications already does so in a predefined way using predefined codes OR under manufacturer proprietary. But thereā€™s not just a random group of OMG What is This? codes floating around the network.

ā€œSecurityā€ devices are devices that use different Communication profiles. They affect message transfer itself. No matter which hub youā€™re using.

Also, I wasnā€™t under the impression that these were all ā€œselfdiagnostic.ā€ But maybe I missed it.

Anyway, if the definition already exists in the zwave protocol, why obscure it with a new name and less informative values than the ones the manufacturer already supplies?

SmartThings is protocol agnostic (devices can be ZigBee, Z-Wave, Bluetooth, IP, or telepathic, in theory).

So all my discussions regarding Capability definitions are equally agnostic.

Certainly Z-Wave and ZigBeeā€™s clusters, profiles, notification codes or whatever they call Attributes and Commands are worth referencing casually in the process of defining the agnostic SmartThings Capability. Imho. Agnostic is valuable.

If it helpsā€¦ I think ā€œcatchallā€ Capabilities should be avoided if a reasonably small number of more accurate Caps cover the expected requirements (tamper, battery, too many combination lock input retries, etc.).

@garyd9 can perhaps list some example messages that donā€™t fit certain specific Capability definitions?l

Catchall categories never work the way you think they will. As Iā€™ve mentioned before, I prefer a multiprotocol platform to offer a superset of all the available options from the individual protocols, and gray out the ones not available for any given device.

But if you want to have ST itself do something different, then that would be something you might want to add to the list.

At this point Iā€™m going to leave this discussion. If thereā€™s something missing that would make you happy and ST is willing to give it to you, as long as it doesnā€™t take away from the standard behavior expected of a certified device, or slow down the network, Iā€™m fine with it. :blush:

I donā€™t understand whatā€™s confusing about ā€œurgentAlert.ā€ Iā€™m not stuck on it, and I couldnā€™t care less what itā€™s called - I just think the CAPABILITY needs to exist (by any name.)

capability.ReallyNeedToInformAHumanAlert

capability.IBrokeSmartThingsTShirt (sorry, @April, I couldnā€™t resist.)

capability.CriticalNotifications

capability.ImportantMessages

capability.WAFFailureWarning

ā€¦whateverā€¦ A rose by any other name is still a rose.

I will ask, Terry, that you let me edit my own thread title, however, if/when we decide on something.

1 Like

Not me. I have no such desire.

This Capability is requested by @garyd9.

Why???

I am lost as to why @JDroberts and you are in completely opposite worlds with respect to critical messages.

I canā€™t believe weā€™ve stalemated.

opposition? My point is that the label on it is less important than the functionality. The ability for a device type to communicate a critical message is important. Iā€™ve given several examples in the early posts of this thread.

What the capability is called is, as far as Iā€™m concerned, a marketing thing. Is a switch really a switch? Or should it be called a toggle? Perhaps a binarylever? A relay? They are all the same thing and the label doesnā€™t matter. Hereā€™s a name that conveys the intent:

capability.DeviceCanGenerateImportantMessagesThatShouldBeSentToTheUser

Personally, I donā€™t want to type all that. However, if it makes someone at ST happy so that the functionality is implemented, I wouldnā€™t object too much.

But that / this is exactly what @JDRoberts says is a bad thingā€¦ And I think I agree with his statements:

OK, but the whole reason zwave changed their terminology from ā€œalarmā€ to ā€œnotificationā€ is because after several years of actual field deployment they found that one personā€™s ā€œurgentā€ is another personā€™s ā€œlog and review later.ā€

You seem to be trying to predefine how certain physical device features should be prioritised by everyone. But to a landlord monitoring an empty vacation rental 250 miles away, a siren may be a much lower priority than a text message.

I donā€™t care what itā€™s called, either. Just noting that if you use the same terminology as a widely accepted protocol to which ST has been certified, but use it in a different way, many new users may be unnecessarily confused.

My main objection just to be clear, is to theshould above.

ā€œMy use case is not your use case.ā€ You have no idea when I want a human notified. Or how. (Strobe lights and sirens can set off seizures. Not everyone finds them valuable.)

The device capabilities indicate what features a device has. And perhaps how ST will handle certain priorities.

But ā€œshouldā€ belongs to the smartapp coder or the end user. Not the platform. (Unless there is a legal or third party certification requirement, of course.)

But thatā€™s just me, based on experience with big brand companies developing mass market products. And my personal design philosophy.

We can just agree to disagree on this one. Like I said, if ST gives you what you want and it doesnā€™t slow down the network, Iā€™m fine.

edited to add if the notification capability is missing from ST, that should definitely be added. But from @pstuart 's comments, it seemed like you were asking for something different than that.

I strongly agree with this (ie, the Capability or Device Type should not mandate that a user be notified under any circumstances).

That doesnā€™t mean, however, that there are not some type of messages or attributes from devices to the platform that require an unusual special Capability definition. I donā€™t believe this should force any specific types of end-user notification, but a Capability makes it possible for a SmartApp to process and notify as desired.

But maybe I / we need to see more specific examples in order to confirm if this is a single catchall Capability, or if the examples are actually typical Z-Wave or ZigBee messages that suggest specific Capability properties.

1 Like

@JDRoberts, the idea here isnā€™t for the device type to force a message down a userā€™s throat. Itā€™s for a device type to have a mechanism to communicate urgent messages. For a moment, put aside ā€œz-waveā€ and ā€œzigbee.ā€ Iā€™m trying to think outside of the protocolsā€¦

(unrealistic) Example: A garage door detects that itā€™s crushing a human skull while in the process of closing. The garage door informs the device type of this information. It getā€™s a ā€œDoesntExistā€ protocol message with a code for ā€œskull crushing.ā€ How can the device type get this information to the user?

The normal answer is: With a smartapp! Hereā€™s the thing. I agree. My point is: how should it communicate with the smartApp? Should it toss out an event with no named attribute and a descriptionText and force smartapp to parse the text of every single event to see if itā€™s important? Thatā€™s not very practical.

So, Iā€™m suggesting that device types that might have some really important information should declare that they have the capability to announce urgent messages. (Again, donā€™t think about zigbee or z-wave hereā€¦) That capability gives them an attribute to use for creating events that contain those important messages. Perhaps also a mechanism for assigning an urgency.

At this point, itā€™s up to a smart app (though Iā€™d prefer some kind of global smartapp similar to the one that alerts for low battery) to relay that information to the user.

Right now, today, thereā€™s NO ESTABLISHED WAY to do this without using specific ā€œcustomā€ attributes and such. Should each device type force the user to also install a custom smart app JUST for that device type to relay messages? Thatā€™d be clumsy, donā€™t you think?

In some cases, when the deviceā€™s primary purpose is to detect ā€œurgentā€ situations (smoke detector comes to mind as an example), this capability would be redundant. However, thatā€™s not what this is for. This is for the door lock that detects someone bashing the door with an axe. This is for the garage door opener that detects a small childā€™s head is being crushed. This is for the completely unforeseen things (of which I gave some wild examples of above) that device types might know about and need a way to convey to the application layer.

1 Like

I like separating this from the specific protocols, as I said earlier. Thanks.

But at the same time, the reference protocols may suggest a solution. Is there a common ZigBee and/or Z-Wave cluster, code, attributes, message, whatever, for ā€œblocked door closing alertā€?

If so, then this is a specific Capability or possibly even just an Attribute for Capability Door.

Otherwise, we STILL ask, should we make it a discrete Capability or must we let it fall to this Topicā€™s ā€œcatchallā€.

And catchalls are worth avoiding (unless we really want super / sub Capability types, which are not a feature of ST).

You know whatā€¦ screw it. Iā€™m tired of saying the same things over and over and over. Iā€™m trying to make the platform BETTER. Iā€™ve argued this over and over in 4 or 5 different threads. Once people actually read the posts, they tend to agree. @JDRoberts, if you havenā€™t done so, please read the first 25 or so posts in this thread - its almost exactly what Iā€™ve regurgitated several times over in the later posts.

There are other threads as wellā€¦ at least one or two where I gave a whole list of things where a device might need to convey a message that isnā€™t defined by existing capabilities.

One suggestion was to make a new capability for each possible scenario. Iā€™m fine with that, but the fact is that getting new capabilities added isnā€™t easy. tamperAlert for tamper type message, skullcrushAlert for skull crushing, etc. Whatever.

THINK about the situations Iā€™m talking aboutā€¦ NOT in the context of zigbee or z-wave, but in the context of ST. If you think thereā€™s a better way, PLEASE SHARE. However, donā€™t discount this idea without suggesting how it could be done better.

Give examples of how you think these should be handled when a DEVICE TYPE detects these (nevermind that some of these donā€™t exist todayā€¦ weā€™re developing for tomorrow):

door lock detects someone kicking in the door.

door lock detects someone is disassembling the door

garage door opener detects a child being crushed

light switch detects an electrical short that can cause a fire

food blender detects infant fingers at the cutting blade

ā€¦and so onā€¦

I still think this feature already exists in any device smart enough to send the message in the first place. They donā€™t send a random text message. They send a particular value in a particular way. Then, yes, there has to be code to process that value and decide what to do about it.

So far, at least, SmartThings is an open platform but limited to specific third party protocols. I think thereā€™s a reason for this limitation, one being that the whole network comes crashing to a halt if you arenā€™t using terse protocols.

US Garage doors do send some kind of ā€œobstruction encounteredā€ code. The door sensor doesnā€™t know if itā€™s a trash can or a person. It just stops, reverses, and sends a standard code.

And door locks donā€™t detect ā€œan axe.ā€ They donā€™t know the difference between Freddy Kruger and Sears delivering a refrigerator. They just report a code indicating a forceful bump was detected.

If youā€™re writing a device handler, you need to know the values the device can receive and the strings it can send.

If youā€™re writing a smartapp, you then to decide what you want to do with those values. if you donā€™t know what those values mean in terms if device features, thereā€™s a problem.

1 Like

Not that Iā€™m aware of. The zwave ā€œbarrier operatorā€ command class is lacking in accessible docs. Even if it wasnā€™t, however, do you really want to create a new capability for every single possible scenario of ā€œSomething Bad Happenedā€?

Lookā€¦ right now (today) ST sucks at doing some really obvious things. I have a $200 door lock that detects when someone is kicking in the door, but it doesnā€™t matter because ST device types have no mechanism to communicate that information. John Doe user doesnā€™t want to have to install a custom device type and a custom smartapp just to get what should be common sense functionality.

So you completely skipped showing how the device type should handle the messages, whatever they might be. You are right, of course - they donā€™t send strings. They send codes. The device types exist to decode the codes. What then? Right now, my door lock detects a ā€œkick alarm.ā€ It comes in as a burglar notification.

It also doesnā€™t matter, because we donā€™t have a common mechanism to pass that info from the device type to the user level code.

[quote=ā€œJDRoberts, post:85, topic:11041ā€]
If youā€™re writing a smartapp, you then to decide what you want to do with those values. if you donā€™t know what those values mean in terms if device features, thereā€™s a problem.
[/quote]You knowā€¦ this is why this thread has me so frustrated. People come in and say you should do this and do thatā€¦ but they speak (type) in generic terms. HOW IS THE DEVICE TYPE SUPPOSED TO GET THE INFORMATION TO THE APP LAYER???

Once you answer that, do you REALLY expect that every single device type should have a custom smart app?

  1. Tamper alert
  2. Tamper alert
  3. Door closure safety alert (probably exists, due to typical installed safety beam and obstruction detection hardware)
  4. Electrical hazard alert.
  5. Ummmā€¦ Blade soft tissue detection :cold_sweat:

In other wordsā€¦ I obviously have a strong preference for specificity, rather than using a generic catchall.

But, realistically, 100% agree Capability ā€œUnspecified Critical Device Alertā€ sure would be handy for when a specific doesnā€™t exist and which doesnā€™t justify pushing through an new specific Capability with limited uses.

1 Like