I’m curious about the different quick arm modes…when i use the trick of my scene that does Stay and then ArmedInstant (to simulate *9 arming, i.e. no entry delay), the plugin reports that I’m in vacation mode. If I just send StayInstant as the documentation suggests, the plugin says I’m just in Armed mode.
I’m trying to set up scenes to use the different detailedArmModes, but all I ever see is Vacation or Armed…is there a way to get this working or am I missing something?
I’m not sure where the status that you are talking about is read from. What I do know is that there are only a couple of valid options for RequestQuickArmMode, they are the following:
(030) Armed
(031) Stay
(032) ArmedInstant
All the other values are just calling one of the above. Here is the code the plugin uses when RequestQuickArmMode is called:
if (state == "Disarmed") then
-- No Disarm without PINCode
task("Action::RequestQuickArm No Disarm without PIN", TASK_ERROR)
elseif (state == "Armed") then
sendPartitionCommand("030", lul_device)
elseif (state == "ArmedInstant") then
sendPartitionCommand("032", lul_device)
elseif (state == "Stay") then
sendPartitionCommand("031", lul_device)
elseif (state == "StayInstant") then
-- No StayInstant command, use Stay instead.
sendPartitionCommand("031", lul_device)
elseif (state == "Night") then
-- No Night command, use Stay instead.
sendPartitionCommand("031", lul_device)
elseif (state == "NightInstant") then
-- No NightInstant command, use Stay instead.
sendPartitionCommand("031", lul_device)
elseif (state == "Force") then
-- No Force command, use Armed instead.
sendPartitionCommand("030", lul_device)
elseif (state == "Vacation") then
sendPartitionCommand("032", lul_device)
else
log("Action::RequestQuickArmMode Invalid state requested " .. (state or "N/A"))
end
I don’t really know why some of those options exist either.
I continued to look through the code/documentation, and found the place where I think it sets the status. The possible values from Envisalink’s documentation are:
AWAY, STAY, ZERO-ENTRY-AWAY, or ZERO-ENTRY-STAY
Quoted from their TPI documentation on page 6, command 652 (attached if anybody is interested)
The following piece of code makes me believe that Vacation really means Away Instant:
["652"] = {"partition", "Partition Armed - Descriptive Mode",
function (cmd, partition, data)
debug(string.format("Partition::Partition Armed - Descriptive Mode %s, Partition %d (%s)",
cmd, partition, (PARTITION_ARMED_MODES[data] or "N/A")))
setPartitionState(partition, "ArmMode", "Armed")
setDSCPartitionState(partition, "ArmModeNum", "1")
if (data == "0") then
setPartitionState(partition, "DetailedArmMode", "Armed")
elseif (data == "1") then
setPartitionState(partition, "DetailedArmMode", "Stay")
elseif (data == "2") then
setPartitionState(partition, "DetailedArmMode", "Vacation")
elseif (data == "3") then
setPartitionState(partition, "DetailedArmMode", "StayInstant")
elseif (data == "4") then
setPartitionState(partition, "DetailedArmMode", "Night")
else
log("Received invalid partition state " .. data)
setPartitionState(partition, "DetailedArmMode", "Armed")
end
end},
Guessed is the main developer of the plug-in. He is still around the reason for the different modes of because it is an alarm standard that the forum members developed for the alarm panels. It does not just pertain to the doc alarms.
There is a standard for Alarm Partitions, ones that all of the Alarm Panels conform to so they can benefit from the Control Points also working with the standard.
Otherwise, Control Points would have to code to each Panel, one-by-one (which we see for other types of Devices, slow and painful)
Anyhow, in order to do this the specification had to include a super-set of all [known] Alarm Panel states, and each implementation had to “map” their states to the known set.
In some cases, like the DSC where there are a limited number of these states, this results in a down-map (you request “Stay” or “StayInstant” but get “Stay” (031) … since the DSC doesn’t have an instant-stay mode.
The “Quick” versions of the commands are just intended to not require a PIN Code. Again, not all Panels will support that, and not for every mode.
[quote=“garrettwp, post:5, topic:179897”]Guessed is the main developer of the plug-in. He is still around the reason for the different modes of because it is an alarm standard that the forum members developed for the alarm panels. It does not just pertain to the doc alarms.
Garrett[/quote]
I edited my message about not knowing if the developer was still around when I noticed it was guessed on all the commits
I thought something like that would be the reason for the more generic arm modes.
[quote=“guessed, post:6, topic:179897”]There is a standard for Alarm Partitions, ones that all of the Alarm Panels conform to so they can benefit from the Control Points also working with the standard.
Otherwise, Control Points would have to code to each Panel, one-by-one (which we see for other types of Devices, slow and painful)
Anyhow, in order to do this the specification had to include a super-set of all [known] Alarm Panel states, and each implementation had to “map” their states to the known set.
In some cases, like the DSC where there are a limited number of these states, this results in a down-map (you request “Stay” or “StayInstant” but get “Stay” (031) … since the DSC doesn’t have an instant-stay mode.
The “Quick” versions of the commands are just intended to not require a PIN Code. Again, not all Panels will support that, and not for every mode.[/quote]
thanks for the awesome explanation…that leads me to another question, though. like i said in my original post, when you do the *9 trick the plugin reports (with a dsc pc1864) as “vacation”…where does that come from? it seems like an odd identifier to me, if you’re on vacation and you have “no-entry” arming, how are you ever supposed to get back in to get to a keypad to disarm the system?
So the DSC API spec is an interesting beast. It has direct support for most of the modes of the DSC, but the finer-point modes seem to only be available via magical key-sequences.
I coded the Plugin, as a reference implementation[sup]*[/sup] (of sorts), solely from the DSC API guide. As a result it doesn’t have all of the crazy modes that might come from these key-sequences.
Anyhow, semantically, Vacation mode was intended to be a mode where there was no delay when entering the house. If you open a door, then the Alarm goes off instantly. Presumably you use a keyfob, external keypad and/or keyswitch to “disarm” the house from this type of mode before entering.
eg. A Keypad in the Garage, which isn’t typically an armed Zone but has some/limited protection from the outside world.
[sup]*[/sup] At home, I use a completely different Panel, a Paradox, but it implements the same standardized interface/service defn… so things like Vacation mode don’t exist for me, in any form.
Best Home Automation shopping experience. Shop at Ezlo!