C-Bus Forums  

Go Back   C-Bus Forums > C-Bus Products > C-Touch/HomeGate/SchedulePlus/PICED

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.

Reply
 
Thread Tools Display Modes
  #21  
Old 17 Feb 10, 11:06 AM
NickD's Avatar
NickD NickD is offline
Senior Member
 
Join Date: Nov 2004
Location: Adelaide
Posts: 651
Default

Quote:
Originally Posted by slychiu View Post
From the posts in this thread, it appears that when the security system is armed via C-Touch using SystemIO, the Arm System command/ request (parameter $A2) does not appear on the log. Hence C-Touch does not know what mode the system is being armed to.
If the system is armed *from* the C-Touch, it would be using the "Arm System" command, and it should be shown in the log.

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:
When it has been armed, Comfort sends a System armed message (parameter $80) with the parameter 01 = Away, 02 = Night, 03 = Day, 04= Vacation. These parameters correspond exactly to those of the Arm System command.
Unfortunately this is not the way the Security Application is defined, although I can see how it would be a reasonable assumption to make.

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
Reply With Quote
  #22  
Old 17 Feb 10, 03:59 PM
Ingo Ingo is offline
Senior Member
 
Join Date: Dec 2006
Location: South Africa
Posts: 142
Default

Quote:
Originally Posted by NickD View Post
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
One final comment from my side. From the helpfile the following is true:

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...
Reply With Quote
  #23  
Old 18 Feb 10, 05:33 AM
Josh Josh is offline
Senior Member
 
Join Date: Aug 2004
Location: Pretoria, South Africa
Posts: 223
Default

Quote:
Originally Posted by Ingo View Post
One final comment from my side. From the helpfile the following is true:

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.
I agree with you in full Ingo.
Reply With Quote
  #24  
Old 31 Mar 10, 04:58 PM
NickD's Avatar
NickD NickD is offline
Senior Member
 
Join Date: Nov 2004
Location: Adelaide
Posts: 651
Default Update

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');
Hope this alleviates some of the confusion and lets you achieve your desired result.

Nick

Last edited by NickD; 31 Mar 10 at 05:06 PM.
Reply With Quote
  #25  
Old 31 Mar 10, 11:50 PM
Ingo Ingo is offline
Senior Member
 
Join Date: Dec 2006
Location: South Africa
Posts: 142
Default

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:
once (GetBoolIBSystemIO("Security Armed State") = true) then
begin
ComfortStatus := GetIntIBSystemIO("Security Armed Level");

if (ComfortStatus = 4) then
begin
SetStringSystemIO("Security Armed Level Name", 'Vacation Mode');
end
else if (ComfortStatus = 3) then
begin
SetStringSystemIO("Security Armed Level Name", 'Day Mode');
end
else if (ComfortStatus = 2) then
begin
SetStringSystemIO("Security Armed Level Name", 'Night Mode');
end
else if (ComfortStatus = 1) then
begin
SetStringSystemIO("Security Armed Level Name", 'Away Mode');
end
end;

once (GetBoolIBSystemIO("Security Armed State") = false) then
SetStringSystemIO("Security Armed Level Name", 'Disarmed');
Just remember the 'once' statement will only work once there is a change so arm/disarm the system once and from there it will work fine.

Last edited by Ingo; 01 Apr 10 at 12:40 AM.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

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


All times are GMT +10.5. The time now is 10:10 PM.


Powered by vBulletin® Version 3.7.4
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.