![]() |
|
|||||||
| The C-Bus Community Forums is place where C-Bus users can share information and help others with C-Bus. From time to time you will see Clipsal staff on the forums, but this is not an official support channel. If you really need help contact the official support services of Clipsal. More information about the purpose of this forum is available here. |
![]() |
|
|
Thread Tools | Display Modes |
|
#21
|
||||
|
||||
|
Quote:
If the system is armed from the system's own keypad, this is independent of C-Bus, so (probably) the first thing C-Bus knows about it is when it sees the "System Armed" message. I suspect this how the logs presented have been generated. Quote:
The arm levels defined for the "Arm System" (which is a request), and the levels defined for the "System Armed" (which is a notification) are different. The "Arm System" message defines the requested levels as you describe, but the levels defined for the "System Armed" message are : $00 = disarmed $01 = fully armed (typically used for “away” modes) $02 = partially armed (typically used for “home” modes) (Optional) $03 – $7F = other arm sub-types, manufacturers discretion $80 – $FF = reserved The reason for this is that different panel manufacturers support partial arming in vastly different ways. What would work for one panel will be wrong for another. For better or for worse, the value used by PICED etc for the "Name" comes from the arm level in the "Arm System" command. Perhaps this needs to be changed to faithfully report the arm level reported in the "System Armed" command (note however that the Name would correspond to the arm levels defined for the "System Armed" command, not the ones defined in the "Arm System" command as you are expecting...ie you would just get something like "Disarmed", "Armed", "Armed (Partial)", and "Armed (Special)". Nick |
|
#22
|
|||
|
|||
|
Quote:
Variable Name: Security Armed Level Usage: 0 = disarmed 1 = "away mode" 2 = "night mode" 3 = "day mode" 4 = "vacation mode" 255 = "highest mode" Type: Integer Settable: No I assume everyone who posted on this thread assumed that this variable will indicate the Arm Level of the security panel. It would have been great if it worked liked that but it will probably be something more generic like Nick suggested. Granted, everyone needs to be kept 'happy' BUT have any of the other security guys posted something similar? I doubt if they can determine their Arm level as well, so like us, they probably us a permanent workaround as well. Saying that, doesn't it suggest something that everyone is using a workaround to determine their panel Arm Level? Even CyTech changed their firmware, as a Beta, to try and get this working correctly. Just some food for thought... |
|
#23
|
|||
|
|||
|
Quote:
|
|
#24
|
||||
|
||||
|
With the recent update to PICED 4.8.2 and the corresponding updates to the various C-Touch firmware, we have changed the behaviour of some of the Security-related System IO.
The "Security Armed Level" now faithfully reports the level code which is sent by the panel in the "System Armed" command, where previously it relied on the level from the "Arm System" command. The "Security Armed Level Name" now reports the names as defined in the Security Application documentation for the "System Armed" command : 0 = Disarmed 1 = Fully Armed 2 = Partially Armed Other = Armed Custom Codes 0x03 - 0x7F are defined as manufacturer defined. The comfort panel seems to use some of these. If you want more information about the mode your panel has armed in, and these new inbuilt names for the armed level don't suit you. You can still "roll your own" names with a little logic code.. If for example you know that your panel is using the code 0x03 in the System Armed message as "Day Mode", then you can create your own string system IO variable to display "Day Mode" when the "Security Armed Level" is equal to 3. The following should give you the general idea.... Code:
once (GetBoolIBSystemIO("Security Armed State") = true) then
begin
temp := (GetIntIBSystemIO("Security Armed Level");
if (temp = 3)
begin
SetStringSystemIO("Panel Armed Level", 'Day Mode');
end
else if (temp = 4)
begin
SetStringSystemIO("Panel Armed Level", 'Night Mode');
end
else if (temp = 5)
begin
SetStringSystemIO("Panel Armed Level", 'Confused');
end
end;
once (GetBoolIBSystemIO("Security Armed State") = false) then
SetStringSystemIO("Panel Armed Level", 'Disarmed');
Nick Last edited by NickD; 31 Mar 10 at 05:06 PM. |
|
#25
|
|||
|
|||
|
Just last night I upgraded to PICED 4.8.2 and saw that it now gives me the actual level of the security panel. I wasn't sure if this was a fluke but now I know I can trust and use it as per NickD's suggestion.
Thanks guys. Ingo PS. Here is my complete code for Comfort/Minder Pro systems. I created an Int called ComfortStatus and a UserSystemIO variable (Security Armed Level Name) to write to. Quote:
Last edited by Ingo; 01 Apr 10 at 12:40 AM. |
![]() |
| Thread Tools | |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Write system IO c-touch object | DiscoStu | C-Touch/HomeGate/SchedulePlus/PICED | 2 | 23 Nov 07 02:57 PM |
| Triggering scenes using security system | remotesolutions | General Discussion | 7 | 23 Jun 06 03:01 AM |
| Comfort Security System | Josh | C-Touch/HomeGate/SchedulePlus/PICED | 5 | 20 Jun 06 05:48 PM |
| Timer delay off (Now that's a newbie question) | Mithril | C-Bus Toolkit/C-Gate | 12 | 01 Sep 04 04:41 PM |